	.file	"973725.c"
	.intel_syntax noprefix
	.text
	.section	.rodata
	.align 64
	.type	s1, @object
	.size	s1, 1024
s1:
	.long	821772500
	.long	-1616838901
	.long	1810681135
	.long	1059425402
	.long	505495343
	.long	-1677701677
	.long	1610868032
	.long	-811611831
	.long	-1076580569
	.long	-2000962123
	.long	-503103344
	.long	-1731160459
	.long	1852023008
	.long	365126098
	.long	-1025022435
	.long	584384398
	.long	677919599
	.long	-1065365415
	.long	-14452280
	.long	2002735330
	.long	1136869587
	.long	-550533546
	.long	-2005097446
	.long	-1563247315
	.long	-1580605226
	.long	879511577
	.long	1639411079
	.long	575934255
	.long	717107937
	.long	-1437329813
	.long	576097850
	.long	-1563213360
	.long	1725645000
	.long	-1484506833
	.long	5111599
	.long	767152862
	.long	-1751892052
	.long	1251459544
	.long	1383482551
	.long	-1242286169
	.long	-1205028113
	.long	-682503847
	.long	1878520045
	.long	1510570527
	.long	-2105841456
	.long	-1863518930
	.long	582008916
	.long	-1131521739
	.long	1265446783
	.long	1354458274
	.long	-765048560
	.long	-1092255443
	.long	-1221385584
	.long	-382003809
	.long	-1265703919
	.long	1275016285
	.long	-45759936
	.long	-1389258945
	.long	-990457810
	.long	1442611557
	.long	-709768531
	.long	-1582551634
	.long	-1563117715
	.long	-1046803376
	.long	-2011021070
	.long	208555832
	.long	-1528512553
	.long	1331405426
	.long	1447828783
	.long	-979610855
	.long	-1186340012
	.long	-1337562626
	.long	-1313428598
	.long	-955033379
	.long	1669711173
	.long	286233437
	.long	1465092821
	.long	1782121619
	.long	-432195616
	.long	710211251
	.long	980974943
	.long	1651941557
	.long	430374111
	.long	2051154026
	.long	704238805
	.long	-165996399
	.long	-1150146722
	.long	-1437564569
	.long	948965521
	.long	-961214997
	.long	-2067281012
	.long	718756367
	.long	-2025188313
	.long	-1563323541
	.long	718440111
	.long	-1437150575
	.long	-678870176
	.long	1113355533
	.long	-1816945114
	.long	410092745
	.long	1811985197
	.long	1944238868
	.long	-1598112708
	.long	1415722873
	.long	1682284203
	.long	1060277122
	.long	1998114690
	.long	1503841958
	.long	82706478
	.long	-1979811610
	.long	1068173648
	.long	845149890
	.long	-2127020283
	.long	1768146376
	.long	1993038550
	.long	-728140599
	.long	-904393265
	.long	940016341
	.long	-939893514
	.long	-1966926575
	.long	904371731
	.long	1205506512
	.long	-200306554
	.long	-1478344290
	.long	825647681
	.long	85914773
	.long	-1437123836
	.long	1249926541
	.long	1417871568
	.long	3287612
	.long	-1083912737
	.long	-1168660850
	.long	1975924523
	.long	1353700161
	.long	-1480510859
	.long	-1856369675
	.long	1800716203
	.long	722146342
	.long	-1421030953
	.long	1151126914
	.long	-134483355
	.long	-1417296397
	.long	458611604
	.long	-1428888796
	.long	-811287233
	.long	770352098
	.long	-1642050302
	.long	-927128148
	.long	-354462285
	.long	-708993384
	.long	-485346894
	.long	718646636
	.long	-1790760482
	.long	-1380039384
	.long	-663679127
	.long	-1437480689
	.long	-1434948618
	.long	575749918
	.long	-1437489253
	.long	718488780
	.long	2069512688
	.long	-746783827
	.long	453416197
	.long	1106044049
	.long	-1262275866
	.long	52586708
	.long	-916452660
	.long	-835158419
	.long	-1083461268
	.long	1785789304
	.long	218356169
	.long	-723568162
	.long	-535796774
	.long	1194783844
	.long	1523787992
	.long	-1287140202
	.long	1975193539
	.long	-1739514885
	.long	1341901877
	.long	-1249128598
	.long	-518059332
	.long	-1077543350
	.long	-1492456432
	.long	-1405528310
	.long	1057244207
	.long	1636348243
	.long	-533104082
	.long	1462225785
	.long	-1662303857
	.long	481089165
	.long	718503062
	.long	24497053
	.long	-962724087
	.long	-950311440
	.long	-639942440
	.long	-334596231
	.long	1195698900
	.long	-1323552140
	.long	-584791138
	.long	2115785917
	.long	-267303687
	.long	-769388879
	.long	-1770671107
	.long	-1548994731
	.long	-730060881
	.long	1372086093
	.long	1452307862
	.long	-1514465818
	.long	1476592880
	.long	-905696015
	.long	18495466
	.long	-1916818725
	.long	901398090
	.long	891748256
	.long	-1015329527
	.long	-1137676583
	.long	-1734007194
	.long	1447622437
	.long	-10594659
	.long	216884176
	.long	2086908623
	.long	1879786977
	.long	-706064143
	.long	-2052511630
	.long	-1356874329
	.long	-735885200
	.long	-1484321805
	.long	758861177
	.long	1121993112
	.long	215018983
	.long	642190776
	.long	-125730484
	.long	1196255959
	.long	2081185372
	.long	-786228903
	.long	941322904
	.long	-170724133
	.long	-1417443757
	.long	1848581667
	.long	-2089706338
	.long	-1114513338
	.long	-1705622162
	.long	-600236020
	.long	550028657
	.long	-1775511012
	.long	-504981761
	.long	-1321096440
	.long	2093648313
	.long	443148163
	.long	46942275
	.long	-1560820359
	.long	1117713533
	.long	1115362972
	.long	1523183689
	.long	-577827072
	.long	1551984063
	.align 64
	.type	s2, @object
	.size	s2, 1024
s2:
	.long	522195092
	.long	-284448933
	.long	1776537470
	.long	960447360
	.long	-27144326
	.long	-289070982
	.long	1435016340
	.long	1929119313
	.long	-1381503111
	.long	1310552629
	.long	-715496498
	.long	-570149190
	.long	-1715195665
	.long	1594623892
	.long	417127293
	.long	-1579749389
	.long	-1598738565
	.long	1508390405
	.long	-300568428
	.long	-369108727
	.long	-599523194
	.long	-275495847
	.long	-1165767501
	.long	-524038661
	.long	-774225535
	.long	990456497
	.long	-107482687
	.long	-1511600261
	.long	21106139
	.long	-454561957
	.long	631373633
	.long	-511641594
	.long	532942976
	.long	396095098
	.long	-746928471
	.long	-27774812
	.long	-1730245761
	.long	2011709262
	.long	2039648873
	.long	620404603
	.long	-518797221
	.long	-1396440957
	.long	-682609371
	.long	-135634593
	.long	1645490516
	.long	223693667
	.long	1567101217
	.long	-932789415
	.long	1029951347
	.long	-824036160
	.long	-724009337
	.long	1550265121
	.long	119497089
	.long	972513919
	.long	907948164
	.long	-454338757
	.long	1613718692
	.long	-700789348
	.long	465323573
	.long	-1635712211
	.long	654439692
	.long	-1719371084
	.long	-1595678855
	.long	-1167264884
	.long	277098644
	.long	624404830
	.long	-194023426
	.long	-1577108705
	.long	546110314
	.long	-1891267468
	.long	-639589849
	.long	1321679412
	.long	-58175639
	.long	1045293279
	.long	-284295032
	.long	895050893
	.long	-1975175028
	.long	494945126
	.long	1914543101
	.long	-1517910853
	.long	-400202957
	.long	-2075229678
	.long	311263384
	.long	-19710028
	.long	-836236575
	.long	669096869
	.long	-710491566
	.long	-459844419
	.long	-975809059
	.long	-345608092
	.long	2005142349
	.long	-1581864959
	.long	-2066012503
	.long	-524982508
	.long	569394103
	.long	-439330720
	.long	1425027204
	.long	108000370
	.long	-1558535853
	.long	-623098027
	.long	-1251844673
	.long	1750473702
	.long	-2083886188
	.long	762237499
	.long	-321977893
	.long	-1496067910
	.long	-1233109668
	.long	-1351112951
	.long	867476300
	.long	964413654
	.long	1591880597
	.long	1594774276
	.long	-2115145887
	.long	552026980
	.long	-1268903048
	.long	-568826981
	.long	-2011389662
	.long	-1184422191
	.long	-2142656536
	.long	582474363
	.long	1582640421
	.long	1383256631
	.long	2043843868
	.long	-972191412
	.long	1217180674
	.long	463797851
	.long	-1531928725
	.long	480777679
	.long	-1576259579
	.long	-2005803165
	.long	-1176621109
	.long	214354409
	.long	200212307
	.long	-484358889
	.long	-1269553099
	.long	-1620891332
	.long	-297670871
	.long	1847405948
	.long	1342460550
	.long	510035443
	.long	-214695482
	.long	815934613
	.long	833030224
	.long	1620250387
	.long	1945732119
	.long	-1591306151
	.long	-328967100
	.long	1388869545
	.long	-838913114
	.long	-1607788735
	.long	2092620194
	.long	562037615
	.long	1356438536
	.long	-885045151
	.long	-1033119899
	.long	1688467115
	.long	-2144065930
	.long	631725691
	.long	-454635012
	.long	549916902
	.long	-839862656
	.long	394546491
	.long	837744717
	.long	2114462948
	.long	751520235
	.long	-2073412690
	.long	-1879607160
	.long	-295870218
	.long	2063029875
	.long	803036379
	.long	-1592380991
	.long	821456707
	.long	-1275401132
	.long	360699898
	.long	-276465204
	.long	-783098280
	.long	-617611938
	.long	-1892495847
	.long	812317050
	.long	49299192
	.long	-1724802347
	.long	-1035798001
	.long	-1478235216
	.long	-963753722
	.long	-1193663732
	.long	-2138951640
	.long	-589368376
	.long	-748703375
	.long	143268808
	.long	-1094662816
	.long	1638124008
	.long	-1129777843
	.long	-953159686
	.long	578956953
	.long	-2100989772
	.long	-656847223
	.long	-1961085764
	.long	807278310
	.long	658237817
	.long	-1325405530
	.long	1641658566
	.long	11683945
	.long	-1207972289
	.long	148645947
	.long	1138423386
	.long	-136210536
	.long	1981396783
	.long	-1893950556
	.long	-595183712
	.long	380097457
	.long	-1614572617
	.long	-1491898645
	.long	-960707010
	.long	441530178
	.long	-278386500
	.long	1375954390
	.long	761952171
	.long	891809099
	.long	-2111843818
	.long	157052462
	.long	-611126533
	.long	1592404427
	.long	341349109
	.long	-1856483457
	.long	1417898363
	.long	644327628
	.long	-2061934520
	.long	-1941197590
	.long	-2093457196
	.long	220455161
	.long	1815641738
	.long	182899273
	.long	-1299947508
	.long	-667585763
	.long	-592329145
	.long	-1404283158
	.long	1052606899
	.long	588164016
	.long	1681439879
	.long	-256527878
	.long	-1889623373
	.long	-65518014
	.long	167996282
	.long	1336969661
	.long	1688053129
	.long	-1555742370
	.long	1543734051
	.long	1046297529
	.long	1138201970
	.long	2121126012
	.long	115334942
	.long	1819067631
	.long	1902159161
	.long	1941945968
	.long	-2088274427
	.long	1159982321
	.align 64
	.type	s3, @object
	.size	s3, 1024
s3:
	.long	-1913667008
	.long	637164959
	.long	-342868545
	.long	-401553145
	.long	1197506559
	.long	916448331
	.long	-1944074684
	.long	-1362179440
	.long	-1095632449
	.long	-285488406
	.long	-389080752
	.long	1373570990
	.long	-1844541434
	.long	-257096376
	.long	-516125309
	.long	-1838149419
	.long	286293407
	.long	124026297
	.long	-1293687596
	.long	1028597854
	.long	-1179670496
	.long	-86080800
	.long	-1603852661
	.long	-2106427090
	.long	1430237888
	.long	1218109995
	.long	-722495596
	.long	308166588
	.long	570424558
	.long	-2107958275
	.long	-1839872531
	.long	307733056
	.long	1310360322
	.long	-1159692289
	.long	1384269543
	.long	-1906895858
	.long	863238079
	.long	-1935703672
	.long	-1493414168
	.long	-914180699
	.long	-1463804489
	.long	1470087780
	.long	1728663345
	.long	-222478497
	.long	1090516929
	.long	532123132
	.long	-1905536319
	.long	1132193179
	.long	-1716503105
	.long	-1243888053
	.long	1670234342
	.long	1434557849
	.long	-1583888356
	.long	1241591150
	.long	-980923864
	.long	-859607183
	.long	-1203518957
	.long	1812415473
	.long	-2096527044
	.long	267246943
	.long	796911696
	.long	-675250306
	.long	38830015
	.long	1526438404
	.long	-1488465200
	.long	374413614
	.long	-1351565506
	.long	1489179520
	.long	1603809326
	.long	1920779204
	.long	168801282
	.long	260042626
	.long	-1936261715
	.long	1563175598
	.long	-1897293239
	.long	1356499128
	.long	-2077756256
	.long	514611088
	.long	2037363785
	.long	-2108498923
	.long	-272794213
	.long	-1502455427
	.long	-1381482280
	.long	1173701892
	.long	-94538749
	.long	-398540027
	.long	1334932762
	.long	-1839830590
	.long	602925377
	.long	-1459359442
	.long	1613172210
	.long	41346230
	.long	-1795332748
	.long	-1837529678
	.long	-2106139701
	.long	41386358
	.long	-122711667
	.long	1313404830
	.long	-1889440289
	.long	-492993522
	.long	-2077262461
	.long	873260488
	.long	-1766082942
	.long	-1816874680
	.long	-282051413
	.long	-1739608280
	.long	2006953883
	.long	-1831053811
	.long	575479328
	.long	-2076726648
	.long	2099895446
	.long	660001756
	.long	-1953465106
	.long	-1256205760
	.long	-406815517
	.long	-446253919
	.long	-1008115362
	.long	1022894237
	.long	1620365795
	.long	-845372607
	.long	1551255054
	.long	15374395
	.long	-724141951
	.long	-45656276
	.long	-143856167
	.long	-1113054564
	.long	310226346
	.long	1133119310
	.long	530038928
	.long	136043402
	.long	-1818198338
	.long	-1187460587
	.long	-1750057729
	.long	1036173560
	.long	-1927630100
	.long	1681395281
	.long	1758231547
	.long	-653318264
	.long	306774401
	.long	1575354324
	.long	-578881430
	.long	1990386196
	.long	-1180433560
	.long	-1839360625
	.long	1262092282
	.long	-1170624791
	.long	-1526738165
	.long	-84438213
	.long	1833535011
	.long	423410938
	.long	660763973
	.long	-2107837318
	.long	1639812000
	.long	-786545967
	.long	-827521804
	.long	310289298
	.long	272797111
	.long	-2106414734
	.long	-1838103384
	.long	310240523
	.long	677093832
	.long	1013118031
	.long	901835429
	.long	-402271695
	.long	1116285435
	.long	-1258496126
	.long	1337354835
	.long	243122523
	.long	520626091
	.long	277223598
	.long	-50526099
	.long	-100718455
	.long	1766575121
	.long	594173102
	.long	316590669
	.long	742362309
	.long	-758108674
	.long	-118531946
	.long	-456174886
	.long	-1793762457
	.long	1229605004
	.long	-1179211764
	.long	1552908988
	.long	-1982633147
	.long	979407927
	.long	-335492695
	.long	1148277331
	.long	176638793
	.long	-680281024
	.long	2083809052
	.long	40992502
	.long	1340822838
	.long	-1563414529
	.long	-759209788
	.long	-734067776
	.long	1354035053
	.long	122129617
	.long	7215240
	.long	-1562034347
	.long	-1176054596
	.long	-1576763370
	.long	-1755891661
	.long	-685736601
	.long	-569405635
	.long	1928887091
	.long	-1412673741
	.long	1988674909
	.long	2063640240
	.long	-1803878399
	.long	1459647954
	.long	-105150216
	.long	-1992162914
	.long	1113892351
	.long	-2057108768
	.long	1927010603
	.long	-292086935
	.long	1856122846
	.long	1594404395
	.long	-1350934163
	.long	-439777433
	.long	-819991598
	.long	1643104450
	.long	-240376463
	.long	-863880766
	.long	1730235576
	.long	-1310358575
	.long	-1210302878
	.long	2131803598
	.long	-116761544
	.long	267404349
	.long	1617849798
	.long	1616132681
	.long	1462223176
	.long	736725533
	.long	-1967909064
	.long	551665188
	.long	-1349068273
	.long	1749386277
	.long	-1719452699
	.long	1611482493
	.long	674206544
	.long	-2093698206
	.long	-652406496
	.long	728599968
	.long	1680547377
	.long	-1674552832
	.long	1388111496
	.long	453204106
	.long	-138743851
	.long	1094905244
	.long	-1540269039
	.long	-2093859131
	.long	-537967050
	.long	-1590442751
	.long	-372026596
	.long	-298502269
	.align 64
	.type	s4, @object
	.size	s4, 1024
s4:
	.long	-1649212384
	.long	532081118
	.long	-1480688657
	.long	-764173672
	.long	1246723035
	.long	1689095255
	.long	-2058288061
	.long	-100528431
	.long	2116582143
	.long	-435177885
	.long	157234593
	.long	2045505824
	.long	-49963709
	.long	1687664561
	.long	-211542173
	.long	605965023
	.long	672431967
	.long	1336064205
	.long	-918355904
	.long	214114848
	.long	-36500688
	.long	-1062914225
	.long	489488601
	.long	605322005
	.long	-296939238
	.long	264917351
	.long	1912574028
	.long	756637694
	.long	436560991
	.long	202637054
	.long	135989450
	.long	85393697
	.long	-2142043904
	.long	-398565634
	.long	-1399130888
	.long	2145855233
	.long	-759632289
	.long	115294817
	.long	-1147233398
	.long	1922296357
	.long	-830144545
	.long	-177108991
	.long	1037454084
	.long	-1569774021
	.long	2127856640
	.long	1417604070
	.long	1148013728
	.long	1827919605
	.long	642362335
	.long	-1365194763
	.long	909348033
	.long	1346338451
	.long	-747167647
	.long	297154785
	.long	1917849091
	.long	-133254469
	.long	-1411362770
	.long	-326273058
	.long	1469521537
	.long	-514889914
	.long	-919383040
	.long	1763717519
	.long	136166297
	.long	-3996507
	.long	1295325189
	.long	2134727907
	.long	-1496815930
	.long	1566297257
	.long	-622039062
	.long	-1617793135
	.long	-1622793681
	.long	965822077
	.long	-1514181234
	.long	289653839
	.long	1133871874
	.long	-803123477
	.long	35685304
	.long	1068898316
	.long	418943774
	.long	672553190
	.long	642281022
	.long	-1948808592
	.long	1954014401
	.long	-1257840516
	.long	-215152091
	.long	2030668546
	.long	-454378623
	.long	672283427
	.long	1776201016
	.long	359975446
	.long	-544793758
	.long	555499703
	.long	-1524982023
	.long	1324923
	.long	69110472
	.long	152125443
	.long	-1118182190
	.long	-472820011
	.long	1340634837
	.long	798073664
	.long	1434183902
	.long	15393959
	.long	216384236
	.long	1303690150
	.long	-413745665
	.long	-583833172
	.long	-333991883
	.long	106373927
	.long	-1716533072
	.long	1455997841
	.long	1801814300
	.long	1578393881
	.long	1854262133
	.long	-1106788350
	.long	-1036888713
	.long	-1992297236
	.long	1539295533
	.long	-789824731
	.long	-1216341321
	.long	-1922221276
	.long	549938159
	.long	-1016683012
	.long	-1674041216
	.long	181285381
	.long	-1429646198
	.long	-324937785
	.long	68876850
	.long	488006234
	.long	1728155692
	.long	-1686799788
	.long	836007927
	.long	-1859735503
	.long	919367643
	.long	-955544762
	.long	-639210936
	.long	1457871481
	.long	40520939
	.long	1380155135
	.long	797931188
	.long	234455205
	.long	-2039165469
	.long	-304478997
	.long	397000196
	.long	739833055
	.long	-1217101923
	.long	-1423247436
	.long	-272413408
	.long	772369276
	.long	390177364
	.long	-441016267
	.long	557662966
	.long	740064294
	.long	1640166671
	.long	1699928825
	.long	-759025160
	.long	622006121
	.long	-669614174
	.long	68743880
	.long	1742502
	.long	219489963
	.long	1664179233
	.long	1577743084
	.long	1236991741
	.long	410585305
	.long	-1928479354
	.long	823226535
	.long	1050371084
	.long	-868347689
	.long	-708127818
	.long	212779912
	.long	-147848735
	.long	1819446015
	.long	1911218849
	.long	530248558
	.long	-808726225
	.long	-1042381801
	.long	-1408778645
	.long	-884694568
	.long	-1952772266
	.long	20547779
	.long	-1312477238
	.long	-1262603827
	.long	-663214074
	.long	312714466
	.long	1870521650
	.long	1493008054
	.long	-803280640
	.long	615382978
	.long	-191295547
	.long	-1760449851
	.long	1932181
	.long	-2098862126
	.long	278426614
	.long	6369430
	.long	-1020422879
	.long	-1381948929
	.long	697336853
	.long	2143000447
	.long	-1348553765
	.long	701099306
	.long	1558357093
	.long	-1489964244
	.long	-794148888
	.long	-1973632879
	.long	-727831321
	.long	216290473
	.long	-703935098
	.long	23009561
	.long	1996984579
	.long	-559924490
	.long	2024298078
	.long	-555526433
	.long	569400510
	.long	-1955208313
	.long	-1278933423
	.long	-1197095953
	.long	-655444270
	.long	-450642313
	.long	-1038793431
	.long	795471839
	.long	-1343849733
	.long	-193936206
	.long	-203363493
	.long	-691234698
	.long	971261452
	.long	534414648
	.long	428311343
	.long	-905940121
	.long	-1450097416
	.long	694888862
	.long	1227866773
	.long	-1838760277
	.long	-1251512727
	.long	-1680613926
	.long	-545389265
	.long	-618303460
	.long	459166190
	.long	-162323226
	.long	1794958188
	.long	51825668
	.long	-2042355394
	.long	-1210295856
	.long	2036672799
	.long	-858325693
	.long	1099053433
	.long	-1825845770
	.long	-1235762355
	.long	1323291266
	.long	2061838604
	.long	1018778475
	.long	-2061623042
	.long	-1741466242
	.long	334295216
	.long	-738217102
	.long	1065731521
	.long	183467730
	.align 64
	.type	Tm, @object
	.size	Tm, 768
Tm:
	.long	1518500249
	.long	-916691654
	.long	943083739
	.long	-1492108164
	.long	367667229
	.long	-2067524674
	.long	-207749281
	.long	1652026112
	.long	-783165791
	.long	1076609602
	.long	-1358582301
	.long	501193092
	.long	-1933998811
	.long	-74223418
	.long	1785551975
	.long	-649639928
	.long	1210135465
	.long	-1225056438
	.long	634718955
	.long	-1800472948
	.long	59302445
	.long	1919077838
	.long	-516114065
	.long	1343661328
	.long	-1091530575
	.long	768244818
	.long	-1666947085
	.long	192828308
	.long	2052603701
	.long	-382588202
	.long	1477187191
	.long	-958004712
	.long	901770681
	.long	-1533421222
	.long	326354171
	.long	-2108837732
	.long	-249062339
	.long	1610713054
	.long	-824478849
	.long	1035296544
	.long	-1399895359
	.long	459880034
	.long	-1975311869
	.long	-115536476
	.long	1744238917
	.long	-690952986
	.long	1168822407
	.long	-1266369496
	.long	593405897
	.long	-1841786006
	.long	17989387
	.long	1877764780
	.long	-557427123
	.long	1302348270
	.long	-1132843633
	.long	726931760
	.long	-1708260143
	.long	151515250
	.long	2011290643
	.long	-423901260
	.long	1435874133
	.long	-999317770
	.long	860457623
	.long	-1574734280
	.long	285041113
	.long	2144816506
	.long	-290375397
	.long	1569399996
	.long	-865791907
	.long	993983486
	.long	-1441208417
	.long	418566976
	.long	-2016624927
	.long	-156849534
	.long	1702925859
	.long	-732266044
	.long	1127509349
	.long	-1307682554
	.long	552092839
	.long	-1883099064
	.long	-23323671
	.long	1836451722
	.long	-598740181
	.long	1261035212
	.long	-1174156691
	.long	685618702
	.long	-1749573201
	.long	110202192
	.long	1969977585
	.long	-465214318
	.long	1394561075
	.long	-1040630828
	.long	819144565
	.long	-1616047338
	.long	243728055
	.long	2103503448
	.long	-331688455
	.long	1528086938
	.long	-907104965
	.long	952670428
	.long	-1482521475
	.long	377253918
	.long	-2057937985
	.long	-198162592
	.long	1661612801
	.long	-773579102
	.long	1086196291
	.long	-1348995612
	.long	510779781
	.long	-1924412122
	.long	-64636729
	.long	1795138664
	.long	-640053239
	.long	1219722154
	.long	-1215469749
	.long	644305644
	.long	-1790886259
	.long	68889134
	.long	1928664527
	.long	-506527376
	.long	1353248017
	.long	-1081943886
	.long	777831507
	.long	-1657360396
	.long	202414997
	.long	2062190390
	.long	-373001513
	.long	1486773880
	.long	-948418023
	.long	911357370
	.long	-1523834533
	.long	335940860
	.long	-2099251043
	.long	-239475650
	.long	1620299743
	.long	-814892160
	.long	1044883233
	.long	-1390308670
	.long	469466723
	.long	-1965725180
	.long	-105949787
	.long	1753825606
	.long	-681366297
	.long	1178409096
	.long	-1256782807
	.long	602992586
	.long	-1832199317
	.long	27576076
	.long	1887351469
	.long	-547840434
	.long	1311934959
	.long	-1123256944
	.long	736518449
	.long	-1698673454
	.long	161101939
	.long	2020877332
	.long	-414314571
	.long	1445460822
	.long	-989731081
	.long	870044312
	.long	-1565147591
	.long	294627802
	.long	-2140564101
	.long	-280788708
	.long	1578986685
	.long	-856205218
	.long	1003570175
	.long	-1431621728
	.long	428153665
	.long	-2007038238
	.long	-147262845
	.long	1712512548
	.long	-722679355
	.long	1137096038
	.long	-1298095865
	.long	561679528
	.long	-1873512375
	.long	-13736982
	.long	1846038411
	.long	-589153492
	.long	1270621901
	.long	-1164570002
	.long	695205391
	.long	-1739986512
	.long	119788881
	.long	1979564274
	.long	-455627629
	.long	1404147764
	.long	-1031044139
	.long	828731254
	.long	-1606460649
	.long	253314744
	.align 64
	.type	Tr, @object
	.size	Tr, 32
Tr:
	.ascii	"\023\004\025\006\027\b\031\n"
	.ascii	"\033\f\035\016\037\020\001\022"
	.ascii	"\003\024\005\026\007\030\t\032"
	.string	"\013\034\r\036\017"
	.ascii	"\021\002"
	.text
	.globl	cast6_setkey
	.type	cast6_setkey, @function
cast6_setkey:
.LFB1:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	add	rsp, -128
	mov	QWORD PTR -104[rbp], rdi
	mov	QWORD PTR -112[rbp], rsi
	mov	DWORD PTR -116[rbp], edx
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	QWORD PTR -48[rbp], 0
	mov	QWORD PTR -40[rbp], 0
	mov	QWORD PTR -32[rbp], 0
	mov	QWORD PTR -24[rbp], 0
	mov	rax, QWORD PTR -104[rbp]
	mov	QWORD PTR -72[rbp], rax
	mov	rax, QWORD PTR -72[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -48[rbp], eax
	mov	rax, QWORD PTR -72[rbp]
	mov	eax, DWORD PTR 4[rax]
	mov	DWORD PTR -44[rbp], eax
	mov	rax, QWORD PTR -72[rbp]
	mov	eax, DWORD PTR 8[rax]
	mov	DWORD PTR -40[rbp], eax
	mov	rax, QWORD PTR -72[rbp]
	mov	eax, DWORD PTR 12[rax]
	mov	DWORD PTR -36[rbp], eax
	mov	rax, QWORD PTR -72[rbp]
	mov	eax, DWORD PTR 16[rax]
	mov	DWORD PTR -32[rbp], eax
	mov	rax, QWORD PTR -72[rbp]
	mov	eax, DWORD PTR 20[rax]
	mov	DWORD PTR -28[rbp], eax
	mov	rax, QWORD PTR -72[rbp]
	mov	eax, DWORD PTR 24[rax]
	mov	DWORD PTR -24[rbp], eax
	mov	rax, QWORD PTR -72[rbp]
	mov	eax, DWORD PTR 28[rax]
	mov	DWORD PTR -20[rbp], eax
	mov	DWORD PTR -92[rbp], 0
	jmp	.L2
.L35:
	mov	eax, DWORD PTR -92[rbp]
	add	eax, eax
	mov	edx, eax
	lea	rax, -48[rbp]
	mov	QWORD PTR -56[rbp], rax
	mov	DWORD PTR -80[rbp], edx
	mov	DWORD PTR -76[rbp], 0
	mov	eax, DWORD PTR -80[rbp]
	sal	rax, 5
	mov	rdx, rax
	lea	rax, Tm[rip]
	mov	edx, DWORD PTR [rdx+rax]
	mov	rax, QWORD PTR -56[rbp]
	add	rax, 28
	mov	eax, DWORD PTR [rax]
	add	eax, edx
	mov	DWORD PTR -76[rbp], eax
	mov	eax, DWORD PTR -80[rbp]
	and	eax, 3
	mov	eax, eax
	lea	rdx, 0[0+rax*8]
	lea	rax, Tr[rip]
	movzx	eax, BYTE PTR [rdx+rax]
	test	al, al
	je	.L3
	mov	eax, DWORD PTR -80[rbp]
	and	eax, 3
	mov	eax, eax
	lea	rdx, 0[0+rax*8]
	lea	rax, Tr[rip]
	movzx	eax, BYTE PTR [rdx+rax]
	movzx	eax, al
	mov	edx, DWORD PTR -76[rbp]
	mov	ecx, eax
	rol	edx, cl
	mov	eax, edx
	jmp	.L4
.L3:
	mov	eax, DWORD PTR -76[rbp]
.L4:
	mov	DWORD PTR -76[rbp], eax
	mov	eax, DWORD PTR -76[rbp]
	shr	eax, 24
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s1[rip]
	mov	ecx, DWORD PTR [rdx+rax]
	mov	eax, DWORD PTR -76[rbp]
	shr	eax, 16
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s2[rip]
	mov	eax, DWORD PTR [rdx+rax]
	xor	ecx, eax
	mov	eax, DWORD PTR -76[rbp]
	shr	eax, 8
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s3[rip]
	mov	eax, DWORD PTR [rdx+rax]
	sub	ecx, eax
	mov	eax, DWORD PTR -76[rbp]
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s4[rip]
	mov	eax, DWORD PTR [rdx+rax]
	add	ecx, eax
	mov	rax, QWORD PTR -56[rbp]
	add	rax, 24
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -56[rbp]
	add	rax, 24
	xor	edx, ecx
	mov	DWORD PTR [rax], edx
	mov	eax, DWORD PTR -80[rbp]
	sal	rax, 5
	mov	rdx, rax
	lea	rax, Tm[rip+4]
	mov	edx, DWORD PTR [rdx+rax]
	mov	rax, QWORD PTR -56[rbp]
	add	rax, 24
	mov	eax, DWORD PTR [rax]
	xor	eax, edx
	mov	DWORD PTR -76[rbp], eax
	mov	eax, DWORD PTR -80[rbp]
	and	eax, 3
	mov	eax, eax
	lea	rdx, 0[0+rax*8]
	lea	rax, Tr[rip+1]
	movzx	eax, BYTE PTR [rdx+rax]
	test	al, al
	je	.L5
	mov	eax, DWORD PTR -80[rbp]
	and	eax, 3
	mov	eax, eax
	lea	rdx, 0[0+rax*8]
	lea	rax, Tr[rip+1]
	movzx	eax, BYTE PTR [rdx+rax]
	movzx	eax, al
	mov	edx, DWORD PTR -76[rbp]
	mov	ecx, eax
	rol	edx, cl
	mov	eax, edx
	jmp	.L6
.L5:
	mov	eax, DWORD PTR -76[rbp]
.L6:
	mov	DWORD PTR -76[rbp], eax
	mov	eax, DWORD PTR -76[rbp]
	shr	eax, 24
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s1[rip]
	mov	eax, DWORD PTR [rdx+rax]
	mov	edx, DWORD PTR -76[rbp]
	shr	edx, 16
	movzx	edx, dl
	mov	edx, edx
	lea	rcx, 0[0+rdx*4]
	lea	rdx, s2[rip]
	mov	edx, DWORD PTR [rcx+rdx]
	sub	eax, edx
	mov	ecx, eax
	mov	eax, DWORD PTR -76[rbp]
	shr	eax, 8
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s3[rip]
	mov	eax, DWORD PTR [rdx+rax]
	add	ecx, eax
	mov	eax, DWORD PTR -76[rbp]
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s4[rip]
	mov	eax, DWORD PTR [rdx+rax]
	xor	ecx, eax
	mov	rax, QWORD PTR -56[rbp]
	add	rax, 20
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -56[rbp]
	add	rax, 20
	xor	edx, ecx
	mov	DWORD PTR [rax], edx
	mov	eax, DWORD PTR -80[rbp]
	sal	rax, 5
	mov	rdx, rax
	lea	rax, Tm[rip+8]
	mov	eax, DWORD PTR [rdx+rax]
	mov	rdx, QWORD PTR -56[rbp]
	add	rdx, 20
	mov	edx, DWORD PTR [rdx]
	sub	eax, edx
	mov	DWORD PTR -76[rbp], eax
	mov	eax, DWORD PTR -80[rbp]
	and	eax, 3
	mov	eax, eax
	lea	rdx, 0[0+rax*8]
	lea	rax, Tr[rip+2]
	movzx	eax, BYTE PTR [rdx+rax]
	test	al, al
	je	.L7
	mov	eax, DWORD PTR -80[rbp]
	and	eax, 3
	mov	eax, eax
	lea	rdx, 0[0+rax*8]
	lea	rax, Tr[rip+2]
	movzx	eax, BYTE PTR [rdx+rax]
	movzx	eax, al
	mov	edx, DWORD PTR -76[rbp]
	mov	ecx, eax
	rol	edx, cl
	mov	eax, edx
	jmp	.L8
.L7:
	mov	eax, DWORD PTR -76[rbp]
.L8:
	mov	DWORD PTR -76[rbp], eax
	mov	eax, DWORD PTR -76[rbp]
	shr	eax, 24
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s1[rip]
	mov	ecx, DWORD PTR [rdx+rax]
	mov	eax, DWORD PTR -76[rbp]
	shr	eax, 16
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s2[rip]
	mov	eax, DWORD PTR [rdx+rax]
	add	ecx, eax
	mov	eax, DWORD PTR -76[rbp]
	shr	eax, 8
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s3[rip]
	mov	eax, DWORD PTR [rdx+rax]
	xor	ecx, eax
	mov	eax, DWORD PTR -76[rbp]
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s4[rip]
	mov	eax, DWORD PTR [rdx+rax]
	sub	ecx, eax
	mov	rax, QWORD PTR -56[rbp]
	add	rax, 16
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -56[rbp]
	add	rax, 16
	xor	edx, ecx
	mov	DWORD PTR [rax], edx
	mov	eax, DWORD PTR -80[rbp]
	sal	rax, 5
	mov	rdx, rax
	lea	rax, Tm[rip+12]
	mov	edx, DWORD PTR [rdx+rax]
	mov	rax, QWORD PTR -56[rbp]
	add	rax, 16
	mov	eax, DWORD PTR [rax]
	add	eax, edx
	mov	DWORD PTR -76[rbp], eax
	mov	eax, DWORD PTR -80[rbp]
	and	eax, 3
	mov	eax, eax
	lea	rdx, 0[0+rax*8]
	lea	rax, Tr[rip+3]
	movzx	eax, BYTE PTR [rdx+rax]
	test	al, al
	je	.L9
	mov	eax, DWORD PTR -80[rbp]
	and	eax, 3
	mov	eax, eax
	lea	rdx, 0[0+rax*8]
	lea	rax, Tr[rip+3]
	movzx	eax, BYTE PTR [rdx+rax]
	movzx	eax, al
	mov	edx, DWORD PTR -76[rbp]
	mov	ecx, eax
	rol	edx, cl
	mov	eax, edx
	jmp	.L10
.L9:
	mov	eax, DWORD PTR -76[rbp]
.L10:
	mov	DWORD PTR -76[rbp], eax
	mov	eax, DWORD PTR -76[rbp]
	shr	eax, 24
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s1[rip]
	mov	ecx, DWORD PTR [rdx+rax]
	mov	eax, DWORD PTR -76[rbp]
	shr	eax, 16
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s2[rip]
	mov	eax, DWORD PTR [rdx+rax]
	xor	ecx, eax
	mov	eax, DWORD PTR -76[rbp]
	shr	eax, 8
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s3[rip]
	mov	eax, DWORD PTR [rdx+rax]
	sub	ecx, eax
	mov	eax, DWORD PTR -76[rbp]
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s4[rip]
	mov	eax, DWORD PTR [rdx+rax]
	add	ecx, eax
	mov	rax, QWORD PTR -56[rbp]
	add	rax, 12
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -56[rbp]
	add	rax, 12
	xor	edx, ecx
	mov	DWORD PTR [rax], edx
	mov	eax, DWORD PTR -80[rbp]
	sal	rax, 5
	mov	rdx, rax
	lea	rax, Tm[rip+16]
	mov	edx, DWORD PTR [rdx+rax]
	mov	rax, QWORD PTR -56[rbp]
	add	rax, 12
	mov	eax, DWORD PTR [rax]
	xor	eax, edx
	mov	DWORD PTR -76[rbp], eax
	mov	eax, DWORD PTR -80[rbp]
	and	eax, 3
	mov	eax, eax
	lea	rdx, 0[0+rax*8]
	lea	rax, Tr[rip+4]
	movzx	eax, BYTE PTR [rdx+rax]
	test	al, al
	je	.L11
	mov	eax, DWORD PTR -80[rbp]
	and	eax, 3
	mov	eax, eax
	lea	rdx, 0[0+rax*8]
	lea	rax, Tr[rip+4]
	movzx	eax, BYTE PTR [rdx+rax]
	movzx	eax, al
	mov	edx, DWORD PTR -76[rbp]
	mov	ecx, eax
	rol	edx, cl
	mov	eax, edx
	jmp	.L12
.L11:
	mov	eax, DWORD PTR -76[rbp]
.L12:
	mov	DWORD PTR -76[rbp], eax
	mov	eax, DWORD PTR -76[rbp]
	shr	eax, 24
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s1[rip]
	mov	eax, DWORD PTR [rdx+rax]
	mov	edx, DWORD PTR -76[rbp]
	shr	edx, 16
	movzx	edx, dl
	mov	edx, edx
	lea	rcx, 0[0+rdx*4]
	lea	rdx, s2[rip]
	mov	edx, DWORD PTR [rcx+rdx]
	sub	eax, edx
	mov	ecx, eax
	mov	eax, DWORD PTR -76[rbp]
	shr	eax, 8
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s3[rip]
	mov	eax, DWORD PTR [rdx+rax]
	add	ecx, eax
	mov	eax, DWORD PTR -76[rbp]
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s4[rip]
	mov	eax, DWORD PTR [rdx+rax]
	xor	ecx, eax
	mov	rax, QWORD PTR -56[rbp]
	add	rax, 8
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -56[rbp]
	add	rax, 8
	xor	edx, ecx
	mov	DWORD PTR [rax], edx
	mov	eax, DWORD PTR -80[rbp]
	sal	rax, 5
	mov	rdx, rax
	lea	rax, Tm[rip+20]
	mov	eax, DWORD PTR [rdx+rax]
	mov	rdx, QWORD PTR -56[rbp]
	add	rdx, 8
	mov	edx, DWORD PTR [rdx]
	sub	eax, edx
	mov	DWORD PTR -76[rbp], eax
	mov	eax, DWORD PTR -80[rbp]
	and	eax, 3
	mov	eax, eax
	lea	rdx, 0[0+rax*8]
	lea	rax, Tr[rip+5]
	movzx	eax, BYTE PTR [rdx+rax]
	test	al, al
	je	.L13
	mov	eax, DWORD PTR -80[rbp]
	and	eax, 3
	mov	eax, eax
	lea	rdx, 0[0+rax*8]
	lea	rax, Tr[rip+5]
	movzx	eax, BYTE PTR [rdx+rax]
	movzx	eax, al
	mov	edx, DWORD PTR -76[rbp]
	mov	ecx, eax
	rol	edx, cl
	mov	eax, edx
	jmp	.L14
.L13:
	mov	eax, DWORD PTR -76[rbp]
.L14:
	mov	DWORD PTR -76[rbp], eax
	mov	eax, DWORD PTR -76[rbp]
	shr	eax, 24
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s1[rip]
	mov	ecx, DWORD PTR [rdx+rax]
	mov	eax, DWORD PTR -76[rbp]
	shr	eax, 16
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s2[rip]
	mov	eax, DWORD PTR [rdx+rax]
	add	ecx, eax
	mov	eax, DWORD PTR -76[rbp]
	shr	eax, 8
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s3[rip]
	mov	eax, DWORD PTR [rdx+rax]
	xor	ecx, eax
	mov	eax, DWORD PTR -76[rbp]
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s4[rip]
	mov	eax, DWORD PTR [rdx+rax]
	sub	ecx, eax
	mov	rax, QWORD PTR -56[rbp]
	add	rax, 4
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -56[rbp]
	add	rax, 4
	xor	edx, ecx
	mov	DWORD PTR [rax], edx
	mov	eax, DWORD PTR -80[rbp]
	sal	rax, 5
	mov	rdx, rax
	lea	rax, Tm[rip+24]
	mov	edx, DWORD PTR [rdx+rax]
	mov	rax, QWORD PTR -56[rbp]
	add	rax, 4
	mov	eax, DWORD PTR [rax]
	add	eax, edx
	mov	DWORD PTR -76[rbp], eax
	mov	eax, DWORD PTR -80[rbp]
	and	eax, 3
	mov	eax, eax
	lea	rdx, 0[0+rax*8]
	lea	rax, Tr[rip+6]
	movzx	eax, BYTE PTR [rdx+rax]
	test	al, al
	je	.L15
	mov	eax, DWORD PTR -80[rbp]
	and	eax, 3
	mov	eax, eax
	lea	rdx, 0[0+rax*8]
	lea	rax, Tr[rip+6]
	movzx	eax, BYTE PTR [rdx+rax]
	movzx	eax, al
	mov	edx, DWORD PTR -76[rbp]
	mov	ecx, eax
	rol	edx, cl
	mov	eax, edx
	jmp	.L16
.L15:
	mov	eax, DWORD PTR -76[rbp]
.L16:
	mov	DWORD PTR -76[rbp], eax
	mov	eax, DWORD PTR -76[rbp]
	shr	eax, 24
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s1[rip]
	mov	ecx, DWORD PTR [rdx+rax]
	mov	eax, DWORD PTR -76[rbp]
	shr	eax, 16
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s2[rip]
	mov	eax, DWORD PTR [rdx+rax]
	xor	ecx, eax
	mov	eax, DWORD PTR -76[rbp]
	shr	eax, 8
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s3[rip]
	mov	eax, DWORD PTR [rdx+rax]
	sub	ecx, eax
	mov	eax, DWORD PTR -76[rbp]
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s4[rip]
	mov	eax, DWORD PTR [rdx+rax]
	lea	edx, [rcx+rax]
	mov	rax, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR [rax]
	xor	edx, eax
	mov	rax, QWORD PTR -56[rbp]
	mov	DWORD PTR [rax], edx
	mov	eax, DWORD PTR -80[rbp]
	sal	rax, 5
	mov	rdx, rax
	lea	rax, Tm[rip+28]
	mov	edx, DWORD PTR [rdx+rax]
	mov	rax, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR [rax]
	xor	eax, edx
	mov	DWORD PTR -76[rbp], eax
	mov	eax, DWORD PTR -80[rbp]
	and	eax, 3
	mov	eax, eax
	lea	rdx, 0[0+rax*8]
	lea	rax, Tr[rip+7]
	movzx	eax, BYTE PTR [rdx+rax]
	test	al, al
	je	.L17
	mov	eax, DWORD PTR -80[rbp]
	and	eax, 3
	mov	eax, eax
	lea	rdx, 0[0+rax*8]
	lea	rax, Tr[rip+7]
	movzx	eax, BYTE PTR [rdx+rax]
	movzx	eax, al
	mov	edx, DWORD PTR -76[rbp]
	mov	ecx, eax
	rol	edx, cl
	mov	eax, edx
	jmp	.L18
.L17:
	mov	eax, DWORD PTR -76[rbp]
.L18:
	mov	DWORD PTR -76[rbp], eax
	mov	eax, DWORD PTR -76[rbp]
	shr	eax, 24
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s1[rip]
	mov	eax, DWORD PTR [rdx+rax]
	mov	edx, DWORD PTR -76[rbp]
	shr	edx, 16
	movzx	edx, dl
	mov	edx, edx
	lea	rcx, 0[0+rdx*4]
	lea	rdx, s2[rip]
	mov	edx, DWORD PTR [rcx+rdx]
	sub	eax, edx
	mov	ecx, eax
	mov	eax, DWORD PTR -76[rbp]
	shr	eax, 8
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s3[rip]
	mov	eax, DWORD PTR [rdx+rax]
	add	ecx, eax
	mov	eax, DWORD PTR -76[rbp]
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s4[rip]
	mov	eax, DWORD PTR [rdx+rax]
	xor	ecx, eax
	mov	rax, QWORD PTR -56[rbp]
	add	rax, 28
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -56[rbp]
	add	rax, 28
	xor	edx, ecx
	mov	DWORD PTR [rax], edx
	nop
	mov	eax, DWORD PTR -92[rbp]
	add	eax, eax
	add	eax, 1
	mov	edx, eax
	lea	rax, -48[rbp]
	mov	QWORD PTR -64[rbp], rax
	mov	DWORD PTR -88[rbp], edx
	mov	DWORD PTR -84[rbp], 0
	mov	eax, DWORD PTR -88[rbp]
	sal	rax, 5
	mov	rdx, rax
	lea	rax, Tm[rip]
	mov	edx, DWORD PTR [rdx+rax]
	mov	rax, QWORD PTR -64[rbp]
	add	rax, 28
	mov	eax, DWORD PTR [rax]
	add	eax, edx
	mov	DWORD PTR -84[rbp], eax
	mov	eax, DWORD PTR -88[rbp]
	and	eax, 3
	mov	eax, eax
	lea	rdx, 0[0+rax*8]
	lea	rax, Tr[rip]
	movzx	eax, BYTE PTR [rdx+rax]
	test	al, al
	je	.L19
	mov	eax, DWORD PTR -88[rbp]
	and	eax, 3
	mov	eax, eax
	lea	rdx, 0[0+rax*8]
	lea	rax, Tr[rip]
	movzx	eax, BYTE PTR [rdx+rax]
	movzx	eax, al
	mov	edx, DWORD PTR -84[rbp]
	mov	ecx, eax
	rol	edx, cl
	mov	eax, edx
	jmp	.L20
.L19:
	mov	eax, DWORD PTR -84[rbp]
.L20:
	mov	DWORD PTR -84[rbp], eax
	mov	eax, DWORD PTR -84[rbp]
	shr	eax, 24
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s1[rip]
	mov	ecx, DWORD PTR [rdx+rax]
	mov	eax, DWORD PTR -84[rbp]
	shr	eax, 16
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s2[rip]
	mov	eax, DWORD PTR [rdx+rax]
	xor	ecx, eax
	mov	eax, DWORD PTR -84[rbp]
	shr	eax, 8
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s3[rip]
	mov	eax, DWORD PTR [rdx+rax]
	sub	ecx, eax
	mov	eax, DWORD PTR -84[rbp]
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s4[rip]
	mov	eax, DWORD PTR [rdx+rax]
	add	ecx, eax
	mov	rax, QWORD PTR -64[rbp]
	add	rax, 24
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -64[rbp]
	add	rax, 24
	xor	edx, ecx
	mov	DWORD PTR [rax], edx
	mov	eax, DWORD PTR -88[rbp]
	sal	rax, 5
	mov	rdx, rax
	lea	rax, Tm[rip+4]
	mov	edx, DWORD PTR [rdx+rax]
	mov	rax, QWORD PTR -64[rbp]
	add	rax, 24
	mov	eax, DWORD PTR [rax]
	xor	eax, edx
	mov	DWORD PTR -84[rbp], eax
	mov	eax, DWORD PTR -88[rbp]
	and	eax, 3
	mov	eax, eax
	lea	rdx, 0[0+rax*8]
	lea	rax, Tr[rip+1]
	movzx	eax, BYTE PTR [rdx+rax]
	test	al, al
	je	.L21
	mov	eax, DWORD PTR -88[rbp]
	and	eax, 3
	mov	eax, eax
	lea	rdx, 0[0+rax*8]
	lea	rax, Tr[rip+1]
	movzx	eax, BYTE PTR [rdx+rax]
	movzx	eax, al
	mov	edx, DWORD PTR -84[rbp]
	mov	ecx, eax
	rol	edx, cl
	mov	eax, edx
	jmp	.L22
.L21:
	mov	eax, DWORD PTR -84[rbp]
.L22:
	mov	DWORD PTR -84[rbp], eax
	mov	eax, DWORD PTR -84[rbp]
	shr	eax, 24
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s1[rip]
	mov	eax, DWORD PTR [rdx+rax]
	mov	edx, DWORD PTR -84[rbp]
	shr	edx, 16
	movzx	edx, dl
	mov	edx, edx
	lea	rcx, 0[0+rdx*4]
	lea	rdx, s2[rip]
	mov	edx, DWORD PTR [rcx+rdx]
	sub	eax, edx
	mov	ecx, eax
	mov	eax, DWORD PTR -84[rbp]
	shr	eax, 8
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s3[rip]
	mov	eax, DWORD PTR [rdx+rax]
	add	ecx, eax
	mov	eax, DWORD PTR -84[rbp]
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s4[rip]
	mov	eax, DWORD PTR [rdx+rax]
	xor	ecx, eax
	mov	rax, QWORD PTR -64[rbp]
	add	rax, 20
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -64[rbp]
	add	rax, 20
	xor	edx, ecx
	mov	DWORD PTR [rax], edx
	mov	eax, DWORD PTR -88[rbp]
	sal	rax, 5
	mov	rdx, rax
	lea	rax, Tm[rip+8]
	mov	eax, DWORD PTR [rdx+rax]
	mov	rdx, QWORD PTR -64[rbp]
	add	rdx, 20
	mov	edx, DWORD PTR [rdx]
	sub	eax, edx
	mov	DWORD PTR -84[rbp], eax
	mov	eax, DWORD PTR -88[rbp]
	and	eax, 3
	mov	eax, eax
	lea	rdx, 0[0+rax*8]
	lea	rax, Tr[rip+2]
	movzx	eax, BYTE PTR [rdx+rax]
	test	al, al
	je	.L23
	mov	eax, DWORD PTR -88[rbp]
	and	eax, 3
	mov	eax, eax
	lea	rdx, 0[0+rax*8]
	lea	rax, Tr[rip+2]
	movzx	eax, BYTE PTR [rdx+rax]
	movzx	eax, al
	mov	edx, DWORD PTR -84[rbp]
	mov	ecx, eax
	rol	edx, cl
	mov	eax, edx
	jmp	.L24
.L23:
	mov	eax, DWORD PTR -84[rbp]
.L24:
	mov	DWORD PTR -84[rbp], eax
	mov	eax, DWORD PTR -84[rbp]
	shr	eax, 24
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s1[rip]
	mov	ecx, DWORD PTR [rdx+rax]
	mov	eax, DWORD PTR -84[rbp]
	shr	eax, 16
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s2[rip]
	mov	eax, DWORD PTR [rdx+rax]
	add	ecx, eax
	mov	eax, DWORD PTR -84[rbp]
	shr	eax, 8
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s3[rip]
	mov	eax, DWORD PTR [rdx+rax]
	xor	ecx, eax
	mov	eax, DWORD PTR -84[rbp]
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s4[rip]
	mov	eax, DWORD PTR [rdx+rax]
	sub	ecx, eax
	mov	rax, QWORD PTR -64[rbp]
	add	rax, 16
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -64[rbp]
	add	rax, 16
	xor	edx, ecx
	mov	DWORD PTR [rax], edx
	mov	eax, DWORD PTR -88[rbp]
	sal	rax, 5
	mov	rdx, rax
	lea	rax, Tm[rip+12]
	mov	edx, DWORD PTR [rdx+rax]
	mov	rax, QWORD PTR -64[rbp]
	add	rax, 16
	mov	eax, DWORD PTR [rax]
	add	eax, edx
	mov	DWORD PTR -84[rbp], eax
	mov	eax, DWORD PTR -88[rbp]
	and	eax, 3
	mov	eax, eax
	lea	rdx, 0[0+rax*8]
	lea	rax, Tr[rip+3]
	movzx	eax, BYTE PTR [rdx+rax]
	test	al, al
	je	.L25
	mov	eax, DWORD PTR -88[rbp]
	and	eax, 3
	mov	eax, eax
	lea	rdx, 0[0+rax*8]
	lea	rax, Tr[rip+3]
	movzx	eax, BYTE PTR [rdx+rax]
	movzx	eax, al
	mov	edx, DWORD PTR -84[rbp]
	mov	ecx, eax
	rol	edx, cl
	mov	eax, edx
	jmp	.L26
.L25:
	mov	eax, DWORD PTR -84[rbp]
.L26:
	mov	DWORD PTR -84[rbp], eax
	mov	eax, DWORD PTR -84[rbp]
	shr	eax, 24
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s1[rip]
	mov	ecx, DWORD PTR [rdx+rax]
	mov	eax, DWORD PTR -84[rbp]
	shr	eax, 16
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s2[rip]
	mov	eax, DWORD PTR [rdx+rax]
	xor	ecx, eax
	mov	eax, DWORD PTR -84[rbp]
	shr	eax, 8
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s3[rip]
	mov	eax, DWORD PTR [rdx+rax]
	sub	ecx, eax
	mov	eax, DWORD PTR -84[rbp]
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s4[rip]
	mov	eax, DWORD PTR [rdx+rax]
	add	ecx, eax
	mov	rax, QWORD PTR -64[rbp]
	add	rax, 12
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -64[rbp]
	add	rax, 12
	xor	edx, ecx
	mov	DWORD PTR [rax], edx
	mov	eax, DWORD PTR -88[rbp]
	sal	rax, 5
	mov	rdx, rax
	lea	rax, Tm[rip+16]
	mov	edx, DWORD PTR [rdx+rax]
	mov	rax, QWORD PTR -64[rbp]
	add	rax, 12
	mov	eax, DWORD PTR [rax]
	xor	eax, edx
	mov	DWORD PTR -84[rbp], eax
	mov	eax, DWORD PTR -88[rbp]
	and	eax, 3
	mov	eax, eax
	lea	rdx, 0[0+rax*8]
	lea	rax, Tr[rip+4]
	movzx	eax, BYTE PTR [rdx+rax]
	test	al, al
	je	.L27
	mov	eax, DWORD PTR -88[rbp]
	and	eax, 3
	mov	eax, eax
	lea	rdx, 0[0+rax*8]
	lea	rax, Tr[rip+4]
	movzx	eax, BYTE PTR [rdx+rax]
	movzx	eax, al
	mov	edx, DWORD PTR -84[rbp]
	mov	ecx, eax
	rol	edx, cl
	mov	eax, edx
	jmp	.L28
.L27:
	mov	eax, DWORD PTR -84[rbp]
.L28:
	mov	DWORD PTR -84[rbp], eax
	mov	eax, DWORD PTR -84[rbp]
	shr	eax, 24
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s1[rip]
	mov	eax, DWORD PTR [rdx+rax]
	mov	edx, DWORD PTR -84[rbp]
	shr	edx, 16
	movzx	edx, dl
	mov	edx, edx
	lea	rcx, 0[0+rdx*4]
	lea	rdx, s2[rip]
	mov	edx, DWORD PTR [rcx+rdx]
	sub	eax, edx
	mov	ecx, eax
	mov	eax, DWORD PTR -84[rbp]
	shr	eax, 8
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s3[rip]
	mov	eax, DWORD PTR [rdx+rax]
	add	ecx, eax
	mov	eax, DWORD PTR -84[rbp]
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s4[rip]
	mov	eax, DWORD PTR [rdx+rax]
	xor	ecx, eax
	mov	rax, QWORD PTR -64[rbp]
	add	rax, 8
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -64[rbp]
	add	rax, 8
	xor	edx, ecx
	mov	DWORD PTR [rax], edx
	mov	eax, DWORD PTR -88[rbp]
	sal	rax, 5
	mov	rdx, rax
	lea	rax, Tm[rip+20]
	mov	eax, DWORD PTR [rdx+rax]
	mov	rdx, QWORD PTR -64[rbp]
	add	rdx, 8
	mov	edx, DWORD PTR [rdx]
	sub	eax, edx
	mov	DWORD PTR -84[rbp], eax
	mov	eax, DWORD PTR -88[rbp]
	and	eax, 3
	mov	eax, eax
	lea	rdx, 0[0+rax*8]
	lea	rax, Tr[rip+5]
	movzx	eax, BYTE PTR [rdx+rax]
	test	al, al
	je	.L29
	mov	eax, DWORD PTR -88[rbp]
	and	eax, 3
	mov	eax, eax
	lea	rdx, 0[0+rax*8]
	lea	rax, Tr[rip+5]
	movzx	eax, BYTE PTR [rdx+rax]
	movzx	eax, al
	mov	edx, DWORD PTR -84[rbp]
	mov	ecx, eax
	rol	edx, cl
	mov	eax, edx
	jmp	.L30
.L29:
	mov	eax, DWORD PTR -84[rbp]
.L30:
	mov	DWORD PTR -84[rbp], eax
	mov	eax, DWORD PTR -84[rbp]
	shr	eax, 24
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s1[rip]
	mov	ecx, DWORD PTR [rdx+rax]
	mov	eax, DWORD PTR -84[rbp]
	shr	eax, 16
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s2[rip]
	mov	eax, DWORD PTR [rdx+rax]
	add	ecx, eax
	mov	eax, DWORD PTR -84[rbp]
	shr	eax, 8
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s3[rip]
	mov	eax, DWORD PTR [rdx+rax]
	xor	ecx, eax
	mov	eax, DWORD PTR -84[rbp]
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s4[rip]
	mov	eax, DWORD PTR [rdx+rax]
	sub	ecx, eax
	mov	rax, QWORD PTR -64[rbp]
	add	rax, 4
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -64[rbp]
	add	rax, 4
	xor	edx, ecx
	mov	DWORD PTR [rax], edx
	mov	eax, DWORD PTR -88[rbp]
	sal	rax, 5
	mov	rdx, rax
	lea	rax, Tm[rip+24]
	mov	edx, DWORD PTR [rdx+rax]
	mov	rax, QWORD PTR -64[rbp]
	add	rax, 4
	mov	eax, DWORD PTR [rax]
	add	eax, edx
	mov	DWORD PTR -84[rbp], eax
	mov	eax, DWORD PTR -88[rbp]
	and	eax, 3
	mov	eax, eax
	lea	rdx, 0[0+rax*8]
	lea	rax, Tr[rip+6]
	movzx	eax, BYTE PTR [rdx+rax]
	test	al, al
	je	.L31
	mov	eax, DWORD PTR -88[rbp]
	and	eax, 3
	mov	eax, eax
	lea	rdx, 0[0+rax*8]
	lea	rax, Tr[rip+6]
	movzx	eax, BYTE PTR [rdx+rax]
	movzx	eax, al
	mov	edx, DWORD PTR -84[rbp]
	mov	ecx, eax
	rol	edx, cl
	mov	eax, edx
	jmp	.L32
.L31:
	mov	eax, DWORD PTR -84[rbp]
.L32:
	mov	DWORD PTR -84[rbp], eax
	mov	eax, DWORD PTR -84[rbp]
	shr	eax, 24
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s1[rip]
	mov	ecx, DWORD PTR [rdx+rax]
	mov	eax, DWORD PTR -84[rbp]
	shr	eax, 16
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s2[rip]
	mov	eax, DWORD PTR [rdx+rax]
	xor	ecx, eax
	mov	eax, DWORD PTR -84[rbp]
	shr	eax, 8
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s3[rip]
	mov	eax, DWORD PTR [rdx+rax]
	sub	ecx, eax
	mov	eax, DWORD PTR -84[rbp]
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s4[rip]
	mov	eax, DWORD PTR [rdx+rax]
	lea	edx, [rcx+rax]
	mov	rax, QWORD PTR -64[rbp]
	mov	eax, DWORD PTR [rax]
	xor	edx, eax
	mov	rax, QWORD PTR -64[rbp]
	mov	DWORD PTR [rax], edx
	mov	eax, DWORD PTR -88[rbp]
	sal	rax, 5
	mov	rdx, rax
	lea	rax, Tm[rip+28]
	mov	edx, DWORD PTR [rdx+rax]
	mov	rax, QWORD PTR -64[rbp]
	mov	eax, DWORD PTR [rax]
	xor	eax, edx
	mov	DWORD PTR -84[rbp], eax
	mov	eax, DWORD PTR -88[rbp]
	and	eax, 3
	mov	eax, eax
	lea	rdx, 0[0+rax*8]
	lea	rax, Tr[rip+7]
	movzx	eax, BYTE PTR [rdx+rax]
	test	al, al
	je	.L33
	mov	eax, DWORD PTR -88[rbp]
	and	eax, 3
	mov	eax, eax
	lea	rdx, 0[0+rax*8]
	lea	rax, Tr[rip+7]
	movzx	eax, BYTE PTR [rdx+rax]
	movzx	eax, al
	mov	edx, DWORD PTR -84[rbp]
	mov	ecx, eax
	rol	edx, cl
	mov	eax, edx
	jmp	.L34
.L33:
	mov	eax, DWORD PTR -84[rbp]
.L34:
	mov	DWORD PTR -84[rbp], eax
	mov	eax, DWORD PTR -84[rbp]
	shr	eax, 24
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s1[rip]
	mov	eax, DWORD PTR [rdx+rax]
	mov	edx, DWORD PTR -84[rbp]
	shr	edx, 16
	movzx	edx, dl
	mov	edx, edx
	lea	rcx, 0[0+rdx*4]
	lea	rdx, s2[rip]
	mov	edx, DWORD PTR [rcx+rdx]
	sub	eax, edx
	mov	ecx, eax
	mov	eax, DWORD PTR -84[rbp]
	shr	eax, 8
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s3[rip]
	mov	eax, DWORD PTR [rdx+rax]
	add	ecx, eax
	mov	eax, DWORD PTR -84[rbp]
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s4[rip]
	mov	eax, DWORD PTR [rdx+rax]
	xor	ecx, eax
	mov	rax, QWORD PTR -64[rbp]
	add	rax, 28
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -64[rbp]
	add	rax, 28
	xor	edx, ecx
	mov	DWORD PTR [rax], edx
	nop
	mov	eax, DWORD PTR -48[rbp]
	and	eax, 31
	mov	ecx, eax
	mov	rax, QWORD PTR -112[rbp]
	mov	edx, DWORD PTR -92[rbp]
	movsx	rdx, edx
	add	rdx, 48
	mov	BYTE PTR [rax+rdx*4], cl
	mov	eax, DWORD PTR -40[rbp]
	and	eax, 31
	mov	ecx, eax
	mov	rax, QWORD PTR -112[rbp]
	mov	edx, DWORD PTR -92[rbp]
	movsx	rdx, edx
	mov	BYTE PTR 193[rax+rdx*4], cl
	mov	eax, DWORD PTR -32[rbp]
	and	eax, 31
	mov	ecx, eax
	mov	rax, QWORD PTR -112[rbp]
	mov	edx, DWORD PTR -92[rbp]
	movsx	rdx, edx
	mov	BYTE PTR 194[rax+rdx*4], cl
	mov	eax, DWORD PTR -24[rbp]
	and	eax, 31
	mov	ecx, eax
	mov	rax, QWORD PTR -112[rbp]
	mov	edx, DWORD PTR -92[rbp]
	movsx	rdx, edx
	mov	BYTE PTR 195[rax+rdx*4], cl
	mov	eax, DWORD PTR -20[rbp]
	mov	rcx, QWORD PTR -112[rbp]
	mov	edx, DWORD PTR -92[rbp]
	movsx	rdx, edx
	sal	rdx, 4
	add	rdx, rcx
	mov	DWORD PTR [rdx], eax
	mov	eax, DWORD PTR -28[rbp]
	mov	rcx, QWORD PTR -112[rbp]
	mov	edx, DWORD PTR -92[rbp]
	movsx	rdx, edx
	sal	rdx, 4
	add	rdx, rcx
	add	rdx, 4
	mov	DWORD PTR [rdx], eax
	mov	eax, DWORD PTR -36[rbp]
	mov	rcx, QWORD PTR -112[rbp]
	mov	edx, DWORD PTR -92[rbp]
	movsx	rdx, edx
	sal	rdx, 4
	add	rdx, rcx
	add	rdx, 8
	mov	DWORD PTR [rdx], eax
	mov	eax, DWORD PTR -44[rbp]
	mov	rcx, QWORD PTR -112[rbp]
	mov	edx, DWORD PTR -92[rbp]
	movsx	rdx, edx
	sal	rdx, 4
	add	rdx, rcx
	add	rdx, 12
	mov	DWORD PTR [rdx], eax
	add	DWORD PTR -92[rbp], 1
.L2:
	cmp	DWORD PTR -92[rbp], 1
	jle	.L35
	mov	eax, 0
	mov	rsi, QWORD PTR -8[rbp]
	sub	rsi, QWORD PTR fs:40
	je	.L37
	call	__stack_chk_fail@PLT
.L37:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE1:
	.size	cast6_setkey, .-cast6_setkey
	.globl	cast6_encrypt
	.type	cast6_encrypt, @function
cast6_encrypt:
.LFB4:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 432
	mov	QWORD PTR -408[rbp], rdi
	mov	QWORD PTR -416[rbp], rsi
	mov	QWORD PTR -424[rbp], rdx
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	rax, QWORD PTR -424[rbp]
	mov	QWORD PTR -352[rbp], rax
	mov	rax, QWORD PTR -416[rbp]
	mov	QWORD PTR -344[rbp], rax
	mov	rax, QWORD PTR -352[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -32[rbp], eax
	mov	rax, QWORD PTR -352[rbp]
	mov	eax, DWORD PTR 4[rax]
	mov	DWORD PTR -28[rbp], eax
	mov	rax, QWORD PTR -352[rbp]
	mov	eax, DWORD PTR 8[rax]
	mov	DWORD PTR -24[rbp], eax
	mov	rax, QWORD PTR -352[rbp]
	mov	eax, DWORD PTR 12[rax]
	mov	DWORD PTR -20[rbp], eax
	mov	rax, QWORD PTR -408[rbp]
	mov	QWORD PTR -336[rbp], rax
	mov	rax, QWORD PTR -408[rbp]
	add	rax, 192
	mov	QWORD PTR -328[rbp], rax
	lea	rax, -32[rbp]
	mov	QWORD PTR -56[rbp], rax
	mov	rax, QWORD PTR -328[rbp]
	mov	QWORD PTR -48[rbp], rax
	mov	rax, QWORD PTR -336[rbp]
	mov	QWORD PTR -40[rbp], rax
	mov	rax, QWORD PTR -40[rbp]
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -56[rbp]
	add	rax, 12
	mov	eax, DWORD PTR [rax]
	add	eax, edx
	mov	DWORD PTR -356[rbp], eax
	mov	rax, QWORD PTR -48[rbp]
	movzx	eax, BYTE PTR [rax]
	test	al, al
	je	.L39
	mov	rax, QWORD PTR -48[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	edx, DWORD PTR -356[rbp]
	mov	ecx, eax
	rol	edx, cl
	mov	eax, edx
	jmp	.L40
.L39:
	mov	eax, DWORD PTR -356[rbp]
.L40:
	mov	DWORD PTR -356[rbp], eax
	mov	eax, DWORD PTR -356[rbp]
	shr	eax, 24
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s1[rip]
	mov	ecx, DWORD PTR [rdx+rax]
	mov	eax, DWORD PTR -356[rbp]
	shr	eax, 16
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s2[rip]
	mov	eax, DWORD PTR [rdx+rax]
	xor	ecx, eax
	mov	eax, DWORD PTR -356[rbp]
	shr	eax, 8
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s3[rip]
	mov	eax, DWORD PTR [rdx+rax]
	sub	ecx, eax
	mov	eax, DWORD PTR -356[rbp]
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s4[rip]
	mov	eax, DWORD PTR [rdx+rax]
	add	ecx, eax
	mov	rax, QWORD PTR -56[rbp]
	add	rax, 8
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -56[rbp]
	add	rax, 8
	xor	edx, ecx
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -40[rbp]
	add	rax, 4
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -56[rbp]
	add	rax, 8
	mov	eax, DWORD PTR [rax]
	xor	eax, edx
	mov	DWORD PTR -356[rbp], eax
	mov	rax, QWORD PTR -48[rbp]
	add	rax, 1
	movzx	eax, BYTE PTR [rax]
	test	al, al
	je	.L41
	mov	rax, QWORD PTR -48[rbp]
	add	rax, 1
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	edx, DWORD PTR -356[rbp]
	mov	ecx, eax
	rol	edx, cl
	mov	eax, edx
	jmp	.L42
.L41:
	mov	eax, DWORD PTR -356[rbp]
.L42:
	mov	DWORD PTR -356[rbp], eax
	mov	eax, DWORD PTR -356[rbp]
	shr	eax, 24
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s1[rip]
	mov	eax, DWORD PTR [rdx+rax]
	mov	edx, DWORD PTR -356[rbp]
	shr	edx, 16
	movzx	edx, dl
	mov	edx, edx
	lea	rcx, 0[0+rdx*4]
	lea	rdx, s2[rip]
	mov	edx, DWORD PTR [rcx+rdx]
	sub	eax, edx
	mov	ecx, eax
	mov	eax, DWORD PTR -356[rbp]
	shr	eax, 8
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s3[rip]
	mov	eax, DWORD PTR [rdx+rax]
	add	ecx, eax
	mov	eax, DWORD PTR -356[rbp]
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s4[rip]
	mov	eax, DWORD PTR [rdx+rax]
	xor	ecx, eax
	mov	rax, QWORD PTR -56[rbp]
	add	rax, 4
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -56[rbp]
	add	rax, 4
	xor	edx, ecx
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -40[rbp]
	add	rax, 8
	mov	eax, DWORD PTR [rax]
	mov	rdx, QWORD PTR -56[rbp]
	add	rdx, 4
	mov	edx, DWORD PTR [rdx]
	sub	eax, edx
	mov	DWORD PTR -356[rbp], eax
	mov	rax, QWORD PTR -48[rbp]
	add	rax, 2
	movzx	eax, BYTE PTR [rax]
	test	al, al
	je	.L43
	mov	rax, QWORD PTR -48[rbp]
	add	rax, 2
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	edx, DWORD PTR -356[rbp]
	mov	ecx, eax
	rol	edx, cl
	mov	eax, edx
	jmp	.L44
.L43:
	mov	eax, DWORD PTR -356[rbp]
.L44:
	mov	DWORD PTR -356[rbp], eax
	mov	eax, DWORD PTR -356[rbp]
	shr	eax, 24
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s1[rip]
	mov	ecx, DWORD PTR [rdx+rax]
	mov	eax, DWORD PTR -356[rbp]
	shr	eax, 16
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s2[rip]
	mov	eax, DWORD PTR [rdx+rax]
	add	ecx, eax
	mov	eax, DWORD PTR -356[rbp]
	shr	eax, 8
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s3[rip]
	mov	eax, DWORD PTR [rdx+rax]
	xor	ecx, eax
	mov	eax, DWORD PTR -356[rbp]
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s4[rip]
	mov	eax, DWORD PTR [rdx+rax]
	sub	ecx, eax
	mov	edx, ecx
	mov	rax, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR [rax]
	xor	edx, eax
	mov	rax, QWORD PTR -56[rbp]
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -40[rbp]
	add	rax, 12
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR [rax]
	add	eax, edx
	mov	DWORD PTR -356[rbp], eax
	mov	rax, QWORD PTR -48[rbp]
	add	rax, 3
	movzx	eax, BYTE PTR [rax]
	test	al, al
	je	.L45
	mov	rax, QWORD PTR -48[rbp]
	add	rax, 3
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	edx, DWORD PTR -356[rbp]
	mov	ecx, eax
	rol	edx, cl
	mov	eax, edx
	jmp	.L46
.L45:
	mov	eax, DWORD PTR -356[rbp]
.L46:
	mov	DWORD PTR -356[rbp], eax
	mov	eax, DWORD PTR -356[rbp]
	shr	eax, 24
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s1[rip]
	mov	ecx, DWORD PTR [rdx+rax]
	mov	eax, DWORD PTR -356[rbp]
	shr	eax, 16
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s2[rip]
	mov	eax, DWORD PTR [rdx+rax]
	xor	ecx, eax
	mov	eax, DWORD PTR -356[rbp]
	shr	eax, 8
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s3[rip]
	mov	eax, DWORD PTR [rdx+rax]
	sub	ecx, eax
	mov	eax, DWORD PTR -356[rbp]
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s4[rip]
	mov	eax, DWORD PTR [rdx+rax]
	add	ecx, eax
	mov	rax, QWORD PTR -56[rbp]
	add	rax, 12
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -56[rbp]
	add	rax, 12
	xor	edx, ecx
	mov	DWORD PTR [rax], edx
	nop
	mov	rax, QWORD PTR -408[rbp]
	add	rax, 16
	mov	QWORD PTR -336[rbp], rax
	mov	rax, QWORD PTR -408[rbp]
	add	rax, 196
	mov	QWORD PTR -328[rbp], rax
	lea	rax, -32[rbp]
	mov	QWORD PTR -80[rbp], rax
	mov	rax, QWORD PTR -328[rbp]
	mov	QWORD PTR -72[rbp], rax
	mov	rax, QWORD PTR -336[rbp]
	mov	QWORD PTR -64[rbp], rax
	mov	rax, QWORD PTR -64[rbp]
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -80[rbp]
	add	rax, 12
	mov	eax, DWORD PTR [rax]
	add	eax, edx
	mov	DWORD PTR -360[rbp], eax
	mov	rax, QWORD PTR -72[rbp]
	movzx	eax, BYTE PTR [rax]
	test	al, al
	je	.L47
	mov	rax, QWORD PTR -72[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	edx, DWORD PTR -360[rbp]
	mov	ecx, eax
	rol	edx, cl
	mov	eax, edx
	jmp	.L48
.L47:
	mov	eax, DWORD PTR -360[rbp]
.L48:
	mov	DWORD PTR -360[rbp], eax
	mov	eax, DWORD PTR -360[rbp]
	shr	eax, 24
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s1[rip]
	mov	ecx, DWORD PTR [rdx+rax]
	mov	eax, DWORD PTR -360[rbp]
	shr	eax, 16
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s2[rip]
	mov	eax, DWORD PTR [rdx+rax]
	xor	ecx, eax
	mov	eax, DWORD PTR -360[rbp]
	shr	eax, 8
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s3[rip]
	mov	eax, DWORD PTR [rdx+rax]
	sub	ecx, eax
	mov	eax, DWORD PTR -360[rbp]
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s4[rip]
	mov	eax, DWORD PTR [rdx+rax]
	add	ecx, eax
	mov	rax, QWORD PTR -80[rbp]
	add	rax, 8
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -80[rbp]
	add	rax, 8
	xor	edx, ecx
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -64[rbp]
	add	rax, 4
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -80[rbp]
	add	rax, 8
	mov	eax, DWORD PTR [rax]
	xor	eax, edx
	mov	DWORD PTR -360[rbp], eax
	mov	rax, QWORD PTR -72[rbp]
	add	rax, 1
	movzx	eax, BYTE PTR [rax]
	test	al, al
	je	.L49
	mov	rax, QWORD PTR -72[rbp]
	add	rax, 1
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	edx, DWORD PTR -360[rbp]
	mov	ecx, eax
	rol	edx, cl
	mov	eax, edx
	jmp	.L50
.L49:
	mov	eax, DWORD PTR -360[rbp]
.L50:
	mov	DWORD PTR -360[rbp], eax
	mov	eax, DWORD PTR -360[rbp]
	shr	eax, 24
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s1[rip]
	mov	eax, DWORD PTR [rdx+rax]
	mov	edx, DWORD PTR -360[rbp]
	shr	edx, 16
	movzx	edx, dl
	mov	edx, edx
	lea	rcx, 0[0+rdx*4]
	lea	rdx, s2[rip]
	mov	edx, DWORD PTR [rcx+rdx]
	sub	eax, edx
	mov	ecx, eax
	mov	eax, DWORD PTR -360[rbp]
	shr	eax, 8
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s3[rip]
	mov	eax, DWORD PTR [rdx+rax]
	add	ecx, eax
	mov	eax, DWORD PTR -360[rbp]
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s4[rip]
	mov	eax, DWORD PTR [rdx+rax]
	xor	ecx, eax
	mov	rax, QWORD PTR -80[rbp]
	add	rax, 4
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -80[rbp]
	add	rax, 4
	xor	edx, ecx
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -64[rbp]
	add	rax, 8
	mov	eax, DWORD PTR [rax]
	mov	rdx, QWORD PTR -80[rbp]
	add	rdx, 4
	mov	edx, DWORD PTR [rdx]
	sub	eax, edx
	mov	DWORD PTR -360[rbp], eax
	mov	rax, QWORD PTR -72[rbp]
	add	rax, 2
	movzx	eax, BYTE PTR [rax]
	test	al, al
	je	.L51
	mov	rax, QWORD PTR -72[rbp]
	add	rax, 2
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	edx, DWORD PTR -360[rbp]
	mov	ecx, eax
	rol	edx, cl
	mov	eax, edx
	jmp	.L52
.L51:
	mov	eax, DWORD PTR -360[rbp]
.L52:
	mov	DWORD PTR -360[rbp], eax
	mov	eax, DWORD PTR -360[rbp]
	shr	eax, 24
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s1[rip]
	mov	ecx, DWORD PTR [rdx+rax]
	mov	eax, DWORD PTR -360[rbp]
	shr	eax, 16
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s2[rip]
	mov	eax, DWORD PTR [rdx+rax]
	add	ecx, eax
	mov	eax, DWORD PTR -360[rbp]
	shr	eax, 8
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s3[rip]
	mov	eax, DWORD PTR [rdx+rax]
	xor	ecx, eax
	mov	eax, DWORD PTR -360[rbp]
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s4[rip]
	mov	eax, DWORD PTR [rdx+rax]
	sub	ecx, eax
	mov	edx, ecx
	mov	rax, QWORD PTR -80[rbp]
	mov	eax, DWORD PTR [rax]
	xor	edx, eax
	mov	rax, QWORD PTR -80[rbp]
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -64[rbp]
	add	rax, 12
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -80[rbp]
	mov	eax, DWORD PTR [rax]
	add	eax, edx
	mov	DWORD PTR -360[rbp], eax
	mov	rax, QWORD PTR -72[rbp]
	add	rax, 3
	movzx	eax, BYTE PTR [rax]
	test	al, al
	je	.L53
	mov	rax, QWORD PTR -72[rbp]
	add	rax, 3
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	edx, DWORD PTR -360[rbp]
	mov	ecx, eax
	rol	edx, cl
	mov	eax, edx
	jmp	.L54
.L53:
	mov	eax, DWORD PTR -360[rbp]
.L54:
	mov	DWORD PTR -360[rbp], eax
	mov	eax, DWORD PTR -360[rbp]
	shr	eax, 24
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s1[rip]
	mov	ecx, DWORD PTR [rdx+rax]
	mov	eax, DWORD PTR -360[rbp]
	shr	eax, 16
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s2[rip]
	mov	eax, DWORD PTR [rdx+rax]
	xor	ecx, eax
	mov	eax, DWORD PTR -360[rbp]
	shr	eax, 8
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s3[rip]
	mov	eax, DWORD PTR [rdx+rax]
	sub	ecx, eax
	mov	eax, DWORD PTR -360[rbp]
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s4[rip]
	mov	eax, DWORD PTR [rdx+rax]
	add	ecx, eax
	mov	rax, QWORD PTR -80[rbp]
	add	rax, 12
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -80[rbp]
	add	rax, 12
	xor	edx, ecx
	mov	DWORD PTR [rax], edx
	nop
	mov	rax, QWORD PTR -408[rbp]
	add	rax, 32
	mov	QWORD PTR -336[rbp], rax
	mov	rax, QWORD PTR -408[rbp]
	add	rax, 200
	mov	QWORD PTR -328[rbp], rax
	lea	rax, -32[rbp]
	mov	QWORD PTR -104[rbp], rax
	mov	rax, QWORD PTR -328[rbp]
	mov	QWORD PTR -96[rbp], rax
	mov	rax, QWORD PTR -336[rbp]
	mov	QWORD PTR -88[rbp], rax
	mov	rax, QWORD PTR -88[rbp]
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -104[rbp]
	add	rax, 12
	mov	eax, DWORD PTR [rax]
	add	eax, edx
	mov	DWORD PTR -364[rbp], eax
	mov	rax, QWORD PTR -96[rbp]
	movzx	eax, BYTE PTR [rax]
	test	al, al
	je	.L55
	mov	rax, QWORD PTR -96[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	edx, DWORD PTR -364[rbp]
	mov	ecx, eax
	rol	edx, cl
	mov	eax, edx
	jmp	.L56
.L55:
	mov	eax, DWORD PTR -364[rbp]
.L56:
	mov	DWORD PTR -364[rbp], eax
	mov	eax, DWORD PTR -364[rbp]
	shr	eax, 24
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s1[rip]
	mov	ecx, DWORD PTR [rdx+rax]
	mov	eax, DWORD PTR -364[rbp]
	shr	eax, 16
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s2[rip]
	mov	eax, DWORD PTR [rdx+rax]
	xor	ecx, eax
	mov	eax, DWORD PTR -364[rbp]
	shr	eax, 8
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s3[rip]
	mov	eax, DWORD PTR [rdx+rax]
	sub	ecx, eax
	mov	eax, DWORD PTR -364[rbp]
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s4[rip]
	mov	eax, DWORD PTR [rdx+rax]
	add	ecx, eax
	mov	rax, QWORD PTR -104[rbp]
	add	rax, 8
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -104[rbp]
	add	rax, 8
	xor	edx, ecx
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -88[rbp]
	add	rax, 4
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -104[rbp]
	add	rax, 8
	mov	eax, DWORD PTR [rax]
	xor	eax, edx
	mov	DWORD PTR -364[rbp], eax
	mov	rax, QWORD PTR -96[rbp]
	add	rax, 1
	movzx	eax, BYTE PTR [rax]
	test	al, al
	je	.L57
	mov	rax, QWORD PTR -96[rbp]
	add	rax, 1
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	edx, DWORD PTR -364[rbp]
	mov	ecx, eax
	rol	edx, cl
	mov	eax, edx
	jmp	.L58
.L57:
	mov	eax, DWORD PTR -364[rbp]
.L58:
	mov	DWORD PTR -364[rbp], eax
	mov	eax, DWORD PTR -364[rbp]
	shr	eax, 24
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s1[rip]
	mov	eax, DWORD PTR [rdx+rax]
	mov	edx, DWORD PTR -364[rbp]
	shr	edx, 16
	movzx	edx, dl
	mov	edx, edx
	lea	rcx, 0[0+rdx*4]
	lea	rdx, s2[rip]
	mov	edx, DWORD PTR [rcx+rdx]
	sub	eax, edx
	mov	ecx, eax
	mov	eax, DWORD PTR -364[rbp]
	shr	eax, 8
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s3[rip]
	mov	eax, DWORD PTR [rdx+rax]
	add	ecx, eax
	mov	eax, DWORD PTR -364[rbp]
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s4[rip]
	mov	eax, DWORD PTR [rdx+rax]
	xor	ecx, eax
	mov	rax, QWORD PTR -104[rbp]
	add	rax, 4
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -104[rbp]
	add	rax, 4
	xor	edx, ecx
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -88[rbp]
	add	rax, 8
	mov	eax, DWORD PTR [rax]
	mov	rdx, QWORD PTR -104[rbp]
	add	rdx, 4
	mov	edx, DWORD PTR [rdx]
	sub	eax, edx
	mov	DWORD PTR -364[rbp], eax
	mov	rax, QWORD PTR -96[rbp]
	add	rax, 2
	movzx	eax, BYTE PTR [rax]
	test	al, al
	je	.L59
	mov	rax, QWORD PTR -96[rbp]
	add	rax, 2
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	edx, DWORD PTR -364[rbp]
	mov	ecx, eax
	rol	edx, cl
	mov	eax, edx
	jmp	.L60
.L59:
	mov	eax, DWORD PTR -364[rbp]
.L60:
	mov	DWORD PTR -364[rbp], eax
	mov	eax, DWORD PTR -364[rbp]
	shr	eax, 24
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s1[rip]
	mov	ecx, DWORD PTR [rdx+rax]
	mov	eax, DWORD PTR -364[rbp]
	shr	eax, 16
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s2[rip]
	mov	eax, DWORD PTR [rdx+rax]
	add	ecx, eax
	mov	eax, DWORD PTR -364[rbp]
	shr	eax, 8
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s3[rip]
	mov	eax, DWORD PTR [rdx+rax]
	xor	ecx, eax
	mov	eax, DWORD PTR -364[rbp]
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s4[rip]
	mov	eax, DWORD PTR [rdx+rax]
	sub	ecx, eax
	mov	edx, ecx
	mov	rax, QWORD PTR -104[rbp]
	mov	eax, DWORD PTR [rax]
	xor	edx, eax
	mov	rax, QWORD PTR -104[rbp]
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -88[rbp]
	add	rax, 12
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -104[rbp]
	mov	eax, DWORD PTR [rax]
	add	eax, edx
	mov	DWORD PTR -364[rbp], eax
	mov	rax, QWORD PTR -96[rbp]
	add	rax, 3
	movzx	eax, BYTE PTR [rax]
	test	al, al
	je	.L61
	mov	rax, QWORD PTR -96[rbp]
	add	rax, 3
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	edx, DWORD PTR -364[rbp]
	mov	ecx, eax
	rol	edx, cl
	mov	eax, edx
	jmp	.L62
.L61:
	mov	eax, DWORD PTR -364[rbp]
.L62:
	mov	DWORD PTR -364[rbp], eax
	mov	eax, DWORD PTR -364[rbp]
	shr	eax, 24
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s1[rip]
	mov	ecx, DWORD PTR [rdx+rax]
	mov	eax, DWORD PTR -364[rbp]
	shr	eax, 16
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s2[rip]
	mov	eax, DWORD PTR [rdx+rax]
	xor	ecx, eax
	mov	eax, DWORD PTR -364[rbp]
	shr	eax, 8
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s3[rip]
	mov	eax, DWORD PTR [rdx+rax]
	sub	ecx, eax
	mov	eax, DWORD PTR -364[rbp]
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s4[rip]
	mov	eax, DWORD PTR [rdx+rax]
	add	ecx, eax
	mov	rax, QWORD PTR -104[rbp]
	add	rax, 12
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -104[rbp]
	add	rax, 12
	xor	edx, ecx
	mov	DWORD PTR [rax], edx
	nop
	mov	rax, QWORD PTR -408[rbp]
	add	rax, 48
	mov	QWORD PTR -336[rbp], rax
	mov	rax, QWORD PTR -408[rbp]
	add	rax, 204
	mov	QWORD PTR -328[rbp], rax
	lea	rax, -32[rbp]
	mov	QWORD PTR -128[rbp], rax
	mov	rax, QWORD PTR -328[rbp]
	mov	QWORD PTR -120[rbp], rax
	mov	rax, QWORD PTR -336[rbp]
	mov	QWORD PTR -112[rbp], rax
	mov	rax, QWORD PTR -112[rbp]
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -128[rbp]
	add	rax, 12
	mov	eax, DWORD PTR [rax]
	add	eax, edx
	mov	DWORD PTR -368[rbp], eax
	mov	rax, QWORD PTR -120[rbp]
	movzx	eax, BYTE PTR [rax]
	test	al, al
	je	.L63
	mov	rax, QWORD PTR -120[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	edx, DWORD PTR -368[rbp]
	mov	ecx, eax
	rol	edx, cl
	mov	eax, edx
	jmp	.L64
.L63:
	mov	eax, DWORD PTR -368[rbp]
.L64:
	mov	DWORD PTR -368[rbp], eax
	mov	eax, DWORD PTR -368[rbp]
	shr	eax, 24
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s1[rip]
	mov	ecx, DWORD PTR [rdx+rax]
	mov	eax, DWORD PTR -368[rbp]
	shr	eax, 16
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s2[rip]
	mov	eax, DWORD PTR [rdx+rax]
	xor	ecx, eax
	mov	eax, DWORD PTR -368[rbp]
	shr	eax, 8
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s3[rip]
	mov	eax, DWORD PTR [rdx+rax]
	sub	ecx, eax
	mov	eax, DWORD PTR -368[rbp]
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s4[rip]
	mov	eax, DWORD PTR [rdx+rax]
	add	ecx, eax
	mov	rax, QWORD PTR -128[rbp]
	add	rax, 8
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -128[rbp]
	add	rax, 8
	xor	edx, ecx
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -112[rbp]
	add	rax, 4
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -128[rbp]
	add	rax, 8
	mov	eax, DWORD PTR [rax]
	xor	eax, edx
	mov	DWORD PTR -368[rbp], eax
	mov	rax, QWORD PTR -120[rbp]
	add	rax, 1
	movzx	eax, BYTE PTR [rax]
	test	al, al
	je	.L65
	mov	rax, QWORD PTR -120[rbp]
	add	rax, 1
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	edx, DWORD PTR -368[rbp]
	mov	ecx, eax
	rol	edx, cl
	mov	eax, edx
	jmp	.L66
.L65:
	mov	eax, DWORD PTR -368[rbp]
.L66:
	mov	DWORD PTR -368[rbp], eax
	mov	eax, DWORD PTR -368[rbp]
	shr	eax, 24
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s1[rip]
	mov	eax, DWORD PTR [rdx+rax]
	mov	edx, DWORD PTR -368[rbp]
	shr	edx, 16
	movzx	edx, dl
	mov	edx, edx
	lea	rcx, 0[0+rdx*4]
	lea	rdx, s2[rip]
	mov	edx, DWORD PTR [rcx+rdx]
	sub	eax, edx
	mov	ecx, eax
	mov	eax, DWORD PTR -368[rbp]
	shr	eax, 8
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s3[rip]
	mov	eax, DWORD PTR [rdx+rax]
	add	ecx, eax
	mov	eax, DWORD PTR -368[rbp]
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s4[rip]
	mov	eax, DWORD PTR [rdx+rax]
	xor	ecx, eax
	mov	rax, QWORD PTR -128[rbp]
	add	rax, 4
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -128[rbp]
	add	rax, 4
	xor	edx, ecx
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -112[rbp]
	add	rax, 8
	mov	eax, DWORD PTR [rax]
	mov	rdx, QWORD PTR -128[rbp]
	add	rdx, 4
	mov	edx, DWORD PTR [rdx]
	sub	eax, edx
	mov	DWORD PTR -368[rbp], eax
	mov	rax, QWORD PTR -120[rbp]
	add	rax, 2
	movzx	eax, BYTE PTR [rax]
	test	al, al
	je	.L67
	mov	rax, QWORD PTR -120[rbp]
	add	rax, 2
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	edx, DWORD PTR -368[rbp]
	mov	ecx, eax
	rol	edx, cl
	mov	eax, edx
	jmp	.L68
.L67:
	mov	eax, DWORD PTR -368[rbp]
.L68:
	mov	DWORD PTR -368[rbp], eax
	mov	eax, DWORD PTR -368[rbp]
	shr	eax, 24
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s1[rip]
	mov	ecx, DWORD PTR [rdx+rax]
	mov	eax, DWORD PTR -368[rbp]
	shr	eax, 16
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s2[rip]
	mov	eax, DWORD PTR [rdx+rax]
	add	ecx, eax
	mov	eax, DWORD PTR -368[rbp]
	shr	eax, 8
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s3[rip]
	mov	eax, DWORD PTR [rdx+rax]
	xor	ecx, eax
	mov	eax, DWORD PTR -368[rbp]
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s4[rip]
	mov	eax, DWORD PTR [rdx+rax]
	sub	ecx, eax
	mov	edx, ecx
	mov	rax, QWORD PTR -128[rbp]
	mov	eax, DWORD PTR [rax]
	xor	edx, eax
	mov	rax, QWORD PTR -128[rbp]
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -112[rbp]
	add	rax, 12
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -128[rbp]
	mov	eax, DWORD PTR [rax]
	add	eax, edx
	mov	DWORD PTR -368[rbp], eax
	mov	rax, QWORD PTR -120[rbp]
	add	rax, 3
	movzx	eax, BYTE PTR [rax]
	test	al, al
	je	.L69
	mov	rax, QWORD PTR -120[rbp]
	add	rax, 3
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	edx, DWORD PTR -368[rbp]
	mov	ecx, eax
	rol	edx, cl
	mov	eax, edx
	jmp	.L70
.L69:
	mov	eax, DWORD PTR -368[rbp]
.L70:
	mov	DWORD PTR -368[rbp], eax
	mov	eax, DWORD PTR -368[rbp]
	shr	eax, 24
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s1[rip]
	mov	ecx, DWORD PTR [rdx+rax]
	mov	eax, DWORD PTR -368[rbp]
	shr	eax, 16
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s2[rip]
	mov	eax, DWORD PTR [rdx+rax]
	xor	ecx, eax
	mov	eax, DWORD PTR -368[rbp]
	shr	eax, 8
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s3[rip]
	mov	eax, DWORD PTR [rdx+rax]
	sub	ecx, eax
	mov	eax, DWORD PTR -368[rbp]
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s4[rip]
	mov	eax, DWORD PTR [rdx+rax]
	add	ecx, eax
	mov	rax, QWORD PTR -128[rbp]
	add	rax, 12
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -128[rbp]
	add	rax, 12
	xor	edx, ecx
	mov	DWORD PTR [rax], edx
	nop
	mov	rax, QWORD PTR -408[rbp]
	add	rax, 64
	mov	QWORD PTR -336[rbp], rax
	mov	rax, QWORD PTR -408[rbp]
	add	rax, 208
	mov	QWORD PTR -328[rbp], rax
	lea	rax, -32[rbp]
	mov	QWORD PTR -152[rbp], rax
	mov	rax, QWORD PTR -328[rbp]
	mov	QWORD PTR -144[rbp], rax
	mov	rax, QWORD PTR -336[rbp]
	mov	QWORD PTR -136[rbp], rax
	mov	rax, QWORD PTR -136[rbp]
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -152[rbp]
	add	rax, 12
	mov	eax, DWORD PTR [rax]
	add	eax, edx
	mov	DWORD PTR -372[rbp], eax
	mov	rax, QWORD PTR -144[rbp]
	movzx	eax, BYTE PTR [rax]
	test	al, al
	je	.L71
	mov	rax, QWORD PTR -144[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	edx, DWORD PTR -372[rbp]
	mov	ecx, eax
	rol	edx, cl
	mov	eax, edx
	jmp	.L72
.L71:
	mov	eax, DWORD PTR -372[rbp]
.L72:
	mov	DWORD PTR -372[rbp], eax
	mov	eax, DWORD PTR -372[rbp]
	shr	eax, 24
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s1[rip]
	mov	ecx, DWORD PTR [rdx+rax]
	mov	eax, DWORD PTR -372[rbp]
	shr	eax, 16
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s2[rip]
	mov	eax, DWORD PTR [rdx+rax]
	xor	ecx, eax
	mov	eax, DWORD PTR -372[rbp]
	shr	eax, 8
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s3[rip]
	mov	eax, DWORD PTR [rdx+rax]
	sub	ecx, eax
	mov	eax, DWORD PTR -372[rbp]
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s4[rip]
	mov	eax, DWORD PTR [rdx+rax]
	add	ecx, eax
	mov	rax, QWORD PTR -152[rbp]
	add	rax, 8
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -152[rbp]
	add	rax, 8
	xor	edx, ecx
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -136[rbp]
	add	rax, 4
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -152[rbp]
	add	rax, 8
	mov	eax, DWORD PTR [rax]
	xor	eax, edx
	mov	DWORD PTR -372[rbp], eax
	mov	rax, QWORD PTR -144[rbp]
	add	rax, 1
	movzx	eax, BYTE PTR [rax]
	test	al, al
	je	.L73
	mov	rax, QWORD PTR -144[rbp]
	add	rax, 1
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	edx, DWORD PTR -372[rbp]
	mov	ecx, eax
	rol	edx, cl
	mov	eax, edx
	jmp	.L74
.L73:
	mov	eax, DWORD PTR -372[rbp]
.L74:
	mov	DWORD PTR -372[rbp], eax
	mov	eax, DWORD PTR -372[rbp]
	shr	eax, 24
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s1[rip]
	mov	eax, DWORD PTR [rdx+rax]
	mov	edx, DWORD PTR -372[rbp]
	shr	edx, 16
	movzx	edx, dl
	mov	edx, edx
	lea	rcx, 0[0+rdx*4]
	lea	rdx, s2[rip]
	mov	edx, DWORD PTR [rcx+rdx]
	sub	eax, edx
	mov	ecx, eax
	mov	eax, DWORD PTR -372[rbp]
	shr	eax, 8
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s3[rip]
	mov	eax, DWORD PTR [rdx+rax]
	add	ecx, eax
	mov	eax, DWORD PTR -372[rbp]
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s4[rip]
	mov	eax, DWORD PTR [rdx+rax]
	xor	ecx, eax
	mov	rax, QWORD PTR -152[rbp]
	add	rax, 4
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -152[rbp]
	add	rax, 4
	xor	edx, ecx
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -136[rbp]
	add	rax, 8
	mov	eax, DWORD PTR [rax]
	mov	rdx, QWORD PTR -152[rbp]
	add	rdx, 4
	mov	edx, DWORD PTR [rdx]
	sub	eax, edx
	mov	DWORD PTR -372[rbp], eax
	mov	rax, QWORD PTR -144[rbp]
	add	rax, 2
	movzx	eax, BYTE PTR [rax]
	test	al, al
	je	.L75
	mov	rax, QWORD PTR -144[rbp]
	add	rax, 2
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	edx, DWORD PTR -372[rbp]
	mov	ecx, eax
	rol	edx, cl
	mov	eax, edx
	jmp	.L76
.L75:
	mov	eax, DWORD PTR -372[rbp]
.L76:
	mov	DWORD PTR -372[rbp], eax
	mov	eax, DWORD PTR -372[rbp]
	shr	eax, 24
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s1[rip]
	mov	ecx, DWORD PTR [rdx+rax]
	mov	eax, DWORD PTR -372[rbp]
	shr	eax, 16
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s2[rip]
	mov	eax, DWORD PTR [rdx+rax]
	add	ecx, eax
	mov	eax, DWORD PTR -372[rbp]
	shr	eax, 8
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s3[rip]
	mov	eax, DWORD PTR [rdx+rax]
	xor	ecx, eax
	mov	eax, DWORD PTR -372[rbp]
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s4[rip]
	mov	eax, DWORD PTR [rdx+rax]
	sub	ecx, eax
	mov	edx, ecx
	mov	rax, QWORD PTR -152[rbp]
	mov	eax, DWORD PTR [rax]
	xor	edx, eax
	mov	rax, QWORD PTR -152[rbp]
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -136[rbp]
	add	rax, 12
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -152[rbp]
	mov	eax, DWORD PTR [rax]
	add	eax, edx
	mov	DWORD PTR -372[rbp], eax
	mov	rax, QWORD PTR -144[rbp]
	add	rax, 3
	movzx	eax, BYTE PTR [rax]
	test	al, al
	je	.L77
	mov	rax, QWORD PTR -144[rbp]
	add	rax, 3
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	edx, DWORD PTR -372[rbp]
	mov	ecx, eax
	rol	edx, cl
	mov	eax, edx
	jmp	.L78
.L77:
	mov	eax, DWORD PTR -372[rbp]
.L78:
	mov	DWORD PTR -372[rbp], eax
	mov	eax, DWORD PTR -372[rbp]
	shr	eax, 24
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s1[rip]
	mov	ecx, DWORD PTR [rdx+rax]
	mov	eax, DWORD PTR -372[rbp]
	shr	eax, 16
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s2[rip]
	mov	eax, DWORD PTR [rdx+rax]
	xor	ecx, eax
	mov	eax, DWORD PTR -372[rbp]
	shr	eax, 8
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s3[rip]
	mov	eax, DWORD PTR [rdx+rax]
	sub	ecx, eax
	mov	eax, DWORD PTR -372[rbp]
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s4[rip]
	mov	eax, DWORD PTR [rdx+rax]
	add	ecx, eax
	mov	rax, QWORD PTR -152[rbp]
	add	rax, 12
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -152[rbp]
	add	rax, 12
	xor	edx, ecx
	mov	DWORD PTR [rax], edx
	nop
	mov	rax, QWORD PTR -408[rbp]
	add	rax, 80
	mov	QWORD PTR -336[rbp], rax
	mov	rax, QWORD PTR -408[rbp]
	add	rax, 212
	mov	QWORD PTR -328[rbp], rax
	lea	rax, -32[rbp]
	mov	QWORD PTR -176[rbp], rax
	mov	rax, QWORD PTR -328[rbp]
	mov	QWORD PTR -168[rbp], rax
	mov	rax, QWORD PTR -336[rbp]
	mov	QWORD PTR -160[rbp], rax
	mov	rax, QWORD PTR -160[rbp]
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -176[rbp]
	add	rax, 12
	mov	eax, DWORD PTR [rax]
	add	eax, edx
	mov	DWORD PTR -376[rbp], eax
	mov	rax, QWORD PTR -168[rbp]
	movzx	eax, BYTE PTR [rax]
	test	al, al
	je	.L79
	mov	rax, QWORD PTR -168[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	edx, DWORD PTR -376[rbp]
	mov	ecx, eax
	rol	edx, cl
	mov	eax, edx
	jmp	.L80
.L79:
	mov	eax, DWORD PTR -376[rbp]
.L80:
	mov	DWORD PTR -376[rbp], eax
	mov	eax, DWORD PTR -376[rbp]
	shr	eax, 24
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s1[rip]
	mov	ecx, DWORD PTR [rdx+rax]
	mov	eax, DWORD PTR -376[rbp]
	shr	eax, 16
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s2[rip]
	mov	eax, DWORD PTR [rdx+rax]
	xor	ecx, eax
	mov	eax, DWORD PTR -376[rbp]
	shr	eax, 8
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s3[rip]
	mov	eax, DWORD PTR [rdx+rax]
	sub	ecx, eax
	mov	eax, DWORD PTR -376[rbp]
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s4[rip]
	mov	eax, DWORD PTR [rdx+rax]
	add	ecx, eax
	mov	rax, QWORD PTR -176[rbp]
	add	rax, 8
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -176[rbp]
	add	rax, 8
	xor	edx, ecx
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -160[rbp]
	add	rax, 4
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -176[rbp]
	add	rax, 8
	mov	eax, DWORD PTR [rax]
	xor	eax, edx
	mov	DWORD PTR -376[rbp], eax
	mov	rax, QWORD PTR -168[rbp]
	add	rax, 1
	movzx	eax, BYTE PTR [rax]
	test	al, al
	je	.L81
	mov	rax, QWORD PTR -168[rbp]
	add	rax, 1
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	edx, DWORD PTR -376[rbp]
	mov	ecx, eax
	rol	edx, cl
	mov	eax, edx
	jmp	.L82
.L81:
	mov	eax, DWORD PTR -376[rbp]
.L82:
	mov	DWORD PTR -376[rbp], eax
	mov	eax, DWORD PTR -376[rbp]
	shr	eax, 24
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s1[rip]
	mov	eax, DWORD PTR [rdx+rax]
	mov	edx, DWORD PTR -376[rbp]
	shr	edx, 16
	movzx	edx, dl
	mov	edx, edx
	lea	rcx, 0[0+rdx*4]
	lea	rdx, s2[rip]
	mov	edx, DWORD PTR [rcx+rdx]
	sub	eax, edx
	mov	ecx, eax
	mov	eax, DWORD PTR -376[rbp]
	shr	eax, 8
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s3[rip]
	mov	eax, DWORD PTR [rdx+rax]
	add	ecx, eax
	mov	eax, DWORD PTR -376[rbp]
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s4[rip]
	mov	eax, DWORD PTR [rdx+rax]
	xor	ecx, eax
	mov	rax, QWORD PTR -176[rbp]
	add	rax, 4
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -176[rbp]
	add	rax, 4
	xor	edx, ecx
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -160[rbp]
	add	rax, 8
	mov	eax, DWORD PTR [rax]
	mov	rdx, QWORD PTR -176[rbp]
	add	rdx, 4
	mov	edx, DWORD PTR [rdx]
	sub	eax, edx
	mov	DWORD PTR -376[rbp], eax
	mov	rax, QWORD PTR -168[rbp]
	add	rax, 2
	movzx	eax, BYTE PTR [rax]
	test	al, al
	je	.L83
	mov	rax, QWORD PTR -168[rbp]
	add	rax, 2
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	edx, DWORD PTR -376[rbp]
	mov	ecx, eax
	rol	edx, cl
	mov	eax, edx
	jmp	.L84
.L83:
	mov	eax, DWORD PTR -376[rbp]
.L84:
	mov	DWORD PTR -376[rbp], eax
	mov	eax, DWORD PTR -376[rbp]
	shr	eax, 24
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s1[rip]
	mov	ecx, DWORD PTR [rdx+rax]
	mov	eax, DWORD PTR -376[rbp]
	shr	eax, 16
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s2[rip]
	mov	eax, DWORD PTR [rdx+rax]
	add	ecx, eax
	mov	eax, DWORD PTR -376[rbp]
	shr	eax, 8
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s3[rip]
	mov	eax, DWORD PTR [rdx+rax]
	xor	ecx, eax
	mov	eax, DWORD PTR -376[rbp]
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s4[rip]
	mov	eax, DWORD PTR [rdx+rax]
	sub	ecx, eax
	mov	edx, ecx
	mov	rax, QWORD PTR -176[rbp]
	mov	eax, DWORD PTR [rax]
	xor	edx, eax
	mov	rax, QWORD PTR -176[rbp]
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -160[rbp]
	add	rax, 12
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -176[rbp]
	mov	eax, DWORD PTR [rax]
	add	eax, edx
	mov	DWORD PTR -376[rbp], eax
	mov	rax, QWORD PTR -168[rbp]
	add	rax, 3
	movzx	eax, BYTE PTR [rax]
	test	al, al
	je	.L85
	mov	rax, QWORD PTR -168[rbp]
	add	rax, 3
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	edx, DWORD PTR -376[rbp]
	mov	ecx, eax
	rol	edx, cl
	mov	eax, edx
	jmp	.L86
.L85:
	mov	eax, DWORD PTR -376[rbp]
.L86:
	mov	DWORD PTR -376[rbp], eax
	mov	eax, DWORD PTR -376[rbp]
	shr	eax, 24
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s1[rip]
	mov	ecx, DWORD PTR [rdx+rax]
	mov	eax, DWORD PTR -376[rbp]
	shr	eax, 16
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s2[rip]
	mov	eax, DWORD PTR [rdx+rax]
	xor	ecx, eax
	mov	eax, DWORD PTR -376[rbp]
	shr	eax, 8
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s3[rip]
	mov	eax, DWORD PTR [rdx+rax]
	sub	ecx, eax
	mov	eax, DWORD PTR -376[rbp]
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s4[rip]
	mov	eax, DWORD PTR [rdx+rax]
	add	ecx, eax
	mov	rax, QWORD PTR -176[rbp]
	add	rax, 12
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -176[rbp]
	add	rax, 12
	xor	edx, ecx
	mov	DWORD PTR [rax], edx
	nop
	mov	rax, QWORD PTR -408[rbp]
	add	rax, 96
	mov	QWORD PTR -336[rbp], rax
	mov	rax, QWORD PTR -408[rbp]
	add	rax, 216
	mov	QWORD PTR -328[rbp], rax
	lea	rax, -32[rbp]
	mov	QWORD PTR -200[rbp], rax
	mov	rax, QWORD PTR -328[rbp]
	mov	QWORD PTR -192[rbp], rax
	mov	rax, QWORD PTR -336[rbp]
	mov	QWORD PTR -184[rbp], rax
	mov	rax, QWORD PTR -184[rbp]
	add	rax, 12
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -200[rbp]
	mov	eax, DWORD PTR [rax]
	add	eax, edx
	mov	DWORD PTR -380[rbp], eax
	mov	rax, QWORD PTR -192[rbp]
	add	rax, 3
	movzx	eax, BYTE PTR [rax]
	test	al, al
	je	.L87
	mov	rax, QWORD PTR -192[rbp]
	add	rax, 3
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	edx, DWORD PTR -380[rbp]
	mov	ecx, eax
	rol	edx, cl
	mov	eax, edx
	jmp	.L88
.L87:
	mov	eax, DWORD PTR -380[rbp]
.L88:
	mov	DWORD PTR -380[rbp], eax
	mov	eax, DWORD PTR -380[rbp]
	shr	eax, 24
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s1[rip]
	mov	ecx, DWORD PTR [rdx+rax]
	mov	eax, DWORD PTR -380[rbp]
	shr	eax, 16
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s2[rip]
	mov	eax, DWORD PTR [rdx+rax]
	xor	ecx, eax
	mov	eax, DWORD PTR -380[rbp]
	shr	eax, 8
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s3[rip]
	mov	eax, DWORD PTR [rdx+rax]
	sub	ecx, eax
	mov	eax, DWORD PTR -380[rbp]
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s4[rip]
	mov	eax, DWORD PTR [rdx+rax]
	add	ecx, eax
	mov	rax, QWORD PTR -200[rbp]
	add	rax, 12
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -200[rbp]
	add	rax, 12
	xor	edx, ecx
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -184[rbp]
	add	rax, 8
	mov	eax, DWORD PTR [rax]
	mov	rdx, QWORD PTR -200[rbp]
	add	rdx, 4
	mov	edx, DWORD PTR [rdx]
	sub	eax, edx
	mov	DWORD PTR -380[rbp], eax
	mov	rax, QWORD PTR -192[rbp]
	add	rax, 2
	movzx	eax, BYTE PTR [rax]
	test	al, al
	je	.L89
	mov	rax, QWORD PTR -192[rbp]
	add	rax, 2
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	edx, DWORD PTR -380[rbp]
	mov	ecx, eax
	rol	edx, cl
	mov	eax, edx
	jmp	.L90
.L89:
	mov	eax, DWORD PTR -380[rbp]
.L90:
	mov	DWORD PTR -380[rbp], eax
	mov	eax, DWORD PTR -380[rbp]
	shr	eax, 24
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s1[rip]
	mov	ecx, DWORD PTR [rdx+rax]
	mov	eax, DWORD PTR -380[rbp]
	shr	eax, 16
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s2[rip]
	mov	eax, DWORD PTR [rdx+rax]
	add	ecx, eax
	mov	eax, DWORD PTR -380[rbp]
	shr	eax, 8
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s3[rip]
	mov	eax, DWORD PTR [rdx+rax]
	xor	ecx, eax
	mov	eax, DWORD PTR -380[rbp]
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s4[rip]
	mov	eax, DWORD PTR [rdx+rax]
	sub	ecx, eax
	mov	edx, ecx
	mov	rax, QWORD PTR -200[rbp]
	mov	eax, DWORD PTR [rax]
	xor	edx, eax
	mov	rax, QWORD PTR -200[rbp]
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -184[rbp]
	add	rax, 4
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -200[rbp]
	add	rax, 8
	mov	eax, DWORD PTR [rax]
	xor	eax, edx
	mov	DWORD PTR -380[rbp], eax
	mov	rax, QWORD PTR -192[rbp]
	add	rax, 1
	movzx	eax, BYTE PTR [rax]
	test	al, al
	je	.L91
	mov	rax, QWORD PTR -192[rbp]
	add	rax, 1
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	edx, DWORD PTR -380[rbp]
	mov	ecx, eax
	rol	edx, cl
	mov	eax, edx
	jmp	.L92
.L91:
	mov	eax, DWORD PTR -380[rbp]
.L92:
	mov	DWORD PTR -380[rbp], eax
	mov	eax, DWORD PTR -380[rbp]
	shr	eax, 24
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s1[rip]
	mov	eax, DWORD PTR [rdx+rax]
	mov	edx, DWORD PTR -380[rbp]
	shr	edx, 16
	movzx	edx, dl
	mov	edx, edx
	lea	rcx, 0[0+rdx*4]
	lea	rdx, s2[rip]
	mov	edx, DWORD PTR [rcx+rdx]
	sub	eax, edx
	mov	ecx, eax
	mov	eax, DWORD PTR -380[rbp]
	shr	eax, 8
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s3[rip]
	mov	eax, DWORD PTR [rdx+rax]
	add	ecx, eax
	mov	eax, DWORD PTR -380[rbp]
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s4[rip]
	mov	eax, DWORD PTR [rdx+rax]
	xor	ecx, eax
	mov	rax, QWORD PTR -200[rbp]
	add	rax, 4
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -200[rbp]
	add	rax, 4
	xor	edx, ecx
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -184[rbp]
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -200[rbp]
	add	rax, 12
	mov	eax, DWORD PTR [rax]
	add	eax, edx
	mov	DWORD PTR -380[rbp], eax
	mov	rax, QWORD PTR -192[rbp]
	movzx	eax, BYTE PTR [rax]
	test	al, al
	je	.L93
	mov	rax, QWORD PTR -192[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	edx, DWORD PTR -380[rbp]
	mov	ecx, eax
	rol	edx, cl
	mov	eax, edx
	jmp	.L94
.L93:
	mov	eax, DWORD PTR -380[rbp]
.L94:
	mov	DWORD PTR -380[rbp], eax
	mov	eax, DWORD PTR -380[rbp]
	shr	eax, 24
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s1[rip]
	mov	ecx, DWORD PTR [rdx+rax]
	mov	eax, DWORD PTR -380[rbp]
	shr	eax, 16
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s2[rip]
	mov	eax, DWORD PTR [rdx+rax]
	xor	ecx, eax
	mov	eax, DWORD PTR -380[rbp]
	shr	eax, 8
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s3[rip]
	mov	eax, DWORD PTR [rdx+rax]
	sub	ecx, eax
	mov	eax, DWORD PTR -380[rbp]
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s4[rip]
	mov	eax, DWORD PTR [rdx+rax]
	add	ecx, eax
	mov	rax, QWORD PTR -200[rbp]
	add	rax, 8
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -200[rbp]
	add	rax, 8
	xor	edx, ecx
	mov	DWORD PTR [rax], edx
	nop
	mov	rax, QWORD PTR -408[rbp]
	add	rax, 112
	mov	QWORD PTR -336[rbp], rax
	mov	rax, QWORD PTR -408[rbp]
	add	rax, 220
	mov	QWORD PTR -328[rbp], rax
	lea	rax, -32[rbp]
	mov	QWORD PTR -224[rbp], rax
	mov	rax, QWORD PTR -328[rbp]
	mov	QWORD PTR -216[rbp], rax
	mov	rax, QWORD PTR -336[rbp]
	mov	QWORD PTR -208[rbp], rax
	mov	rax, QWORD PTR -208[rbp]
	add	rax, 12
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -224[rbp]
	mov	eax, DWORD PTR [rax]
	add	eax, edx
	mov	DWORD PTR -384[rbp], eax
	mov	rax, QWORD PTR -216[rbp]
	add	rax, 3
	movzx	eax, BYTE PTR [rax]
	test	al, al
	je	.L95
	mov	rax, QWORD PTR -216[rbp]
	add	rax, 3
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	edx, DWORD PTR -384[rbp]
	mov	ecx, eax
	rol	edx, cl
	mov	eax, edx
	jmp	.L96
.L95:
	mov	eax, DWORD PTR -384[rbp]
.L96:
	mov	DWORD PTR -384[rbp], eax
	mov	eax, DWORD PTR -384[rbp]
	shr	eax, 24
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s1[rip]
	mov	ecx, DWORD PTR [rdx+rax]
	mov	eax, DWORD PTR -384[rbp]
	shr	eax, 16
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s2[rip]
	mov	eax, DWORD PTR [rdx+rax]
	xor	ecx, eax
	mov	eax, DWORD PTR -384[rbp]
	shr	eax, 8
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s3[rip]
	mov	eax, DWORD PTR [rdx+rax]
	sub	ecx, eax
	mov	eax, DWORD PTR -384[rbp]
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s4[rip]
	mov	eax, DWORD PTR [rdx+rax]
	add	ecx, eax
	mov	rax, QWORD PTR -224[rbp]
	add	rax, 12
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -224[rbp]
	add	rax, 12
	xor	edx, ecx
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -208[rbp]
	add	rax, 8
	mov	eax, DWORD PTR [rax]
	mov	rdx, QWORD PTR -224[rbp]
	add	rdx, 4
	mov	edx, DWORD PTR [rdx]
	sub	eax, edx
	mov	DWORD PTR -384[rbp], eax
	mov	rax, QWORD PTR -216[rbp]
	add	rax, 2
	movzx	eax, BYTE PTR [rax]
	test	al, al
	je	.L97
	mov	rax, QWORD PTR -216[rbp]
	add	rax, 2
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	edx, DWORD PTR -384[rbp]
	mov	ecx, eax
	rol	edx, cl
	mov	eax, edx
	jmp	.L98
.L97:
	mov	eax, DWORD PTR -384[rbp]
.L98:
	mov	DWORD PTR -384[rbp], eax
	mov	eax, DWORD PTR -384[rbp]
	shr	eax, 24
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s1[rip]
	mov	ecx, DWORD PTR [rdx+rax]
	mov	eax, DWORD PTR -384[rbp]
	shr	eax, 16
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s2[rip]
	mov	eax, DWORD PTR [rdx+rax]
	add	ecx, eax
	mov	eax, DWORD PTR -384[rbp]
	shr	eax, 8
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s3[rip]
	mov	eax, DWORD PTR [rdx+rax]
	xor	ecx, eax
	mov	eax, DWORD PTR -384[rbp]
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s4[rip]
	mov	eax, DWORD PTR [rdx+rax]
	sub	ecx, eax
	mov	edx, ecx
	mov	rax, QWORD PTR -224[rbp]
	mov	eax, DWORD PTR [rax]
	xor	edx, eax
	mov	rax, QWORD PTR -224[rbp]
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -208[rbp]
	add	rax, 4
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -224[rbp]
	add	rax, 8
	mov	eax, DWORD PTR [rax]
	xor	eax, edx
	mov	DWORD PTR -384[rbp], eax
	mov	rax, QWORD PTR -216[rbp]
	add	rax, 1
	movzx	eax, BYTE PTR [rax]
	test	al, al
	je	.L99
	mov	rax, QWORD PTR -216[rbp]
	add	rax, 1
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	edx, DWORD PTR -384[rbp]
	mov	ecx, eax
	rol	edx, cl
	mov	eax, edx
	jmp	.L100
.L99:
	mov	eax, DWORD PTR -384[rbp]
.L100:
	mov	DWORD PTR -384[rbp], eax
	mov	eax, DWORD PTR -384[rbp]
	shr	eax, 24
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s1[rip]
	mov	eax, DWORD PTR [rdx+rax]
	mov	edx, DWORD PTR -384[rbp]
	shr	edx, 16
	movzx	edx, dl
	mov	edx, edx
	lea	rcx, 0[0+rdx*4]
	lea	rdx, s2[rip]
	mov	edx, DWORD PTR [rcx+rdx]
	sub	eax, edx
	mov	ecx, eax
	mov	eax, DWORD PTR -384[rbp]
	shr	eax, 8
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s3[rip]
	mov	eax, DWORD PTR [rdx+rax]
	add	ecx, eax
	mov	eax, DWORD PTR -384[rbp]
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s4[rip]
	mov	eax, DWORD PTR [rdx+rax]
	xor	ecx, eax
	mov	rax, QWORD PTR -224[rbp]
	add	rax, 4
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -224[rbp]
	add	rax, 4
	xor	edx, ecx
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -208[rbp]
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -224[rbp]
	add	rax, 12
	mov	eax, DWORD PTR [rax]
	add	eax, edx
	mov	DWORD PTR -384[rbp], eax
	mov	rax, QWORD PTR -216[rbp]
	movzx	eax, BYTE PTR [rax]
	test	al, al
	je	.L101
	mov	rax, QWORD PTR -216[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	edx, DWORD PTR -384[rbp]
	mov	ecx, eax
	rol	edx, cl
	mov	eax, edx
	jmp	.L102
.L101:
	mov	eax, DWORD PTR -384[rbp]
.L102:
	mov	DWORD PTR -384[rbp], eax
	mov	eax, DWORD PTR -384[rbp]
	shr	eax, 24
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s1[rip]
	mov	ecx, DWORD PTR [rdx+rax]
	mov	eax, DWORD PTR -384[rbp]
	shr	eax, 16
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s2[rip]
	mov	eax, DWORD PTR [rdx+rax]
	xor	ecx, eax
	mov	eax, DWORD PTR -384[rbp]
	shr	eax, 8
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s3[rip]
	mov	eax, DWORD PTR [rdx+rax]
	sub	ecx, eax
	mov	eax, DWORD PTR -384[rbp]
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s4[rip]
	mov	eax, DWORD PTR [rdx+rax]
	add	ecx, eax
	mov	rax, QWORD PTR -224[rbp]
	add	rax, 8
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -224[rbp]
	add	rax, 8
	xor	edx, ecx
	mov	DWORD PTR [rax], edx
	nop
	mov	rax, QWORD PTR -408[rbp]
	sub	rax, -128
	mov	QWORD PTR -336[rbp], rax
	mov	rax, QWORD PTR -408[rbp]
	add	rax, 224
	mov	QWORD PTR -328[rbp], rax
	lea	rax, -32[rbp]
	mov	QWORD PTR -248[rbp], rax
	mov	rax, QWORD PTR -328[rbp]
	mov	QWORD PTR -240[rbp], rax
	mov	rax, QWORD PTR -336[rbp]
	mov	QWORD PTR -232[rbp], rax
	mov	rax, QWORD PTR -232[rbp]
	add	rax, 12
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -248[rbp]
	mov	eax, DWORD PTR [rax]
	add	eax, edx
	mov	DWORD PTR -388[rbp], eax
	mov	rax, QWORD PTR -240[rbp]
	add	rax, 3
	movzx	eax, BYTE PTR [rax]
	test	al, al
	je	.L103
	mov	rax, QWORD PTR -240[rbp]
	add	rax, 3
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	edx, DWORD PTR -388[rbp]
	mov	ecx, eax
	rol	edx, cl
	mov	eax, edx
	jmp	.L104
.L103:
	mov	eax, DWORD PTR -388[rbp]
.L104:
	mov	DWORD PTR -388[rbp], eax
	mov	eax, DWORD PTR -388[rbp]
	shr	eax, 24
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s1[rip]
	mov	ecx, DWORD PTR [rdx+rax]
	mov	eax, DWORD PTR -388[rbp]
	shr	eax, 16
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s2[rip]
	mov	eax, DWORD PTR [rdx+rax]
	xor	ecx, eax
	mov	eax, DWORD PTR -388[rbp]
	shr	eax, 8
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s3[rip]
	mov	eax, DWORD PTR [rdx+rax]
	sub	ecx, eax
	mov	eax, DWORD PTR -388[rbp]
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s4[rip]
	mov	eax, DWORD PTR [rdx+rax]
	add	ecx, eax
	mov	rax, QWORD PTR -248[rbp]
	add	rax, 12
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -248[rbp]
	add	rax, 12
	xor	edx, ecx
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -232[rbp]
	add	rax, 8
	mov	eax, DWORD PTR [rax]
	mov	rdx, QWORD PTR -248[rbp]
	add	rdx, 4
	mov	edx, DWORD PTR [rdx]
	sub	eax, edx
	mov	DWORD PTR -388[rbp], eax
	mov	rax, QWORD PTR -240[rbp]
	add	rax, 2
	movzx	eax, BYTE PTR [rax]
	test	al, al
	je	.L105
	mov	rax, QWORD PTR -240[rbp]
	add	rax, 2
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	edx, DWORD PTR -388[rbp]
	mov	ecx, eax
	rol	edx, cl
	mov	eax, edx
	jmp	.L106
.L105:
	mov	eax, DWORD PTR -388[rbp]
.L106:
	mov	DWORD PTR -388[rbp], eax
	mov	eax, DWORD PTR -388[rbp]
	shr	eax, 24
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s1[rip]
	mov	ecx, DWORD PTR [rdx+rax]
	mov	eax, DWORD PTR -388[rbp]
	shr	eax, 16
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s2[rip]
	mov	eax, DWORD PTR [rdx+rax]
	add	ecx, eax
	mov	eax, DWORD PTR -388[rbp]
	shr	eax, 8
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s3[rip]
	mov	eax, DWORD PTR [rdx+rax]
	xor	ecx, eax
	mov	eax, DWORD PTR -388[rbp]
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s4[rip]
	mov	eax, DWORD PTR [rdx+rax]
	sub	ecx, eax
	mov	edx, ecx
	mov	rax, QWORD PTR -248[rbp]
	mov	eax, DWORD PTR [rax]
	xor	edx, eax
	mov	rax, QWORD PTR -248[rbp]
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -232[rbp]
	add	rax, 4
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -248[rbp]
	add	rax, 8
	mov	eax, DWORD PTR [rax]
	xor	eax, edx
	mov	DWORD PTR -388[rbp], eax
	mov	rax, QWORD PTR -240[rbp]
	add	rax, 1
	movzx	eax, BYTE PTR [rax]
	test	al, al
	je	.L107
	mov	rax, QWORD PTR -240[rbp]
	add	rax, 1
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	edx, DWORD PTR -388[rbp]
	mov	ecx, eax
	rol	edx, cl
	mov	eax, edx
	jmp	.L108
.L107:
	mov	eax, DWORD PTR -388[rbp]
.L108:
	mov	DWORD PTR -388[rbp], eax
	mov	eax, DWORD PTR -388[rbp]
	shr	eax, 24
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s1[rip]
	mov	eax, DWORD PTR [rdx+rax]
	mov	edx, DWORD PTR -388[rbp]
	shr	edx, 16
	movzx	edx, dl
	mov	edx, edx
	lea	rcx, 0[0+rdx*4]
	lea	rdx, s2[rip]
	mov	edx, DWORD PTR [rcx+rdx]
	sub	eax, edx
	mov	ecx, eax
	mov	eax, DWORD PTR -388[rbp]
	shr	eax, 8
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s3[rip]
	mov	eax, DWORD PTR [rdx+rax]
	add	ecx, eax
	mov	eax, DWORD PTR -388[rbp]
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s4[rip]
	mov	eax, DWORD PTR [rdx+rax]
	xor	ecx, eax
	mov	rax, QWORD PTR -248[rbp]
	add	rax, 4
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -248[rbp]
	add	rax, 4
	xor	edx, ecx
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -232[rbp]
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -248[rbp]
	add	rax, 12
	mov	eax, DWORD PTR [rax]
	add	eax, edx
	mov	DWORD PTR -388[rbp], eax
	mov	rax, QWORD PTR -240[rbp]
	movzx	eax, BYTE PTR [rax]
	test	al, al
	je	.L109
	mov	rax, QWORD PTR -240[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	edx, DWORD PTR -388[rbp]
	mov	ecx, eax
	rol	edx, cl
	mov	eax, edx
	jmp	.L110
.L109:
	mov	eax, DWORD PTR -388[rbp]
.L110:
	mov	DWORD PTR -388[rbp], eax
	mov	eax, DWORD PTR -388[rbp]
	shr	eax, 24
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s1[rip]
	mov	ecx, DWORD PTR [rdx+rax]
	mov	eax, DWORD PTR -388[rbp]
	shr	eax, 16
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s2[rip]
	mov	eax, DWORD PTR [rdx+rax]
	xor	ecx, eax
	mov	eax, DWORD PTR -388[rbp]
	shr	eax, 8
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s3[rip]
	mov	eax, DWORD PTR [rdx+rax]
	sub	ecx, eax
	mov	eax, DWORD PTR -388[rbp]
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s4[rip]
	mov	eax, DWORD PTR [rdx+rax]
	add	ecx, eax
	mov	rax, QWORD PTR -248[rbp]
	add	rax, 8
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -248[rbp]
	add	rax, 8
	xor	edx, ecx
	mov	DWORD PTR [rax], edx
	nop
	mov	rax, QWORD PTR -408[rbp]
	add	rax, 144
	mov	QWORD PTR -336[rbp], rax
	mov	rax, QWORD PTR -408[rbp]
	add	rax, 228
	mov	QWORD PTR -328[rbp], rax
	lea	rax, -32[rbp]
	mov	QWORD PTR -272[rbp], rax
	mov	rax, QWORD PTR -328[rbp]
	mov	QWORD PTR -264[rbp], rax
	mov	rax, QWORD PTR -336[rbp]
	mov	QWORD PTR -256[rbp], rax
	mov	rax, QWORD PTR -256[rbp]
	add	rax, 12
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -272[rbp]
	mov	eax, DWORD PTR [rax]
	add	eax, edx
	mov	DWORD PTR -392[rbp], eax
	mov	rax, QWORD PTR -264[rbp]
	add	rax, 3
	movzx	eax, BYTE PTR [rax]
	test	al, al
	je	.L111
	mov	rax, QWORD PTR -264[rbp]
	add	rax, 3
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	edx, DWORD PTR -392[rbp]
	mov	ecx, eax
	rol	edx, cl
	mov	eax, edx
	jmp	.L112
.L111:
	mov	eax, DWORD PTR -392[rbp]
.L112:
	mov	DWORD PTR -392[rbp], eax
	mov	eax, DWORD PTR -392[rbp]
	shr	eax, 24
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s1[rip]
	mov	ecx, DWORD PTR [rdx+rax]
	mov	eax, DWORD PTR -392[rbp]
	shr	eax, 16
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s2[rip]
	mov	eax, DWORD PTR [rdx+rax]
	xor	ecx, eax
	mov	eax, DWORD PTR -392[rbp]
	shr	eax, 8
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s3[rip]
	mov	eax, DWORD PTR [rdx+rax]
	sub	ecx, eax
	mov	eax, DWORD PTR -392[rbp]
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s4[rip]
	mov	eax, DWORD PTR [rdx+rax]
	add	ecx, eax
	mov	rax, QWORD PTR -272[rbp]
	add	rax, 12
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -272[rbp]
	add	rax, 12
	xor	edx, ecx
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -256[rbp]
	add	rax, 8
	mov	eax, DWORD PTR [rax]
	mov	rdx, QWORD PTR -272[rbp]
	add	rdx, 4
	mov	edx, DWORD PTR [rdx]
	sub	eax, edx
	mov	DWORD PTR -392[rbp], eax
	mov	rax, QWORD PTR -264[rbp]
	add	rax, 2
	movzx	eax, BYTE PTR [rax]
	test	al, al
	je	.L113
	mov	rax, QWORD PTR -264[rbp]
	add	rax, 2
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	edx, DWORD PTR -392[rbp]
	mov	ecx, eax
	rol	edx, cl
	mov	eax, edx
	jmp	.L114
.L113:
	mov	eax, DWORD PTR -392[rbp]
.L114:
	mov	DWORD PTR -392[rbp], eax
	mov	eax, DWORD PTR -392[rbp]
	shr	eax, 24
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s1[rip]
	mov	ecx, DWORD PTR [rdx+rax]
	mov	eax, DWORD PTR -392[rbp]
	shr	eax, 16
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s2[rip]
	mov	eax, DWORD PTR [rdx+rax]
	add	ecx, eax
	mov	eax, DWORD PTR -392[rbp]
	shr	eax, 8
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s3[rip]
	mov	eax, DWORD PTR [rdx+rax]
	xor	ecx, eax
	mov	eax, DWORD PTR -392[rbp]
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s4[rip]
	mov	eax, DWORD PTR [rdx+rax]
	sub	ecx, eax
	mov	edx, ecx
	mov	rax, QWORD PTR -272[rbp]
	mov	eax, DWORD PTR [rax]
	xor	edx, eax
	mov	rax, QWORD PTR -272[rbp]
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -256[rbp]
	add	rax, 4
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -272[rbp]
	add	rax, 8
	mov	eax, DWORD PTR [rax]
	xor	eax, edx
	mov	DWORD PTR -392[rbp], eax
	mov	rax, QWORD PTR -264[rbp]
	add	rax, 1
	movzx	eax, BYTE PTR [rax]
	test	al, al
	je	.L115
	mov	rax, QWORD PTR -264[rbp]
	add	rax, 1
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	edx, DWORD PTR -392[rbp]
	mov	ecx, eax
	rol	edx, cl
	mov	eax, edx
	jmp	.L116
.L115:
	mov	eax, DWORD PTR -392[rbp]
.L116:
	mov	DWORD PTR -392[rbp], eax
	mov	eax, DWORD PTR -392[rbp]
	shr	eax, 24
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s1[rip]
	mov	eax, DWORD PTR [rdx+rax]
	mov	edx, DWORD PTR -392[rbp]
	shr	edx, 16
	movzx	edx, dl
	mov	edx, edx
	lea	rcx, 0[0+rdx*4]
	lea	rdx, s2[rip]
	mov	edx, DWORD PTR [rcx+rdx]
	sub	eax, edx
	mov	ecx, eax
	mov	eax, DWORD PTR -392[rbp]
	shr	eax, 8
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s3[rip]
	mov	eax, DWORD PTR [rdx+rax]
	add	ecx, eax
	mov	eax, DWORD PTR -392[rbp]
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s4[rip]
	mov	eax, DWORD PTR [rdx+rax]
	xor	ecx, eax
	mov	rax, QWORD PTR -272[rbp]
	add	rax, 4
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -272[rbp]
	add	rax, 4
	xor	edx, ecx
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -256[rbp]
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -272[rbp]
	add	rax, 12
	mov	eax, DWORD PTR [rax]
	add	eax, edx
	mov	DWORD PTR -392[rbp], eax
	mov	rax, QWORD PTR -264[rbp]
	movzx	eax, BYTE PTR [rax]
	test	al, al
	je	.L117
	mov	rax, QWORD PTR -264[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	edx, DWORD PTR -392[rbp]
	mov	ecx, eax
	rol	edx, cl
	mov	eax, edx
	jmp	.L118
.L117:
	mov	eax, DWORD PTR -392[rbp]
.L118:
	mov	DWORD PTR -392[rbp], eax
	mov	eax, DWORD PTR -392[rbp]
	shr	eax, 24
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s1[rip]
	mov	ecx, DWORD PTR [rdx+rax]
	mov	eax, DWORD PTR -392[rbp]
	shr	eax, 16
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s2[rip]
	mov	eax, DWORD PTR [rdx+rax]
	xor	ecx, eax
	mov	eax, DWORD PTR -392[rbp]
	shr	eax, 8
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s3[rip]
	mov	eax, DWORD PTR [rdx+rax]
	sub	ecx, eax
	mov	eax, DWORD PTR -392[rbp]
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s4[rip]
	mov	eax, DWORD PTR [rdx+rax]
	add	ecx, eax
	mov	rax, QWORD PTR -272[rbp]
	add	rax, 8
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -272[rbp]
	add	rax, 8
	xor	edx, ecx
	mov	DWORD PTR [rax], edx
	nop
	mov	rax, QWORD PTR -408[rbp]
	add	rax, 160
	mov	QWORD PTR -336[rbp], rax
	mov	rax, QWORD PTR -408[rbp]
	add	rax, 232
	mov	QWORD PTR -328[rbp], rax
	lea	rax, -32[rbp]
	mov	QWORD PTR -296[rbp], rax
	mov	rax, QWORD PTR -328[rbp]
	mov	QWORD PTR -288[rbp], rax
	mov	rax, QWORD PTR -336[rbp]
	mov	QWORD PTR -280[rbp], rax
	mov	rax, QWORD PTR -280[rbp]
	add	rax, 12
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -296[rbp]
	mov	eax, DWORD PTR [rax]
	add	eax, edx
	mov	DWORD PTR -396[rbp], eax
	mov	rax, QWORD PTR -288[rbp]
	add	rax, 3
	movzx	eax, BYTE PTR [rax]
	test	al, al
	je	.L119
	mov	rax, QWORD PTR -288[rbp]
	add	rax, 3
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	edx, DWORD PTR -396[rbp]
	mov	ecx, eax
	rol	edx, cl
	mov	eax, edx
	jmp	.L120
.L119:
	mov	eax, DWORD PTR -396[rbp]
.L120:
	mov	DWORD PTR -396[rbp], eax
	mov	eax, DWORD PTR -396[rbp]
	shr	eax, 24
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s1[rip]
	mov	ecx, DWORD PTR [rdx+rax]
	mov	eax, DWORD PTR -396[rbp]
	shr	eax, 16
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s2[rip]
	mov	eax, DWORD PTR [rdx+rax]
	xor	ecx, eax
	mov	eax, DWORD PTR -396[rbp]
	shr	eax, 8
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s3[rip]
	mov	eax, DWORD PTR [rdx+rax]
	sub	ecx, eax
	mov	eax, DWORD PTR -396[rbp]
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s4[rip]
	mov	eax, DWORD PTR [rdx+rax]
	add	ecx, eax
	mov	rax, QWORD PTR -296[rbp]
	add	rax, 12
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -296[rbp]
	add	rax, 12
	xor	edx, ecx
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -280[rbp]
	add	rax, 8
	mov	eax, DWORD PTR [rax]
	mov	rdx, QWORD PTR -296[rbp]
	add	rdx, 4
	mov	edx, DWORD PTR [rdx]
	sub	eax, edx
	mov	DWORD PTR -396[rbp], eax
	mov	rax, QWORD PTR -288[rbp]
	add	rax, 2
	movzx	eax, BYTE PTR [rax]
	test	al, al
	je	.L121
	mov	rax, QWORD PTR -288[rbp]
	add	rax, 2
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	edx, DWORD PTR -396[rbp]
	mov	ecx, eax
	rol	edx, cl
	mov	eax, edx
	jmp	.L122
.L121:
	mov	eax, DWORD PTR -396[rbp]
.L122:
	mov	DWORD PTR -396[rbp], eax
	mov	eax, DWORD PTR -396[rbp]
	shr	eax, 24
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s1[rip]
	mov	ecx, DWORD PTR [rdx+rax]
	mov	eax, DWORD PTR -396[rbp]
	shr	eax, 16
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s2[rip]
	mov	eax, DWORD PTR [rdx+rax]
	add	ecx, eax
	mov	eax, DWORD PTR -396[rbp]
	shr	eax, 8
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s3[rip]
	mov	eax, DWORD PTR [rdx+rax]
	xor	ecx, eax
	mov	eax, DWORD PTR -396[rbp]
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s4[rip]
	mov	eax, DWORD PTR [rdx+rax]
	sub	ecx, eax
	mov	edx, ecx
	mov	rax, QWORD PTR -296[rbp]
	mov	eax, DWORD PTR [rax]
	xor	edx, eax
	mov	rax, QWORD PTR -296[rbp]
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -280[rbp]
	add	rax, 4
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -296[rbp]
	add	rax, 8
	mov	eax, DWORD PTR [rax]
	xor	eax, edx
	mov	DWORD PTR -396[rbp], eax
	mov	rax, QWORD PTR -288[rbp]
	add	rax, 1
	movzx	eax, BYTE PTR [rax]
	test	al, al
	je	.L123
	mov	rax, QWORD PTR -288[rbp]
	add	rax, 1
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	edx, DWORD PTR -396[rbp]
	mov	ecx, eax
	rol	edx, cl
	mov	eax, edx
	jmp	.L124
.L123:
	mov	eax, DWORD PTR -396[rbp]
.L124:
	mov	DWORD PTR -396[rbp], eax
	mov	eax, DWORD PTR -396[rbp]
	shr	eax, 24
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s1[rip]
	mov	eax, DWORD PTR [rdx+rax]
	mov	edx, DWORD PTR -396[rbp]
	shr	edx, 16
	movzx	edx, dl
	mov	edx, edx
	lea	rcx, 0[0+rdx*4]
	lea	rdx, s2[rip]
	mov	edx, DWORD PTR [rcx+rdx]
	sub	eax, edx
	mov	ecx, eax
	mov	eax, DWORD PTR -396[rbp]
	shr	eax, 8
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s3[rip]
	mov	eax, DWORD PTR [rdx+rax]
	add	ecx, eax
	mov	eax, DWORD PTR -396[rbp]
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s4[rip]
	mov	eax, DWORD PTR [rdx+rax]
	xor	ecx, eax
	mov	rax, QWORD PTR -296[rbp]
	add	rax, 4
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -296[rbp]
	add	rax, 4
	xor	edx, ecx
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -280[rbp]
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -296[rbp]
	add	rax, 12
	mov	eax, DWORD PTR [rax]
	add	eax, edx
	mov	DWORD PTR -396[rbp], eax
	mov	rax, QWORD PTR -288[rbp]
	movzx	eax, BYTE PTR [rax]
	test	al, al
	je	.L125
	mov	rax, QWORD PTR -288[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	edx, DWORD PTR -396[rbp]
	mov	ecx, eax
	rol	edx, cl
	mov	eax, edx
	jmp	.L126
.L125:
	mov	eax, DWORD PTR -396[rbp]
.L126:
	mov	DWORD PTR -396[rbp], eax
	mov	eax, DWORD PTR -396[rbp]
	shr	eax, 24
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s1[rip]
	mov	ecx, DWORD PTR [rdx+rax]
	mov	eax, DWORD PTR -396[rbp]
	shr	eax, 16
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s2[rip]
	mov	eax, DWORD PTR [rdx+rax]
	xor	ecx, eax
	mov	eax, DWORD PTR -396[rbp]
	shr	eax, 8
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s3[rip]
	mov	eax, DWORD PTR [rdx+rax]
	sub	ecx, eax
	mov	eax, DWORD PTR -396[rbp]
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s4[rip]
	mov	eax, DWORD PTR [rdx+rax]
	add	ecx, eax
	mov	rax, QWORD PTR -296[rbp]
	add	rax, 8
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -296[rbp]
	add	rax, 8
	xor	edx, ecx
	mov	DWORD PTR [rax], edx
	nop
	mov	rax, QWORD PTR -408[rbp]
	add	rax, 176
	mov	QWORD PTR -336[rbp], rax
	mov	rax, QWORD PTR -408[rbp]
	add	rax, 236
	mov	QWORD PTR -328[rbp], rax
	lea	rax, -32[rbp]
	mov	QWORD PTR -320[rbp], rax
	mov	rax, QWORD PTR -328[rbp]
	mov	QWORD PTR -312[rbp], rax
	mov	rax, QWORD PTR -336[rbp]
	mov	QWORD PTR -304[rbp], rax
	mov	rax, QWORD PTR -304[rbp]
	add	rax, 12
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -320[rbp]
	mov	eax, DWORD PTR [rax]
	add	eax, edx
	mov	DWORD PTR -400[rbp], eax
	mov	rax, QWORD PTR -312[rbp]
	add	rax, 3
	movzx	eax, BYTE PTR [rax]
	test	al, al
	je	.L127
	mov	rax, QWORD PTR -312[rbp]
	add	rax, 3
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	edx, DWORD PTR -400[rbp]
	mov	ecx, eax
	rol	edx, cl
	mov	eax, edx
	jmp	.L128
.L127:
	mov	eax, DWORD PTR -400[rbp]
.L128:
	mov	DWORD PTR -400[rbp], eax
	mov	eax, DWORD PTR -400[rbp]
	shr	eax, 24
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s1[rip]
	mov	ecx, DWORD PTR [rdx+rax]
	mov	eax, DWORD PTR -400[rbp]
	shr	eax, 16
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s2[rip]
	mov	eax, DWORD PTR [rdx+rax]
	xor	ecx, eax
	mov	eax, DWORD PTR -400[rbp]
	shr	eax, 8
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s3[rip]
	mov	eax, DWORD PTR [rdx+rax]
	sub	ecx, eax
	mov	eax, DWORD PTR -400[rbp]
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s4[rip]
	mov	eax, DWORD PTR [rdx+rax]
	add	ecx, eax
	mov	rax, QWORD PTR -320[rbp]
	add	rax, 12
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -320[rbp]
	add	rax, 12
	xor	edx, ecx
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -304[rbp]
	add	rax, 8
	mov	eax, DWORD PTR [rax]
	mov	rdx, QWORD PTR -320[rbp]
	add	rdx, 4
	mov	edx, DWORD PTR [rdx]
	sub	eax, edx
	mov	DWORD PTR -400[rbp], eax
	mov	rax, QWORD PTR -312[rbp]
	add	rax, 2
	movzx	eax, BYTE PTR [rax]
	test	al, al
	je	.L129
	mov	rax, QWORD PTR -312[rbp]
	add	rax, 2
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	edx, DWORD PTR -400[rbp]
	mov	ecx, eax
	rol	edx, cl
	mov	eax, edx
	jmp	.L130
.L129:
	mov	eax, DWORD PTR -400[rbp]
.L130:
	mov	DWORD PTR -400[rbp], eax
	mov	eax, DWORD PTR -400[rbp]
	shr	eax, 24
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s1[rip]
	mov	ecx, DWORD PTR [rdx+rax]
	mov	eax, DWORD PTR -400[rbp]
	shr	eax, 16
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s2[rip]
	mov	eax, DWORD PTR [rdx+rax]
	add	ecx, eax
	mov	eax, DWORD PTR -400[rbp]
	shr	eax, 8
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s3[rip]
	mov	eax, DWORD PTR [rdx+rax]
	xor	ecx, eax
	mov	eax, DWORD PTR -400[rbp]
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s4[rip]
	mov	eax, DWORD PTR [rdx+rax]
	sub	ecx, eax
	mov	edx, ecx
	mov	rax, QWORD PTR -320[rbp]
	mov	eax, DWORD PTR [rax]
	xor	edx, eax
	mov	rax, QWORD PTR -320[rbp]
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -304[rbp]
	add	rax, 4
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -320[rbp]
	add	rax, 8
	mov	eax, DWORD PTR [rax]
	xor	eax, edx
	mov	DWORD PTR -400[rbp], eax
	mov	rax, QWORD PTR -312[rbp]
	add	rax, 1
	movzx	eax, BYTE PTR [rax]
	test	al, al
	je	.L131
	mov	rax, QWORD PTR -312[rbp]
	add	rax, 1
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	edx, DWORD PTR -400[rbp]
	mov	ecx, eax
	rol	edx, cl
	mov	eax, edx
	jmp	.L132
.L131:
	mov	eax, DWORD PTR -400[rbp]
.L132:
	mov	DWORD PTR -400[rbp], eax
	mov	eax, DWORD PTR -400[rbp]
	shr	eax, 24
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s1[rip]
	mov	eax, DWORD PTR [rdx+rax]
	mov	edx, DWORD PTR -400[rbp]
	shr	edx, 16
	movzx	edx, dl
	mov	edx, edx
	lea	rcx, 0[0+rdx*4]
	lea	rdx, s2[rip]
	mov	edx, DWORD PTR [rcx+rdx]
	sub	eax, edx
	mov	ecx, eax
	mov	eax, DWORD PTR -400[rbp]
	shr	eax, 8
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s3[rip]
	mov	eax, DWORD PTR [rdx+rax]
	add	ecx, eax
	mov	eax, DWORD PTR -400[rbp]
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s4[rip]
	mov	eax, DWORD PTR [rdx+rax]
	xor	ecx, eax
	mov	rax, QWORD PTR -320[rbp]
	add	rax, 4
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -320[rbp]
	add	rax, 4
	xor	edx, ecx
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -304[rbp]
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -320[rbp]
	add	rax, 12
	mov	eax, DWORD PTR [rax]
	add	eax, edx
	mov	DWORD PTR -400[rbp], eax
	mov	rax, QWORD PTR -312[rbp]
	movzx	eax, BYTE PTR [rax]
	test	al, al
	je	.L133
	mov	rax, QWORD PTR -312[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	edx, DWORD PTR -400[rbp]
	mov	ecx, eax
	rol	edx, cl
	mov	eax, edx
	jmp	.L134
.L133:
	mov	eax, DWORD PTR -400[rbp]
.L134:
	mov	DWORD PTR -400[rbp], eax
	mov	eax, DWORD PTR -400[rbp]
	shr	eax, 24
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s1[rip]
	mov	ecx, DWORD PTR [rdx+rax]
	mov	eax, DWORD PTR -400[rbp]
	shr	eax, 16
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s2[rip]
	mov	eax, DWORD PTR [rdx+rax]
	xor	ecx, eax
	mov	eax, DWORD PTR -400[rbp]
	shr	eax, 8
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s3[rip]
	mov	eax, DWORD PTR [rdx+rax]
	sub	ecx, eax
	mov	eax, DWORD PTR -400[rbp]
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s4[rip]
	mov	eax, DWORD PTR [rdx+rax]
	add	ecx, eax
	mov	rax, QWORD PTR -320[rbp]
	add	rax, 8
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -320[rbp]
	add	rax, 8
	xor	edx, ecx
	mov	DWORD PTR [rax], edx
	nop
	mov	edx, DWORD PTR -32[rbp]
	mov	rax, QWORD PTR -344[rbp]
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -344[rbp]
	lea	rdx, 4[rax]
	mov	eax, DWORD PTR -28[rbp]
	mov	DWORD PTR [rdx], eax
	mov	rax, QWORD PTR -344[rbp]
	lea	rdx, 8[rax]
	mov	eax, DWORD PTR -24[rbp]
	mov	DWORD PTR [rdx], eax
	mov	rax, QWORD PTR -344[rbp]
	lea	rdx, 12[rax]
	mov	eax, DWORD PTR -20[rbp]
	mov	DWORD PTR [rdx], eax
	nop
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L135
	call	__stack_chk_fail@PLT
.L135:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE4:
	.size	cast6_encrypt, .-cast6_encrypt
	.globl	cast6_decrypt
	.type	cast6_decrypt, @function
cast6_decrypt:
.LFB5:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 432
	mov	QWORD PTR -408[rbp], rdi
	mov	QWORD PTR -416[rbp], rsi
	mov	QWORD PTR -424[rbp], rdx
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	mov	rax, QWORD PTR -424[rbp]
	mov	QWORD PTR -352[rbp], rax
	mov	rax, QWORD PTR -416[rbp]
	mov	QWORD PTR -344[rbp], rax
	mov	rax, QWORD PTR -352[rbp]
	mov	eax, DWORD PTR [rax]
	mov	DWORD PTR -32[rbp], eax
	mov	rax, QWORD PTR -352[rbp]
	mov	eax, DWORD PTR 4[rax]
	mov	DWORD PTR -28[rbp], eax
	mov	rax, QWORD PTR -352[rbp]
	mov	eax, DWORD PTR 8[rax]
	mov	DWORD PTR -24[rbp], eax
	mov	rax, QWORD PTR -352[rbp]
	mov	eax, DWORD PTR 12[rax]
	mov	DWORD PTR -20[rbp], eax
	mov	rax, QWORD PTR -408[rbp]
	add	rax, 176
	mov	QWORD PTR -336[rbp], rax
	mov	rax, QWORD PTR -408[rbp]
	add	rax, 236
	mov	QWORD PTR -328[rbp], rax
	lea	rax, -32[rbp]
	mov	QWORD PTR -56[rbp], rax
	mov	rax, QWORD PTR -328[rbp]
	mov	QWORD PTR -48[rbp], rax
	mov	rax, QWORD PTR -336[rbp]
	mov	QWORD PTR -40[rbp], rax
	mov	rax, QWORD PTR -40[rbp]
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -56[rbp]
	add	rax, 12
	mov	eax, DWORD PTR [rax]
	add	eax, edx
	mov	DWORD PTR -356[rbp], eax
	mov	rax, QWORD PTR -48[rbp]
	movzx	eax, BYTE PTR [rax]
	test	al, al
	je	.L137
	mov	rax, QWORD PTR -48[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	edx, DWORD PTR -356[rbp]
	mov	ecx, eax
	rol	edx, cl
	mov	eax, edx
	jmp	.L138
.L137:
	mov	eax, DWORD PTR -356[rbp]
.L138:
	mov	DWORD PTR -356[rbp], eax
	mov	eax, DWORD PTR -356[rbp]
	shr	eax, 24
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s1[rip]
	mov	ecx, DWORD PTR [rdx+rax]
	mov	eax, DWORD PTR -356[rbp]
	shr	eax, 16
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s2[rip]
	mov	eax, DWORD PTR [rdx+rax]
	xor	ecx, eax
	mov	eax, DWORD PTR -356[rbp]
	shr	eax, 8
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s3[rip]
	mov	eax, DWORD PTR [rdx+rax]
	sub	ecx, eax
	mov	eax, DWORD PTR -356[rbp]
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s4[rip]
	mov	eax, DWORD PTR [rdx+rax]
	add	ecx, eax
	mov	rax, QWORD PTR -56[rbp]
	add	rax, 8
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -56[rbp]
	add	rax, 8
	xor	edx, ecx
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -40[rbp]
	add	rax, 4
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -56[rbp]
	add	rax, 8
	mov	eax, DWORD PTR [rax]
	xor	eax, edx
	mov	DWORD PTR -356[rbp], eax
	mov	rax, QWORD PTR -48[rbp]
	add	rax, 1
	movzx	eax, BYTE PTR [rax]
	test	al, al
	je	.L139
	mov	rax, QWORD PTR -48[rbp]
	add	rax, 1
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	edx, DWORD PTR -356[rbp]
	mov	ecx, eax
	rol	edx, cl
	mov	eax, edx
	jmp	.L140
.L139:
	mov	eax, DWORD PTR -356[rbp]
.L140:
	mov	DWORD PTR -356[rbp], eax
	mov	eax, DWORD PTR -356[rbp]
	shr	eax, 24
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s1[rip]
	mov	eax, DWORD PTR [rdx+rax]
	mov	edx, DWORD PTR -356[rbp]
	shr	edx, 16
	movzx	edx, dl
	mov	edx, edx
	lea	rcx, 0[0+rdx*4]
	lea	rdx, s2[rip]
	mov	edx, DWORD PTR [rcx+rdx]
	sub	eax, edx
	mov	ecx, eax
	mov	eax, DWORD PTR -356[rbp]
	shr	eax, 8
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s3[rip]
	mov	eax, DWORD PTR [rdx+rax]
	add	ecx, eax
	mov	eax, DWORD PTR -356[rbp]
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s4[rip]
	mov	eax, DWORD PTR [rdx+rax]
	xor	ecx, eax
	mov	rax, QWORD PTR -56[rbp]
	add	rax, 4
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -56[rbp]
	add	rax, 4
	xor	edx, ecx
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -40[rbp]
	add	rax, 8
	mov	eax, DWORD PTR [rax]
	mov	rdx, QWORD PTR -56[rbp]
	add	rdx, 4
	mov	edx, DWORD PTR [rdx]
	sub	eax, edx
	mov	DWORD PTR -356[rbp], eax
	mov	rax, QWORD PTR -48[rbp]
	add	rax, 2
	movzx	eax, BYTE PTR [rax]
	test	al, al
	je	.L141
	mov	rax, QWORD PTR -48[rbp]
	add	rax, 2
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	edx, DWORD PTR -356[rbp]
	mov	ecx, eax
	rol	edx, cl
	mov	eax, edx
	jmp	.L142
.L141:
	mov	eax, DWORD PTR -356[rbp]
.L142:
	mov	DWORD PTR -356[rbp], eax
	mov	eax, DWORD PTR -356[rbp]
	shr	eax, 24
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s1[rip]
	mov	ecx, DWORD PTR [rdx+rax]
	mov	eax, DWORD PTR -356[rbp]
	shr	eax, 16
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s2[rip]
	mov	eax, DWORD PTR [rdx+rax]
	add	ecx, eax
	mov	eax, DWORD PTR -356[rbp]
	shr	eax, 8
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s3[rip]
	mov	eax, DWORD PTR [rdx+rax]
	xor	ecx, eax
	mov	eax, DWORD PTR -356[rbp]
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s4[rip]
	mov	eax, DWORD PTR [rdx+rax]
	sub	ecx, eax
	mov	edx, ecx
	mov	rax, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR [rax]
	xor	edx, eax
	mov	rax, QWORD PTR -56[rbp]
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -40[rbp]
	add	rax, 12
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -56[rbp]
	mov	eax, DWORD PTR [rax]
	add	eax, edx
	mov	DWORD PTR -356[rbp], eax
	mov	rax, QWORD PTR -48[rbp]
	add	rax, 3
	movzx	eax, BYTE PTR [rax]
	test	al, al
	je	.L143
	mov	rax, QWORD PTR -48[rbp]
	add	rax, 3
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	edx, DWORD PTR -356[rbp]
	mov	ecx, eax
	rol	edx, cl
	mov	eax, edx
	jmp	.L144
.L143:
	mov	eax, DWORD PTR -356[rbp]
.L144:
	mov	DWORD PTR -356[rbp], eax
	mov	eax, DWORD PTR -356[rbp]
	shr	eax, 24
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s1[rip]
	mov	ecx, DWORD PTR [rdx+rax]
	mov	eax, DWORD PTR -356[rbp]
	shr	eax, 16
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s2[rip]
	mov	eax, DWORD PTR [rdx+rax]
	xor	ecx, eax
	mov	eax, DWORD PTR -356[rbp]
	shr	eax, 8
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s3[rip]
	mov	eax, DWORD PTR [rdx+rax]
	sub	ecx, eax
	mov	eax, DWORD PTR -356[rbp]
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s4[rip]
	mov	eax, DWORD PTR [rdx+rax]
	add	ecx, eax
	mov	rax, QWORD PTR -56[rbp]
	add	rax, 12
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -56[rbp]
	add	rax, 12
	xor	edx, ecx
	mov	DWORD PTR [rax], edx
	nop
	mov	rax, QWORD PTR -408[rbp]
	add	rax, 160
	mov	QWORD PTR -336[rbp], rax
	mov	rax, QWORD PTR -408[rbp]
	add	rax, 232
	mov	QWORD PTR -328[rbp], rax
	lea	rax, -32[rbp]
	mov	QWORD PTR -80[rbp], rax
	mov	rax, QWORD PTR -328[rbp]
	mov	QWORD PTR -72[rbp], rax
	mov	rax, QWORD PTR -336[rbp]
	mov	QWORD PTR -64[rbp], rax
	mov	rax, QWORD PTR -64[rbp]
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -80[rbp]
	add	rax, 12
	mov	eax, DWORD PTR [rax]
	add	eax, edx
	mov	DWORD PTR -360[rbp], eax
	mov	rax, QWORD PTR -72[rbp]
	movzx	eax, BYTE PTR [rax]
	test	al, al
	je	.L145
	mov	rax, QWORD PTR -72[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	edx, DWORD PTR -360[rbp]
	mov	ecx, eax
	rol	edx, cl
	mov	eax, edx
	jmp	.L146
.L145:
	mov	eax, DWORD PTR -360[rbp]
.L146:
	mov	DWORD PTR -360[rbp], eax
	mov	eax, DWORD PTR -360[rbp]
	shr	eax, 24
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s1[rip]
	mov	ecx, DWORD PTR [rdx+rax]
	mov	eax, DWORD PTR -360[rbp]
	shr	eax, 16
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s2[rip]
	mov	eax, DWORD PTR [rdx+rax]
	xor	ecx, eax
	mov	eax, DWORD PTR -360[rbp]
	shr	eax, 8
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s3[rip]
	mov	eax, DWORD PTR [rdx+rax]
	sub	ecx, eax
	mov	eax, DWORD PTR -360[rbp]
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s4[rip]
	mov	eax, DWORD PTR [rdx+rax]
	add	ecx, eax
	mov	rax, QWORD PTR -80[rbp]
	add	rax, 8
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -80[rbp]
	add	rax, 8
	xor	edx, ecx
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -64[rbp]
	add	rax, 4
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -80[rbp]
	add	rax, 8
	mov	eax, DWORD PTR [rax]
	xor	eax, edx
	mov	DWORD PTR -360[rbp], eax
	mov	rax, QWORD PTR -72[rbp]
	add	rax, 1
	movzx	eax, BYTE PTR [rax]
	test	al, al
	je	.L147
	mov	rax, QWORD PTR -72[rbp]
	add	rax, 1
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	edx, DWORD PTR -360[rbp]
	mov	ecx, eax
	rol	edx, cl
	mov	eax, edx
	jmp	.L148
.L147:
	mov	eax, DWORD PTR -360[rbp]
.L148:
	mov	DWORD PTR -360[rbp], eax
	mov	eax, DWORD PTR -360[rbp]
	shr	eax, 24
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s1[rip]
	mov	eax, DWORD PTR [rdx+rax]
	mov	edx, DWORD PTR -360[rbp]
	shr	edx, 16
	movzx	edx, dl
	mov	edx, edx
	lea	rcx, 0[0+rdx*4]
	lea	rdx, s2[rip]
	mov	edx, DWORD PTR [rcx+rdx]
	sub	eax, edx
	mov	ecx, eax
	mov	eax, DWORD PTR -360[rbp]
	shr	eax, 8
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s3[rip]
	mov	eax, DWORD PTR [rdx+rax]
	add	ecx, eax
	mov	eax, DWORD PTR -360[rbp]
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s4[rip]
	mov	eax, DWORD PTR [rdx+rax]
	xor	ecx, eax
	mov	rax, QWORD PTR -80[rbp]
	add	rax, 4
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -80[rbp]
	add	rax, 4
	xor	edx, ecx
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -64[rbp]
	add	rax, 8
	mov	eax, DWORD PTR [rax]
	mov	rdx, QWORD PTR -80[rbp]
	add	rdx, 4
	mov	edx, DWORD PTR [rdx]
	sub	eax, edx
	mov	DWORD PTR -360[rbp], eax
	mov	rax, QWORD PTR -72[rbp]
	add	rax, 2
	movzx	eax, BYTE PTR [rax]
	test	al, al
	je	.L149
	mov	rax, QWORD PTR -72[rbp]
	add	rax, 2
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	edx, DWORD PTR -360[rbp]
	mov	ecx, eax
	rol	edx, cl
	mov	eax, edx
	jmp	.L150
.L149:
	mov	eax, DWORD PTR -360[rbp]
.L150:
	mov	DWORD PTR -360[rbp], eax
	mov	eax, DWORD PTR -360[rbp]
	shr	eax, 24
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s1[rip]
	mov	ecx, DWORD PTR [rdx+rax]
	mov	eax, DWORD PTR -360[rbp]
	shr	eax, 16
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s2[rip]
	mov	eax, DWORD PTR [rdx+rax]
	add	ecx, eax
	mov	eax, DWORD PTR -360[rbp]
	shr	eax, 8
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s3[rip]
	mov	eax, DWORD PTR [rdx+rax]
	xor	ecx, eax
	mov	eax, DWORD PTR -360[rbp]
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s4[rip]
	mov	eax, DWORD PTR [rdx+rax]
	sub	ecx, eax
	mov	edx, ecx
	mov	rax, QWORD PTR -80[rbp]
	mov	eax, DWORD PTR [rax]
	xor	edx, eax
	mov	rax, QWORD PTR -80[rbp]
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -64[rbp]
	add	rax, 12
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -80[rbp]
	mov	eax, DWORD PTR [rax]
	add	eax, edx
	mov	DWORD PTR -360[rbp], eax
	mov	rax, QWORD PTR -72[rbp]
	add	rax, 3
	movzx	eax, BYTE PTR [rax]
	test	al, al
	je	.L151
	mov	rax, QWORD PTR -72[rbp]
	add	rax, 3
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	edx, DWORD PTR -360[rbp]
	mov	ecx, eax
	rol	edx, cl
	mov	eax, edx
	jmp	.L152
.L151:
	mov	eax, DWORD PTR -360[rbp]
.L152:
	mov	DWORD PTR -360[rbp], eax
	mov	eax, DWORD PTR -360[rbp]
	shr	eax, 24
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s1[rip]
	mov	ecx, DWORD PTR [rdx+rax]
	mov	eax, DWORD PTR -360[rbp]
	shr	eax, 16
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s2[rip]
	mov	eax, DWORD PTR [rdx+rax]
	xor	ecx, eax
	mov	eax, DWORD PTR -360[rbp]
	shr	eax, 8
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s3[rip]
	mov	eax, DWORD PTR [rdx+rax]
	sub	ecx, eax
	mov	eax, DWORD PTR -360[rbp]
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s4[rip]
	mov	eax, DWORD PTR [rdx+rax]
	add	ecx, eax
	mov	rax, QWORD PTR -80[rbp]
	add	rax, 12
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -80[rbp]
	add	rax, 12
	xor	edx, ecx
	mov	DWORD PTR [rax], edx
	nop
	mov	rax, QWORD PTR -408[rbp]
	add	rax, 144
	mov	QWORD PTR -336[rbp], rax
	mov	rax, QWORD PTR -408[rbp]
	add	rax, 228
	mov	QWORD PTR -328[rbp], rax
	lea	rax, -32[rbp]
	mov	QWORD PTR -104[rbp], rax
	mov	rax, QWORD PTR -328[rbp]
	mov	QWORD PTR -96[rbp], rax
	mov	rax, QWORD PTR -336[rbp]
	mov	QWORD PTR -88[rbp], rax
	mov	rax, QWORD PTR -88[rbp]
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -104[rbp]
	add	rax, 12
	mov	eax, DWORD PTR [rax]
	add	eax, edx
	mov	DWORD PTR -364[rbp], eax
	mov	rax, QWORD PTR -96[rbp]
	movzx	eax, BYTE PTR [rax]
	test	al, al
	je	.L153
	mov	rax, QWORD PTR -96[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	edx, DWORD PTR -364[rbp]
	mov	ecx, eax
	rol	edx, cl
	mov	eax, edx
	jmp	.L154
.L153:
	mov	eax, DWORD PTR -364[rbp]
.L154:
	mov	DWORD PTR -364[rbp], eax
	mov	eax, DWORD PTR -364[rbp]
	shr	eax, 24
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s1[rip]
	mov	ecx, DWORD PTR [rdx+rax]
	mov	eax, DWORD PTR -364[rbp]
	shr	eax, 16
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s2[rip]
	mov	eax, DWORD PTR [rdx+rax]
	xor	ecx, eax
	mov	eax, DWORD PTR -364[rbp]
	shr	eax, 8
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s3[rip]
	mov	eax, DWORD PTR [rdx+rax]
	sub	ecx, eax
	mov	eax, DWORD PTR -364[rbp]
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s4[rip]
	mov	eax, DWORD PTR [rdx+rax]
	add	ecx, eax
	mov	rax, QWORD PTR -104[rbp]
	add	rax, 8
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -104[rbp]
	add	rax, 8
	xor	edx, ecx
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -88[rbp]
	add	rax, 4
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -104[rbp]
	add	rax, 8
	mov	eax, DWORD PTR [rax]
	xor	eax, edx
	mov	DWORD PTR -364[rbp], eax
	mov	rax, QWORD PTR -96[rbp]
	add	rax, 1
	movzx	eax, BYTE PTR [rax]
	test	al, al
	je	.L155
	mov	rax, QWORD PTR -96[rbp]
	add	rax, 1
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	edx, DWORD PTR -364[rbp]
	mov	ecx, eax
	rol	edx, cl
	mov	eax, edx
	jmp	.L156
.L155:
	mov	eax, DWORD PTR -364[rbp]
.L156:
	mov	DWORD PTR -364[rbp], eax
	mov	eax, DWORD PTR -364[rbp]
	shr	eax, 24
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s1[rip]
	mov	eax, DWORD PTR [rdx+rax]
	mov	edx, DWORD PTR -364[rbp]
	shr	edx, 16
	movzx	edx, dl
	mov	edx, edx
	lea	rcx, 0[0+rdx*4]
	lea	rdx, s2[rip]
	mov	edx, DWORD PTR [rcx+rdx]
	sub	eax, edx
	mov	ecx, eax
	mov	eax, DWORD PTR -364[rbp]
	shr	eax, 8
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s3[rip]
	mov	eax, DWORD PTR [rdx+rax]
	add	ecx, eax
	mov	eax, DWORD PTR -364[rbp]
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s4[rip]
	mov	eax, DWORD PTR [rdx+rax]
	xor	ecx, eax
	mov	rax, QWORD PTR -104[rbp]
	add	rax, 4
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -104[rbp]
	add	rax, 4
	xor	edx, ecx
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -88[rbp]
	add	rax, 8
	mov	eax, DWORD PTR [rax]
	mov	rdx, QWORD PTR -104[rbp]
	add	rdx, 4
	mov	edx, DWORD PTR [rdx]
	sub	eax, edx
	mov	DWORD PTR -364[rbp], eax
	mov	rax, QWORD PTR -96[rbp]
	add	rax, 2
	movzx	eax, BYTE PTR [rax]
	test	al, al
	je	.L157
	mov	rax, QWORD PTR -96[rbp]
	add	rax, 2
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	edx, DWORD PTR -364[rbp]
	mov	ecx, eax
	rol	edx, cl
	mov	eax, edx
	jmp	.L158
.L157:
	mov	eax, DWORD PTR -364[rbp]
.L158:
	mov	DWORD PTR -364[rbp], eax
	mov	eax, DWORD PTR -364[rbp]
	shr	eax, 24
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s1[rip]
	mov	ecx, DWORD PTR [rdx+rax]
	mov	eax, DWORD PTR -364[rbp]
	shr	eax, 16
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s2[rip]
	mov	eax, DWORD PTR [rdx+rax]
	add	ecx, eax
	mov	eax, DWORD PTR -364[rbp]
	shr	eax, 8
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s3[rip]
	mov	eax, DWORD PTR [rdx+rax]
	xor	ecx, eax
	mov	eax, DWORD PTR -364[rbp]
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s4[rip]
	mov	eax, DWORD PTR [rdx+rax]
	sub	ecx, eax
	mov	edx, ecx
	mov	rax, QWORD PTR -104[rbp]
	mov	eax, DWORD PTR [rax]
	xor	edx, eax
	mov	rax, QWORD PTR -104[rbp]
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -88[rbp]
	add	rax, 12
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -104[rbp]
	mov	eax, DWORD PTR [rax]
	add	eax, edx
	mov	DWORD PTR -364[rbp], eax
	mov	rax, QWORD PTR -96[rbp]
	add	rax, 3
	movzx	eax, BYTE PTR [rax]
	test	al, al
	je	.L159
	mov	rax, QWORD PTR -96[rbp]
	add	rax, 3
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	edx, DWORD PTR -364[rbp]
	mov	ecx, eax
	rol	edx, cl
	mov	eax, edx
	jmp	.L160
.L159:
	mov	eax, DWORD PTR -364[rbp]
.L160:
	mov	DWORD PTR -364[rbp], eax
	mov	eax, DWORD PTR -364[rbp]
	shr	eax, 24
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s1[rip]
	mov	ecx, DWORD PTR [rdx+rax]
	mov	eax, DWORD PTR -364[rbp]
	shr	eax, 16
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s2[rip]
	mov	eax, DWORD PTR [rdx+rax]
	xor	ecx, eax
	mov	eax, DWORD PTR -364[rbp]
	shr	eax, 8
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s3[rip]
	mov	eax, DWORD PTR [rdx+rax]
	sub	ecx, eax
	mov	eax, DWORD PTR -364[rbp]
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s4[rip]
	mov	eax, DWORD PTR [rdx+rax]
	add	ecx, eax
	mov	rax, QWORD PTR -104[rbp]
	add	rax, 12
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -104[rbp]
	add	rax, 12
	xor	edx, ecx
	mov	DWORD PTR [rax], edx
	nop
	mov	rax, QWORD PTR -408[rbp]
	sub	rax, -128
	mov	QWORD PTR -336[rbp], rax
	mov	rax, QWORD PTR -408[rbp]
	add	rax, 224
	mov	QWORD PTR -328[rbp], rax
	lea	rax, -32[rbp]
	mov	QWORD PTR -128[rbp], rax
	mov	rax, QWORD PTR -328[rbp]
	mov	QWORD PTR -120[rbp], rax
	mov	rax, QWORD PTR -336[rbp]
	mov	QWORD PTR -112[rbp], rax
	mov	rax, QWORD PTR -112[rbp]
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -128[rbp]
	add	rax, 12
	mov	eax, DWORD PTR [rax]
	add	eax, edx
	mov	DWORD PTR -368[rbp], eax
	mov	rax, QWORD PTR -120[rbp]
	movzx	eax, BYTE PTR [rax]
	test	al, al
	je	.L161
	mov	rax, QWORD PTR -120[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	edx, DWORD PTR -368[rbp]
	mov	ecx, eax
	rol	edx, cl
	mov	eax, edx
	jmp	.L162
.L161:
	mov	eax, DWORD PTR -368[rbp]
.L162:
	mov	DWORD PTR -368[rbp], eax
	mov	eax, DWORD PTR -368[rbp]
	shr	eax, 24
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s1[rip]
	mov	ecx, DWORD PTR [rdx+rax]
	mov	eax, DWORD PTR -368[rbp]
	shr	eax, 16
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s2[rip]
	mov	eax, DWORD PTR [rdx+rax]
	xor	ecx, eax
	mov	eax, DWORD PTR -368[rbp]
	shr	eax, 8
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s3[rip]
	mov	eax, DWORD PTR [rdx+rax]
	sub	ecx, eax
	mov	eax, DWORD PTR -368[rbp]
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s4[rip]
	mov	eax, DWORD PTR [rdx+rax]
	add	ecx, eax
	mov	rax, QWORD PTR -128[rbp]
	add	rax, 8
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -128[rbp]
	add	rax, 8
	xor	edx, ecx
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -112[rbp]
	add	rax, 4
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -128[rbp]
	add	rax, 8
	mov	eax, DWORD PTR [rax]
	xor	eax, edx
	mov	DWORD PTR -368[rbp], eax
	mov	rax, QWORD PTR -120[rbp]
	add	rax, 1
	movzx	eax, BYTE PTR [rax]
	test	al, al
	je	.L163
	mov	rax, QWORD PTR -120[rbp]
	add	rax, 1
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	edx, DWORD PTR -368[rbp]
	mov	ecx, eax
	rol	edx, cl
	mov	eax, edx
	jmp	.L164
.L163:
	mov	eax, DWORD PTR -368[rbp]
.L164:
	mov	DWORD PTR -368[rbp], eax
	mov	eax, DWORD PTR -368[rbp]
	shr	eax, 24
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s1[rip]
	mov	eax, DWORD PTR [rdx+rax]
	mov	edx, DWORD PTR -368[rbp]
	shr	edx, 16
	movzx	edx, dl
	mov	edx, edx
	lea	rcx, 0[0+rdx*4]
	lea	rdx, s2[rip]
	mov	edx, DWORD PTR [rcx+rdx]
	sub	eax, edx
	mov	ecx, eax
	mov	eax, DWORD PTR -368[rbp]
	shr	eax, 8
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s3[rip]
	mov	eax, DWORD PTR [rdx+rax]
	add	ecx, eax
	mov	eax, DWORD PTR -368[rbp]
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s4[rip]
	mov	eax, DWORD PTR [rdx+rax]
	xor	ecx, eax
	mov	rax, QWORD PTR -128[rbp]
	add	rax, 4
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -128[rbp]
	add	rax, 4
	xor	edx, ecx
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -112[rbp]
	add	rax, 8
	mov	eax, DWORD PTR [rax]
	mov	rdx, QWORD PTR -128[rbp]
	add	rdx, 4
	mov	edx, DWORD PTR [rdx]
	sub	eax, edx
	mov	DWORD PTR -368[rbp], eax
	mov	rax, QWORD PTR -120[rbp]
	add	rax, 2
	movzx	eax, BYTE PTR [rax]
	test	al, al
	je	.L165
	mov	rax, QWORD PTR -120[rbp]
	add	rax, 2
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	edx, DWORD PTR -368[rbp]
	mov	ecx, eax
	rol	edx, cl
	mov	eax, edx
	jmp	.L166
.L165:
	mov	eax, DWORD PTR -368[rbp]
.L166:
	mov	DWORD PTR -368[rbp], eax
	mov	eax, DWORD PTR -368[rbp]
	shr	eax, 24
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s1[rip]
	mov	ecx, DWORD PTR [rdx+rax]
	mov	eax, DWORD PTR -368[rbp]
	shr	eax, 16
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s2[rip]
	mov	eax, DWORD PTR [rdx+rax]
	add	ecx, eax
	mov	eax, DWORD PTR -368[rbp]
	shr	eax, 8
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s3[rip]
	mov	eax, DWORD PTR [rdx+rax]
	xor	ecx, eax
	mov	eax, DWORD PTR -368[rbp]
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s4[rip]
	mov	eax, DWORD PTR [rdx+rax]
	sub	ecx, eax
	mov	edx, ecx
	mov	rax, QWORD PTR -128[rbp]
	mov	eax, DWORD PTR [rax]
	xor	edx, eax
	mov	rax, QWORD PTR -128[rbp]
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -112[rbp]
	add	rax, 12
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -128[rbp]
	mov	eax, DWORD PTR [rax]
	add	eax, edx
	mov	DWORD PTR -368[rbp], eax
	mov	rax, QWORD PTR -120[rbp]
	add	rax, 3
	movzx	eax, BYTE PTR [rax]
	test	al, al
	je	.L167
	mov	rax, QWORD PTR -120[rbp]
	add	rax, 3
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	edx, DWORD PTR -368[rbp]
	mov	ecx, eax
	rol	edx, cl
	mov	eax, edx
	jmp	.L168
.L167:
	mov	eax, DWORD PTR -368[rbp]
.L168:
	mov	DWORD PTR -368[rbp], eax
	mov	eax, DWORD PTR -368[rbp]
	shr	eax, 24
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s1[rip]
	mov	ecx, DWORD PTR [rdx+rax]
	mov	eax, DWORD PTR -368[rbp]
	shr	eax, 16
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s2[rip]
	mov	eax, DWORD PTR [rdx+rax]
	xor	ecx, eax
	mov	eax, DWORD PTR -368[rbp]
	shr	eax, 8
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s3[rip]
	mov	eax, DWORD PTR [rdx+rax]
	sub	ecx, eax
	mov	eax, DWORD PTR -368[rbp]
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s4[rip]
	mov	eax, DWORD PTR [rdx+rax]
	add	ecx, eax
	mov	rax, QWORD PTR -128[rbp]
	add	rax, 12
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -128[rbp]
	add	rax, 12
	xor	edx, ecx
	mov	DWORD PTR [rax], edx
	nop
	mov	rax, QWORD PTR -408[rbp]
	add	rax, 112
	mov	QWORD PTR -336[rbp], rax
	mov	rax, QWORD PTR -408[rbp]
	add	rax, 220
	mov	QWORD PTR -328[rbp], rax
	lea	rax, -32[rbp]
	mov	QWORD PTR -152[rbp], rax
	mov	rax, QWORD PTR -328[rbp]
	mov	QWORD PTR -144[rbp], rax
	mov	rax, QWORD PTR -336[rbp]
	mov	QWORD PTR -136[rbp], rax
	mov	rax, QWORD PTR -136[rbp]
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -152[rbp]
	add	rax, 12
	mov	eax, DWORD PTR [rax]
	add	eax, edx
	mov	DWORD PTR -372[rbp], eax
	mov	rax, QWORD PTR -144[rbp]
	movzx	eax, BYTE PTR [rax]
	test	al, al
	je	.L169
	mov	rax, QWORD PTR -144[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	edx, DWORD PTR -372[rbp]
	mov	ecx, eax
	rol	edx, cl
	mov	eax, edx
	jmp	.L170
.L169:
	mov	eax, DWORD PTR -372[rbp]
.L170:
	mov	DWORD PTR -372[rbp], eax
	mov	eax, DWORD PTR -372[rbp]
	shr	eax, 24
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s1[rip]
	mov	ecx, DWORD PTR [rdx+rax]
	mov	eax, DWORD PTR -372[rbp]
	shr	eax, 16
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s2[rip]
	mov	eax, DWORD PTR [rdx+rax]
	xor	ecx, eax
	mov	eax, DWORD PTR -372[rbp]
	shr	eax, 8
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s3[rip]
	mov	eax, DWORD PTR [rdx+rax]
	sub	ecx, eax
	mov	eax, DWORD PTR -372[rbp]
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s4[rip]
	mov	eax, DWORD PTR [rdx+rax]
	add	ecx, eax
	mov	rax, QWORD PTR -152[rbp]
	add	rax, 8
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -152[rbp]
	add	rax, 8
	xor	edx, ecx
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -136[rbp]
	add	rax, 4
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -152[rbp]
	add	rax, 8
	mov	eax, DWORD PTR [rax]
	xor	eax, edx
	mov	DWORD PTR -372[rbp], eax
	mov	rax, QWORD PTR -144[rbp]
	add	rax, 1
	movzx	eax, BYTE PTR [rax]
	test	al, al
	je	.L171
	mov	rax, QWORD PTR -144[rbp]
	add	rax, 1
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	edx, DWORD PTR -372[rbp]
	mov	ecx, eax
	rol	edx, cl
	mov	eax, edx
	jmp	.L172
.L171:
	mov	eax, DWORD PTR -372[rbp]
.L172:
	mov	DWORD PTR -372[rbp], eax
	mov	eax, DWORD PTR -372[rbp]
	shr	eax, 24
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s1[rip]
	mov	eax, DWORD PTR [rdx+rax]
	mov	edx, DWORD PTR -372[rbp]
	shr	edx, 16
	movzx	edx, dl
	mov	edx, edx
	lea	rcx, 0[0+rdx*4]
	lea	rdx, s2[rip]
	mov	edx, DWORD PTR [rcx+rdx]
	sub	eax, edx
	mov	ecx, eax
	mov	eax, DWORD PTR -372[rbp]
	shr	eax, 8
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s3[rip]
	mov	eax, DWORD PTR [rdx+rax]
	add	ecx, eax
	mov	eax, DWORD PTR -372[rbp]
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s4[rip]
	mov	eax, DWORD PTR [rdx+rax]
	xor	ecx, eax
	mov	rax, QWORD PTR -152[rbp]
	add	rax, 4
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -152[rbp]
	add	rax, 4
	xor	edx, ecx
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -136[rbp]
	add	rax, 8
	mov	eax, DWORD PTR [rax]
	mov	rdx, QWORD PTR -152[rbp]
	add	rdx, 4
	mov	edx, DWORD PTR [rdx]
	sub	eax, edx
	mov	DWORD PTR -372[rbp], eax
	mov	rax, QWORD PTR -144[rbp]
	add	rax, 2
	movzx	eax, BYTE PTR [rax]
	test	al, al
	je	.L173
	mov	rax, QWORD PTR -144[rbp]
	add	rax, 2
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	edx, DWORD PTR -372[rbp]
	mov	ecx, eax
	rol	edx, cl
	mov	eax, edx
	jmp	.L174
.L173:
	mov	eax, DWORD PTR -372[rbp]
.L174:
	mov	DWORD PTR -372[rbp], eax
	mov	eax, DWORD PTR -372[rbp]
	shr	eax, 24
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s1[rip]
	mov	ecx, DWORD PTR [rdx+rax]
	mov	eax, DWORD PTR -372[rbp]
	shr	eax, 16
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s2[rip]
	mov	eax, DWORD PTR [rdx+rax]
	add	ecx, eax
	mov	eax, DWORD PTR -372[rbp]
	shr	eax, 8
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s3[rip]
	mov	eax, DWORD PTR [rdx+rax]
	xor	ecx, eax
	mov	eax, DWORD PTR -372[rbp]
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s4[rip]
	mov	eax, DWORD PTR [rdx+rax]
	sub	ecx, eax
	mov	edx, ecx
	mov	rax, QWORD PTR -152[rbp]
	mov	eax, DWORD PTR [rax]
	xor	edx, eax
	mov	rax, QWORD PTR -152[rbp]
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -136[rbp]
	add	rax, 12
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -152[rbp]
	mov	eax, DWORD PTR [rax]
	add	eax, edx
	mov	DWORD PTR -372[rbp], eax
	mov	rax, QWORD PTR -144[rbp]
	add	rax, 3
	movzx	eax, BYTE PTR [rax]
	test	al, al
	je	.L175
	mov	rax, QWORD PTR -144[rbp]
	add	rax, 3
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	edx, DWORD PTR -372[rbp]
	mov	ecx, eax
	rol	edx, cl
	mov	eax, edx
	jmp	.L176
.L175:
	mov	eax, DWORD PTR -372[rbp]
.L176:
	mov	DWORD PTR -372[rbp], eax
	mov	eax, DWORD PTR -372[rbp]
	shr	eax, 24
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s1[rip]
	mov	ecx, DWORD PTR [rdx+rax]
	mov	eax, DWORD PTR -372[rbp]
	shr	eax, 16
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s2[rip]
	mov	eax, DWORD PTR [rdx+rax]
	xor	ecx, eax
	mov	eax, DWORD PTR -372[rbp]
	shr	eax, 8
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s3[rip]
	mov	eax, DWORD PTR [rdx+rax]
	sub	ecx, eax
	mov	eax, DWORD PTR -372[rbp]
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s4[rip]
	mov	eax, DWORD PTR [rdx+rax]
	add	ecx, eax
	mov	rax, QWORD PTR -152[rbp]
	add	rax, 12
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -152[rbp]
	add	rax, 12
	xor	edx, ecx
	mov	DWORD PTR [rax], edx
	nop
	mov	rax, QWORD PTR -408[rbp]
	add	rax, 96
	mov	QWORD PTR -336[rbp], rax
	mov	rax, QWORD PTR -408[rbp]
	add	rax, 216
	mov	QWORD PTR -328[rbp], rax
	lea	rax, -32[rbp]
	mov	QWORD PTR -176[rbp], rax
	mov	rax, QWORD PTR -328[rbp]
	mov	QWORD PTR -168[rbp], rax
	mov	rax, QWORD PTR -336[rbp]
	mov	QWORD PTR -160[rbp], rax
	mov	rax, QWORD PTR -160[rbp]
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -176[rbp]
	add	rax, 12
	mov	eax, DWORD PTR [rax]
	add	eax, edx
	mov	DWORD PTR -376[rbp], eax
	mov	rax, QWORD PTR -168[rbp]
	movzx	eax, BYTE PTR [rax]
	test	al, al
	je	.L177
	mov	rax, QWORD PTR -168[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	edx, DWORD PTR -376[rbp]
	mov	ecx, eax
	rol	edx, cl
	mov	eax, edx
	jmp	.L178
.L177:
	mov	eax, DWORD PTR -376[rbp]
.L178:
	mov	DWORD PTR -376[rbp], eax
	mov	eax, DWORD PTR -376[rbp]
	shr	eax, 24
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s1[rip]
	mov	ecx, DWORD PTR [rdx+rax]
	mov	eax, DWORD PTR -376[rbp]
	shr	eax, 16
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s2[rip]
	mov	eax, DWORD PTR [rdx+rax]
	xor	ecx, eax
	mov	eax, DWORD PTR -376[rbp]
	shr	eax, 8
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s3[rip]
	mov	eax, DWORD PTR [rdx+rax]
	sub	ecx, eax
	mov	eax, DWORD PTR -376[rbp]
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s4[rip]
	mov	eax, DWORD PTR [rdx+rax]
	add	ecx, eax
	mov	rax, QWORD PTR -176[rbp]
	add	rax, 8
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -176[rbp]
	add	rax, 8
	xor	edx, ecx
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -160[rbp]
	add	rax, 4
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -176[rbp]
	add	rax, 8
	mov	eax, DWORD PTR [rax]
	xor	eax, edx
	mov	DWORD PTR -376[rbp], eax
	mov	rax, QWORD PTR -168[rbp]
	add	rax, 1
	movzx	eax, BYTE PTR [rax]
	test	al, al
	je	.L179
	mov	rax, QWORD PTR -168[rbp]
	add	rax, 1
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	edx, DWORD PTR -376[rbp]
	mov	ecx, eax
	rol	edx, cl
	mov	eax, edx
	jmp	.L180
.L179:
	mov	eax, DWORD PTR -376[rbp]
.L180:
	mov	DWORD PTR -376[rbp], eax
	mov	eax, DWORD PTR -376[rbp]
	shr	eax, 24
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s1[rip]
	mov	eax, DWORD PTR [rdx+rax]
	mov	edx, DWORD PTR -376[rbp]
	shr	edx, 16
	movzx	edx, dl
	mov	edx, edx
	lea	rcx, 0[0+rdx*4]
	lea	rdx, s2[rip]
	mov	edx, DWORD PTR [rcx+rdx]
	sub	eax, edx
	mov	ecx, eax
	mov	eax, DWORD PTR -376[rbp]
	shr	eax, 8
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s3[rip]
	mov	eax, DWORD PTR [rdx+rax]
	add	ecx, eax
	mov	eax, DWORD PTR -376[rbp]
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s4[rip]
	mov	eax, DWORD PTR [rdx+rax]
	xor	ecx, eax
	mov	rax, QWORD PTR -176[rbp]
	add	rax, 4
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -176[rbp]
	add	rax, 4
	xor	edx, ecx
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -160[rbp]
	add	rax, 8
	mov	eax, DWORD PTR [rax]
	mov	rdx, QWORD PTR -176[rbp]
	add	rdx, 4
	mov	edx, DWORD PTR [rdx]
	sub	eax, edx
	mov	DWORD PTR -376[rbp], eax
	mov	rax, QWORD PTR -168[rbp]
	add	rax, 2
	movzx	eax, BYTE PTR [rax]
	test	al, al
	je	.L181
	mov	rax, QWORD PTR -168[rbp]
	add	rax, 2
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	edx, DWORD PTR -376[rbp]
	mov	ecx, eax
	rol	edx, cl
	mov	eax, edx
	jmp	.L182
.L181:
	mov	eax, DWORD PTR -376[rbp]
.L182:
	mov	DWORD PTR -376[rbp], eax
	mov	eax, DWORD PTR -376[rbp]
	shr	eax, 24
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s1[rip]
	mov	ecx, DWORD PTR [rdx+rax]
	mov	eax, DWORD PTR -376[rbp]
	shr	eax, 16
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s2[rip]
	mov	eax, DWORD PTR [rdx+rax]
	add	ecx, eax
	mov	eax, DWORD PTR -376[rbp]
	shr	eax, 8
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s3[rip]
	mov	eax, DWORD PTR [rdx+rax]
	xor	ecx, eax
	mov	eax, DWORD PTR -376[rbp]
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s4[rip]
	mov	eax, DWORD PTR [rdx+rax]
	sub	ecx, eax
	mov	edx, ecx
	mov	rax, QWORD PTR -176[rbp]
	mov	eax, DWORD PTR [rax]
	xor	edx, eax
	mov	rax, QWORD PTR -176[rbp]
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -160[rbp]
	add	rax, 12
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -176[rbp]
	mov	eax, DWORD PTR [rax]
	add	eax, edx
	mov	DWORD PTR -376[rbp], eax
	mov	rax, QWORD PTR -168[rbp]
	add	rax, 3
	movzx	eax, BYTE PTR [rax]
	test	al, al
	je	.L183
	mov	rax, QWORD PTR -168[rbp]
	add	rax, 3
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	edx, DWORD PTR -376[rbp]
	mov	ecx, eax
	rol	edx, cl
	mov	eax, edx
	jmp	.L184
.L183:
	mov	eax, DWORD PTR -376[rbp]
.L184:
	mov	DWORD PTR -376[rbp], eax
	mov	eax, DWORD PTR -376[rbp]
	shr	eax, 24
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s1[rip]
	mov	ecx, DWORD PTR [rdx+rax]
	mov	eax, DWORD PTR -376[rbp]
	shr	eax, 16
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s2[rip]
	mov	eax, DWORD PTR [rdx+rax]
	xor	ecx, eax
	mov	eax, DWORD PTR -376[rbp]
	shr	eax, 8
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s3[rip]
	mov	eax, DWORD PTR [rdx+rax]
	sub	ecx, eax
	mov	eax, DWORD PTR -376[rbp]
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s4[rip]
	mov	eax, DWORD PTR [rdx+rax]
	add	ecx, eax
	mov	rax, QWORD PTR -176[rbp]
	add	rax, 12
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -176[rbp]
	add	rax, 12
	xor	edx, ecx
	mov	DWORD PTR [rax], edx
	nop
	mov	rax, QWORD PTR -408[rbp]
	add	rax, 80
	mov	QWORD PTR -336[rbp], rax
	mov	rax, QWORD PTR -408[rbp]
	add	rax, 212
	mov	QWORD PTR -328[rbp], rax
	lea	rax, -32[rbp]
	mov	QWORD PTR -200[rbp], rax
	mov	rax, QWORD PTR -328[rbp]
	mov	QWORD PTR -192[rbp], rax
	mov	rax, QWORD PTR -336[rbp]
	mov	QWORD PTR -184[rbp], rax
	mov	rax, QWORD PTR -184[rbp]
	add	rax, 12
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -200[rbp]
	mov	eax, DWORD PTR [rax]
	add	eax, edx
	mov	DWORD PTR -380[rbp], eax
	mov	rax, QWORD PTR -192[rbp]
	add	rax, 3
	movzx	eax, BYTE PTR [rax]
	test	al, al
	je	.L185
	mov	rax, QWORD PTR -192[rbp]
	add	rax, 3
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	edx, DWORD PTR -380[rbp]
	mov	ecx, eax
	rol	edx, cl
	mov	eax, edx
	jmp	.L186
.L185:
	mov	eax, DWORD PTR -380[rbp]
.L186:
	mov	DWORD PTR -380[rbp], eax
	mov	eax, DWORD PTR -380[rbp]
	shr	eax, 24
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s1[rip]
	mov	ecx, DWORD PTR [rdx+rax]
	mov	eax, DWORD PTR -380[rbp]
	shr	eax, 16
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s2[rip]
	mov	eax, DWORD PTR [rdx+rax]
	xor	ecx, eax
	mov	eax, DWORD PTR -380[rbp]
	shr	eax, 8
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s3[rip]
	mov	eax, DWORD PTR [rdx+rax]
	sub	ecx, eax
	mov	eax, DWORD PTR -380[rbp]
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s4[rip]
	mov	eax, DWORD PTR [rdx+rax]
	add	ecx, eax
	mov	rax, QWORD PTR -200[rbp]
	add	rax, 12
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -200[rbp]
	add	rax, 12
	xor	edx, ecx
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -184[rbp]
	add	rax, 8
	mov	eax, DWORD PTR [rax]
	mov	rdx, QWORD PTR -200[rbp]
	add	rdx, 4
	mov	edx, DWORD PTR [rdx]
	sub	eax, edx
	mov	DWORD PTR -380[rbp], eax
	mov	rax, QWORD PTR -192[rbp]
	add	rax, 2
	movzx	eax, BYTE PTR [rax]
	test	al, al
	je	.L187
	mov	rax, QWORD PTR -192[rbp]
	add	rax, 2
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	edx, DWORD PTR -380[rbp]
	mov	ecx, eax
	rol	edx, cl
	mov	eax, edx
	jmp	.L188
.L187:
	mov	eax, DWORD PTR -380[rbp]
.L188:
	mov	DWORD PTR -380[rbp], eax
	mov	eax, DWORD PTR -380[rbp]
	shr	eax, 24
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s1[rip]
	mov	ecx, DWORD PTR [rdx+rax]
	mov	eax, DWORD PTR -380[rbp]
	shr	eax, 16
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s2[rip]
	mov	eax, DWORD PTR [rdx+rax]
	add	ecx, eax
	mov	eax, DWORD PTR -380[rbp]
	shr	eax, 8
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s3[rip]
	mov	eax, DWORD PTR [rdx+rax]
	xor	ecx, eax
	mov	eax, DWORD PTR -380[rbp]
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s4[rip]
	mov	eax, DWORD PTR [rdx+rax]
	sub	ecx, eax
	mov	edx, ecx
	mov	rax, QWORD PTR -200[rbp]
	mov	eax, DWORD PTR [rax]
	xor	edx, eax
	mov	rax, QWORD PTR -200[rbp]
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -184[rbp]
	add	rax, 4
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -200[rbp]
	add	rax, 8
	mov	eax, DWORD PTR [rax]
	xor	eax, edx
	mov	DWORD PTR -380[rbp], eax
	mov	rax, QWORD PTR -192[rbp]
	add	rax, 1
	movzx	eax, BYTE PTR [rax]
	test	al, al
	je	.L189
	mov	rax, QWORD PTR -192[rbp]
	add	rax, 1
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	edx, DWORD PTR -380[rbp]
	mov	ecx, eax
	rol	edx, cl
	mov	eax, edx
	jmp	.L190
.L189:
	mov	eax, DWORD PTR -380[rbp]
.L190:
	mov	DWORD PTR -380[rbp], eax
	mov	eax, DWORD PTR -380[rbp]
	shr	eax, 24
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s1[rip]
	mov	eax, DWORD PTR [rdx+rax]
	mov	edx, DWORD PTR -380[rbp]
	shr	edx, 16
	movzx	edx, dl
	mov	edx, edx
	lea	rcx, 0[0+rdx*4]
	lea	rdx, s2[rip]
	mov	edx, DWORD PTR [rcx+rdx]
	sub	eax, edx
	mov	ecx, eax
	mov	eax, DWORD PTR -380[rbp]
	shr	eax, 8
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s3[rip]
	mov	eax, DWORD PTR [rdx+rax]
	add	ecx, eax
	mov	eax, DWORD PTR -380[rbp]
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s4[rip]
	mov	eax, DWORD PTR [rdx+rax]
	xor	ecx, eax
	mov	rax, QWORD PTR -200[rbp]
	add	rax, 4
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -200[rbp]
	add	rax, 4
	xor	edx, ecx
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -184[rbp]
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -200[rbp]
	add	rax, 12
	mov	eax, DWORD PTR [rax]
	add	eax, edx
	mov	DWORD PTR -380[rbp], eax
	mov	rax, QWORD PTR -192[rbp]
	movzx	eax, BYTE PTR [rax]
	test	al, al
	je	.L191
	mov	rax, QWORD PTR -192[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	edx, DWORD PTR -380[rbp]
	mov	ecx, eax
	rol	edx, cl
	mov	eax, edx
	jmp	.L192
.L191:
	mov	eax, DWORD PTR -380[rbp]
.L192:
	mov	DWORD PTR -380[rbp], eax
	mov	eax, DWORD PTR -380[rbp]
	shr	eax, 24
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s1[rip]
	mov	ecx, DWORD PTR [rdx+rax]
	mov	eax, DWORD PTR -380[rbp]
	shr	eax, 16
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s2[rip]
	mov	eax, DWORD PTR [rdx+rax]
	xor	ecx, eax
	mov	eax, DWORD PTR -380[rbp]
	shr	eax, 8
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s3[rip]
	mov	eax, DWORD PTR [rdx+rax]
	sub	ecx, eax
	mov	eax, DWORD PTR -380[rbp]
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s4[rip]
	mov	eax, DWORD PTR [rdx+rax]
	add	ecx, eax
	mov	rax, QWORD PTR -200[rbp]
	add	rax, 8
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -200[rbp]
	add	rax, 8
	xor	edx, ecx
	mov	DWORD PTR [rax], edx
	nop
	mov	rax, QWORD PTR -408[rbp]
	add	rax, 64
	mov	QWORD PTR -336[rbp], rax
	mov	rax, QWORD PTR -408[rbp]
	add	rax, 208
	mov	QWORD PTR -328[rbp], rax
	lea	rax, -32[rbp]
	mov	QWORD PTR -224[rbp], rax
	mov	rax, QWORD PTR -328[rbp]
	mov	QWORD PTR -216[rbp], rax
	mov	rax, QWORD PTR -336[rbp]
	mov	QWORD PTR -208[rbp], rax
	mov	rax, QWORD PTR -208[rbp]
	add	rax, 12
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -224[rbp]
	mov	eax, DWORD PTR [rax]
	add	eax, edx
	mov	DWORD PTR -384[rbp], eax
	mov	rax, QWORD PTR -216[rbp]
	add	rax, 3
	movzx	eax, BYTE PTR [rax]
	test	al, al
	je	.L193
	mov	rax, QWORD PTR -216[rbp]
	add	rax, 3
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	edx, DWORD PTR -384[rbp]
	mov	ecx, eax
	rol	edx, cl
	mov	eax, edx
	jmp	.L194
.L193:
	mov	eax, DWORD PTR -384[rbp]
.L194:
	mov	DWORD PTR -384[rbp], eax
	mov	eax, DWORD PTR -384[rbp]
	shr	eax, 24
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s1[rip]
	mov	ecx, DWORD PTR [rdx+rax]
	mov	eax, DWORD PTR -384[rbp]
	shr	eax, 16
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s2[rip]
	mov	eax, DWORD PTR [rdx+rax]
	xor	ecx, eax
	mov	eax, DWORD PTR -384[rbp]
	shr	eax, 8
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s3[rip]
	mov	eax, DWORD PTR [rdx+rax]
	sub	ecx, eax
	mov	eax, DWORD PTR -384[rbp]
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s4[rip]
	mov	eax, DWORD PTR [rdx+rax]
	add	ecx, eax
	mov	rax, QWORD PTR -224[rbp]
	add	rax, 12
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -224[rbp]
	add	rax, 12
	xor	edx, ecx
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -208[rbp]
	add	rax, 8
	mov	eax, DWORD PTR [rax]
	mov	rdx, QWORD PTR -224[rbp]
	add	rdx, 4
	mov	edx, DWORD PTR [rdx]
	sub	eax, edx
	mov	DWORD PTR -384[rbp], eax
	mov	rax, QWORD PTR -216[rbp]
	add	rax, 2
	movzx	eax, BYTE PTR [rax]
	test	al, al
	je	.L195
	mov	rax, QWORD PTR -216[rbp]
	add	rax, 2
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	edx, DWORD PTR -384[rbp]
	mov	ecx, eax
	rol	edx, cl
	mov	eax, edx
	jmp	.L196
.L195:
	mov	eax, DWORD PTR -384[rbp]
.L196:
	mov	DWORD PTR -384[rbp], eax
	mov	eax, DWORD PTR -384[rbp]
	shr	eax, 24
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s1[rip]
	mov	ecx, DWORD PTR [rdx+rax]
	mov	eax, DWORD PTR -384[rbp]
	shr	eax, 16
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s2[rip]
	mov	eax, DWORD PTR [rdx+rax]
	add	ecx, eax
	mov	eax, DWORD PTR -384[rbp]
	shr	eax, 8
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s3[rip]
	mov	eax, DWORD PTR [rdx+rax]
	xor	ecx, eax
	mov	eax, DWORD PTR -384[rbp]
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s4[rip]
	mov	eax, DWORD PTR [rdx+rax]
	sub	ecx, eax
	mov	edx, ecx
	mov	rax, QWORD PTR -224[rbp]
	mov	eax, DWORD PTR [rax]
	xor	edx, eax
	mov	rax, QWORD PTR -224[rbp]
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -208[rbp]
	add	rax, 4
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -224[rbp]
	add	rax, 8
	mov	eax, DWORD PTR [rax]
	xor	eax, edx
	mov	DWORD PTR -384[rbp], eax
	mov	rax, QWORD PTR -216[rbp]
	add	rax, 1
	movzx	eax, BYTE PTR [rax]
	test	al, al
	je	.L197
	mov	rax, QWORD PTR -216[rbp]
	add	rax, 1
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	edx, DWORD PTR -384[rbp]
	mov	ecx, eax
	rol	edx, cl
	mov	eax, edx
	jmp	.L198
.L197:
	mov	eax, DWORD PTR -384[rbp]
.L198:
	mov	DWORD PTR -384[rbp], eax
	mov	eax, DWORD PTR -384[rbp]
	shr	eax, 24
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s1[rip]
	mov	eax, DWORD PTR [rdx+rax]
	mov	edx, DWORD PTR -384[rbp]
	shr	edx, 16
	movzx	edx, dl
	mov	edx, edx
	lea	rcx, 0[0+rdx*4]
	lea	rdx, s2[rip]
	mov	edx, DWORD PTR [rcx+rdx]
	sub	eax, edx
	mov	ecx, eax
	mov	eax, DWORD PTR -384[rbp]
	shr	eax, 8
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s3[rip]
	mov	eax, DWORD PTR [rdx+rax]
	add	ecx, eax
	mov	eax, DWORD PTR -384[rbp]
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s4[rip]
	mov	eax, DWORD PTR [rdx+rax]
	xor	ecx, eax
	mov	rax, QWORD PTR -224[rbp]
	add	rax, 4
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -224[rbp]
	add	rax, 4
	xor	edx, ecx
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -208[rbp]
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -224[rbp]
	add	rax, 12
	mov	eax, DWORD PTR [rax]
	add	eax, edx
	mov	DWORD PTR -384[rbp], eax
	mov	rax, QWORD PTR -216[rbp]
	movzx	eax, BYTE PTR [rax]
	test	al, al
	je	.L199
	mov	rax, QWORD PTR -216[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	edx, DWORD PTR -384[rbp]
	mov	ecx, eax
	rol	edx, cl
	mov	eax, edx
	jmp	.L200
.L199:
	mov	eax, DWORD PTR -384[rbp]
.L200:
	mov	DWORD PTR -384[rbp], eax
	mov	eax, DWORD PTR -384[rbp]
	shr	eax, 24
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s1[rip]
	mov	ecx, DWORD PTR [rdx+rax]
	mov	eax, DWORD PTR -384[rbp]
	shr	eax, 16
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s2[rip]
	mov	eax, DWORD PTR [rdx+rax]
	xor	ecx, eax
	mov	eax, DWORD PTR -384[rbp]
	shr	eax, 8
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s3[rip]
	mov	eax, DWORD PTR [rdx+rax]
	sub	ecx, eax
	mov	eax, DWORD PTR -384[rbp]
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s4[rip]
	mov	eax, DWORD PTR [rdx+rax]
	add	ecx, eax
	mov	rax, QWORD PTR -224[rbp]
	add	rax, 8
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -224[rbp]
	add	rax, 8
	xor	edx, ecx
	mov	DWORD PTR [rax], edx
	nop
	mov	rax, QWORD PTR -408[rbp]
	add	rax, 48
	mov	QWORD PTR -336[rbp], rax
	mov	rax, QWORD PTR -408[rbp]
	add	rax, 204
	mov	QWORD PTR -328[rbp], rax
	lea	rax, -32[rbp]
	mov	QWORD PTR -248[rbp], rax
	mov	rax, QWORD PTR -328[rbp]
	mov	QWORD PTR -240[rbp], rax
	mov	rax, QWORD PTR -336[rbp]
	mov	QWORD PTR -232[rbp], rax
	mov	rax, QWORD PTR -232[rbp]
	add	rax, 12
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -248[rbp]
	mov	eax, DWORD PTR [rax]
	add	eax, edx
	mov	DWORD PTR -388[rbp], eax
	mov	rax, QWORD PTR -240[rbp]
	add	rax, 3
	movzx	eax, BYTE PTR [rax]
	test	al, al
	je	.L201
	mov	rax, QWORD PTR -240[rbp]
	add	rax, 3
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	edx, DWORD PTR -388[rbp]
	mov	ecx, eax
	rol	edx, cl
	mov	eax, edx
	jmp	.L202
.L201:
	mov	eax, DWORD PTR -388[rbp]
.L202:
	mov	DWORD PTR -388[rbp], eax
	mov	eax, DWORD PTR -388[rbp]
	shr	eax, 24
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s1[rip]
	mov	ecx, DWORD PTR [rdx+rax]
	mov	eax, DWORD PTR -388[rbp]
	shr	eax, 16
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s2[rip]
	mov	eax, DWORD PTR [rdx+rax]
	xor	ecx, eax
	mov	eax, DWORD PTR -388[rbp]
	shr	eax, 8
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s3[rip]
	mov	eax, DWORD PTR [rdx+rax]
	sub	ecx, eax
	mov	eax, DWORD PTR -388[rbp]
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s4[rip]
	mov	eax, DWORD PTR [rdx+rax]
	add	ecx, eax
	mov	rax, QWORD PTR -248[rbp]
	add	rax, 12
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -248[rbp]
	add	rax, 12
	xor	edx, ecx
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -232[rbp]
	add	rax, 8
	mov	eax, DWORD PTR [rax]
	mov	rdx, QWORD PTR -248[rbp]
	add	rdx, 4
	mov	edx, DWORD PTR [rdx]
	sub	eax, edx
	mov	DWORD PTR -388[rbp], eax
	mov	rax, QWORD PTR -240[rbp]
	add	rax, 2
	movzx	eax, BYTE PTR [rax]
	test	al, al
	je	.L203
	mov	rax, QWORD PTR -240[rbp]
	add	rax, 2
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	edx, DWORD PTR -388[rbp]
	mov	ecx, eax
	rol	edx, cl
	mov	eax, edx
	jmp	.L204
.L203:
	mov	eax, DWORD PTR -388[rbp]
.L204:
	mov	DWORD PTR -388[rbp], eax
	mov	eax, DWORD PTR -388[rbp]
	shr	eax, 24
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s1[rip]
	mov	ecx, DWORD PTR [rdx+rax]
	mov	eax, DWORD PTR -388[rbp]
	shr	eax, 16
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s2[rip]
	mov	eax, DWORD PTR [rdx+rax]
	add	ecx, eax
	mov	eax, DWORD PTR -388[rbp]
	shr	eax, 8
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s3[rip]
	mov	eax, DWORD PTR [rdx+rax]
	xor	ecx, eax
	mov	eax, DWORD PTR -388[rbp]
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s4[rip]
	mov	eax, DWORD PTR [rdx+rax]
	sub	ecx, eax
	mov	edx, ecx
	mov	rax, QWORD PTR -248[rbp]
	mov	eax, DWORD PTR [rax]
	xor	edx, eax
	mov	rax, QWORD PTR -248[rbp]
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -232[rbp]
	add	rax, 4
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -248[rbp]
	add	rax, 8
	mov	eax, DWORD PTR [rax]
	xor	eax, edx
	mov	DWORD PTR -388[rbp], eax
	mov	rax, QWORD PTR -240[rbp]
	add	rax, 1
	movzx	eax, BYTE PTR [rax]
	test	al, al
	je	.L205
	mov	rax, QWORD PTR -240[rbp]
	add	rax, 1
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	edx, DWORD PTR -388[rbp]
	mov	ecx, eax
	rol	edx, cl
	mov	eax, edx
	jmp	.L206
.L205:
	mov	eax, DWORD PTR -388[rbp]
.L206:
	mov	DWORD PTR -388[rbp], eax
	mov	eax, DWORD PTR -388[rbp]
	shr	eax, 24
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s1[rip]
	mov	eax, DWORD PTR [rdx+rax]
	mov	edx, DWORD PTR -388[rbp]
	shr	edx, 16
	movzx	edx, dl
	mov	edx, edx
	lea	rcx, 0[0+rdx*4]
	lea	rdx, s2[rip]
	mov	edx, DWORD PTR [rcx+rdx]
	sub	eax, edx
	mov	ecx, eax
	mov	eax, DWORD PTR -388[rbp]
	shr	eax, 8
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s3[rip]
	mov	eax, DWORD PTR [rdx+rax]
	add	ecx, eax
	mov	eax, DWORD PTR -388[rbp]
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s4[rip]
	mov	eax, DWORD PTR [rdx+rax]
	xor	ecx, eax
	mov	rax, QWORD PTR -248[rbp]
	add	rax, 4
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -248[rbp]
	add	rax, 4
	xor	edx, ecx
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -232[rbp]
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -248[rbp]
	add	rax, 12
	mov	eax, DWORD PTR [rax]
	add	eax, edx
	mov	DWORD PTR -388[rbp], eax
	mov	rax, QWORD PTR -240[rbp]
	movzx	eax, BYTE PTR [rax]
	test	al, al
	je	.L207
	mov	rax, QWORD PTR -240[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	edx, DWORD PTR -388[rbp]
	mov	ecx, eax
	rol	edx, cl
	mov	eax, edx
	jmp	.L208
.L207:
	mov	eax, DWORD PTR -388[rbp]
.L208:
	mov	DWORD PTR -388[rbp], eax
	mov	eax, DWORD PTR -388[rbp]
	shr	eax, 24
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s1[rip]
	mov	ecx, DWORD PTR [rdx+rax]
	mov	eax, DWORD PTR -388[rbp]
	shr	eax, 16
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s2[rip]
	mov	eax, DWORD PTR [rdx+rax]
	xor	ecx, eax
	mov	eax, DWORD PTR -388[rbp]
	shr	eax, 8
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s3[rip]
	mov	eax, DWORD PTR [rdx+rax]
	sub	ecx, eax
	mov	eax, DWORD PTR -388[rbp]
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s4[rip]
	mov	eax, DWORD PTR [rdx+rax]
	add	ecx, eax
	mov	rax, QWORD PTR -248[rbp]
	add	rax, 8
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -248[rbp]
	add	rax, 8
	xor	edx, ecx
	mov	DWORD PTR [rax], edx
	nop
	mov	rax, QWORD PTR -408[rbp]
	add	rax, 32
	mov	QWORD PTR -336[rbp], rax
	mov	rax, QWORD PTR -408[rbp]
	add	rax, 200
	mov	QWORD PTR -328[rbp], rax
	lea	rax, -32[rbp]
	mov	QWORD PTR -272[rbp], rax
	mov	rax, QWORD PTR -328[rbp]
	mov	QWORD PTR -264[rbp], rax
	mov	rax, QWORD PTR -336[rbp]
	mov	QWORD PTR -256[rbp], rax
	mov	rax, QWORD PTR -256[rbp]
	add	rax, 12
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -272[rbp]
	mov	eax, DWORD PTR [rax]
	add	eax, edx
	mov	DWORD PTR -392[rbp], eax
	mov	rax, QWORD PTR -264[rbp]
	add	rax, 3
	movzx	eax, BYTE PTR [rax]
	test	al, al
	je	.L209
	mov	rax, QWORD PTR -264[rbp]
	add	rax, 3
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	edx, DWORD PTR -392[rbp]
	mov	ecx, eax
	rol	edx, cl
	mov	eax, edx
	jmp	.L210
.L209:
	mov	eax, DWORD PTR -392[rbp]
.L210:
	mov	DWORD PTR -392[rbp], eax
	mov	eax, DWORD PTR -392[rbp]
	shr	eax, 24
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s1[rip]
	mov	ecx, DWORD PTR [rdx+rax]
	mov	eax, DWORD PTR -392[rbp]
	shr	eax, 16
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s2[rip]
	mov	eax, DWORD PTR [rdx+rax]
	xor	ecx, eax
	mov	eax, DWORD PTR -392[rbp]
	shr	eax, 8
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s3[rip]
	mov	eax, DWORD PTR [rdx+rax]
	sub	ecx, eax
	mov	eax, DWORD PTR -392[rbp]
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s4[rip]
	mov	eax, DWORD PTR [rdx+rax]
	add	ecx, eax
	mov	rax, QWORD PTR -272[rbp]
	add	rax, 12
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -272[rbp]
	add	rax, 12
	xor	edx, ecx
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -256[rbp]
	add	rax, 8
	mov	eax, DWORD PTR [rax]
	mov	rdx, QWORD PTR -272[rbp]
	add	rdx, 4
	mov	edx, DWORD PTR [rdx]
	sub	eax, edx
	mov	DWORD PTR -392[rbp], eax
	mov	rax, QWORD PTR -264[rbp]
	add	rax, 2
	movzx	eax, BYTE PTR [rax]
	test	al, al
	je	.L211
	mov	rax, QWORD PTR -264[rbp]
	add	rax, 2
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	edx, DWORD PTR -392[rbp]
	mov	ecx, eax
	rol	edx, cl
	mov	eax, edx
	jmp	.L212
.L211:
	mov	eax, DWORD PTR -392[rbp]
.L212:
	mov	DWORD PTR -392[rbp], eax
	mov	eax, DWORD PTR -392[rbp]
	shr	eax, 24
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s1[rip]
	mov	ecx, DWORD PTR [rdx+rax]
	mov	eax, DWORD PTR -392[rbp]
	shr	eax, 16
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s2[rip]
	mov	eax, DWORD PTR [rdx+rax]
	add	ecx, eax
	mov	eax, DWORD PTR -392[rbp]
	shr	eax, 8
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s3[rip]
	mov	eax, DWORD PTR [rdx+rax]
	xor	ecx, eax
	mov	eax, DWORD PTR -392[rbp]
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s4[rip]
	mov	eax, DWORD PTR [rdx+rax]
	sub	ecx, eax
	mov	edx, ecx
	mov	rax, QWORD PTR -272[rbp]
	mov	eax, DWORD PTR [rax]
	xor	edx, eax
	mov	rax, QWORD PTR -272[rbp]
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -256[rbp]
	add	rax, 4
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -272[rbp]
	add	rax, 8
	mov	eax, DWORD PTR [rax]
	xor	eax, edx
	mov	DWORD PTR -392[rbp], eax
	mov	rax, QWORD PTR -264[rbp]
	add	rax, 1
	movzx	eax, BYTE PTR [rax]
	test	al, al
	je	.L213
	mov	rax, QWORD PTR -264[rbp]
	add	rax, 1
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	edx, DWORD PTR -392[rbp]
	mov	ecx, eax
	rol	edx, cl
	mov	eax, edx
	jmp	.L214
.L213:
	mov	eax, DWORD PTR -392[rbp]
.L214:
	mov	DWORD PTR -392[rbp], eax
	mov	eax, DWORD PTR -392[rbp]
	shr	eax, 24
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s1[rip]
	mov	eax, DWORD PTR [rdx+rax]
	mov	edx, DWORD PTR -392[rbp]
	shr	edx, 16
	movzx	edx, dl
	mov	edx, edx
	lea	rcx, 0[0+rdx*4]
	lea	rdx, s2[rip]
	mov	edx, DWORD PTR [rcx+rdx]
	sub	eax, edx
	mov	ecx, eax
	mov	eax, DWORD PTR -392[rbp]
	shr	eax, 8
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s3[rip]
	mov	eax, DWORD PTR [rdx+rax]
	add	ecx, eax
	mov	eax, DWORD PTR -392[rbp]
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s4[rip]
	mov	eax, DWORD PTR [rdx+rax]
	xor	ecx, eax
	mov	rax, QWORD PTR -272[rbp]
	add	rax, 4
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -272[rbp]
	add	rax, 4
	xor	edx, ecx
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -256[rbp]
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -272[rbp]
	add	rax, 12
	mov	eax, DWORD PTR [rax]
	add	eax, edx
	mov	DWORD PTR -392[rbp], eax
	mov	rax, QWORD PTR -264[rbp]
	movzx	eax, BYTE PTR [rax]
	test	al, al
	je	.L215
	mov	rax, QWORD PTR -264[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	edx, DWORD PTR -392[rbp]
	mov	ecx, eax
	rol	edx, cl
	mov	eax, edx
	jmp	.L216
.L215:
	mov	eax, DWORD PTR -392[rbp]
.L216:
	mov	DWORD PTR -392[rbp], eax
	mov	eax, DWORD PTR -392[rbp]
	shr	eax, 24
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s1[rip]
	mov	ecx, DWORD PTR [rdx+rax]
	mov	eax, DWORD PTR -392[rbp]
	shr	eax, 16
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s2[rip]
	mov	eax, DWORD PTR [rdx+rax]
	xor	ecx, eax
	mov	eax, DWORD PTR -392[rbp]
	shr	eax, 8
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s3[rip]
	mov	eax, DWORD PTR [rdx+rax]
	sub	ecx, eax
	mov	eax, DWORD PTR -392[rbp]
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s4[rip]
	mov	eax, DWORD PTR [rdx+rax]
	add	ecx, eax
	mov	rax, QWORD PTR -272[rbp]
	add	rax, 8
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -272[rbp]
	add	rax, 8
	xor	edx, ecx
	mov	DWORD PTR [rax], edx
	nop
	mov	rax, QWORD PTR -408[rbp]
	add	rax, 16
	mov	QWORD PTR -336[rbp], rax
	mov	rax, QWORD PTR -408[rbp]
	add	rax, 196
	mov	QWORD PTR -328[rbp], rax
	lea	rax, -32[rbp]
	mov	QWORD PTR -296[rbp], rax
	mov	rax, QWORD PTR -328[rbp]
	mov	QWORD PTR -288[rbp], rax
	mov	rax, QWORD PTR -336[rbp]
	mov	QWORD PTR -280[rbp], rax
	mov	rax, QWORD PTR -280[rbp]
	add	rax, 12
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -296[rbp]
	mov	eax, DWORD PTR [rax]
	add	eax, edx
	mov	DWORD PTR -396[rbp], eax
	mov	rax, QWORD PTR -288[rbp]
	add	rax, 3
	movzx	eax, BYTE PTR [rax]
	test	al, al
	je	.L217
	mov	rax, QWORD PTR -288[rbp]
	add	rax, 3
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	edx, DWORD PTR -396[rbp]
	mov	ecx, eax
	rol	edx, cl
	mov	eax, edx
	jmp	.L218
.L217:
	mov	eax, DWORD PTR -396[rbp]
.L218:
	mov	DWORD PTR -396[rbp], eax
	mov	eax, DWORD PTR -396[rbp]
	shr	eax, 24
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s1[rip]
	mov	ecx, DWORD PTR [rdx+rax]
	mov	eax, DWORD PTR -396[rbp]
	shr	eax, 16
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s2[rip]
	mov	eax, DWORD PTR [rdx+rax]
	xor	ecx, eax
	mov	eax, DWORD PTR -396[rbp]
	shr	eax, 8
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s3[rip]
	mov	eax, DWORD PTR [rdx+rax]
	sub	ecx, eax
	mov	eax, DWORD PTR -396[rbp]
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s4[rip]
	mov	eax, DWORD PTR [rdx+rax]
	add	ecx, eax
	mov	rax, QWORD PTR -296[rbp]
	add	rax, 12
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -296[rbp]
	add	rax, 12
	xor	edx, ecx
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -280[rbp]
	add	rax, 8
	mov	eax, DWORD PTR [rax]
	mov	rdx, QWORD PTR -296[rbp]
	add	rdx, 4
	mov	edx, DWORD PTR [rdx]
	sub	eax, edx
	mov	DWORD PTR -396[rbp], eax
	mov	rax, QWORD PTR -288[rbp]
	add	rax, 2
	movzx	eax, BYTE PTR [rax]
	test	al, al
	je	.L219
	mov	rax, QWORD PTR -288[rbp]
	add	rax, 2
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	edx, DWORD PTR -396[rbp]
	mov	ecx, eax
	rol	edx, cl
	mov	eax, edx
	jmp	.L220
.L219:
	mov	eax, DWORD PTR -396[rbp]
.L220:
	mov	DWORD PTR -396[rbp], eax
	mov	eax, DWORD PTR -396[rbp]
	shr	eax, 24
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s1[rip]
	mov	ecx, DWORD PTR [rdx+rax]
	mov	eax, DWORD PTR -396[rbp]
	shr	eax, 16
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s2[rip]
	mov	eax, DWORD PTR [rdx+rax]
	add	ecx, eax
	mov	eax, DWORD PTR -396[rbp]
	shr	eax, 8
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s3[rip]
	mov	eax, DWORD PTR [rdx+rax]
	xor	ecx, eax
	mov	eax, DWORD PTR -396[rbp]
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s4[rip]
	mov	eax, DWORD PTR [rdx+rax]
	sub	ecx, eax
	mov	edx, ecx
	mov	rax, QWORD PTR -296[rbp]
	mov	eax, DWORD PTR [rax]
	xor	edx, eax
	mov	rax, QWORD PTR -296[rbp]
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -280[rbp]
	add	rax, 4
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -296[rbp]
	add	rax, 8
	mov	eax, DWORD PTR [rax]
	xor	eax, edx
	mov	DWORD PTR -396[rbp], eax
	mov	rax, QWORD PTR -288[rbp]
	add	rax, 1
	movzx	eax, BYTE PTR [rax]
	test	al, al
	je	.L221
	mov	rax, QWORD PTR -288[rbp]
	add	rax, 1
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	edx, DWORD PTR -396[rbp]
	mov	ecx, eax
	rol	edx, cl
	mov	eax, edx
	jmp	.L222
.L221:
	mov	eax, DWORD PTR -396[rbp]
.L222:
	mov	DWORD PTR -396[rbp], eax
	mov	eax, DWORD PTR -396[rbp]
	shr	eax, 24
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s1[rip]
	mov	eax, DWORD PTR [rdx+rax]
	mov	edx, DWORD PTR -396[rbp]
	shr	edx, 16
	movzx	edx, dl
	mov	edx, edx
	lea	rcx, 0[0+rdx*4]
	lea	rdx, s2[rip]
	mov	edx, DWORD PTR [rcx+rdx]
	sub	eax, edx
	mov	ecx, eax
	mov	eax, DWORD PTR -396[rbp]
	shr	eax, 8
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s3[rip]
	mov	eax, DWORD PTR [rdx+rax]
	add	ecx, eax
	mov	eax, DWORD PTR -396[rbp]
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s4[rip]
	mov	eax, DWORD PTR [rdx+rax]
	xor	ecx, eax
	mov	rax, QWORD PTR -296[rbp]
	add	rax, 4
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -296[rbp]
	add	rax, 4
	xor	edx, ecx
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -280[rbp]
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -296[rbp]
	add	rax, 12
	mov	eax, DWORD PTR [rax]
	add	eax, edx
	mov	DWORD PTR -396[rbp], eax
	mov	rax, QWORD PTR -288[rbp]
	movzx	eax, BYTE PTR [rax]
	test	al, al
	je	.L223
	mov	rax, QWORD PTR -288[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	edx, DWORD PTR -396[rbp]
	mov	ecx, eax
	rol	edx, cl
	mov	eax, edx
	jmp	.L224
.L223:
	mov	eax, DWORD PTR -396[rbp]
.L224:
	mov	DWORD PTR -396[rbp], eax
	mov	eax, DWORD PTR -396[rbp]
	shr	eax, 24
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s1[rip]
	mov	ecx, DWORD PTR [rdx+rax]
	mov	eax, DWORD PTR -396[rbp]
	shr	eax, 16
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s2[rip]
	mov	eax, DWORD PTR [rdx+rax]
	xor	ecx, eax
	mov	eax, DWORD PTR -396[rbp]
	shr	eax, 8
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s3[rip]
	mov	eax, DWORD PTR [rdx+rax]
	sub	ecx, eax
	mov	eax, DWORD PTR -396[rbp]
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s4[rip]
	mov	eax, DWORD PTR [rdx+rax]
	add	ecx, eax
	mov	rax, QWORD PTR -296[rbp]
	add	rax, 8
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -296[rbp]
	add	rax, 8
	xor	edx, ecx
	mov	DWORD PTR [rax], edx
	nop
	mov	rax, QWORD PTR -408[rbp]
	mov	QWORD PTR -336[rbp], rax
	mov	rax, QWORD PTR -408[rbp]
	add	rax, 192
	mov	QWORD PTR -328[rbp], rax
	lea	rax, -32[rbp]
	mov	QWORD PTR -320[rbp], rax
	mov	rax, QWORD PTR -328[rbp]
	mov	QWORD PTR -312[rbp], rax
	mov	rax, QWORD PTR -336[rbp]
	mov	QWORD PTR -304[rbp], rax
	mov	rax, QWORD PTR -304[rbp]
	add	rax, 12
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -320[rbp]
	mov	eax, DWORD PTR [rax]
	add	eax, edx
	mov	DWORD PTR -400[rbp], eax
	mov	rax, QWORD PTR -312[rbp]
	add	rax, 3
	movzx	eax, BYTE PTR [rax]
	test	al, al
	je	.L225
	mov	rax, QWORD PTR -312[rbp]
	add	rax, 3
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	edx, DWORD PTR -400[rbp]
	mov	ecx, eax
	rol	edx, cl
	mov	eax, edx
	jmp	.L226
.L225:
	mov	eax, DWORD PTR -400[rbp]
.L226:
	mov	DWORD PTR -400[rbp], eax
	mov	eax, DWORD PTR -400[rbp]
	shr	eax, 24
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s1[rip]
	mov	ecx, DWORD PTR [rdx+rax]
	mov	eax, DWORD PTR -400[rbp]
	shr	eax, 16
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s2[rip]
	mov	eax, DWORD PTR [rdx+rax]
	xor	ecx, eax
	mov	eax, DWORD PTR -400[rbp]
	shr	eax, 8
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s3[rip]
	mov	eax, DWORD PTR [rdx+rax]
	sub	ecx, eax
	mov	eax, DWORD PTR -400[rbp]
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s4[rip]
	mov	eax, DWORD PTR [rdx+rax]
	add	ecx, eax
	mov	rax, QWORD PTR -320[rbp]
	add	rax, 12
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -320[rbp]
	add	rax, 12
	xor	edx, ecx
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -304[rbp]
	add	rax, 8
	mov	eax, DWORD PTR [rax]
	mov	rdx, QWORD PTR -320[rbp]
	add	rdx, 4
	mov	edx, DWORD PTR [rdx]
	sub	eax, edx
	mov	DWORD PTR -400[rbp], eax
	mov	rax, QWORD PTR -312[rbp]
	add	rax, 2
	movzx	eax, BYTE PTR [rax]
	test	al, al
	je	.L227
	mov	rax, QWORD PTR -312[rbp]
	add	rax, 2
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	edx, DWORD PTR -400[rbp]
	mov	ecx, eax
	rol	edx, cl
	mov	eax, edx
	jmp	.L228
.L227:
	mov	eax, DWORD PTR -400[rbp]
.L228:
	mov	DWORD PTR -400[rbp], eax
	mov	eax, DWORD PTR -400[rbp]
	shr	eax, 24
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s1[rip]
	mov	ecx, DWORD PTR [rdx+rax]
	mov	eax, DWORD PTR -400[rbp]
	shr	eax, 16
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s2[rip]
	mov	eax, DWORD PTR [rdx+rax]
	add	ecx, eax
	mov	eax, DWORD PTR -400[rbp]
	shr	eax, 8
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s3[rip]
	mov	eax, DWORD PTR [rdx+rax]
	xor	ecx, eax
	mov	eax, DWORD PTR -400[rbp]
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s4[rip]
	mov	eax, DWORD PTR [rdx+rax]
	sub	ecx, eax
	mov	edx, ecx
	mov	rax, QWORD PTR -320[rbp]
	mov	eax, DWORD PTR [rax]
	xor	edx, eax
	mov	rax, QWORD PTR -320[rbp]
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -304[rbp]
	add	rax, 4
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -320[rbp]
	add	rax, 8
	mov	eax, DWORD PTR [rax]
	xor	eax, edx
	mov	DWORD PTR -400[rbp], eax
	mov	rax, QWORD PTR -312[rbp]
	add	rax, 1
	movzx	eax, BYTE PTR [rax]
	test	al, al
	je	.L229
	mov	rax, QWORD PTR -312[rbp]
	add	rax, 1
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	edx, DWORD PTR -400[rbp]
	mov	ecx, eax
	rol	edx, cl
	mov	eax, edx
	jmp	.L230
.L229:
	mov	eax, DWORD PTR -400[rbp]
.L230:
	mov	DWORD PTR -400[rbp], eax
	mov	eax, DWORD PTR -400[rbp]
	shr	eax, 24
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s1[rip]
	mov	eax, DWORD PTR [rdx+rax]
	mov	edx, DWORD PTR -400[rbp]
	shr	edx, 16
	movzx	edx, dl
	mov	edx, edx
	lea	rcx, 0[0+rdx*4]
	lea	rdx, s2[rip]
	mov	edx, DWORD PTR [rcx+rdx]
	sub	eax, edx
	mov	ecx, eax
	mov	eax, DWORD PTR -400[rbp]
	shr	eax, 8
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s3[rip]
	mov	eax, DWORD PTR [rdx+rax]
	add	ecx, eax
	mov	eax, DWORD PTR -400[rbp]
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s4[rip]
	mov	eax, DWORD PTR [rdx+rax]
	xor	ecx, eax
	mov	rax, QWORD PTR -320[rbp]
	add	rax, 4
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -320[rbp]
	add	rax, 4
	xor	edx, ecx
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -304[rbp]
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -320[rbp]
	add	rax, 12
	mov	eax, DWORD PTR [rax]
	add	eax, edx
	mov	DWORD PTR -400[rbp], eax
	mov	rax, QWORD PTR -312[rbp]
	movzx	eax, BYTE PTR [rax]
	test	al, al
	je	.L231
	mov	rax, QWORD PTR -312[rbp]
	movzx	eax, BYTE PTR [rax]
	movzx	eax, al
	mov	edx, DWORD PTR -400[rbp]
	mov	ecx, eax
	rol	edx, cl
	mov	eax, edx
	jmp	.L232
.L231:
	mov	eax, DWORD PTR -400[rbp]
.L232:
	mov	DWORD PTR -400[rbp], eax
	mov	eax, DWORD PTR -400[rbp]
	shr	eax, 24
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s1[rip]
	mov	ecx, DWORD PTR [rdx+rax]
	mov	eax, DWORD PTR -400[rbp]
	shr	eax, 16
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s2[rip]
	mov	eax, DWORD PTR [rdx+rax]
	xor	ecx, eax
	mov	eax, DWORD PTR -400[rbp]
	shr	eax, 8
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s3[rip]
	mov	eax, DWORD PTR [rdx+rax]
	sub	ecx, eax
	mov	eax, DWORD PTR -400[rbp]
	movzx	eax, al
	mov	eax, eax
	lea	rdx, 0[0+rax*4]
	lea	rax, s4[rip]
	mov	eax, DWORD PTR [rdx+rax]
	add	ecx, eax
	mov	rax, QWORD PTR -320[rbp]
	add	rax, 8
	mov	edx, DWORD PTR [rax]
	mov	rax, QWORD PTR -320[rbp]
	add	rax, 8
	xor	edx, ecx
	mov	DWORD PTR [rax], edx
	nop
	mov	edx, DWORD PTR -32[rbp]
	mov	rax, QWORD PTR -344[rbp]
	mov	DWORD PTR [rax], edx
	mov	rax, QWORD PTR -344[rbp]
	lea	rdx, 4[rax]
	mov	eax, DWORD PTR -28[rbp]
	mov	DWORD PTR [rdx], eax
	mov	rax, QWORD PTR -344[rbp]
	lea	rdx, 8[rax]
	mov	eax, DWORD PTR -24[rbp]
	mov	DWORD PTR [rdx], eax
	mov	rax, QWORD PTR -344[rbp]
	lea	rdx, 12[rax]
	mov	eax, DWORD PTR -20[rbp]
	mov	DWORD PTR [rdx], eax
	nop
	mov	rax, QWORD PTR -8[rbp]
	sub	rax, QWORD PTR fs:40
	je	.L233
	call	__stack_chk_fail@PLT
.L233:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE5:
	.size	cast6_decrypt, .-cast6_decrypt
	.data
	.align 32
	.type	in_key, @object
	.size	in_key, 32
in_key:
	.ascii	"\253|\032\001\034:%&I7\251>-\235\363\275S\027B\312U\361\272K"
	.ascii	"R\f\243\350:\204\353="
	.local	in
	.comm	in,16,16
	.local	out
	.comm	out,16,16
	.text
	.globl	main
	.type	main, @function
main:
.LFB6:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 272
	mov	DWORD PTR -260[rbp], edi
	mov	QWORD PTR -272[rbp], rsi
	mov	rax, QWORD PTR fs:40
	mov	QWORD PTR -8[rbp], rax
	xor	eax, eax
	lea	rdx, -256[rbp]
	mov	eax, 0
	mov	ecx, 30
	mov	rdi, rdx
	rep stosq
	mov	edx, 32
	lea	rsi, in_key[rip]
	mov	edi, 0
	call	read@PLT
	mov	edx, 16
	lea	rsi, in[rip]
	mov	edi, 0
	call	read@PLT
	lea	rax, -256[rbp]
	mov	edx, 32
	mov	rsi, rax
	lea	rdi, in_key[rip]
	call	cast6_setkey
	lea	rax, -256[rbp]
	lea	rdx, in[rip]
	lea	rsi, out[rip]
	mov	rdi, rax
	call	cast6_encrypt
	mov	edx, 16
	lea	rsi, out[rip]
	mov	edi, 1
	call	write@PLT
	mov	eax, 0
	mov	rcx, QWORD PTR -8[rbp]
	sub	rcx, QWORD PTR fs:40
	je	.L236
	call	__stack_chk_fail@PLT
.L236:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE6:
	.size	main, .-main
	.ident	"GCC: (Ubuntu 10.5.0-1ubuntu1~20.04) 10.5.0"
	.section	.note.GNU-stack,"",@progbits
	.section	.note.gnu.property,"a"
	.align 8
	.long	 1f - 0f
	.long	 4f - 1f
	.long	 5
0:
	.string	 "GNU"
1:
	.align 8
	.long	 0xc0000002
	.long	 3f - 2f
2:
	.long	 0x3
3:
	.align 8
4:

	.arch armv5t
	.eabi_attribute 20, 1
	.eabi_attribute 21, 1
	.eabi_attribute 23, 3
	.eabi_attribute 24, 1
	.eabi_attribute 25, 1
	.eabi_attribute 26, 2
	.eabi_attribute 30, 6
	.eabi_attribute 34, 0
	.eabi_attribute 18, 4
	.file	"973725.c"
	.text
	.section	.rodata
	.align	6
	.type	s1, %object
	.size	s1, 1024
s1:
	.word	821772500
	.word	-1616838901
	.word	1810681135
	.word	1059425402
	.word	505495343
	.word	-1677701677
	.word	1610868032
	.word	-811611831
	.word	-1076580569
	.word	-2000962123
	.word	-503103344
	.word	-1731160459
	.word	1852023008
	.word	365126098
	.word	-1025022435
	.word	584384398
	.word	677919599
	.word	-1065365415
	.word	-14452280
	.word	2002735330
	.word	1136869587
	.word	-550533546
	.word	-2005097446
	.word	-1563247315
	.word	-1580605226
	.word	879511577
	.word	1639411079
	.word	575934255
	.word	717107937
	.word	-1437329813
	.word	576097850
	.word	-1563213360
	.word	1725645000
	.word	-1484506833
	.word	5111599
	.word	767152862
	.word	-1751892052
	.word	1251459544
	.word	1383482551
	.word	-1242286169
	.word	-1205028113
	.word	-682503847
	.word	1878520045
	.word	1510570527
	.word	-2105841456
	.word	-1863518930
	.word	582008916
	.word	-1131521739
	.word	1265446783
	.word	1354458274
	.word	-765048560
	.word	-1092255443
	.word	-1221385584
	.word	-382003809
	.word	-1265703919
	.word	1275016285
	.word	-45759936
	.word	-1389258945
	.word	-990457810
	.word	1442611557
	.word	-709768531
	.word	-1582551634
	.word	-1563117715
	.word	-1046803376
	.word	-2011021070
	.word	208555832
	.word	-1528512553
	.word	1331405426
	.word	1447828783
	.word	-979610855
	.word	-1186340012
	.word	-1337562626
	.word	-1313428598
	.word	-955033379
	.word	1669711173
	.word	286233437
	.word	1465092821
	.word	1782121619
	.word	-432195616
	.word	710211251
	.word	980974943
	.word	1651941557
	.word	430374111
	.word	2051154026
	.word	704238805
	.word	-165996399
	.word	-1150146722
	.word	-1437564569
	.word	948965521
	.word	-961214997
	.word	-2067281012
	.word	718756367
	.word	-2025188313
	.word	-1563323541
	.word	718440111
	.word	-1437150575
	.word	-678870176
	.word	1113355533
	.word	-1816945114
	.word	410092745
	.word	1811985197
	.word	1944238868
	.word	-1598112708
	.word	1415722873
	.word	1682284203
	.word	1060277122
	.word	1998114690
	.word	1503841958
	.word	82706478
	.word	-1979811610
	.word	1068173648
	.word	845149890
	.word	-2127020283
	.word	1768146376
	.word	1993038550
	.word	-728140599
	.word	-904393265
	.word	940016341
	.word	-939893514
	.word	-1966926575
	.word	904371731
	.word	1205506512
	.word	-200306554
	.word	-1478344290
	.word	825647681
	.word	85914773
	.word	-1437123836
	.word	1249926541
	.word	1417871568
	.word	3287612
	.word	-1083912737
	.word	-1168660850
	.word	1975924523
	.word	1353700161
	.word	-1480510859
	.word	-1856369675
	.word	1800716203
	.word	722146342
	.word	-1421030953
	.word	1151126914
	.word	-134483355
	.word	-1417296397
	.word	458611604
	.word	-1428888796
	.word	-811287233
	.word	770352098
	.word	-1642050302
	.word	-927128148
	.word	-354462285
	.word	-708993384
	.word	-485346894
	.word	718646636
	.word	-1790760482
	.word	-1380039384
	.word	-663679127
	.word	-1437480689
	.word	-1434948618
	.word	575749918
	.word	-1437489253
	.word	718488780
	.word	2069512688
	.word	-746783827
	.word	453416197
	.word	1106044049
	.word	-1262275866
	.word	52586708
	.word	-916452660
	.word	-835158419
	.word	-1083461268
	.word	1785789304
	.word	218356169
	.word	-723568162
	.word	-535796774
	.word	1194783844
	.word	1523787992
	.word	-1287140202
	.word	1975193539
	.word	-1739514885
	.word	1341901877
	.word	-1249128598
	.word	-518059332
	.word	-1077543350
	.word	-1492456432
	.word	-1405528310
	.word	1057244207
	.word	1636348243
	.word	-533104082
	.word	1462225785
	.word	-1662303857
	.word	481089165
	.word	718503062
	.word	24497053
	.word	-962724087
	.word	-950311440
	.word	-639942440
	.word	-334596231
	.word	1195698900
	.word	-1323552140
	.word	-584791138
	.word	2115785917
	.word	-267303687
	.word	-769388879
	.word	-1770671107
	.word	-1548994731
	.word	-730060881
	.word	1372086093
	.word	1452307862
	.word	-1514465818
	.word	1476592880
	.word	-905696015
	.word	18495466
	.word	-1916818725
	.word	901398090
	.word	891748256
	.word	-1015329527
	.word	-1137676583
	.word	-1734007194
	.word	1447622437
	.word	-10594659
	.word	216884176
	.word	2086908623
	.word	1879786977
	.word	-706064143
	.word	-2052511630
	.word	-1356874329
	.word	-735885200
	.word	-1484321805
	.word	758861177
	.word	1121993112
	.word	215018983
	.word	642190776
	.word	-125730484
	.word	1196255959
	.word	2081185372
	.word	-786228903
	.word	941322904
	.word	-170724133
	.word	-1417443757
	.word	1848581667
	.word	-2089706338
	.word	-1114513338
	.word	-1705622162
	.word	-600236020
	.word	550028657
	.word	-1775511012
	.word	-504981761
	.word	-1321096440
	.word	2093648313
	.word	443148163
	.word	46942275
	.word	-1560820359
	.word	1117713533
	.word	1115362972
	.word	1523183689
	.word	-577827072
	.word	1551984063
	.align	6
	.type	s2, %object
	.size	s2, 1024
s2:
	.word	522195092
	.word	-284448933
	.word	1776537470
	.word	960447360
	.word	-27144326
	.word	-289070982
	.word	1435016340
	.word	1929119313
	.word	-1381503111
	.word	1310552629
	.word	-715496498
	.word	-570149190
	.word	-1715195665
	.word	1594623892
	.word	417127293
	.word	-1579749389
	.word	-1598738565
	.word	1508390405
	.word	-300568428
	.word	-369108727
	.word	-599523194
	.word	-275495847
	.word	-1165767501
	.word	-524038661
	.word	-774225535
	.word	990456497
	.word	-107482687
	.word	-1511600261
	.word	21106139
	.word	-454561957
	.word	631373633
	.word	-511641594
	.word	532942976
	.word	396095098
	.word	-746928471
	.word	-27774812
	.word	-1730245761
	.word	2011709262
	.word	2039648873
	.word	620404603
	.word	-518797221
	.word	-1396440957
	.word	-682609371
	.word	-135634593
	.word	1645490516
	.word	223693667
	.word	1567101217
	.word	-932789415
	.word	1029951347
	.word	-824036160
	.word	-724009337
	.word	1550265121
	.word	119497089
	.word	972513919
	.word	907948164
	.word	-454338757
	.word	1613718692
	.word	-700789348
	.word	465323573
	.word	-1635712211
	.word	654439692
	.word	-1719371084
	.word	-1595678855
	.word	-1167264884
	.word	277098644
	.word	624404830
	.word	-194023426
	.word	-1577108705
	.word	546110314
	.word	-1891267468
	.word	-639589849
	.word	1321679412
	.word	-58175639
	.word	1045293279
	.word	-284295032
	.word	895050893
	.word	-1975175028
	.word	494945126
	.word	1914543101
	.word	-1517910853
	.word	-400202957
	.word	-2075229678
	.word	311263384
	.word	-19710028
	.word	-836236575
	.word	669096869
	.word	-710491566
	.word	-459844419
	.word	-975809059
	.word	-345608092
	.word	2005142349
	.word	-1581864959
	.word	-2066012503
	.word	-524982508
	.word	569394103
	.word	-439330720
	.word	1425027204
	.word	108000370
	.word	-1558535853
	.word	-623098027
	.word	-1251844673
	.word	1750473702
	.word	-2083886188
	.word	762237499
	.word	-321977893
	.word	-1496067910
	.word	-1233109668
	.word	-1351112951
	.word	867476300
	.word	964413654
	.word	1591880597
	.word	1594774276
	.word	-2115145887
	.word	552026980
	.word	-1268903048
	.word	-568826981
	.word	-2011389662
	.word	-1184422191
	.word	-2142656536
	.word	582474363
	.word	1582640421
	.word	1383256631
	.word	2043843868
	.word	-972191412
	.word	1217180674
	.word	463797851
	.word	-1531928725
	.word	480777679
	.word	-1576259579
	.word	-2005803165
	.word	-1176621109
	.word	214354409
	.word	200212307
	.word	-484358889
	.word	-1269553099
	.word	-1620891332
	.word	-297670871
	.word	1847405948
	.word	1342460550
	.word	510035443
	.word	-214695482
	.word	815934613
	.word	833030224
	.word	1620250387
	.word	1945732119
	.word	-1591306151
	.word	-328967100
	.word	1388869545
	.word	-838913114
	.word	-1607788735
	.word	2092620194
	.word	562037615
	.word	1356438536
	.word	-885045151
	.word	-1033119899
	.word	1688467115
	.word	-2144065930
	.word	631725691
	.word	-454635012
	.word	549916902
	.word	-839862656
	.word	394546491
	.word	837744717
	.word	2114462948
	.word	751520235
	.word	-2073412690
	.word	-1879607160
	.word	-295870218
	.word	2063029875
	.word	803036379
	.word	-1592380991
	.word	821456707
	.word	-1275401132
	.word	360699898
	.word	-276465204
	.word	-783098280
	.word	-617611938
	.word	-1892495847
	.word	812317050
	.word	49299192
	.word	-1724802347
	.word	-1035798001
	.word	-1478235216
	.word	-963753722
	.word	-1193663732
	.word	-2138951640
	.word	-589368376
	.word	-748703375
	.word	143268808
	.word	-1094662816
	.word	1638124008
	.word	-1129777843
	.word	-953159686
	.word	578956953
	.word	-2100989772
	.word	-656847223
	.word	-1961085764
	.word	807278310
	.word	658237817
	.word	-1325405530
	.word	1641658566
	.word	11683945
	.word	-1207972289
	.word	148645947
	.word	1138423386
	.word	-136210536
	.word	1981396783
	.word	-1893950556
	.word	-595183712
	.word	380097457
	.word	-1614572617
	.word	-1491898645
	.word	-960707010
	.word	441530178
	.word	-278386500
	.word	1375954390
	.word	761952171
	.word	891809099
	.word	-2111843818
	.word	157052462
	.word	-611126533
	.word	1592404427
	.word	341349109
	.word	-1856483457
	.word	1417898363
	.word	644327628
	.word	-2061934520
	.word	-1941197590
	.word	-2093457196
	.word	220455161
	.word	1815641738
	.word	182899273
	.word	-1299947508
	.word	-667585763
	.word	-592329145
	.word	-1404283158
	.word	1052606899
	.word	588164016
	.word	1681439879
	.word	-256527878
	.word	-1889623373
	.word	-65518014
	.word	167996282
	.word	1336969661
	.word	1688053129
	.word	-1555742370
	.word	1543734051
	.word	1046297529
	.word	1138201970
	.word	2121126012
	.word	115334942
	.word	1819067631
	.word	1902159161
	.word	1941945968
	.word	-2088274427
	.word	1159982321
	.align	6
	.type	s3, %object
	.size	s3, 1024
s3:
	.word	-1913667008
	.word	637164959
	.word	-342868545
	.word	-401553145
	.word	1197506559
	.word	916448331
	.word	-1944074684
	.word	-1362179440
	.word	-1095632449
	.word	-285488406
	.word	-389080752
	.word	1373570990
	.word	-1844541434
	.word	-257096376
	.word	-516125309
	.word	-1838149419
	.word	286293407
	.word	124026297
	.word	-1293687596
	.word	1028597854
	.word	-1179670496
	.word	-86080800
	.word	-1603852661
	.word	-2106427090
	.word	1430237888
	.word	1218109995
	.word	-722495596
	.word	308166588
	.word	570424558
	.word	-2107958275
	.word	-1839872531
	.word	307733056
	.word	1310360322
	.word	-1159692289
	.word	1384269543
	.word	-1906895858
	.word	863238079
	.word	-1935703672
	.word	-1493414168
	.word	-914180699
	.word	-1463804489
	.word	1470087780
	.word	1728663345
	.word	-222478497
	.word	1090516929
	.word	532123132
	.word	-1905536319
	.word	1132193179
	.word	-1716503105
	.word	-1243888053
	.word	1670234342
	.word	1434557849
	.word	-1583888356
	.word	1241591150
	.word	-980923864
	.word	-859607183
	.word	-1203518957
	.word	1812415473
	.word	-2096527044
	.word	267246943
	.word	796911696
	.word	-675250306
	.word	38830015
	.word	1526438404
	.word	-1488465200
	.word	374413614
	.word	-1351565506
	.word	1489179520
	.word	1603809326
	.word	1920779204
	.word	168801282
	.word	260042626
	.word	-1936261715
	.word	1563175598
	.word	-1897293239
	.word	1356499128
	.word	-2077756256
	.word	514611088
	.word	2037363785
	.word	-2108498923
	.word	-272794213
	.word	-1502455427
	.word	-1381482280
	.word	1173701892
	.word	-94538749
	.word	-398540027
	.word	1334932762
	.word	-1839830590
	.word	602925377
	.word	-1459359442
	.word	1613172210
	.word	41346230
	.word	-1795332748
	.word	-1837529678
	.word	-2106139701
	.word	41386358
	.word	-122711667
	.word	1313404830
	.word	-1889440289
	.word	-492993522
	.word	-2077262461
	.word	873260488
	.word	-1766082942
	.word	-1816874680
	.word	-282051413
	.word	-1739608280
	.word	2006953883
	.word	-1831053811
	.word	575479328
	.word	-2076726648
	.word	2099895446
	.word	660001756
	.word	-1953465106
	.word	-1256205760
	.word	-406815517
	.word	-446253919
	.word	-1008115362
	.word	1022894237
	.word	1620365795
	.word	-845372607
	.word	1551255054
	.word	15374395
	.word	-724141951
	.word	-45656276
	.word	-143856167
	.word	-1113054564
	.word	310226346
	.word	1133119310
	.word	530038928
	.word	136043402
	.word	-1818198338
	.word	-1187460587
	.word	-1750057729
	.word	1036173560
	.word	-1927630100
	.word	1681395281
	.word	1758231547
	.word	-653318264
	.word	306774401
	.word	1575354324
	.word	-578881430
	.word	1990386196
	.word	-1180433560
	.word	-1839360625
	.word	1262092282
	.word	-1170624791
	.word	-1526738165
	.word	-84438213
	.word	1833535011
	.word	423410938
	.word	660763973
	.word	-2107837318
	.word	1639812000
	.word	-786545967
	.word	-827521804
	.word	310289298
	.word	272797111
	.word	-2106414734
	.word	-1838103384
	.word	310240523
	.word	677093832
	.word	1013118031
	.word	901835429
	.word	-402271695
	.word	1116285435
	.word	-1258496126
	.word	1337354835
	.word	243122523
	.word	520626091
	.word	277223598
	.word	-50526099
	.word	-100718455
	.word	1766575121
	.word	594173102
	.word	316590669
	.word	742362309
	.word	-758108674
	.word	-118531946
	.word	-456174886
	.word	-1793762457
	.word	1229605004
	.word	-1179211764
	.word	1552908988
	.word	-1982633147
	.word	979407927
	.word	-335492695
	.word	1148277331
	.word	176638793
	.word	-680281024
	.word	2083809052
	.word	40992502
	.word	1340822838
	.word	-1563414529
	.word	-759209788
	.word	-734067776
	.word	1354035053
	.word	122129617
	.word	7215240
	.word	-1562034347
	.word	-1176054596
	.word	-1576763370
	.word	-1755891661
	.word	-685736601
	.word	-569405635
	.word	1928887091
	.word	-1412673741
	.word	1988674909
	.word	2063640240
	.word	-1803878399
	.word	1459647954
	.word	-105150216
	.word	-1992162914
	.word	1113892351
	.word	-2057108768
	.word	1927010603
	.word	-292086935
	.word	1856122846
	.word	1594404395
	.word	-1350934163
	.word	-439777433
	.word	-819991598
	.word	1643104450
	.word	-240376463
	.word	-863880766
	.word	1730235576
	.word	-1310358575
	.word	-1210302878
	.word	2131803598
	.word	-116761544
	.word	267404349
	.word	1617849798
	.word	1616132681
	.word	1462223176
	.word	736725533
	.word	-1967909064
	.word	551665188
	.word	-1349068273
	.word	1749386277
	.word	-1719452699
	.word	1611482493
	.word	674206544
	.word	-2093698206
	.word	-652406496
	.word	728599968
	.word	1680547377
	.word	-1674552832
	.word	1388111496
	.word	453204106
	.word	-138743851
	.word	1094905244
	.word	-1540269039
	.word	-2093859131
	.word	-537967050
	.word	-1590442751
	.word	-372026596
	.word	-298502269
	.align	6
	.type	s4, %object
	.size	s4, 1024
s4:
	.word	-1649212384
	.word	532081118
	.word	-1480688657
	.word	-764173672
	.word	1246723035
	.word	1689095255
	.word	-2058288061
	.word	-100528431
	.word	2116582143
	.word	-435177885
	.word	157234593
	.word	2045505824
	.word	-49963709
	.word	1687664561
	.word	-211542173
	.word	605965023
	.word	672431967
	.word	1336064205
	.word	-918355904
	.word	214114848
	.word	-36500688
	.word	-1062914225
	.word	489488601
	.word	605322005
	.word	-296939238
	.word	264917351
	.word	1912574028
	.word	756637694
	.word	436560991
	.word	202637054
	.word	135989450
	.word	85393697
	.word	-2142043904
	.word	-398565634
	.word	-1399130888
	.word	2145855233
	.word	-759632289
	.word	115294817
	.word	-1147233398
	.word	1922296357
	.word	-830144545
	.word	-177108991
	.word	1037454084
	.word	-1569774021
	.word	2127856640
	.word	1417604070
	.word	1148013728
	.word	1827919605
	.word	642362335
	.word	-1365194763
	.word	909348033
	.word	1346338451
	.word	-747167647
	.word	297154785
	.word	1917849091
	.word	-133254469
	.word	-1411362770
	.word	-326273058
	.word	1469521537
	.word	-514889914
	.word	-919383040
	.word	1763717519
	.word	136166297
	.word	-3996507
	.word	1295325189
	.word	2134727907
	.word	-1496815930
	.word	1566297257
	.word	-622039062
	.word	-1617793135
	.word	-1622793681
	.word	965822077
	.word	-1514181234
	.word	289653839
	.word	1133871874
	.word	-803123477
	.word	35685304
	.word	1068898316
	.word	418943774
	.word	672553190
	.word	642281022
	.word	-1948808592
	.word	1954014401
	.word	-1257840516
	.word	-215152091
	.word	2030668546
	.word	-454378623
	.word	672283427
	.word	1776201016
	.word	359975446
	.word	-544793758
	.word	555499703
	.word	-1524982023
	.word	1324923
	.word	69110472
	.word	152125443
	.word	-1118182190
	.word	-472820011
	.word	1340634837
	.word	798073664
	.word	1434183902
	.word	15393959
	.word	216384236
	.word	1303690150
	.word	-413745665
	.word	-583833172
	.word	-333991883
	.word	106373927
	.word	-1716533072
	.word	1455997841
	.word	1801814300
	.word	1578393881
	.word	1854262133
	.word	-1106788350
	.word	-1036888713
	.word	-1992297236
	.word	1539295533
	.word	-789824731
	.word	-1216341321
	.word	-1922221276
	.word	549938159
	.word	-1016683012
	.word	-1674041216
	.word	181285381
	.word	-1429646198
	.word	-324937785
	.word	68876850
	.word	488006234
	.word	1728155692
	.word	-1686799788
	.word	836007927
	.word	-1859735503
	.word	919367643
	.word	-955544762
	.word	-639210936
	.word	1457871481
	.word	40520939
	.word	1380155135
	.word	797931188
	.word	234455205
	.word	-2039165469
	.word	-304478997
	.word	397000196
	.word	739833055
	.word	-1217101923
	.word	-1423247436
	.word	-272413408
	.word	772369276
	.word	390177364
	.word	-441016267
	.word	557662966
	.word	740064294
	.word	1640166671
	.word	1699928825
	.word	-759025160
	.word	622006121
	.word	-669614174
	.word	68743880
	.word	1742502
	.word	219489963
	.word	1664179233
	.word	1577743084
	.word	1236991741
	.word	410585305
	.word	-1928479354
	.word	823226535
	.word	1050371084
	.word	-868347689
	.word	-708127818
	.word	212779912
	.word	-147848735
	.word	1819446015
	.word	1911218849
	.word	530248558
	.word	-808726225
	.word	-1042381801
	.word	-1408778645
	.word	-884694568
	.word	-1952772266
	.word	20547779
	.word	-1312477238
	.word	-1262603827
	.word	-663214074
	.word	312714466
	.word	1870521650
	.word	1493008054
	.word	-803280640
	.word	615382978
	.word	-191295547
	.word	-1760449851
	.word	1932181
	.word	-2098862126
	.word	278426614
	.word	6369430
	.word	-1020422879
	.word	-1381948929
	.word	697336853
	.word	2143000447
	.word	-1348553765
	.word	701099306
	.word	1558357093
	.word	-1489964244
	.word	-794148888
	.word	-1973632879
	.word	-727831321
	.word	216290473
	.word	-703935098
	.word	23009561
	.word	1996984579
	.word	-559924490
	.word	2024298078
	.word	-555526433
	.word	569400510
	.word	-1955208313
	.word	-1278933423
	.word	-1197095953
	.word	-655444270
	.word	-450642313
	.word	-1038793431
	.word	795471839
	.word	-1343849733
	.word	-193936206
	.word	-203363493
	.word	-691234698
	.word	971261452
	.word	534414648
	.word	428311343
	.word	-905940121
	.word	-1450097416
	.word	694888862
	.word	1227866773
	.word	-1838760277
	.word	-1251512727
	.word	-1680613926
	.word	-545389265
	.word	-618303460
	.word	459166190
	.word	-162323226
	.word	1794958188
	.word	51825668
	.word	-2042355394
	.word	-1210295856
	.word	2036672799
	.word	-858325693
	.word	1099053433
	.word	-1825845770
	.word	-1235762355
	.word	1323291266
	.word	2061838604
	.word	1018778475
	.word	-2061623042
	.word	-1741466242
	.word	334295216
	.word	-738217102
	.word	1065731521
	.word	183467730
	.align	6
	.type	Tm, %object
	.size	Tm, 768
Tm:
	.word	1518500249
	.word	-916691654
	.word	943083739
	.word	-1492108164
	.word	367667229
	.word	-2067524674
	.word	-207749281
	.word	1652026112
	.word	-783165791
	.word	1076609602
	.word	-1358582301
	.word	501193092
	.word	-1933998811
	.word	-74223418
	.word	1785551975
	.word	-649639928
	.word	1210135465
	.word	-1225056438
	.word	634718955
	.word	-1800472948
	.word	59302445
	.word	1919077838
	.word	-516114065
	.word	1343661328
	.word	-1091530575
	.word	768244818
	.word	-1666947085
	.word	192828308
	.word	2052603701
	.word	-382588202
	.word	1477187191
	.word	-958004712
	.word	901770681
	.word	-1533421222
	.word	326354171
	.word	-2108837732
	.word	-249062339
	.word	1610713054
	.word	-824478849
	.word	1035296544
	.word	-1399895359
	.word	459880034
	.word	-1975311869
	.word	-115536476
	.word	1744238917
	.word	-690952986
	.word	1168822407
	.word	-1266369496
	.word	593405897
	.word	-1841786006
	.word	17989387
	.word	1877764780
	.word	-557427123
	.word	1302348270
	.word	-1132843633
	.word	726931760
	.word	-1708260143
	.word	151515250
	.word	2011290643
	.word	-423901260
	.word	1435874133
	.word	-999317770
	.word	860457623
	.word	-1574734280
	.word	285041113
	.word	2144816506
	.word	-290375397
	.word	1569399996
	.word	-865791907
	.word	993983486
	.word	-1441208417
	.word	418566976
	.word	-2016624927
	.word	-156849534
	.word	1702925859
	.word	-732266044
	.word	1127509349
	.word	-1307682554
	.word	552092839
	.word	-1883099064
	.word	-23323671
	.word	1836451722
	.word	-598740181
	.word	1261035212
	.word	-1174156691
	.word	685618702
	.word	-1749573201
	.word	110202192
	.word	1969977585
	.word	-465214318
	.word	1394561075
	.word	-1040630828
	.word	819144565
	.word	-1616047338
	.word	243728055
	.word	2103503448
	.word	-331688455
	.word	1528086938
	.word	-907104965
	.word	952670428
	.word	-1482521475
	.word	377253918
	.word	-2057937985
	.word	-198162592
	.word	1661612801
	.word	-773579102
	.word	1086196291
	.word	-1348995612
	.word	510779781
	.word	-1924412122
	.word	-64636729
	.word	1795138664
	.word	-640053239
	.word	1219722154
	.word	-1215469749
	.word	644305644
	.word	-1790886259
	.word	68889134
	.word	1928664527
	.word	-506527376
	.word	1353248017
	.word	-1081943886
	.word	777831507
	.word	-1657360396
	.word	202414997
	.word	2062190390
	.word	-373001513
	.word	1486773880
	.word	-948418023
	.word	911357370
	.word	-1523834533
	.word	335940860
	.word	-2099251043
	.word	-239475650
	.word	1620299743
	.word	-814892160
	.word	1044883233
	.word	-1390308670
	.word	469466723
	.word	-1965725180
	.word	-105949787
	.word	1753825606
	.word	-681366297
	.word	1178409096
	.word	-1256782807
	.word	602992586
	.word	-1832199317
	.word	27576076
	.word	1887351469
	.word	-547840434
	.word	1311934959
	.word	-1123256944
	.word	736518449
	.word	-1698673454
	.word	161101939
	.word	2020877332
	.word	-414314571
	.word	1445460822
	.word	-989731081
	.word	870044312
	.word	-1565147591
	.word	294627802
	.word	-2140564101
	.word	-280788708
	.word	1578986685
	.word	-856205218
	.word	1003570175
	.word	-1431621728
	.word	428153665
	.word	-2007038238
	.word	-147262845
	.word	1712512548
	.word	-722679355
	.word	1137096038
	.word	-1298095865
	.word	561679528
	.word	-1873512375
	.word	-13736982
	.word	1846038411
	.word	-589153492
	.word	1270621901
	.word	-1164570002
	.word	695205391
	.word	-1739986512
	.word	119788881
	.word	1979564274
	.word	-455627629
	.word	1404147764
	.word	-1031044139
	.word	828731254
	.word	-1606460649
	.word	253314744
	.align	6
	.type	Tr, %object
	.size	Tr, 32
Tr:
	.ascii	"\023\004\025\006\027\010\031\012"
	.ascii	"\033\014\035\016\037\020\001\022"
	.ascii	"\003\024\005\026\007\030\011\032"
	.ascii	"\013\034\015\036\017\000\021\002"
	.align	2
.LC0:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	cast6_setkey
	.syntax unified
	.arm
	.fpu softvfp
	.type	cast6_setkey, %function
cast6_setkey:
	@ args = 0, pretend = 0, frame = 88
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #88
	str	r0, [fp, #-80]
	str	r1, [fp, #-84]
	str	r2, [fp, #-88]
	ldr	r3, .L38+24
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	sub	r3, fp, #40
	mov	r2, #32
	mov	r1, #0
	mov	r0, r3
	bl	memset
	ldr	r3, [fp, #-80]
	str	r3, [fp, #-68]
	ldr	r3, [fp, #-68]
	ldr	r3, [r3]
	str	r3, [fp, #-40]
	ldr	r3, [fp, #-68]
	ldr	r3, [r3, #4]
	str	r3, [fp, #-36]
	ldr	r3, [fp, #-68]
	ldr	r3, [r3, #8]
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-68]
	ldr	r3, [r3, #12]
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-68]
	ldr	r3, [r3, #16]
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-68]
	ldr	r3, [r3, #20]
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-68]
	ldr	r3, [r3, #24]
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-68]
	ldr	r3, [r3, #28]
	str	r3, [fp, #-12]
	mov	r3, #0
	str	r3, [fp, #-72]
	b	.L2
.L35:
	ldr	r3, [fp, #-72]
	lsl	r3, r3, #1
	mov	r2, r3
	sub	r3, fp, #40
	str	r3, [fp, #-52]
	str	r2, [fp, #-48]
	mov	r3, #0
	str	r3, [fp, #-44]
	ldr	r2, .L38
	ldr	r3, [fp, #-48]
	ldr	r2, [r2, r3, lsl #5]
	ldr	r3, [fp, #-52]
	add	r3, r3, #28
	ldr	r3, [r3]
	add	r3, r2, r3
	str	r3, [fp, #-44]
	ldr	r3, [fp, #-48]
	and	r3, r3, #3
	ldr	r2, .L38+4
	ldrb	r3, [r2, r3, lsl #3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L3
	ldr	r3, [fp, #-48]
	and	r3, r3, #3
	ldr	r2, .L38+4
	ldrb	r3, [r2, r3, lsl #3]	@ zero_extendqisi2
	ldr	r2, [fp, #-44]
	rsb	r3, r3, #32
	ror	r3, r2, r3
	b	.L4
.L3:
	ldr	r3, [fp, #-44]
.L4:
	str	r3, [fp, #-44]
	ldr	r3, [fp, #-44]
	lsr	r3, r3, #24
	ldr	r2, .L38+8
	ldr	r2, [r2, r3, lsl #2]
	ldr	r3, [fp, #-44]
	lsr	r3, r3, #16
	and	r3, r3, #255
	ldr	r1, .L38+12
	ldr	r3, [r1, r3, lsl #2]
	eor	r2, r2, r3
	ldr	r3, [fp, #-44]
	lsr	r3, r3, #8
	and	r3, r3, #255
	ldr	r1, .L38+16
	ldr	r3, [r1, r3, lsl #2]
	sub	r2, r2, r3
	ldr	r3, [fp, #-44]
	and	r3, r3, #255
	ldr	r1, .L38+20
	ldr	r3, [r1, r3, lsl #2]
	add	r1, r2, r3
	ldr	r3, [fp, #-52]
	add	r3, r3, #24
	ldr	r2, [r3]
	ldr	r3, [fp, #-52]
	add	r3, r3, #24
	eor	r2, r2, r1
	str	r2, [r3]
	ldr	r2, .L38
	ldr	r3, [fp, #-48]
	lsl	r3, r3, #5
	add	r3, r2, r3
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-52]
	add	r3, r3, #24
	ldr	r3, [r3]
	eor	r3, r3, r2
	str	r3, [fp, #-44]
	ldr	r3, [fp, #-48]
	and	r3, r3, #3
	ldr	r2, .L38+4
	lsl	r3, r3, #3
	add	r3, r2, r3
	ldrb	r3, [r3, #1]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L5
	ldr	r3, [fp, #-48]
	and	r3, r3, #3
	ldr	r2, .L38+4
	lsl	r3, r3, #3
	add	r3, r2, r3
	ldrb	r3, [r3, #1]	@ zero_extendqisi2
	ldr	r2, [fp, #-44]
	rsb	r3, r3, #32
	ror	r3, r2, r3
	b	.L6
.L5:
	ldr	r3, [fp, #-44]
.L6:
	str	r3, [fp, #-44]
	ldr	r3, [fp, #-44]
	lsr	r3, r3, #24
	ldr	r2, .L38+8
	ldr	r2, [r2, r3, lsl #2]
	ldr	r3, [fp, #-44]
	lsr	r3, r3, #16
	and	r3, r3, #255
	ldr	r1, .L38+12
	ldr	r3, [r1, r3, lsl #2]
	sub	r2, r2, r3
	ldr	r3, [fp, #-44]
	lsr	r3, r3, #8
	and	r3, r3, #255
	ldr	r1, .L38+16
	ldr	r3, [r1, r3, lsl #2]
	add	r2, r2, r3
	ldr	r3, [fp, #-44]
	and	r3, r3, #255
	ldr	r1, .L38+20
	ldr	r3, [r1, r3, lsl #2]
	eor	r1, r2, r3
	ldr	r3, [fp, #-52]
	add	r3, r3, #20
	ldr	r2, [r3]
	ldr	r3, [fp, #-52]
	add	r3, r3, #20
	eor	r2, r2, r1
	str	r2, [r3]
	ldr	r2, .L38
	ldr	r3, [fp, #-48]
	lsl	r3, r3, #5
	add	r3, r2, r3
	ldr	r2, [r3, #8]
	ldr	r3, [fp, #-52]
	add	r3, r3, #20
	ldr	r3, [r3]
	sub	r3, r2, r3
	str	r3, [fp, #-44]
	ldr	r3, [fp, #-48]
	and	r3, r3, #3
	ldr	r2, .L38+4
	lsl	r3, r3, #3
	add	r3, r2, r3
	ldrb	r3, [r3, #2]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L7
	ldr	r3, [fp, #-48]
	and	r3, r3, #3
	ldr	r2, .L38+4
	lsl	r3, r3, #3
	add	r3, r2, r3
	ldrb	r3, [r3, #2]	@ zero_extendqisi2
	ldr	r2, [fp, #-44]
	rsb	r3, r3, #32
	ror	r3, r2, r3
	b	.L8
.L7:
	ldr	r3, [fp, #-44]
.L8:
	str	r3, [fp, #-44]
	ldr	r3, [fp, #-44]
	lsr	r3, r3, #24
	ldr	r2, .L38+8
	ldr	r2, [r2, r3, lsl #2]
	ldr	r3, [fp, #-44]
	lsr	r3, r3, #16
	and	r3, r3, #255
	ldr	r1, .L38+12
	ldr	r3, [r1, r3, lsl #2]
	add	r2, r2, r3
	ldr	r3, [fp, #-44]
	lsr	r3, r3, #8
	and	r3, r3, #255
	ldr	r1, .L38+16
	ldr	r3, [r1, r3, lsl #2]
	eor	r2, r2, r3
	ldr	r3, [fp, #-44]
	and	r3, r3, #255
	ldr	r1, .L38+20
	ldr	r3, [r1, r3, lsl #2]
	sub	r1, r2, r3
	ldr	r3, [fp, #-52]
	add	r3, r3, #16
	ldr	r2, [r3]
	ldr	r3, [fp, #-52]
	add	r3, r3, #16
	eor	r2, r2, r1
	str	r2, [r3]
	ldr	r2, .L38
	ldr	r3, [fp, #-48]
	lsl	r3, r3, #5
	add	r3, r2, r3
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-52]
	add	r3, r3, #16
	ldr	r3, [r3]
	add	r3, r2, r3
	str	r3, [fp, #-44]
	ldr	r3, [fp, #-48]
	and	r3, r3, #3
	ldr	r2, .L38+4
	lsl	r3, r3, #3
	add	r3, r2, r3
	ldrb	r3, [r3, #3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L9
	ldr	r3, [fp, #-48]
	and	r3, r3, #3
	ldr	r2, .L38+4
	lsl	r3, r3, #3
	add	r3, r2, r3
	ldrb	r3, [r3, #3]	@ zero_extendqisi2
	ldr	r2, [fp, #-44]
	rsb	r3, r3, #32
	ror	r3, r2, r3
	b	.L10
.L9:
	ldr	r3, [fp, #-44]
.L10:
	str	r3, [fp, #-44]
	ldr	r3, [fp, #-44]
	lsr	r3, r3, #24
	ldr	r2, .L38+8
	ldr	r2, [r2, r3, lsl #2]
	ldr	r3, [fp, #-44]
	lsr	r3, r3, #16
	and	r3, r3, #255
	ldr	r1, .L38+12
	ldr	r3, [r1, r3, lsl #2]
	eor	r2, r2, r3
	ldr	r3, [fp, #-44]
	lsr	r3, r3, #8
	and	r3, r3, #255
	ldr	r1, .L38+16
	ldr	r3, [r1, r3, lsl #2]
	sub	r2, r2, r3
	ldr	r3, [fp, #-44]
	and	r3, r3, #255
	ldr	r1, .L38+20
	ldr	r3, [r1, r3, lsl #2]
	add	r1, r2, r3
	ldr	r3, [fp, #-52]
	add	r3, r3, #12
	ldr	r2, [r3]
	ldr	r3, [fp, #-52]
	add	r3, r3, #12
	eor	r2, r2, r1
	str	r2, [r3]
	ldr	r2, .L38
	ldr	r3, [fp, #-48]
	lsl	r3, r3, #5
	add	r3, r2, r3
	ldr	r2, [r3, #16]
	ldr	r3, [fp, #-52]
	add	r3, r3, #12
	ldr	r3, [r3]
	eor	r3, r3, r2
	str	r3, [fp, #-44]
	ldr	r3, [fp, #-48]
	and	r3, r3, #3
	ldr	r2, .L38+4
	lsl	r3, r3, #3
	add	r3, r2, r3
	ldrb	r3, [r3, #4]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L11
	ldr	r3, [fp, #-48]
	and	r3, r3, #3
	ldr	r2, .L38+4
	lsl	r3, r3, #3
	add	r3, r2, r3
	ldrb	r3, [r3, #4]	@ zero_extendqisi2
	ldr	r2, [fp, #-44]
	rsb	r3, r3, #32
	ror	r3, r2, r3
	b	.L12
.L11:
	ldr	r3, [fp, #-44]
.L12:
	str	r3, [fp, #-44]
	ldr	r3, [fp, #-44]
	lsr	r3, r3, #24
	ldr	r2, .L38+8
	ldr	r2, [r2, r3, lsl #2]
	ldr	r3, [fp, #-44]
	lsr	r3, r3, #16
	and	r3, r3, #255
	ldr	r1, .L38+12
	ldr	r3, [r1, r3, lsl #2]
	sub	r2, r2, r3
	ldr	r3, [fp, #-44]
	lsr	r3, r3, #8
	and	r3, r3, #255
	ldr	r1, .L38+16
	ldr	r3, [r1, r3, lsl #2]
	add	r2, r2, r3
	ldr	r3, [fp, #-44]
	and	r3, r3, #255
	ldr	r1, .L38+20
	ldr	r3, [r1, r3, lsl #2]
	eor	r1, r2, r3
	ldr	r3, [fp, #-52]
	add	r3, r3, #8
	ldr	r2, [r3]
	ldr	r3, [fp, #-52]
	add	r3, r3, #8
	eor	r2, r2, r1
	str	r2, [r3]
	ldr	r2, .L38
	ldr	r3, [fp, #-48]
	lsl	r3, r3, #5
	add	r3, r2, r3
	ldr	r2, [r3, #20]
	ldr	r3, [fp, #-52]
	add	r3, r3, #8
	ldr	r3, [r3]
	sub	r3, r2, r3
	str	r3, [fp, #-44]
	ldr	r3, [fp, #-48]
	and	r3, r3, #3
	ldr	r2, .L38+4
	lsl	r3, r3, #3
	add	r3, r2, r3
	ldrb	r3, [r3, #5]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L13
	ldr	r3, [fp, #-48]
	and	r3, r3, #3
	ldr	r2, .L38+4
	lsl	r3, r3, #3
	add	r3, r2, r3
	ldrb	r3, [r3, #5]	@ zero_extendqisi2
	ldr	r2, [fp, #-44]
	rsb	r3, r3, #32
	ror	r3, r2, r3
	b	.L14
.L13:
	ldr	r3, [fp, #-44]
.L14:
	str	r3, [fp, #-44]
	ldr	r3, [fp, #-44]
	lsr	r3, r3, #24
	ldr	r2, .L38+8
	ldr	r2, [r2, r3, lsl #2]
	ldr	r3, [fp, #-44]
	lsr	r3, r3, #16
	and	r3, r3, #255
	ldr	r1, .L38+12
	ldr	r3, [r1, r3, lsl #2]
	add	r2, r2, r3
	ldr	r3, [fp, #-44]
	lsr	r3, r3, #8
	and	r3, r3, #255
	ldr	r1, .L38+16
	ldr	r3, [r1, r3, lsl #2]
	eor	r2, r2, r3
	ldr	r3, [fp, #-44]
	and	r3, r3, #255
	ldr	r1, .L38+20
	ldr	r3, [r1, r3, lsl #2]
	sub	r1, r2, r3
	ldr	r3, [fp, #-52]
	add	r3, r3, #4
	ldr	r2, [r3]
	ldr	r3, [fp, #-52]
	add	r3, r3, #4
	eor	r2, r2, r1
	str	r2, [r3]
	ldr	r2, .L38
	ldr	r3, [fp, #-48]
	lsl	r3, r3, #5
	add	r3, r2, r3
	ldr	r2, [r3, #24]
	ldr	r3, [fp, #-52]
	add	r3, r3, #4
	ldr	r3, [r3]
	add	r3, r2, r3
	str	r3, [fp, #-44]
	ldr	r3, [fp, #-48]
	and	r3, r3, #3
	ldr	r2, .L38+4
	lsl	r3, r3, #3
	add	r3, r2, r3
	ldrb	r3, [r3, #6]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L15
	ldr	r3, [fp, #-48]
	and	r3, r3, #3
	ldr	r2, .L38+4
	lsl	r3, r3, #3
	add	r3, r2, r3
	ldrb	r3, [r3, #6]	@ zero_extendqisi2
	ldr	r2, [fp, #-44]
	rsb	r3, r3, #32
	ror	r3, r2, r3
	b	.L16
.L15:
	ldr	r3, [fp, #-44]
.L16:
	str	r3, [fp, #-44]
	ldr	r3, [fp, #-44]
	lsr	r3, r3, #24
	ldr	r2, .L38+8
	ldr	r2, [r2, r3, lsl #2]
	ldr	r3, [fp, #-44]
	lsr	r3, r3, #16
	and	r3, r3, #255
	ldr	r1, .L38+12
	ldr	r3, [r1, r3, lsl #2]
	eor	r2, r2, r3
	ldr	r3, [fp, #-44]
	lsr	r3, r3, #8
	and	r3, r3, #255
	ldr	r1, .L38+16
	ldr	r3, [r1, r3, lsl #2]
	sub	r2, r2, r3
	ldr	r3, [fp, #-44]
	and	r3, r3, #255
	ldr	r1, .L38+20
	ldr	r3, [r1, r3, lsl #2]
	add	r2, r2, r3
	ldr	r3, [fp, #-52]
	ldr	r3, [r3]
	eor	r2, r2, r3
	ldr	r3, [fp, #-52]
	str	r2, [r3]
	ldr	r2, .L38
	ldr	r3, [fp, #-48]
	lsl	r3, r3, #5
	add	r3, r2, r3
	ldr	r2, [r3, #28]
	ldr	r3, [fp, #-52]
	ldr	r3, [r3]
	eor	r3, r3, r2
	str	r3, [fp, #-44]
	ldr	r3, [fp, #-48]
	and	r3, r3, #3
	ldr	r2, .L38+4
	lsl	r3, r3, #3
	add	r3, r2, r3
	ldrb	r3, [r3, #7]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L17
	ldr	r3, [fp, #-48]
	and	r3, r3, #3
	ldr	r2, .L38+4
	lsl	r3, r3, #3
	add	r3, r2, r3
	ldrb	r3, [r3, #7]	@ zero_extendqisi2
	ldr	r2, [fp, #-44]
	rsb	r3, r3, #32
	ror	r3, r2, r3
	b	.L18
.L17:
	ldr	r3, [fp, #-44]
.L18:
	str	r3, [fp, #-44]
	ldr	r3, [fp, #-44]
	lsr	r3, r3, #24
	ldr	r2, .L38+8
	ldr	r2, [r2, r3, lsl #2]
	ldr	r3, [fp, #-44]
	lsr	r3, r3, #16
	and	r3, r3, #255
	ldr	r1, .L38+12
	ldr	r3, [r1, r3, lsl #2]
	sub	r2, r2, r3
	ldr	r3, [fp, #-44]
	lsr	r3, r3, #8
	and	r3, r3, #255
	ldr	r1, .L38+16
	ldr	r3, [r1, r3, lsl #2]
	add	r2, r2, r3
	ldr	r3, [fp, #-44]
	and	r3, r3, #255
	ldr	r1, .L38+20
	ldr	r3, [r1, r3, lsl #2]
	eor	r1, r2, r3
	ldr	r3, [fp, #-52]
	add	r3, r3, #28
	ldr	r2, [r3]
	ldr	r3, [fp, #-52]
	add	r3, r3, #28
	eor	r2, r2, r1
	str	r2, [r3]
	nop
	ldr	r3, [fp, #-72]
	lsl	r3, r3, #1
	add	r3, r3, #1
	mov	r2, r3
	sub	r3, fp, #40
	str	r3, [fp, #-64]
	str	r2, [fp, #-60]
	mov	r3, #0
	str	r3, [fp, #-56]
	ldr	r2, .L38
	ldr	r3, [fp, #-60]
	ldr	r2, [r2, r3, lsl #5]
	ldr	r3, [fp, #-64]
	add	r3, r3, #28
	ldr	r3, [r3]
	add	r3, r2, r3
	str	r3, [fp, #-56]
	ldr	r3, [fp, #-60]
	and	r3, r3, #3
	ldr	r2, .L38+4
	ldrb	r3, [r2, r3, lsl #3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L19
	ldr	r3, [fp, #-60]
	and	r3, r3, #3
	ldr	r2, .L38+4
	ldrb	r3, [r2, r3, lsl #3]	@ zero_extendqisi2
	ldr	r2, [fp, #-56]
	rsb	r3, r3, #32
	ror	r3, r2, r3
	b	.L20
.L19:
	ldr	r3, [fp, #-56]
.L20:
	str	r3, [fp, #-56]
	ldr	r3, [fp, #-56]
	lsr	r3, r3, #24
	ldr	r2, .L38+8
	ldr	r2, [r2, r3, lsl #2]
	ldr	r3, [fp, #-56]
	lsr	r3, r3, #16
	and	r3, r3, #255
	ldr	r1, .L38+12
	ldr	r3, [r1, r3, lsl #2]
	eor	r2, r2, r3
	ldr	r3, [fp, #-56]
	lsr	r3, r3, #8
	and	r3, r3, #255
	ldr	r1, .L38+16
	ldr	r3, [r1, r3, lsl #2]
	sub	r2, r2, r3
	ldr	r3, [fp, #-56]
	and	r3, r3, #255
	ldr	r1, .L38+20
	ldr	r3, [r1, r3, lsl #2]
	add	r1, r2, r3
	ldr	r3, [fp, #-64]
	add	r3, r3, #24
	ldr	r2, [r3]
	ldr	r3, [fp, #-64]
	add	r3, r3, #24
	eor	r2, r2, r1
	str	r2, [r3]
	ldr	r2, .L38
	ldr	r3, [fp, #-60]
	lsl	r3, r3, #5
	add	r3, r2, r3
	ldr	r2, [r3, #4]
	ldr	r3, [fp, #-64]
	add	r3, r3, #24
	ldr	r3, [r3]
	eor	r3, r3, r2
	str	r3, [fp, #-56]
	ldr	r3, [fp, #-60]
	and	r3, r3, #3
	ldr	r2, .L38+4
	lsl	r3, r3, #3
	add	r3, r2, r3
	ldrb	r3, [r3, #1]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L21
	ldr	r3, [fp, #-60]
	and	r3, r3, #3
	ldr	r2, .L38+4
	lsl	r3, r3, #3
	add	r3, r2, r3
	ldrb	r3, [r3, #1]	@ zero_extendqisi2
	ldr	r2, [fp, #-56]
	rsb	r3, r3, #32
	ror	r3, r2, r3
	b	.L22
.L21:
	ldr	r3, [fp, #-56]
.L22:
	str	r3, [fp, #-56]
	ldr	r3, [fp, #-56]
	lsr	r3, r3, #24
	ldr	r2, .L38+8
	ldr	r2, [r2, r3, lsl #2]
	ldr	r3, [fp, #-56]
	lsr	r3, r3, #16
	and	r3, r3, #255
	ldr	r1, .L38+12
	ldr	r3, [r1, r3, lsl #2]
	sub	r2, r2, r3
	ldr	r3, [fp, #-56]
	lsr	r3, r3, #8
	and	r3, r3, #255
	ldr	r1, .L38+16
	ldr	r3, [r1, r3, lsl #2]
	add	r2, r2, r3
	ldr	r3, [fp, #-56]
	and	r3, r3, #255
	ldr	r1, .L38+20
	ldr	r3, [r1, r3, lsl #2]
	eor	r1, r2, r3
	ldr	r3, [fp, #-64]
	add	r3, r3, #20
	ldr	r2, [r3]
	ldr	r3, [fp, #-64]
	add	r3, r3, #20
	eor	r2, r2, r1
	str	r2, [r3]
	ldr	r2, .L38
	ldr	r3, [fp, #-60]
	lsl	r3, r3, #5
	add	r3, r2, r3
	ldr	r2, [r3, #8]
	ldr	r3, [fp, #-64]
	add	r3, r3, #20
	ldr	r3, [r3]
	sub	r3, r2, r3
	str	r3, [fp, #-56]
	ldr	r3, [fp, #-60]
	and	r3, r3, #3
	ldr	r2, .L38+4
	lsl	r3, r3, #3
	add	r3, r2, r3
	ldrb	r3, [r3, #2]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L23
	ldr	r3, [fp, #-60]
	and	r3, r3, #3
	ldr	r2, .L38+4
	lsl	r3, r3, #3
	add	r3, r2, r3
	ldrb	r3, [r3, #2]	@ zero_extendqisi2
	ldr	r2, [fp, #-56]
	rsb	r3, r3, #32
	ror	r3, r2, r3
	b	.L24
.L23:
	ldr	r3, [fp, #-56]
.L24:
	str	r3, [fp, #-56]
	ldr	r3, [fp, #-56]
	lsr	r3, r3, #24
	ldr	r2, .L38+8
	ldr	r2, [r2, r3, lsl #2]
	ldr	r3, [fp, #-56]
	lsr	r3, r3, #16
	and	r3, r3, #255
	ldr	r1, .L38+12
	ldr	r3, [r1, r3, lsl #2]
	add	r2, r2, r3
	ldr	r3, [fp, #-56]
	lsr	r3, r3, #8
	and	r3, r3, #255
	ldr	r1, .L38+16
	ldr	r3, [r1, r3, lsl #2]
	eor	r2, r2, r3
	ldr	r3, [fp, #-56]
	and	r3, r3, #255
	ldr	r1, .L38+20
	ldr	r3, [r1, r3, lsl #2]
	sub	r1, r2, r3
	ldr	r3, [fp, #-64]
	add	r3, r3, #16
	ldr	r2, [r3]
	ldr	r3, [fp, #-64]
	add	r3, r3, #16
	eor	r2, r2, r1
	str	r2, [r3]
	ldr	r2, .L38
	ldr	r3, [fp, #-60]
	lsl	r3, r3, #5
	add	r3, r2, r3
	ldr	r2, [r3, #12]
	ldr	r3, [fp, #-64]
	add	r3, r3, #16
	ldr	r3, [r3]
	add	r3, r2, r3
	str	r3, [fp, #-56]
	ldr	r3, [fp, #-60]
	and	r3, r3, #3
	ldr	r2, .L38+4
	lsl	r3, r3, #3
	add	r3, r2, r3
	ldrb	r3, [r3, #3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L25
	ldr	r3, [fp, #-60]
	and	r3, r3, #3
	ldr	r2, .L38+4
	lsl	r3, r3, #3
	add	r3, r2, r3
	ldrb	r3, [r3, #3]	@ zero_extendqisi2
	ldr	r2, [fp, #-56]
	rsb	r3, r3, #32
	ror	r3, r2, r3
	b	.L26
.L25:
	ldr	r3, [fp, #-56]
.L26:
	str	r3, [fp, #-56]
	ldr	r3, [fp, #-56]
	lsr	r3, r3, #24
	ldr	r2, .L38+8
	ldr	r2, [r2, r3, lsl #2]
	ldr	r3, [fp, #-56]
	lsr	r3, r3, #16
	and	r3, r3, #255
	ldr	r1, .L38+12
	ldr	r3, [r1, r3, lsl #2]
	eor	r2, r2, r3
	ldr	r3, [fp, #-56]
	lsr	r3, r3, #8
	and	r3, r3, #255
	ldr	r1, .L38+16
	ldr	r3, [r1, r3, lsl #2]
	sub	r2, r2, r3
	ldr	r3, [fp, #-56]
	and	r3, r3, #255
	ldr	r1, .L38+20
	ldr	r3, [r1, r3, lsl #2]
	add	r1, r2, r3
	ldr	r3, [fp, #-64]
	add	r3, r3, #12
	ldr	r2, [r3]
	ldr	r3, [fp, #-64]
	add	r3, r3, #12
	eor	r2, r2, r1
	str	r2, [r3]
	ldr	r2, .L38
	ldr	r3, [fp, #-60]
	lsl	r3, r3, #5
	add	r3, r2, r3
	ldr	r2, [r3, #16]
	ldr	r3, [fp, #-64]
	add	r3, r3, #12
	ldr	r3, [r3]
	eor	r3, r3, r2
	str	r3, [fp, #-56]
	ldr	r3, [fp, #-60]
	and	r3, r3, #3
	ldr	r2, .L38+4
	lsl	r3, r3, #3
	add	r3, r2, r3
	ldrb	r3, [r3, #4]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L27
	ldr	r3, [fp, #-60]
	and	r3, r3, #3
	ldr	r2, .L38+4
	lsl	r3, r3, #3
	add	r3, r2, r3
	ldrb	r3, [r3, #4]	@ zero_extendqisi2
	ldr	r2, [fp, #-56]
	rsb	r3, r3, #32
	ror	r3, r2, r3
	b	.L28
.L27:
	ldr	r3, [fp, #-56]
.L28:
	str	r3, [fp, #-56]
	ldr	r3, [fp, #-56]
	lsr	r3, r3, #24
	ldr	r2, .L38+8
	ldr	r2, [r2, r3, lsl #2]
	ldr	r3, [fp, #-56]
	lsr	r3, r3, #16
	and	r3, r3, #255
	ldr	r1, .L38+12
	ldr	r3, [r1, r3, lsl #2]
	sub	r2, r2, r3
	ldr	r3, [fp, #-56]
	lsr	r3, r3, #8
	and	r3, r3, #255
	ldr	r1, .L38+16
	ldr	r3, [r1, r3, lsl #2]
	add	r2, r2, r3
	ldr	r3, [fp, #-56]
	and	r3, r3, #255
	ldr	r1, .L38+20
	ldr	r3, [r1, r3, lsl #2]
	eor	r1, r2, r3
	ldr	r3, [fp, #-64]
	add	r3, r3, #8
	ldr	r2, [r3]
	ldr	r3, [fp, #-64]
	add	r3, r3, #8
	eor	r2, r2, r1
	str	r2, [r3]
	ldr	r2, .L38
	ldr	r3, [fp, #-60]
	lsl	r3, r3, #5
	add	r3, r2, r3
	ldr	r2, [r3, #20]
	ldr	r3, [fp, #-64]
	add	r3, r3, #8
	ldr	r3, [r3]
	sub	r3, r2, r3
	str	r3, [fp, #-56]
	ldr	r3, [fp, #-60]
	and	r3, r3, #3
	ldr	r2, .L38+4
	lsl	r3, r3, #3
	add	r3, r2, r3
	ldrb	r3, [r3, #5]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L29
	ldr	r3, [fp, #-60]
	and	r3, r3, #3
	ldr	r2, .L38+4
	lsl	r3, r3, #3
	add	r3, r2, r3
	ldrb	r3, [r3, #5]	@ zero_extendqisi2
	ldr	r2, [fp, #-56]
	rsb	r3, r3, #32
	ror	r3, r2, r3
	b	.L30
.L29:
	ldr	r3, [fp, #-56]
.L30:
	str	r3, [fp, #-56]
	ldr	r3, [fp, #-56]
	lsr	r3, r3, #24
	ldr	r2, .L38+8
	ldr	r2, [r2, r3, lsl #2]
	ldr	r3, [fp, #-56]
	lsr	r3, r3, #16
	and	r3, r3, #255
	ldr	r1, .L38+12
	ldr	r3, [r1, r3, lsl #2]
	add	r2, r2, r3
	ldr	r3, [fp, #-56]
	lsr	r3, r3, #8
	and	r3, r3, #255
	ldr	r1, .L38+16
	ldr	r3, [r1, r3, lsl #2]
	eor	r2, r2, r3
	ldr	r3, [fp, #-56]
	and	r3, r3, #255
	ldr	r1, .L38+20
	ldr	r3, [r1, r3, lsl #2]
	sub	r1, r2, r3
	ldr	r3, [fp, #-64]
	add	r3, r3, #4
	ldr	r2, [r3]
	ldr	r3, [fp, #-64]
	add	r3, r3, #4
	eor	r2, r2, r1
	str	r2, [r3]
	ldr	r2, .L38
	ldr	r3, [fp, #-60]
	lsl	r3, r3, #5
	add	r3, r2, r3
	ldr	r2, [r3, #24]
	ldr	r3, [fp, #-64]
	add	r3, r3, #4
	ldr	r3, [r3]
	add	r3, r2, r3
	str	r3, [fp, #-56]
	ldr	r3, [fp, #-60]
	and	r3, r3, #3
	ldr	r2, .L38+4
	lsl	r3, r3, #3
	add	r3, r2, r3
	ldrb	r3, [r3, #6]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L31
	ldr	r3, [fp, #-60]
	and	r3, r3, #3
	ldr	r2, .L38+4
	lsl	r3, r3, #3
	add	r3, r2, r3
	ldrb	r3, [r3, #6]	@ zero_extendqisi2
	ldr	r2, [fp, #-56]
	rsb	r3, r3, #32
	ror	r3, r2, r3
	b	.L32
.L31:
	ldr	r3, [fp, #-56]
.L32:
	str	r3, [fp, #-56]
	ldr	r3, [fp, #-56]
	lsr	r3, r3, #24
	ldr	r2, .L38+8
	ldr	r2, [r2, r3, lsl #2]
	ldr	r3, [fp, #-56]
	lsr	r3, r3, #16
	and	r3, r3, #255
	ldr	r1, .L38+12
	ldr	r3, [r1, r3, lsl #2]
	eor	r2, r2, r3
	ldr	r3, [fp, #-56]
	lsr	r3, r3, #8
	and	r3, r3, #255
	ldr	r1, .L38+16
	ldr	r3, [r1, r3, lsl #2]
	sub	r2, r2, r3
	ldr	r3, [fp, #-56]
	and	r3, r3, #255
	ldr	r1, .L38+20
	ldr	r3, [r1, r3, lsl #2]
	add	r2, r2, r3
	ldr	r3, [fp, #-64]
	ldr	r3, [r3]
	eor	r2, r2, r3
	ldr	r3, [fp, #-64]
	str	r2, [r3]
	ldr	r2, .L38
	ldr	r3, [fp, #-60]
	lsl	r3, r3, #5
	add	r3, r2, r3
	ldr	r2, [r3, #28]
	ldr	r3, [fp, #-64]
	ldr	r3, [r3]
	eor	r3, r3, r2
	str	r3, [fp, #-56]
	ldr	r3, [fp, #-60]
	and	r3, r3, #3
	ldr	r2, .L38+4
	lsl	r3, r3, #3
	add	r3, r2, r3
	ldrb	r3, [r3, #7]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L33
	ldr	r3, [fp, #-60]
	and	r3, r3, #3
	ldr	r2, .L38+4
	lsl	r3, r3, #3
	add	r3, r2, r3
	ldrb	r3, [r3, #7]	@ zero_extendqisi2
	ldr	r2, [fp, #-56]
	rsb	r3, r3, #32
	ror	r3, r2, r3
	b	.L34
.L39:
	.align	2
.L38:
	.word	Tm
	.word	Tr
	.word	s1
	.word	s2
	.word	s3
	.word	s4
	.word	.LC0
.L33:
	ldr	r3, [fp, #-56]
.L34:
	str	r3, [fp, #-56]
	ldr	r3, [fp, #-56]
	lsr	r3, r3, #24
	ldr	r2, .L38+8
	ldr	r2, [r2, r3, lsl #2]
	ldr	r3, [fp, #-56]
	lsr	r3, r3, #16
	and	r3, r3, #255
	ldr	r1, .L38+12
	ldr	r3, [r1, r3, lsl #2]
	sub	r2, r2, r3
	ldr	r3, [fp, #-56]
	lsr	r3, r3, #8
	and	r3, r3, #255
	ldr	r1, .L38+16
	ldr	r3, [r1, r3, lsl #2]
	add	r2, r2, r3
	ldr	r3, [fp, #-56]
	and	r3, r3, #255
	ldr	r1, .L38+20
	ldr	r3, [r1, r3, lsl #2]
	eor	r1, r2, r3
	ldr	r3, [fp, #-64]
	add	r3, r3, #28
	ldr	r2, [r3]
	ldr	r3, [fp, #-64]
	add	r3, r3, #28
	eor	r2, r2, r1
	str	r2, [r3]
	nop
	ldr	r3, [fp, #-40]
	and	r3, r3, #255
	and	r3, r3, #31
	and	r1, r3, #255
	ldr	r3, [fp, #-84]
	ldr	r2, [fp, #-72]
	add	r2, r2, #48
	strb	r1, [r3, r2, lsl #2]
	ldr	r3, [fp, #-32]
	and	r3, r3, #255
	and	r3, r3, #31
	and	r1, r3, #255
	ldr	r2, [fp, #-84]
	ldr	r3, [fp, #-72]
	lsl	r3, r3, #2
	add	r3, r2, r3
	mov	r2, r1
	strb	r2, [r3, #193]
	ldr	r3, [fp, #-24]
	and	r3, r3, #255
	and	r3, r3, #31
	and	r1, r3, #255
	ldr	r2, [fp, #-84]
	ldr	r3, [fp, #-72]
	lsl	r3, r3, #2
	add	r3, r2, r3
	mov	r2, r1
	strb	r2, [r3, #194]
	ldr	r3, [fp, #-16]
	and	r3, r3, #255
	and	r3, r3, #31
	and	r1, r3, #255
	ldr	r2, [fp, #-84]
	ldr	r3, [fp, #-72]
	lsl	r3, r3, #2
	add	r3, r2, r3
	mov	r2, r1
	strb	r2, [r3, #195]
	ldr	r1, [fp, #-12]
	ldr	r3, [fp, #-84]
	ldr	r2, [fp, #-72]
	str	r1, [r3, r2, lsl #4]
	ldr	r2, [fp, #-20]
	ldr	r1, [fp, #-84]
	ldr	r3, [fp, #-72]
	lsl	r3, r3, #4
	add	r3, r1, r3
	str	r2, [r3, #4]
	ldr	r2, [fp, #-28]
	ldr	r1, [fp, #-84]
	ldr	r3, [fp, #-72]
	lsl	r3, r3, #4
	add	r3, r1, r3
	str	r2, [r3, #8]
	ldr	r2, [fp, #-36]
	ldr	r1, [fp, #-84]
	ldr	r3, [fp, #-72]
	lsl	r3, r3, #4
	add	r3, r1, r3
	str	r2, [r3, #12]
	ldr	r3, [fp, #-72]
	add	r3, r3, #1
	str	r3, [fp, #-72]
.L2:
	ldr	r3, [fp, #-72]
	cmp	r3, #1
	ble	.L35
	mov	r3, #0
	ldr	r2, .L38+24
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L37
	bl	__stack_chk_fail
.L37:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
	.size	cast6_setkey, .-cast6_setkey
	.section	.rodata
	.align	2
.LC1:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	cast6_encrypt
	.syntax unified
	.arm
	.fpu softvfp
	.type	cast6_encrypt, %function
cast6_encrypt:
	@ args = 0, pretend = 0, frame = 248
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #248
	str	r0, [fp, #-240]
	str	r1, [fp, #-244]
	str	r2, [fp, #-248]
	ldr	r3, .L138
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	ldr	r3, [fp, #-248]
	str	r3, [fp, #-232]
	ldr	r3, [fp, #-244]
	str	r3, [fp, #-228]
	ldr	r3, [fp, #-232]
	ldr	r3, [r3]
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-232]
	ldr	r3, [r3, #4]
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-232]
	ldr	r3, [r3, #8]
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-232]
	ldr	r3, [r3, #12]
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-240]
	str	r3, [fp, #-224]
	ldr	r3, [fp, #-240]
	add	r3, r3, #192
	str	r3, [fp, #-220]
	sub	r3, fp, #24
	str	r3, [fp, #-40]
	ldr	r3, [fp, #-220]
	str	r3, [fp, #-36]
	ldr	r3, [fp, #-224]
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-32]
	ldr	r2, [r3]
	ldr	r3, [fp, #-40]
	add	r3, r3, #12
	ldr	r3, [r3]
	add	r3, r2, r3
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-36]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L41
	ldr	r3, [fp, #-36]
	ldrb	r3, [r3]	@ zero_extendqisi2
	ldr	r2, [fp, #-28]
	rsb	r3, r3, #32
	ror	r3, r2, r3
	b	.L42
.L41:
	ldr	r3, [fp, #-28]
.L42:
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-28]
	lsr	r3, r3, #24
	ldr	r2, .L138+4
	ldr	r2, [r2, r3, lsl #2]
	ldr	r3, [fp, #-28]
	lsr	r3, r3, #16
	and	r3, r3, #255
	ldr	r1, .L138+8
	ldr	r3, [r1, r3, lsl #2]
	eor	r2, r2, r3
	ldr	r3, [fp, #-28]
	lsr	r3, r3, #8
	and	r3, r3, #255
	ldr	r1, .L138+12
	ldr	r3, [r1, r3, lsl #2]
	sub	r2, r2, r3
	ldr	r3, [fp, #-28]
	and	r3, r3, #255
	ldr	r1, .L138+16
	ldr	r3, [r1, r3, lsl #2]
	add	r1, r2, r3
	ldr	r3, [fp, #-40]
	add	r3, r3, #8
	ldr	r2, [r3]
	ldr	r3, [fp, #-40]
	add	r3, r3, #8
	eor	r2, r2, r1
	str	r2, [r3]
	ldr	r3, [fp, #-32]
	add	r3, r3, #4
	ldr	r2, [r3]
	ldr	r3, [fp, #-40]
	add	r3, r3, #8
	ldr	r3, [r3]
	eor	r3, r3, r2
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-36]
	add	r3, r3, #1
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L43
	ldr	r3, [fp, #-36]
	add	r3, r3, #1
	ldrb	r3, [r3]	@ zero_extendqisi2
	ldr	r2, [fp, #-28]
	rsb	r3, r3, #32
	ror	r3, r2, r3
	b	.L44
.L43:
	ldr	r3, [fp, #-28]
.L44:
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-28]
	lsr	r3, r3, #24
	ldr	r2, .L138+4
	ldr	r2, [r2, r3, lsl #2]
	ldr	r3, [fp, #-28]
	lsr	r3, r3, #16
	and	r3, r3, #255
	ldr	r1, .L138+8
	ldr	r3, [r1, r3, lsl #2]
	sub	r2, r2, r3
	ldr	r3, [fp, #-28]
	lsr	r3, r3, #8
	and	r3, r3, #255
	ldr	r1, .L138+12
	ldr	r3, [r1, r3, lsl #2]
	add	r2, r2, r3
	ldr	r3, [fp, #-28]
	and	r3, r3, #255
	ldr	r1, .L138+16
	ldr	r3, [r1, r3, lsl #2]
	eor	r1, r2, r3
	ldr	r3, [fp, #-40]
	add	r3, r3, #4
	ldr	r2, [r3]
	ldr	r3, [fp, #-40]
	add	r3, r3, #4
	eor	r2, r2, r1
	str	r2, [r3]
	ldr	r3, [fp, #-32]
	add	r3, r3, #8
	ldr	r2, [r3]
	ldr	r3, [fp, #-40]
	add	r3, r3, #4
	ldr	r3, [r3]
	sub	r3, r2, r3
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-36]
	add	r3, r3, #2
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L45
	ldr	r3, [fp, #-36]
	add	r3, r3, #2
	ldrb	r3, [r3]	@ zero_extendqisi2
	ldr	r2, [fp, #-28]
	rsb	r3, r3, #32
	ror	r3, r2, r3
	b	.L46
.L45:
	ldr	r3, [fp, #-28]
.L46:
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-28]
	lsr	r3, r3, #24
	ldr	r2, .L138+4
	ldr	r2, [r2, r3, lsl #2]
	ldr	r3, [fp, #-28]
	lsr	r3, r3, #16
	and	r3, r3, #255
	ldr	r1, .L138+8
	ldr	r3, [r1, r3, lsl #2]
	add	r2, r2, r3
	ldr	r3, [fp, #-28]
	lsr	r3, r3, #8
	and	r3, r3, #255
	ldr	r1, .L138+12
	ldr	r3, [r1, r3, lsl #2]
	eor	r2, r2, r3
	ldr	r3, [fp, #-28]
	and	r3, r3, #255
	ldr	r1, .L138+16
	ldr	r3, [r1, r3, lsl #2]
	sub	r2, r2, r3
	ldr	r3, [fp, #-40]
	ldr	r3, [r3]
	eor	r2, r2, r3
	ldr	r3, [fp, #-40]
	str	r2, [r3]
	ldr	r3, [fp, #-32]
	add	r3, r3, #12
	ldr	r2, [r3]
	ldr	r3, [fp, #-40]
	ldr	r3, [r3]
	add	r3, r2, r3
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-36]
	add	r3, r3, #3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L47
	ldr	r3, [fp, #-36]
	add	r3, r3, #3
	ldrb	r3, [r3]	@ zero_extendqisi2
	ldr	r2, [fp, #-28]
	rsb	r3, r3, #32
	ror	r3, r2, r3
	b	.L48
.L47:
	ldr	r3, [fp, #-28]
.L48:
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-28]
	lsr	r3, r3, #24
	ldr	r2, .L138+4
	ldr	r2, [r2, r3, lsl #2]
	ldr	r3, [fp, #-28]
	lsr	r3, r3, #16
	and	r3, r3, #255
	ldr	r1, .L138+8
	ldr	r3, [r1, r3, lsl #2]
	eor	r2, r2, r3
	ldr	r3, [fp, #-28]
	lsr	r3, r3, #8
	and	r3, r3, #255
	ldr	r1, .L138+12
	ldr	r3, [r1, r3, lsl #2]
	sub	r2, r2, r3
	ldr	r3, [fp, #-28]
	and	r3, r3, #255
	ldr	r1, .L138+16
	ldr	r3, [r1, r3, lsl #2]
	add	r1, r2, r3
	ldr	r3, [fp, #-40]
	add	r3, r3, #12
	ldr	r2, [r3]
	ldr	r3, [fp, #-40]
	add	r3, r3, #12
	eor	r2, r2, r1
	str	r2, [r3]
	nop
	ldr	r3, [fp, #-240]
	add	r3, r3, #16
	str	r3, [fp, #-224]
	ldr	r3, [fp, #-240]
	add	r3, r3, #196
	str	r3, [fp, #-220]
	sub	r3, fp, #24
	str	r3, [fp, #-56]
	ldr	r3, [fp, #-220]
	str	r3, [fp, #-52]
	ldr	r3, [fp, #-224]
	str	r3, [fp, #-48]
	ldr	r3, [fp, #-48]
	ldr	r2, [r3]
	ldr	r3, [fp, #-56]
	add	r3, r3, #12
	ldr	r3, [r3]
	add	r3, r2, r3
	str	r3, [fp, #-44]
	ldr	r3, [fp, #-52]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L49
	ldr	r3, [fp, #-52]
	ldrb	r3, [r3]	@ zero_extendqisi2
	ldr	r2, [fp, #-44]
	rsb	r3, r3, #32
	ror	r3, r2, r3
	b	.L50
.L49:
	ldr	r3, [fp, #-44]
.L50:
	str	r3, [fp, #-44]
	ldr	r3, [fp, #-44]
	lsr	r3, r3, #24
	ldr	r2, .L138+4
	ldr	r2, [r2, r3, lsl #2]
	ldr	r3, [fp, #-44]
	lsr	r3, r3, #16
	and	r3, r3, #255
	ldr	r1, .L138+8
	ldr	r3, [r1, r3, lsl #2]
	eor	r2, r2, r3
	ldr	r3, [fp, #-44]
	lsr	r3, r3, #8
	and	r3, r3, #255
	ldr	r1, .L138+12
	ldr	r3, [r1, r3, lsl #2]
	sub	r2, r2, r3
	ldr	r3, [fp, #-44]
	and	r3, r3, #255
	ldr	r1, .L138+16
	ldr	r3, [r1, r3, lsl #2]
	add	r1, r2, r3
	ldr	r3, [fp, #-56]
	add	r3, r3, #8
	ldr	r2, [r3]
	ldr	r3, [fp, #-56]
	add	r3, r3, #8
	eor	r2, r2, r1
	str	r2, [r3]
	ldr	r3, [fp, #-48]
	add	r3, r3, #4
	ldr	r2, [r3]
	ldr	r3, [fp, #-56]
	add	r3, r3, #8
	ldr	r3, [r3]
	eor	r3, r3, r2
	str	r3, [fp, #-44]
	ldr	r3, [fp, #-52]
	add	r3, r3, #1
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L51
	ldr	r3, [fp, #-52]
	add	r3, r3, #1
	ldrb	r3, [r3]	@ zero_extendqisi2
	ldr	r2, [fp, #-44]
	rsb	r3, r3, #32
	ror	r3, r2, r3
	b	.L52
.L51:
	ldr	r3, [fp, #-44]
.L52:
	str	r3, [fp, #-44]
	ldr	r3, [fp, #-44]
	lsr	r3, r3, #24
	ldr	r2, .L138+4
	ldr	r2, [r2, r3, lsl #2]
	ldr	r3, [fp, #-44]
	lsr	r3, r3, #16
	and	r3, r3, #255
	ldr	r1, .L138+8
	ldr	r3, [r1, r3, lsl #2]
	sub	r2, r2, r3
	ldr	r3, [fp, #-44]
	lsr	r3, r3, #8
	and	r3, r3, #255
	ldr	r1, .L138+12
	ldr	r3, [r1, r3, lsl #2]
	add	r2, r2, r3
	ldr	r3, [fp, #-44]
	and	r3, r3, #255
	ldr	r1, .L138+16
	ldr	r3, [r1, r3, lsl #2]
	eor	r1, r2, r3
	ldr	r3, [fp, #-56]
	add	r3, r3, #4
	ldr	r2, [r3]
	ldr	r3, [fp, #-56]
	add	r3, r3, #4
	eor	r2, r2, r1
	str	r2, [r3]
	ldr	r3, [fp, #-48]
	add	r3, r3, #8
	ldr	r2, [r3]
	ldr	r3, [fp, #-56]
	add	r3, r3, #4
	ldr	r3, [r3]
	sub	r3, r2, r3
	str	r3, [fp, #-44]
	ldr	r3, [fp, #-52]
	add	r3, r3, #2
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L53
	ldr	r3, [fp, #-52]
	add	r3, r3, #2
	ldrb	r3, [r3]	@ zero_extendqisi2
	ldr	r2, [fp, #-44]
	rsb	r3, r3, #32
	ror	r3, r2, r3
	b	.L54
.L53:
	ldr	r3, [fp, #-44]
.L54:
	str	r3, [fp, #-44]
	ldr	r3, [fp, #-44]
	lsr	r3, r3, #24
	ldr	r2, .L138+4
	ldr	r2, [r2, r3, lsl #2]
	ldr	r3, [fp, #-44]
	lsr	r3, r3, #16
	and	r3, r3, #255
	ldr	r1, .L138+8
	ldr	r3, [r1, r3, lsl #2]
	add	r2, r2, r3
	ldr	r3, [fp, #-44]
	lsr	r3, r3, #8
	and	r3, r3, #255
	ldr	r1, .L138+12
	ldr	r3, [r1, r3, lsl #2]
	eor	r2, r2, r3
	ldr	r3, [fp, #-44]
	and	r3, r3, #255
	ldr	r1, .L138+16
	ldr	r3, [r1, r3, lsl #2]
	sub	r2, r2, r3
	ldr	r3, [fp, #-56]
	ldr	r3, [r3]
	eor	r2, r2, r3
	ldr	r3, [fp, #-56]
	str	r2, [r3]
	ldr	r3, [fp, #-48]
	add	r3, r3, #12
	ldr	r2, [r3]
	ldr	r3, [fp, #-56]
	ldr	r3, [r3]
	add	r3, r2, r3
	str	r3, [fp, #-44]
	ldr	r3, [fp, #-52]
	add	r3, r3, #3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L55
	ldr	r3, [fp, #-52]
	add	r3, r3, #3
	ldrb	r3, [r3]	@ zero_extendqisi2
	ldr	r2, [fp, #-44]
	rsb	r3, r3, #32
	ror	r3, r2, r3
	b	.L56
.L55:
	ldr	r3, [fp, #-44]
.L56:
	str	r3, [fp, #-44]
	ldr	r3, [fp, #-44]
	lsr	r3, r3, #24
	ldr	r2, .L138+4
	ldr	r2, [r2, r3, lsl #2]
	ldr	r3, [fp, #-44]
	lsr	r3, r3, #16
	and	r3, r3, #255
	ldr	r1, .L138+8
	ldr	r3, [r1, r3, lsl #2]
	eor	r2, r2, r3
	ldr	r3, [fp, #-44]
	lsr	r3, r3, #8
	and	r3, r3, #255
	ldr	r1, .L138+12
	ldr	r3, [r1, r3, lsl #2]
	sub	r2, r2, r3
	ldr	r3, [fp, #-44]
	and	r3, r3, #255
	ldr	r1, .L138+16
	ldr	r3, [r1, r3, lsl #2]
	add	r1, r2, r3
	ldr	r3, [fp, #-56]
	add	r3, r3, #12
	ldr	r2, [r3]
	ldr	r3, [fp, #-56]
	add	r3, r3, #12
	eor	r2, r2, r1
	str	r2, [r3]
	nop
	ldr	r3, [fp, #-240]
	add	r3, r3, #32
	str	r3, [fp, #-224]
	ldr	r3, [fp, #-240]
	add	r3, r3, #200
	str	r3, [fp, #-220]
	sub	r3, fp, #24
	str	r3, [fp, #-72]
	ldr	r3, [fp, #-220]
	str	r3, [fp, #-68]
	ldr	r3, [fp, #-224]
	str	r3, [fp, #-64]
	ldr	r3, [fp, #-64]
	ldr	r2, [r3]
	ldr	r3, [fp, #-72]
	add	r3, r3, #12
	ldr	r3, [r3]
	add	r3, r2, r3
	str	r3, [fp, #-60]
	ldr	r3, [fp, #-68]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L57
	ldr	r3, [fp, #-68]
	ldrb	r3, [r3]	@ zero_extendqisi2
	ldr	r2, [fp, #-60]
	rsb	r3, r3, #32
	ror	r3, r2, r3
	b	.L58
.L57:
	ldr	r3, [fp, #-60]
.L58:
	str	r3, [fp, #-60]
	ldr	r3, [fp, #-60]
	lsr	r3, r3, #24
	ldr	r2, .L138+4
	ldr	r2, [r2, r3, lsl #2]
	ldr	r3, [fp, #-60]
	lsr	r3, r3, #16
	and	r3, r3, #255
	ldr	r1, .L138+8
	ldr	r3, [r1, r3, lsl #2]
	eor	r2, r2, r3
	ldr	r3, [fp, #-60]
	lsr	r3, r3, #8
	and	r3, r3, #255
	ldr	r1, .L138+12
	ldr	r3, [r1, r3, lsl #2]
	sub	r2, r2, r3
	ldr	r3, [fp, #-60]
	and	r3, r3, #255
	ldr	r1, .L138+16
	ldr	r3, [r1, r3, lsl #2]
	add	r1, r2, r3
	ldr	r3, [fp, #-72]
	add	r3, r3, #8
	ldr	r2, [r3]
	ldr	r3, [fp, #-72]
	add	r3, r3, #8
	eor	r2, r2, r1
	str	r2, [r3]
	ldr	r3, [fp, #-64]
	add	r3, r3, #4
	ldr	r2, [r3]
	ldr	r3, [fp, #-72]
	add	r3, r3, #8
	ldr	r3, [r3]
	eor	r3, r3, r2
	str	r3, [fp, #-60]
	ldr	r3, [fp, #-68]
	add	r3, r3, #1
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L59
	ldr	r3, [fp, #-68]
	add	r3, r3, #1
	ldrb	r3, [r3]	@ zero_extendqisi2
	ldr	r2, [fp, #-60]
	rsb	r3, r3, #32
	ror	r3, r2, r3
	b	.L60
.L59:
	ldr	r3, [fp, #-60]
.L60:
	str	r3, [fp, #-60]
	ldr	r3, [fp, #-60]
	lsr	r3, r3, #24
	ldr	r2, .L138+4
	ldr	r2, [r2, r3, lsl #2]
	ldr	r3, [fp, #-60]
	lsr	r3, r3, #16
	and	r3, r3, #255
	ldr	r1, .L138+8
	ldr	r3, [r1, r3, lsl #2]
	sub	r2, r2, r3
	ldr	r3, [fp, #-60]
	lsr	r3, r3, #8
	and	r3, r3, #255
	ldr	r1, .L138+12
	ldr	r3, [r1, r3, lsl #2]
	add	r2, r2, r3
	ldr	r3, [fp, #-60]
	and	r3, r3, #255
	ldr	r1, .L138+16
	ldr	r3, [r1, r3, lsl #2]
	eor	r1, r2, r3
	ldr	r3, [fp, #-72]
	add	r3, r3, #4
	ldr	r2, [r3]
	ldr	r3, [fp, #-72]
	add	r3, r3, #4
	eor	r2, r2, r1
	str	r2, [r3]
	ldr	r3, [fp, #-64]
	add	r3, r3, #8
	ldr	r2, [r3]
	ldr	r3, [fp, #-72]
	add	r3, r3, #4
	ldr	r3, [r3]
	sub	r3, r2, r3
	str	r3, [fp, #-60]
	ldr	r3, [fp, #-68]
	add	r3, r3, #2
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L61
	ldr	r3, [fp, #-68]
	add	r3, r3, #2
	ldrb	r3, [r3]	@ zero_extendqisi2
	ldr	r2, [fp, #-60]
	rsb	r3, r3, #32
	ror	r3, r2, r3
	b	.L62
.L61:
	ldr	r3, [fp, #-60]
.L62:
	str	r3, [fp, #-60]
	ldr	r3, [fp, #-60]
	lsr	r3, r3, #24
	ldr	r2, .L138+4
	ldr	r2, [r2, r3, lsl #2]
	ldr	r3, [fp, #-60]
	lsr	r3, r3, #16
	and	r3, r3, #255
	ldr	r1, .L138+8
	ldr	r3, [r1, r3, lsl #2]
	add	r2, r2, r3
	ldr	r3, [fp, #-60]
	lsr	r3, r3, #8
	and	r3, r3, #255
	ldr	r1, .L138+12
	ldr	r3, [r1, r3, lsl #2]
	eor	r2, r2, r3
	ldr	r3, [fp, #-60]
	and	r3, r3, #255
	ldr	r1, .L138+16
	ldr	r3, [r1, r3, lsl #2]
	sub	r2, r2, r3
	ldr	r3, [fp, #-72]
	ldr	r3, [r3]
	eor	r2, r2, r3
	ldr	r3, [fp, #-72]
	str	r2, [r3]
	ldr	r3, [fp, #-64]
	add	r3, r3, #12
	ldr	r2, [r3]
	ldr	r3, [fp, #-72]
	ldr	r3, [r3]
	add	r3, r2, r3
	str	r3, [fp, #-60]
	ldr	r3, [fp, #-68]
	add	r3, r3, #3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L63
	ldr	r3, [fp, #-68]
	add	r3, r3, #3
	ldrb	r3, [r3]	@ zero_extendqisi2
	ldr	r2, [fp, #-60]
	rsb	r3, r3, #32
	ror	r3, r2, r3
	b	.L64
.L63:
	ldr	r3, [fp, #-60]
.L64:
	str	r3, [fp, #-60]
	ldr	r3, [fp, #-60]
	lsr	r3, r3, #24
	ldr	r2, .L138+4
	ldr	r2, [r2, r3, lsl #2]
	ldr	r3, [fp, #-60]
	lsr	r3, r3, #16
	and	r3, r3, #255
	ldr	r1, .L138+8
	ldr	r3, [r1, r3, lsl #2]
	eor	r2, r2, r3
	ldr	r3, [fp, #-60]
	lsr	r3, r3, #8
	and	r3, r3, #255
	ldr	r1, .L138+12
	ldr	r3, [r1, r3, lsl #2]
	sub	r2, r2, r3
	ldr	r3, [fp, #-60]
	and	r3, r3, #255
	ldr	r1, .L138+16
	ldr	r3, [r1, r3, lsl #2]
	add	r1, r2, r3
	ldr	r3, [fp, #-72]
	add	r3, r3, #12
	ldr	r2, [r3]
	ldr	r3, [fp, #-72]
	add	r3, r3, #12
	eor	r2, r2, r1
	str	r2, [r3]
	nop
	ldr	r3, [fp, #-240]
	add	r3, r3, #48
	str	r3, [fp, #-224]
	ldr	r3, [fp, #-240]
	add	r3, r3, #204
	str	r3, [fp, #-220]
	sub	r3, fp, #24
	str	r3, [fp, #-88]
	ldr	r3, [fp, #-220]
	str	r3, [fp, #-84]
	ldr	r3, [fp, #-224]
	str	r3, [fp, #-80]
	ldr	r3, [fp, #-80]
	ldr	r2, [r3]
	ldr	r3, [fp, #-88]
	add	r3, r3, #12
	ldr	r3, [r3]
	add	r3, r2, r3
	str	r3, [fp, #-76]
	ldr	r3, [fp, #-84]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L65
	ldr	r3, [fp, #-84]
	ldrb	r3, [r3]	@ zero_extendqisi2
	ldr	r2, [fp, #-76]
	rsb	r3, r3, #32
	ror	r3, r2, r3
	b	.L66
.L65:
	ldr	r3, [fp, #-76]
.L66:
	str	r3, [fp, #-76]
	ldr	r3, [fp, #-76]
	lsr	r3, r3, #24
	ldr	r2, .L138+4
	ldr	r2, [r2, r3, lsl #2]
	ldr	r3, [fp, #-76]
	lsr	r3, r3, #16
	and	r3, r3, #255
	ldr	r1, .L138+8
	ldr	r3, [r1, r3, lsl #2]
	eor	r2, r2, r3
	ldr	r3, [fp, #-76]
	lsr	r3, r3, #8
	and	r3, r3, #255
	ldr	r1, .L138+12
	ldr	r3, [r1, r3, lsl #2]
	sub	r2, r2, r3
	ldr	r3, [fp, #-76]
	and	r3, r3, #255
	ldr	r1, .L138+16
	ldr	r3, [r1, r3, lsl #2]
	add	r1, r2, r3
	ldr	r3, [fp, #-88]
	add	r3, r3, #8
	ldr	r2, [r3]
	ldr	r3, [fp, #-88]
	add	r3, r3, #8
	eor	r2, r2, r1
	str	r2, [r3]
	ldr	r3, [fp, #-80]
	add	r3, r3, #4
	ldr	r2, [r3]
	ldr	r3, [fp, #-88]
	add	r3, r3, #8
	ldr	r3, [r3]
	eor	r3, r3, r2
	str	r3, [fp, #-76]
	ldr	r3, [fp, #-84]
	add	r3, r3, #1
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L67
	ldr	r3, [fp, #-84]
	add	r3, r3, #1
	ldrb	r3, [r3]	@ zero_extendqisi2
	ldr	r2, [fp, #-76]
	rsb	r3, r3, #32
	ror	r3, r2, r3
	b	.L68
.L67:
	ldr	r3, [fp, #-76]
.L68:
	str	r3, [fp, #-76]
	ldr	r3, [fp, #-76]
	lsr	r3, r3, #24
	ldr	r2, .L138+4
	ldr	r2, [r2, r3, lsl #2]
	ldr	r3, [fp, #-76]
	lsr	r3, r3, #16
	and	r3, r3, #255
	ldr	r1, .L138+8
	ldr	r3, [r1, r3, lsl #2]
	sub	r2, r2, r3
	ldr	r3, [fp, #-76]
	lsr	r3, r3, #8
	and	r3, r3, #255
	ldr	r1, .L138+12
	ldr	r3, [r1, r3, lsl #2]
	add	r2, r2, r3
	ldr	r3, [fp, #-76]
	and	r3, r3, #255
	ldr	r1, .L138+16
	ldr	r3, [r1, r3, lsl #2]
	eor	r1, r2, r3
	ldr	r3, [fp, #-88]
	add	r3, r3, #4
	ldr	r2, [r3]
	ldr	r3, [fp, #-88]
	add	r3, r3, #4
	eor	r2, r2, r1
	str	r2, [r3]
	ldr	r3, [fp, #-80]
	add	r3, r3, #8
	ldr	r2, [r3]
	ldr	r3, [fp, #-88]
	add	r3, r3, #4
	ldr	r3, [r3]
	sub	r3, r2, r3
	str	r3, [fp, #-76]
	ldr	r3, [fp, #-84]
	add	r3, r3, #2
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L69
	ldr	r3, [fp, #-84]
	add	r3, r3, #2
	ldrb	r3, [r3]	@ zero_extendqisi2
	ldr	r2, [fp, #-76]
	rsb	r3, r3, #32
	ror	r3, r2, r3
	b	.L70
.L69:
	ldr	r3, [fp, #-76]
.L70:
	str	r3, [fp, #-76]
	ldr	r3, [fp, #-76]
	lsr	r3, r3, #24
	ldr	r2, .L138+4
	ldr	r2, [r2, r3, lsl #2]
	ldr	r3, [fp, #-76]
	lsr	r3, r3, #16
	and	r3, r3, #255
	ldr	r1, .L138+8
	ldr	r3, [r1, r3, lsl #2]
	add	r2, r2, r3
	ldr	r3, [fp, #-76]
	lsr	r3, r3, #8
	and	r3, r3, #255
	ldr	r1, .L138+12
	ldr	r3, [r1, r3, lsl #2]
	eor	r2, r2, r3
	ldr	r3, [fp, #-76]
	and	r3, r3, #255
	ldr	r1, .L138+16
	ldr	r3, [r1, r3, lsl #2]
	sub	r2, r2, r3
	ldr	r3, [fp, #-88]
	ldr	r3, [r3]
	eor	r2, r2, r3
	ldr	r3, [fp, #-88]
	str	r2, [r3]
	ldr	r3, [fp, #-80]
	add	r3, r3, #12
	ldr	r2, [r3]
	ldr	r3, [fp, #-88]
	ldr	r3, [r3]
	add	r3, r2, r3
	str	r3, [fp, #-76]
	ldr	r3, [fp, #-84]
	add	r3, r3, #3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L71
	ldr	r3, [fp, #-84]
	add	r3, r3, #3
	ldrb	r3, [r3]	@ zero_extendqisi2
	ldr	r2, [fp, #-76]
	rsb	r3, r3, #32
	ror	r3, r2, r3
	b	.L72
.L71:
	ldr	r3, [fp, #-76]
.L72:
	str	r3, [fp, #-76]
	ldr	r3, [fp, #-76]
	lsr	r3, r3, #24
	ldr	r2, .L138+4
	ldr	r2, [r2, r3, lsl #2]
	ldr	r3, [fp, #-76]
	lsr	r3, r3, #16
	and	r3, r3, #255
	ldr	r1, .L138+8
	ldr	r3, [r1, r3, lsl #2]
	eor	r2, r2, r3
	ldr	r3, [fp, #-76]
	lsr	r3, r3, #8
	and	r3, r3, #255
	ldr	r1, .L138+12
	ldr	r3, [r1, r3, lsl #2]
	sub	r2, r2, r3
	ldr	r3, [fp, #-76]
	and	r3, r3, #255
	ldr	r1, .L138+16
	ldr	r3, [r1, r3, lsl #2]
	add	r1, r2, r3
	ldr	r3, [fp, #-88]
	add	r3, r3, #12
	ldr	r2, [r3]
	ldr	r3, [fp, #-88]
	add	r3, r3, #12
	eor	r2, r2, r1
	str	r2, [r3]
	nop
	ldr	r3, [fp, #-240]
	add	r3, r3, #64
	str	r3, [fp, #-224]
	ldr	r3, [fp, #-240]
	add	r3, r3, #208
	str	r3, [fp, #-220]
	sub	r3, fp, #24
	str	r3, [fp, #-104]
	ldr	r3, [fp, #-220]
	str	r3, [fp, #-100]
	ldr	r3, [fp, #-224]
	str	r3, [fp, #-96]
	ldr	r3, [fp, #-96]
	ldr	r2, [r3]
	ldr	r3, [fp, #-104]
	add	r3, r3, #12
	ldr	r3, [r3]
	add	r3, r2, r3
	str	r3, [fp, #-92]
	ldr	r3, [fp, #-100]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L73
	ldr	r3, [fp, #-100]
	ldrb	r3, [r3]	@ zero_extendqisi2
	ldr	r2, [fp, #-92]
	rsb	r3, r3, #32
	ror	r3, r2, r3
	b	.L74
.L73:
	ldr	r3, [fp, #-92]
.L74:
	str	r3, [fp, #-92]
	ldr	r3, [fp, #-92]
	lsr	r3, r3, #24
	ldr	r2, .L138+4
	ldr	r2, [r2, r3, lsl #2]
	ldr	r3, [fp, #-92]
	lsr	r3, r3, #16
	and	r3, r3, #255
	ldr	r1, .L138+8
	ldr	r3, [r1, r3, lsl #2]
	eor	r2, r2, r3
	ldr	r3, [fp, #-92]
	lsr	r3, r3, #8
	and	r3, r3, #255
	ldr	r1, .L138+12
	ldr	r3, [r1, r3, lsl #2]
	sub	r2, r2, r3
	ldr	r3, [fp, #-92]
	and	r3, r3, #255
	ldr	r1, .L138+16
	ldr	r3, [r1, r3, lsl #2]
	add	r1, r2, r3
	ldr	r3, [fp, #-104]
	add	r3, r3, #8
	ldr	r2, [r3]
	ldr	r3, [fp, #-104]
	add	r3, r3, #8
	eor	r2, r2, r1
	str	r2, [r3]
	ldr	r3, [fp, #-96]
	add	r3, r3, #4
	ldr	r2, [r3]
	ldr	r3, [fp, #-104]
	add	r3, r3, #8
	ldr	r3, [r3]
	eor	r3, r3, r2
	str	r3, [fp, #-92]
	ldr	r3, [fp, #-100]
	add	r3, r3, #1
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L75
	ldr	r3, [fp, #-100]
	add	r3, r3, #1
	ldrb	r3, [r3]	@ zero_extendqisi2
	ldr	r2, [fp, #-92]
	rsb	r3, r3, #32
	ror	r3, r2, r3
	b	.L76
.L75:
	ldr	r3, [fp, #-92]
.L76:
	str	r3, [fp, #-92]
	ldr	r3, [fp, #-92]
	lsr	r3, r3, #24
	ldr	r2, .L138+4
	ldr	r2, [r2, r3, lsl #2]
	ldr	r3, [fp, #-92]
	lsr	r3, r3, #16
	and	r3, r3, #255
	ldr	r1, .L138+8
	ldr	r3, [r1, r3, lsl #2]
	sub	r2, r2, r3
	ldr	r3, [fp, #-92]
	lsr	r3, r3, #8
	and	r3, r3, #255
	ldr	r1, .L138+12
	ldr	r3, [r1, r3, lsl #2]
	add	r2, r2, r3
	ldr	r3, [fp, #-92]
	and	r3, r3, #255
	ldr	r1, .L138+16
	ldr	r3, [r1, r3, lsl #2]
	eor	r1, r2, r3
	ldr	r3, [fp, #-104]
	add	r3, r3, #4
	ldr	r2, [r3]
	ldr	r3, [fp, #-104]
	add	r3, r3, #4
	eor	r2, r2, r1
	str	r2, [r3]
	ldr	r3, [fp, #-96]
	add	r3, r3, #8
	ldr	r2, [r3]
	ldr	r3, [fp, #-104]
	add	r3, r3, #4
	ldr	r3, [r3]
	sub	r3, r2, r3
	str	r3, [fp, #-92]
	ldr	r3, [fp, #-100]
	add	r3, r3, #2
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L77
	ldr	r3, [fp, #-100]
	add	r3, r3, #2
	ldrb	r3, [r3]	@ zero_extendqisi2
	ldr	r2, [fp, #-92]
	rsb	r3, r3, #32
	ror	r3, r2, r3
	b	.L78
.L77:
	ldr	r3, [fp, #-92]
.L78:
	str	r3, [fp, #-92]
	ldr	r3, [fp, #-92]
	lsr	r3, r3, #24
	ldr	r2, .L138+4
	ldr	r2, [r2, r3, lsl #2]
	ldr	r3, [fp, #-92]
	lsr	r3, r3, #16
	and	r3, r3, #255
	ldr	r1, .L138+8
	ldr	r3, [r1, r3, lsl #2]
	add	r2, r2, r3
	ldr	r3, [fp, #-92]
	lsr	r3, r3, #8
	and	r3, r3, #255
	ldr	r1, .L138+12
	ldr	r3, [r1, r3, lsl #2]
	eor	r2, r2, r3
	ldr	r3, [fp, #-92]
	and	r3, r3, #255
	ldr	r1, .L138+16
	ldr	r3, [r1, r3, lsl #2]
	sub	r2, r2, r3
	ldr	r3, [fp, #-104]
	ldr	r3, [r3]
	eor	r2, r2, r3
	ldr	r3, [fp, #-104]
	str	r2, [r3]
	ldr	r3, [fp, #-96]
	add	r3, r3, #12
	ldr	r2, [r3]
	ldr	r3, [fp, #-104]
	ldr	r3, [r3]
	add	r3, r2, r3
	str	r3, [fp, #-92]
	ldr	r3, [fp, #-100]
	add	r3, r3, #3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L79
	ldr	r3, [fp, #-100]
	add	r3, r3, #3
	ldrb	r3, [r3]	@ zero_extendqisi2
	ldr	r2, [fp, #-92]
	rsb	r3, r3, #32
	ror	r3, r2, r3
	b	.L80
.L139:
	.align	2
.L138:
	.word	.LC1
	.word	s1
	.word	s2
	.word	s3
	.word	s4
.L79:
	ldr	r3, [fp, #-92]
.L80:
	str	r3, [fp, #-92]
	ldr	r3, [fp, #-92]
	lsr	r3, r3, #24
	ldr	r2, .L138+4
	ldr	r2, [r2, r3, lsl #2]
	ldr	r3, [fp, #-92]
	lsr	r3, r3, #16
	and	r3, r3, #255
	ldr	r1, .L138+8
	ldr	r3, [r1, r3, lsl #2]
	eor	r2, r2, r3
	ldr	r3, [fp, #-92]
	lsr	r3, r3, #8
	and	r3, r3, #255
	ldr	r1, .L138+12
	ldr	r3, [r1, r3, lsl #2]
	sub	r2, r2, r3
	ldr	r3, [fp, #-92]
	and	r3, r3, #255
	ldr	r1, .L138+16
	ldr	r3, [r1, r3, lsl #2]
	add	r1, r2, r3
	ldr	r3, [fp, #-104]
	add	r3, r3, #12
	ldr	r2, [r3]
	ldr	r3, [fp, #-104]
	add	r3, r3, #12
	eor	r2, r2, r1
	str	r2, [r3]
	nop
	ldr	r3, [fp, #-240]
	add	r3, r3, #80
	str	r3, [fp, #-224]
	ldr	r3, [fp, #-240]
	add	r3, r3, #212
	str	r3, [fp, #-220]
	sub	r3, fp, #24
	str	r3, [fp, #-120]
	ldr	r3, [fp, #-220]
	str	r3, [fp, #-116]
	ldr	r3, [fp, #-224]
	str	r3, [fp, #-112]
	ldr	r3, [fp, #-112]
	ldr	r2, [r3]
	ldr	r3, [fp, #-120]
	add	r3, r3, #12
	ldr	r3, [r3]
	add	r3, r2, r3
	str	r3, [fp, #-108]
	ldr	r3, [fp, #-116]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L81
	ldr	r3, [fp, #-116]
	ldrb	r3, [r3]	@ zero_extendqisi2
	ldr	r2, [fp, #-108]
	rsb	r3, r3, #32
	ror	r3, r2, r3
	b	.L82
.L81:
	ldr	r3, [fp, #-108]
.L82:
	str	r3, [fp, #-108]
	ldr	r3, [fp, #-108]
	lsr	r3, r3, #24
	ldr	r2, .L138+4
	ldr	r2, [r2, r3, lsl #2]
	ldr	r3, [fp, #-108]
	lsr	r3, r3, #16
	and	r3, r3, #255
	ldr	r1, .L138+8
	ldr	r3, [r1, r3, lsl #2]
	eor	r2, r2, r3
	ldr	r3, [fp, #-108]
	lsr	r3, r3, #8
	and	r3, r3, #255
	ldr	r1, .L138+12
	ldr	r3, [r1, r3, lsl #2]
	sub	r2, r2, r3
	ldr	r3, [fp, #-108]
	and	r3, r3, #255
	ldr	r1, .L138+16
	ldr	r3, [r1, r3, lsl #2]
	add	r1, r2, r3
	ldr	r3, [fp, #-120]
	add	r3, r3, #8
	ldr	r2, [r3]
	ldr	r3, [fp, #-120]
	add	r3, r3, #8
	eor	r2, r2, r1
	str	r2, [r3]
	ldr	r3, [fp, #-112]
	add	r3, r3, #4
	ldr	r2, [r3]
	ldr	r3, [fp, #-120]
	add	r3, r3, #8
	ldr	r3, [r3]
	eor	r3, r3, r2
	str	r3, [fp, #-108]
	ldr	r3, [fp, #-116]
	add	r3, r3, #1
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L83
	ldr	r3, [fp, #-116]
	add	r3, r3, #1
	ldrb	r3, [r3]	@ zero_extendqisi2
	ldr	r2, [fp, #-108]
	rsb	r3, r3, #32
	ror	r3, r2, r3
	b	.L84
.L83:
	ldr	r3, [fp, #-108]
.L84:
	str	r3, [fp, #-108]
	ldr	r3, [fp, #-108]
	lsr	r3, r3, #24
	ldr	r2, .L138+4
	ldr	r2, [r2, r3, lsl #2]
	ldr	r3, [fp, #-108]
	lsr	r3, r3, #16
	and	r3, r3, #255
	ldr	r1, .L138+8
	ldr	r3, [r1, r3, lsl #2]
	sub	r2, r2, r3
	ldr	r3, [fp, #-108]
	lsr	r3, r3, #8
	and	r3, r3, #255
	ldr	r1, .L138+12
	ldr	r3, [r1, r3, lsl #2]
	add	r2, r2, r3
	ldr	r3, [fp, #-108]
	and	r3, r3, #255
	ldr	r1, .L138+16
	ldr	r3, [r1, r3, lsl #2]
	eor	r1, r2, r3
	ldr	r3, [fp, #-120]
	add	r3, r3, #4
	ldr	r2, [r3]
	ldr	r3, [fp, #-120]
	add	r3, r3, #4
	eor	r2, r2, r1
	str	r2, [r3]
	ldr	r3, [fp, #-112]
	add	r3, r3, #8
	ldr	r2, [r3]
	ldr	r3, [fp, #-120]
	add	r3, r3, #4
	ldr	r3, [r3]
	sub	r3, r2, r3
	str	r3, [fp, #-108]
	ldr	r3, [fp, #-116]
	add	r3, r3, #2
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L85
	ldr	r3, [fp, #-116]
	add	r3, r3, #2
	ldrb	r3, [r3]	@ zero_extendqisi2
	ldr	r2, [fp, #-108]
	rsb	r3, r3, #32
	ror	r3, r2, r3
	b	.L86
.L85:
	ldr	r3, [fp, #-108]
.L86:
	str	r3, [fp, #-108]
	ldr	r3, [fp, #-108]
	lsr	r3, r3, #24
	ldr	r2, .L138+4
	ldr	r2, [r2, r3, lsl #2]
	ldr	r3, [fp, #-108]
	lsr	r3, r3, #16
	and	r3, r3, #255
	ldr	r1, .L138+8
	ldr	r3, [r1, r3, lsl #2]
	add	r2, r2, r3
	ldr	r3, [fp, #-108]
	lsr	r3, r3, #8
	and	r3, r3, #255
	ldr	r1, .L138+12
	ldr	r3, [r1, r3, lsl #2]
	eor	r2, r2, r3
	ldr	r3, [fp, #-108]
	and	r3, r3, #255
	ldr	r1, .L138+16
	ldr	r3, [r1, r3, lsl #2]
	sub	r2, r2, r3
	ldr	r3, [fp, #-120]
	ldr	r3, [r3]
	eor	r2, r2, r3
	ldr	r3, [fp, #-120]
	str	r2, [r3]
	ldr	r3, [fp, #-112]
	add	r3, r3, #12
	ldr	r2, [r3]
	ldr	r3, [fp, #-120]
	ldr	r3, [r3]
	add	r3, r2, r3
	str	r3, [fp, #-108]
	ldr	r3, [fp, #-116]
	add	r3, r3, #3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L87
	ldr	r3, [fp, #-116]
	add	r3, r3, #3
	ldrb	r3, [r3]	@ zero_extendqisi2
	ldr	r2, [fp, #-108]
	rsb	r3, r3, #32
	ror	r3, r2, r3
	b	.L88
.L87:
	ldr	r3, [fp, #-108]
.L88:
	str	r3, [fp, #-108]
	ldr	r3, [fp, #-108]
	lsr	r3, r3, #24
	ldr	r2, .L138+4
	ldr	r2, [r2, r3, lsl #2]
	ldr	r3, [fp, #-108]
	lsr	r3, r3, #16
	and	r3, r3, #255
	ldr	r1, .L138+8
	ldr	r3, [r1, r3, lsl #2]
	eor	r2, r2, r3
	ldr	r3, [fp, #-108]
	lsr	r3, r3, #8
	and	r3, r3, #255
	ldr	r1, .L138+12
	ldr	r3, [r1, r3, lsl #2]
	sub	r2, r2, r3
	ldr	r3, [fp, #-108]
	and	r3, r3, #255
	ldr	r1, .L138+16
	ldr	r3, [r1, r3, lsl #2]
	add	r1, r2, r3
	ldr	r3, [fp, #-120]
	add	r3, r3, #12
	ldr	r2, [r3]
	ldr	r3, [fp, #-120]
	add	r3, r3, #12
	eor	r2, r2, r1
	str	r2, [r3]
	nop
	ldr	r3, [fp, #-240]
	add	r3, r3, #96
	str	r3, [fp, #-224]
	ldr	r3, [fp, #-240]
	add	r3, r3, #216
	str	r3, [fp, #-220]
	sub	r3, fp, #24
	str	r3, [fp, #-136]
	ldr	r3, [fp, #-220]
	str	r3, [fp, #-132]
	ldr	r3, [fp, #-224]
	str	r3, [fp, #-128]
	ldr	r3, [fp, #-128]
	add	r3, r3, #12
	ldr	r2, [r3]
	ldr	r3, [fp, #-136]
	ldr	r3, [r3]
	add	r3, r2, r3
	str	r3, [fp, #-124]
	ldr	r3, [fp, #-132]
	add	r3, r3, #3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L89
	ldr	r3, [fp, #-132]
	add	r3, r3, #3
	ldrb	r3, [r3]	@ zero_extendqisi2
	ldr	r2, [fp, #-124]
	rsb	r3, r3, #32
	ror	r3, r2, r3
	b	.L90
.L89:
	ldr	r3, [fp, #-124]
.L90:
	str	r3, [fp, #-124]
	ldr	r3, [fp, #-124]
	lsr	r3, r3, #24
	ldr	r2, .L138+4
	ldr	r2, [r2, r3, lsl #2]
	ldr	r3, [fp, #-124]
	lsr	r3, r3, #16
	and	r3, r3, #255
	ldr	r1, .L138+8
	ldr	r3, [r1, r3, lsl #2]
	eor	r2, r2, r3
	ldr	r3, [fp, #-124]
	lsr	r3, r3, #8
	and	r3, r3, #255
	ldr	r1, .L138+12
	ldr	r3, [r1, r3, lsl #2]
	sub	r2, r2, r3
	ldr	r3, [fp, #-124]
	and	r3, r3, #255
	ldr	r1, .L138+16
	ldr	r3, [r1, r3, lsl #2]
	add	r1, r2, r3
	ldr	r3, [fp, #-136]
	add	r3, r3, #12
	ldr	r2, [r3]
	ldr	r3, [fp, #-136]
	add	r3, r3, #12
	eor	r2, r2, r1
	str	r2, [r3]
	ldr	r3, [fp, #-128]
	add	r3, r3, #8
	ldr	r2, [r3]
	ldr	r3, [fp, #-136]
	add	r3, r3, #4
	ldr	r3, [r3]
	sub	r3, r2, r3
	str	r3, [fp, #-124]
	ldr	r3, [fp, #-132]
	add	r3, r3, #2
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L91
	ldr	r3, [fp, #-132]
	add	r3, r3, #2
	ldrb	r3, [r3]	@ zero_extendqisi2
	ldr	r2, [fp, #-124]
	rsb	r3, r3, #32
	ror	r3, r2, r3
	b	.L92
.L91:
	ldr	r3, [fp, #-124]
.L92:
	str	r3, [fp, #-124]
	ldr	r3, [fp, #-124]
	lsr	r3, r3, #24
	ldr	r2, .L138+4
	ldr	r2, [r2, r3, lsl #2]
	ldr	r3, [fp, #-124]
	lsr	r3, r3, #16
	and	r3, r3, #255
	ldr	r1, .L138+8
	ldr	r3, [r1, r3, lsl #2]
	add	r2, r2, r3
	ldr	r3, [fp, #-124]
	lsr	r3, r3, #8
	and	r3, r3, #255
	ldr	r1, .L138+12
	ldr	r3, [r1, r3, lsl #2]
	eor	r2, r2, r3
	ldr	r3, [fp, #-124]
	and	r3, r3, #255
	ldr	r1, .L138+16
	ldr	r3, [r1, r3, lsl #2]
	sub	r2, r2, r3
	ldr	r3, [fp, #-136]
	ldr	r3, [r3]
	eor	r2, r2, r3
	ldr	r3, [fp, #-136]
	str	r2, [r3]
	ldr	r3, [fp, #-128]
	add	r3, r3, #4
	ldr	r2, [r3]
	ldr	r3, [fp, #-136]
	add	r3, r3, #8
	ldr	r3, [r3]
	eor	r3, r3, r2
	str	r3, [fp, #-124]
	ldr	r3, [fp, #-132]
	add	r3, r3, #1
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L93
	ldr	r3, [fp, #-132]
	add	r3, r3, #1
	ldrb	r3, [r3]	@ zero_extendqisi2
	ldr	r2, [fp, #-124]
	rsb	r3, r3, #32
	ror	r3, r2, r3
	b	.L94
.L93:
	ldr	r3, [fp, #-124]
.L94:
	str	r3, [fp, #-124]
	ldr	r3, [fp, #-124]
	lsr	r3, r3, #24
	ldr	r2, .L138+4
	ldr	r2, [r2, r3, lsl #2]
	ldr	r3, [fp, #-124]
	lsr	r3, r3, #16
	and	r3, r3, #255
	ldr	r1, .L138+8
	ldr	r3, [r1, r3, lsl #2]
	sub	r2, r2, r3
	ldr	r3, [fp, #-124]
	lsr	r3, r3, #8
	and	r3, r3, #255
	ldr	r1, .L138+12
	ldr	r3, [r1, r3, lsl #2]
	add	r2, r2, r3
	ldr	r3, [fp, #-124]
	and	r3, r3, #255
	ldr	r1, .L138+16
	ldr	r3, [r1, r3, lsl #2]
	eor	r1, r2, r3
	ldr	r3, [fp, #-136]
	add	r3, r3, #4
	ldr	r2, [r3]
	ldr	r3, [fp, #-136]
	add	r3, r3, #4
	eor	r2, r2, r1
	str	r2, [r3]
	ldr	r3, [fp, #-128]
	ldr	r2, [r3]
	ldr	r3, [fp, #-136]
	add	r3, r3, #12
	ldr	r3, [r3]
	add	r3, r2, r3
	str	r3, [fp, #-124]
	ldr	r3, [fp, #-132]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L95
	ldr	r3, [fp, #-132]
	ldrb	r3, [r3]	@ zero_extendqisi2
	ldr	r2, [fp, #-124]
	rsb	r3, r3, #32
	ror	r3, r2, r3
	b	.L96
.L95:
	ldr	r3, [fp, #-124]
.L96:
	str	r3, [fp, #-124]
	ldr	r3, [fp, #-124]
	lsr	r3, r3, #24
	ldr	r2, .L138+4
	ldr	r2, [r2, r3, lsl #2]
	ldr	r3, [fp, #-124]
	lsr	r3, r3, #16
	and	r3, r3, #255
	ldr	r1, .L138+8
	ldr	r3, [r1, r3, lsl #2]
	eor	r2, r2, r3
	ldr	r3, [fp, #-124]
	lsr	r3, r3, #8
	and	r3, r3, #255
	ldr	r1, .L138+12
	ldr	r3, [r1, r3, lsl #2]
	sub	r2, r2, r3
	ldr	r3, [fp, #-124]
	and	r3, r3, #255
	ldr	r1, .L138+16
	ldr	r3, [r1, r3, lsl #2]
	add	r1, r2, r3
	ldr	r3, [fp, #-136]
	add	r3, r3, #8
	ldr	r2, [r3]
	ldr	r3, [fp, #-136]
	add	r3, r3, #8
	eor	r2, r2, r1
	str	r2, [r3]
	nop
	ldr	r3, [fp, #-240]
	add	r3, r3, #112
	str	r3, [fp, #-224]
	ldr	r3, [fp, #-240]
	add	r3, r3, #220
	str	r3, [fp, #-220]
	sub	r3, fp, #24
	str	r3, [fp, #-152]
	ldr	r3, [fp, #-220]
	str	r3, [fp, #-148]
	ldr	r3, [fp, #-224]
	str	r3, [fp, #-144]
	ldr	r3, [fp, #-144]
	add	r3, r3, #12
	ldr	r2, [r3]
	ldr	r3, [fp, #-152]
	ldr	r3, [r3]
	add	r3, r2, r3
	str	r3, [fp, #-140]
	ldr	r3, [fp, #-148]
	add	r3, r3, #3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L97
	ldr	r3, [fp, #-148]
	add	r3, r3, #3
	ldrb	r3, [r3]	@ zero_extendqisi2
	ldr	r2, [fp, #-140]
	rsb	r3, r3, #32
	ror	r3, r2, r3
	b	.L98
.L97:
	ldr	r3, [fp, #-140]
.L98:
	str	r3, [fp, #-140]
	ldr	r3, [fp, #-140]
	lsr	r3, r3, #24
	ldr	r2, .L138+4
	ldr	r2, [r2, r3, lsl #2]
	ldr	r3, [fp, #-140]
	lsr	r3, r3, #16
	and	r3, r3, #255
	ldr	r1, .L138+8
	ldr	r3, [r1, r3, lsl #2]
	eor	r2, r2, r3
	ldr	r3, [fp, #-140]
	lsr	r3, r3, #8
	and	r3, r3, #255
	ldr	r1, .L138+12
	ldr	r3, [r1, r3, lsl #2]
	sub	r2, r2, r3
	ldr	r3, [fp, #-140]
	and	r3, r3, #255
	ldr	r1, .L138+16
	ldr	r3, [r1, r3, lsl #2]
	add	r1, r2, r3
	ldr	r3, [fp, #-152]
	add	r3, r3, #12
	ldr	r2, [r3]
	ldr	r3, [fp, #-152]
	add	r3, r3, #12
	eor	r2, r2, r1
	str	r2, [r3]
	ldr	r3, [fp, #-144]
	add	r3, r3, #8
	ldr	r2, [r3]
	ldr	r3, [fp, #-152]
	add	r3, r3, #4
	ldr	r3, [r3]
	sub	r3, r2, r3
	str	r3, [fp, #-140]
	ldr	r3, [fp, #-148]
	add	r3, r3, #2
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L99
	ldr	r3, [fp, #-148]
	add	r3, r3, #2
	ldrb	r3, [r3]	@ zero_extendqisi2
	ldr	r2, [fp, #-140]
	rsb	r3, r3, #32
	ror	r3, r2, r3
	b	.L100
.L99:
	ldr	r3, [fp, #-140]
.L100:
	str	r3, [fp, #-140]
	ldr	r3, [fp, #-140]
	lsr	r3, r3, #24
	ldr	r2, .L138+4
	ldr	r2, [r2, r3, lsl #2]
	ldr	r3, [fp, #-140]
	lsr	r3, r3, #16
	and	r3, r3, #255
	ldr	r1, .L138+8
	ldr	r3, [r1, r3, lsl #2]
	add	r2, r2, r3
	ldr	r3, [fp, #-140]
	lsr	r3, r3, #8
	and	r3, r3, #255
	ldr	r1, .L138+12
	ldr	r3, [r1, r3, lsl #2]
	eor	r2, r2, r3
	ldr	r3, [fp, #-140]
	and	r3, r3, #255
	ldr	r1, .L138+16
	ldr	r3, [r1, r3, lsl #2]
	sub	r2, r2, r3
	ldr	r3, [fp, #-152]
	ldr	r3, [r3]
	eor	r2, r2, r3
	ldr	r3, [fp, #-152]
	str	r2, [r3]
	ldr	r3, [fp, #-144]
	add	r3, r3, #4
	ldr	r2, [r3]
	ldr	r3, [fp, #-152]
	add	r3, r3, #8
	ldr	r3, [r3]
	eor	r3, r3, r2
	str	r3, [fp, #-140]
	ldr	r3, [fp, #-148]
	add	r3, r3, #1
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L101
	ldr	r3, [fp, #-148]
	add	r3, r3, #1
	ldrb	r3, [r3]	@ zero_extendqisi2
	ldr	r2, [fp, #-140]
	rsb	r3, r3, #32
	ror	r3, r2, r3
	b	.L102
.L101:
	ldr	r3, [fp, #-140]
.L102:
	str	r3, [fp, #-140]
	ldr	r3, [fp, #-140]
	lsr	r3, r3, #24
	ldr	r2, .L138+4
	ldr	r2, [r2, r3, lsl #2]
	ldr	r3, [fp, #-140]
	lsr	r3, r3, #16
	and	r3, r3, #255
	ldr	r1, .L138+8
	ldr	r3, [r1, r3, lsl #2]
	sub	r2, r2, r3
	ldr	r3, [fp, #-140]
	lsr	r3, r3, #8
	and	r3, r3, #255
	ldr	r1, .L138+12
	ldr	r3, [r1, r3, lsl #2]
	add	r2, r2, r3
	ldr	r3, [fp, #-140]
	and	r3, r3, #255
	ldr	r1, .L138+16
	ldr	r3, [r1, r3, lsl #2]
	eor	r1, r2, r3
	ldr	r3, [fp, #-152]
	add	r3, r3, #4
	ldr	r2, [r3]
	ldr	r3, [fp, #-152]
	add	r3, r3, #4
	eor	r2, r2, r1
	str	r2, [r3]
	ldr	r3, [fp, #-144]
	ldr	r2, [r3]
	ldr	r3, [fp, #-152]
	add	r3, r3, #12
	ldr	r3, [r3]
	add	r3, r2, r3
	str	r3, [fp, #-140]
	ldr	r3, [fp, #-148]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L103
	ldr	r3, [fp, #-148]
	ldrb	r3, [r3]	@ zero_extendqisi2
	ldr	r2, [fp, #-140]
	rsb	r3, r3, #32
	ror	r3, r2, r3
	b	.L104
.L103:
	ldr	r3, [fp, #-140]
.L104:
	str	r3, [fp, #-140]
	ldr	r3, [fp, #-140]
	lsr	r3, r3, #24
	ldr	r2, .L138+4
	ldr	r2, [r2, r3, lsl #2]
	ldr	r3, [fp, #-140]
	lsr	r3, r3, #16
	and	r3, r3, #255
	ldr	r1, .L138+8
	ldr	r3, [r1, r3, lsl #2]
	eor	r2, r2, r3
	ldr	r3, [fp, #-140]
	lsr	r3, r3, #8
	and	r3, r3, #255
	ldr	r1, .L138+12
	ldr	r3, [r1, r3, lsl #2]
	sub	r2, r2, r3
	ldr	r3, [fp, #-140]
	and	r3, r3, #255
	ldr	r1, .L138+16
	ldr	r3, [r1, r3, lsl #2]
	add	r1, r2, r3
	ldr	r3, [fp, #-152]
	add	r3, r3, #8
	ldr	r2, [r3]
	ldr	r3, [fp, #-152]
	add	r3, r3, #8
	eor	r2, r2, r1
	str	r2, [r3]
	nop
	ldr	r3, [fp, #-240]
	add	r3, r3, #128
	str	r3, [fp, #-224]
	ldr	r3, [fp, #-240]
	add	r3, r3, #224
	str	r3, [fp, #-220]
	sub	r3, fp, #24
	str	r3, [fp, #-168]
	ldr	r3, [fp, #-220]
	str	r3, [fp, #-164]
	ldr	r3, [fp, #-224]
	str	r3, [fp, #-160]
	ldr	r3, [fp, #-160]
	add	r3, r3, #12
	ldr	r2, [r3]
	ldr	r3, [fp, #-168]
	ldr	r3, [r3]
	add	r3, r2, r3
	str	r3, [fp, #-156]
	ldr	r3, [fp, #-164]
	add	r3, r3, #3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L105
	ldr	r3, [fp, #-164]
	add	r3, r3, #3
	ldrb	r3, [r3]	@ zero_extendqisi2
	ldr	r2, [fp, #-156]
	rsb	r3, r3, #32
	ror	r3, r2, r3
	b	.L106
.L105:
	ldr	r3, [fp, #-156]
.L106:
	str	r3, [fp, #-156]
	ldr	r3, [fp, #-156]
	lsr	r3, r3, #24
	ldr	r2, .L138+4
	ldr	r2, [r2, r3, lsl #2]
	ldr	r3, [fp, #-156]
	lsr	r3, r3, #16
	and	r3, r3, #255
	ldr	r1, .L138+8
	ldr	r3, [r1, r3, lsl #2]
	eor	r2, r2, r3
	ldr	r3, [fp, #-156]
	lsr	r3, r3, #8
	and	r3, r3, #255
	ldr	r1, .L138+12
	ldr	r3, [r1, r3, lsl #2]
	sub	r2, r2, r3
	ldr	r3, [fp, #-156]
	and	r3, r3, #255
	ldr	r1, .L138+16
	ldr	r3, [r1, r3, lsl #2]
	add	r1, r2, r3
	ldr	r3, [fp, #-168]
	add	r3, r3, #12
	ldr	r2, [r3]
	ldr	r3, [fp, #-168]
	add	r3, r3, #12
	eor	r2, r2, r1
	str	r2, [r3]
	ldr	r3, [fp, #-160]
	add	r3, r3, #8
	ldr	r2, [r3]
	ldr	r3, [fp, #-168]
	add	r3, r3, #4
	ldr	r3, [r3]
	sub	r3, r2, r3
	str	r3, [fp, #-156]
	ldr	r3, [fp, #-164]
	add	r3, r3, #2
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L107
	ldr	r3, [fp, #-164]
	add	r3, r3, #2
	ldrb	r3, [r3]	@ zero_extendqisi2
	ldr	r2, [fp, #-156]
	rsb	r3, r3, #32
	ror	r3, r2, r3
	b	.L108
.L107:
	ldr	r3, [fp, #-156]
.L108:
	str	r3, [fp, #-156]
	ldr	r3, [fp, #-156]
	lsr	r3, r3, #24
	ldr	r2, .L138+4
	ldr	r2, [r2, r3, lsl #2]
	ldr	r3, [fp, #-156]
	lsr	r3, r3, #16
	and	r3, r3, #255
	ldr	r1, .L138+8
	ldr	r3, [r1, r3, lsl #2]
	add	r2, r2, r3
	ldr	r3, [fp, #-156]
	lsr	r3, r3, #8
	and	r3, r3, #255
	ldr	r1, .L138+12
	ldr	r3, [r1, r3, lsl #2]
	eor	r2, r2, r3
	ldr	r3, [fp, #-156]
	and	r3, r3, #255
	ldr	r1, .L138+16
	ldr	r3, [r1, r3, lsl #2]
	sub	r2, r2, r3
	ldr	r3, [fp, #-168]
	ldr	r3, [r3]
	eor	r2, r2, r3
	ldr	r3, [fp, #-168]
	str	r2, [r3]
	ldr	r3, [fp, #-160]
	add	r3, r3, #4
	ldr	r2, [r3]
	ldr	r3, [fp, #-168]
	add	r3, r3, #8
	ldr	r3, [r3]
	eor	r3, r3, r2
	str	r3, [fp, #-156]
	ldr	r3, [fp, #-164]
	add	r3, r3, #1
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L109
	ldr	r3, [fp, #-164]
	add	r3, r3, #1
	ldrb	r3, [r3]	@ zero_extendqisi2
	ldr	r2, [fp, #-156]
	rsb	r3, r3, #32
	ror	r3, r2, r3
	b	.L110
.L109:
	ldr	r3, [fp, #-156]
.L110:
	str	r3, [fp, #-156]
	ldr	r3, [fp, #-156]
	lsr	r3, r3, #24
	ldr	r2, .L138+4
	ldr	r2, [r2, r3, lsl #2]
	ldr	r3, [fp, #-156]
	lsr	r3, r3, #16
	and	r3, r3, #255
	ldr	r1, .L138+8
	ldr	r3, [r1, r3, lsl #2]
	sub	r2, r2, r3
	ldr	r3, [fp, #-156]
	lsr	r3, r3, #8
	and	r3, r3, #255
	ldr	r1, .L138+12
	ldr	r3, [r1, r3, lsl #2]
	add	r2, r2, r3
	ldr	r3, [fp, #-156]
	and	r3, r3, #255
	ldr	r1, .L138+16
	ldr	r3, [r1, r3, lsl #2]
	eor	r1, r2, r3
	ldr	r3, [fp, #-168]
	add	r3, r3, #4
	ldr	r2, [r3]
	ldr	r3, [fp, #-168]
	add	r3, r3, #4
	eor	r2, r2, r1
	str	r2, [r3]
	ldr	r3, [fp, #-160]
	ldr	r2, [r3]
	ldr	r3, [fp, #-168]
	add	r3, r3, #12
	ldr	r3, [r3]
	add	r3, r2, r3
	str	r3, [fp, #-156]
	ldr	r3, [fp, #-164]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L111
	ldr	r3, [fp, #-164]
	ldrb	r3, [r3]	@ zero_extendqisi2
	ldr	r2, [fp, #-156]
	rsb	r3, r3, #32
	ror	r3, r2, r3
	b	.L112
.L111:
	ldr	r3, [fp, #-156]
.L112:
	str	r3, [fp, #-156]
	ldr	r3, [fp, #-156]
	lsr	r3, r3, #24
	ldr	r2, .L138+4
	ldr	r2, [r2, r3, lsl #2]
	ldr	r3, [fp, #-156]
	lsr	r3, r3, #16
	and	r3, r3, #255
	ldr	r1, .L138+8
	ldr	r3, [r1, r3, lsl #2]
	eor	r2, r2, r3
	ldr	r3, [fp, #-156]
	lsr	r3, r3, #8
	and	r3, r3, #255
	ldr	r1, .L138+12
	ldr	r3, [r1, r3, lsl #2]
	sub	r2, r2, r3
	ldr	r3, [fp, #-156]
	and	r3, r3, #255
	ldr	r1, .L138+16
	ldr	r3, [r1, r3, lsl #2]
	add	r1, r2, r3
	ldr	r3, [fp, #-168]
	add	r3, r3, #8
	ldr	r2, [r3]
	ldr	r3, [fp, #-168]
	add	r3, r3, #8
	eor	r2, r2, r1
	str	r2, [r3]
	nop
	ldr	r3, [fp, #-240]
	add	r3, r3, #144
	str	r3, [fp, #-224]
	ldr	r3, [fp, #-240]
	add	r3, r3, #228
	str	r3, [fp, #-220]
	sub	r3, fp, #24
	str	r3, [fp, #-184]
	ldr	r3, [fp, #-220]
	str	r3, [fp, #-180]
	ldr	r3, [fp, #-224]
	str	r3, [fp, #-176]
	ldr	r3, [fp, #-176]
	add	r3, r3, #12
	ldr	r2, [r3]
	ldr	r3, [fp, #-184]
	ldr	r3, [r3]
	add	r3, r2, r3
	str	r3, [fp, #-172]
	ldr	r3, [fp, #-180]
	add	r3, r3, #3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L113
	ldr	r3, [fp, #-180]
	add	r3, r3, #3
	ldrb	r3, [r3]	@ zero_extendqisi2
	ldr	r2, [fp, #-172]
	rsb	r3, r3, #32
	ror	r3, r2, r3
	b	.L114
.L113:
	ldr	r3, [fp, #-172]
.L114:
	str	r3, [fp, #-172]
	ldr	r3, [fp, #-172]
	lsr	r3, r3, #24
	ldr	r2, .L138+4
	ldr	r2, [r2, r3, lsl #2]
	ldr	r3, [fp, #-172]
	lsr	r3, r3, #16
	and	r3, r3, #255
	ldr	r1, .L138+8
	ldr	r3, [r1, r3, lsl #2]
	eor	r2, r2, r3
	ldr	r3, [fp, #-172]
	lsr	r3, r3, #8
	and	r3, r3, #255
	ldr	r1, .L138+12
	ldr	r3, [r1, r3, lsl #2]
	sub	r2, r2, r3
	ldr	r3, [fp, #-172]
	and	r3, r3, #255
	ldr	r1, .L138+16
	ldr	r3, [r1, r3, lsl #2]
	add	r1, r2, r3
	ldr	r3, [fp, #-184]
	add	r3, r3, #12
	ldr	r2, [r3]
	ldr	r3, [fp, #-184]
	add	r3, r3, #12
	eor	r2, r2, r1
	str	r2, [r3]
	ldr	r3, [fp, #-176]
	add	r3, r3, #8
	ldr	r2, [r3]
	ldr	r3, [fp, #-184]
	add	r3, r3, #4
	ldr	r3, [r3]
	sub	r3, r2, r3
	str	r3, [fp, #-172]
	ldr	r3, [fp, #-180]
	add	r3, r3, #2
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L115
	ldr	r3, [fp, #-180]
	add	r3, r3, #2
	ldrb	r3, [r3]	@ zero_extendqisi2
	ldr	r2, [fp, #-172]
	rsb	r3, r3, #32
	ror	r3, r2, r3
	b	.L116
.L115:
	ldr	r3, [fp, #-172]
.L116:
	str	r3, [fp, #-172]
	ldr	r3, [fp, #-172]
	lsr	r3, r3, #24
	ldr	r2, .L138+4
	ldr	r2, [r2, r3, lsl #2]
	ldr	r3, [fp, #-172]
	lsr	r3, r3, #16
	and	r3, r3, #255
	ldr	r1, .L138+8
	ldr	r3, [r1, r3, lsl #2]
	add	r2, r2, r3
	ldr	r3, [fp, #-172]
	lsr	r3, r3, #8
	and	r3, r3, #255
	ldr	r1, .L138+12
	ldr	r3, [r1, r3, lsl #2]
	eor	r2, r2, r3
	ldr	r3, [fp, #-172]
	and	r3, r3, #255
	ldr	r1, .L138+16
	ldr	r3, [r1, r3, lsl #2]
	sub	r2, r2, r3
	ldr	r3, [fp, #-184]
	ldr	r3, [r3]
	eor	r2, r2, r3
	ldr	r3, [fp, #-184]
	str	r2, [r3]
	ldr	r3, [fp, #-176]
	add	r3, r3, #4
	ldr	r2, [r3]
	ldr	r3, [fp, #-184]
	add	r3, r3, #8
	ldr	r3, [r3]
	eor	r3, r3, r2
	str	r3, [fp, #-172]
	ldr	r3, [fp, #-180]
	add	r3, r3, #1
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L117
	ldr	r3, [fp, #-180]
	add	r3, r3, #1
	ldrb	r3, [r3]	@ zero_extendqisi2
	ldr	r2, [fp, #-172]
	rsb	r3, r3, #32
	ror	r3, r2, r3
	b	.L118
.L117:
	ldr	r3, [fp, #-172]
.L118:
	str	r3, [fp, #-172]
	ldr	r3, [fp, #-172]
	lsr	r3, r3, #24
	ldr	r2, .L138+4
	ldr	r2, [r2, r3, lsl #2]
	ldr	r3, [fp, #-172]
	lsr	r3, r3, #16
	and	r3, r3, #255
	ldr	r1, .L138+8
	ldr	r3, [r1, r3, lsl #2]
	sub	r2, r2, r3
	ldr	r3, [fp, #-172]
	lsr	r3, r3, #8
	and	r3, r3, #255
	ldr	r1, .L138+12
	ldr	r3, [r1, r3, lsl #2]
	add	r2, r2, r3
	ldr	r3, [fp, #-172]
	and	r3, r3, #255
	ldr	r1, .L138+16
	ldr	r3, [r1, r3, lsl #2]
	eor	r1, r2, r3
	ldr	r3, [fp, #-184]
	add	r3, r3, #4
	ldr	r2, [r3]
	ldr	r3, [fp, #-184]
	add	r3, r3, #4
	eor	r2, r2, r1
	str	r2, [r3]
	ldr	r3, [fp, #-176]
	ldr	r2, [r3]
	ldr	r3, [fp, #-184]
	add	r3, r3, #12
	ldr	r3, [r3]
	add	r3, r2, r3
	str	r3, [fp, #-172]
	ldr	r3, [fp, #-180]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L119
	ldr	r3, [fp, #-180]
	ldrb	r3, [r3]	@ zero_extendqisi2
	ldr	r2, [fp, #-172]
	rsb	r3, r3, #32
	ror	r3, r2, r3
	b	.L120
.L119:
	ldr	r3, [fp, #-172]
.L120:
	str	r3, [fp, #-172]
	ldr	r3, [fp, #-172]
	lsr	r3, r3, #24
	ldr	r2, .L140
	ldr	r2, [r2, r3, lsl #2]
	ldr	r3, [fp, #-172]
	lsr	r3, r3, #16
	and	r3, r3, #255
	ldr	r1, .L140+4
	ldr	r3, [r1, r3, lsl #2]
	eor	r2, r2, r3
	ldr	r3, [fp, #-172]
	lsr	r3, r3, #8
	and	r3, r3, #255
	ldr	r1, .L140+8
	ldr	r3, [r1, r3, lsl #2]
	sub	r2, r2, r3
	ldr	r3, [fp, #-172]
	and	r3, r3, #255
	ldr	r1, .L140+12
	ldr	r3, [r1, r3, lsl #2]
	add	r1, r2, r3
	ldr	r3, [fp, #-184]
	add	r3, r3, #8
	ldr	r2, [r3]
	ldr	r3, [fp, #-184]
	add	r3, r3, #8
	eor	r2, r2, r1
	str	r2, [r3]
	nop
	ldr	r3, [fp, #-240]
	add	r3, r3, #160
	str	r3, [fp, #-224]
	ldr	r3, [fp, #-240]
	add	r3, r3, #232
	str	r3, [fp, #-220]
	sub	r3, fp, #24
	str	r3, [fp, #-200]
	ldr	r3, [fp, #-220]
	str	r3, [fp, #-196]
	ldr	r3, [fp, #-224]
	str	r3, [fp, #-192]
	ldr	r3, [fp, #-192]
	add	r3, r3, #12
	ldr	r2, [r3]
	ldr	r3, [fp, #-200]
	ldr	r3, [r3]
	add	r3, r2, r3
	str	r3, [fp, #-188]
	ldr	r3, [fp, #-196]
	add	r3, r3, #3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L121
	ldr	r3, [fp, #-196]
	add	r3, r3, #3
	ldrb	r3, [r3]	@ zero_extendqisi2
	ldr	r2, [fp, #-188]
	rsb	r3, r3, #32
	ror	r3, r2, r3
	b	.L122
.L121:
	ldr	r3, [fp, #-188]
.L122:
	str	r3, [fp, #-188]
	ldr	r3, [fp, #-188]
	lsr	r3, r3, #24
	ldr	r2, .L140
	ldr	r2, [r2, r3, lsl #2]
	ldr	r3, [fp, #-188]
	lsr	r3, r3, #16
	and	r3, r3, #255
	ldr	r1, .L140+4
	ldr	r3, [r1, r3, lsl #2]
	eor	r2, r2, r3
	ldr	r3, [fp, #-188]
	lsr	r3, r3, #8
	and	r3, r3, #255
	ldr	r1, .L140+8
	ldr	r3, [r1, r3, lsl #2]
	sub	r2, r2, r3
	ldr	r3, [fp, #-188]
	and	r3, r3, #255
	ldr	r1, .L140+12
	ldr	r3, [r1, r3, lsl #2]
	add	r1, r2, r3
	ldr	r3, [fp, #-200]
	add	r3, r3, #12
	ldr	r2, [r3]
	ldr	r3, [fp, #-200]
	add	r3, r3, #12
	eor	r2, r2, r1
	str	r2, [r3]
	ldr	r3, [fp, #-192]
	add	r3, r3, #8
	ldr	r2, [r3]
	ldr	r3, [fp, #-200]
	add	r3, r3, #4
	ldr	r3, [r3]
	sub	r3, r2, r3
	str	r3, [fp, #-188]
	ldr	r3, [fp, #-196]
	add	r3, r3, #2
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L123
	ldr	r3, [fp, #-196]
	add	r3, r3, #2
	ldrb	r3, [r3]	@ zero_extendqisi2
	ldr	r2, [fp, #-188]
	rsb	r3, r3, #32
	ror	r3, r2, r3
	b	.L124
.L123:
	ldr	r3, [fp, #-188]
.L124:
	str	r3, [fp, #-188]
	ldr	r3, [fp, #-188]
	lsr	r3, r3, #24
	ldr	r2, .L140
	ldr	r2, [r2, r3, lsl #2]
	ldr	r3, [fp, #-188]
	lsr	r3, r3, #16
	and	r3, r3, #255
	ldr	r1, .L140+4
	ldr	r3, [r1, r3, lsl #2]
	add	r2, r2, r3
	ldr	r3, [fp, #-188]
	lsr	r3, r3, #8
	and	r3, r3, #255
	ldr	r1, .L140+8
	ldr	r3, [r1, r3, lsl #2]
	eor	r2, r2, r3
	ldr	r3, [fp, #-188]
	and	r3, r3, #255
	ldr	r1, .L140+12
	ldr	r3, [r1, r3, lsl #2]
	sub	r2, r2, r3
	ldr	r3, [fp, #-200]
	ldr	r3, [r3]
	eor	r2, r2, r3
	ldr	r3, [fp, #-200]
	str	r2, [r3]
	ldr	r3, [fp, #-192]
	add	r3, r3, #4
	ldr	r2, [r3]
	ldr	r3, [fp, #-200]
	add	r3, r3, #8
	ldr	r3, [r3]
	eor	r3, r3, r2
	str	r3, [fp, #-188]
	ldr	r3, [fp, #-196]
	add	r3, r3, #1
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L125
	ldr	r3, [fp, #-196]
	add	r3, r3, #1
	ldrb	r3, [r3]	@ zero_extendqisi2
	ldr	r2, [fp, #-188]
	rsb	r3, r3, #32
	ror	r3, r2, r3
	b	.L126
.L125:
	ldr	r3, [fp, #-188]
.L126:
	str	r3, [fp, #-188]
	ldr	r3, [fp, #-188]
	lsr	r3, r3, #24
	ldr	r2, .L140
	ldr	r2, [r2, r3, lsl #2]
	ldr	r3, [fp, #-188]
	lsr	r3, r3, #16
	and	r3, r3, #255
	ldr	r1, .L140+4
	ldr	r3, [r1, r3, lsl #2]
	sub	r2, r2, r3
	ldr	r3, [fp, #-188]
	lsr	r3, r3, #8
	and	r3, r3, #255
	ldr	r1, .L140+8
	ldr	r3, [r1, r3, lsl #2]
	add	r2, r2, r3
	ldr	r3, [fp, #-188]
	and	r3, r3, #255
	ldr	r1, .L140+12
	ldr	r3, [r1, r3, lsl #2]
	eor	r1, r2, r3
	ldr	r3, [fp, #-200]
	add	r3, r3, #4
	ldr	r2, [r3]
	ldr	r3, [fp, #-200]
	add	r3, r3, #4
	eor	r2, r2, r1
	str	r2, [r3]
	ldr	r3, [fp, #-192]
	ldr	r2, [r3]
	ldr	r3, [fp, #-200]
	add	r3, r3, #12
	ldr	r3, [r3]
	add	r3, r2, r3
	str	r3, [fp, #-188]
	ldr	r3, [fp, #-196]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L127
	ldr	r3, [fp, #-196]
	ldrb	r3, [r3]	@ zero_extendqisi2
	ldr	r2, [fp, #-188]
	rsb	r3, r3, #32
	ror	r3, r2, r3
	b	.L128
.L127:
	ldr	r3, [fp, #-188]
.L128:
	str	r3, [fp, #-188]
	ldr	r3, [fp, #-188]
	lsr	r3, r3, #24
	ldr	r2, .L140
	ldr	r2, [r2, r3, lsl #2]
	ldr	r3, [fp, #-188]
	lsr	r3, r3, #16
	and	r3, r3, #255
	ldr	r1, .L140+4
	ldr	r3, [r1, r3, lsl #2]
	eor	r2, r2, r3
	ldr	r3, [fp, #-188]
	lsr	r3, r3, #8
	and	r3, r3, #255
	ldr	r1, .L140+8
	ldr	r3, [r1, r3, lsl #2]
	sub	r2, r2, r3
	ldr	r3, [fp, #-188]
	and	r3, r3, #255
	ldr	r1, .L140+12
	ldr	r3, [r1, r3, lsl #2]
	add	r1, r2, r3
	ldr	r3, [fp, #-200]
	add	r3, r3, #8
	ldr	r2, [r3]
	ldr	r3, [fp, #-200]
	add	r3, r3, #8
	eor	r2, r2, r1
	str	r2, [r3]
	nop
	ldr	r3, [fp, #-240]
	add	r3, r3, #176
	str	r3, [fp, #-224]
	ldr	r3, [fp, #-240]
	add	r3, r3, #236
	str	r3, [fp, #-220]
	sub	r3, fp, #24
	str	r3, [fp, #-216]
	ldr	r3, [fp, #-220]
	str	r3, [fp, #-212]
	ldr	r3, [fp, #-224]
	str	r3, [fp, #-208]
	ldr	r3, [fp, #-208]
	add	r3, r3, #12
	ldr	r2, [r3]
	ldr	r3, [fp, #-216]
	ldr	r3, [r3]
	add	r3, r2, r3
	str	r3, [fp, #-204]
	ldr	r3, [fp, #-212]
	add	r3, r3, #3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L129
	ldr	r3, [fp, #-212]
	add	r3, r3, #3
	ldrb	r3, [r3]	@ zero_extendqisi2
	ldr	r2, [fp, #-204]
	rsb	r3, r3, #32
	ror	r3, r2, r3
	b	.L130
.L129:
	ldr	r3, [fp, #-204]
.L130:
	str	r3, [fp, #-204]
	ldr	r3, [fp, #-204]
	lsr	r3, r3, #24
	ldr	r2, .L140
	ldr	r2, [r2, r3, lsl #2]
	ldr	r3, [fp, #-204]
	lsr	r3, r3, #16
	and	r3, r3, #255
	ldr	r1, .L140+4
	ldr	r3, [r1, r3, lsl #2]
	eor	r2, r2, r3
	ldr	r3, [fp, #-204]
	lsr	r3, r3, #8
	and	r3, r3, #255
	ldr	r1, .L140+8
	ldr	r3, [r1, r3, lsl #2]
	sub	r2, r2, r3
	ldr	r3, [fp, #-204]
	and	r3, r3, #255
	ldr	r1, .L140+12
	ldr	r3, [r1, r3, lsl #2]
	add	r1, r2, r3
	ldr	r3, [fp, #-216]
	add	r3, r3, #12
	ldr	r2, [r3]
	ldr	r3, [fp, #-216]
	add	r3, r3, #12
	eor	r2, r2, r1
	str	r2, [r3]
	ldr	r3, [fp, #-208]
	add	r3, r3, #8
	ldr	r2, [r3]
	ldr	r3, [fp, #-216]
	add	r3, r3, #4
	ldr	r3, [r3]
	sub	r3, r2, r3
	str	r3, [fp, #-204]
	ldr	r3, [fp, #-212]
	add	r3, r3, #2
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L131
	ldr	r3, [fp, #-212]
	add	r3, r3, #2
	ldrb	r3, [r3]	@ zero_extendqisi2
	ldr	r2, [fp, #-204]
	rsb	r3, r3, #32
	ror	r3, r2, r3
	b	.L132
.L131:
	ldr	r3, [fp, #-204]
.L132:
	str	r3, [fp, #-204]
	ldr	r3, [fp, #-204]
	lsr	r3, r3, #24
	ldr	r2, .L140
	ldr	r2, [r2, r3, lsl #2]
	ldr	r3, [fp, #-204]
	lsr	r3, r3, #16
	and	r3, r3, #255
	ldr	r1, .L140+4
	ldr	r3, [r1, r3, lsl #2]
	add	r2, r2, r3
	ldr	r3, [fp, #-204]
	lsr	r3, r3, #8
	and	r3, r3, #255
	ldr	r1, .L140+8
	ldr	r3, [r1, r3, lsl #2]
	eor	r2, r2, r3
	ldr	r3, [fp, #-204]
	and	r3, r3, #255
	ldr	r1, .L140+12
	ldr	r3, [r1, r3, lsl #2]
	sub	r2, r2, r3
	ldr	r3, [fp, #-216]
	ldr	r3, [r3]
	eor	r2, r2, r3
	ldr	r3, [fp, #-216]
	str	r2, [r3]
	ldr	r3, [fp, #-208]
	add	r3, r3, #4
	ldr	r2, [r3]
	ldr	r3, [fp, #-216]
	add	r3, r3, #8
	ldr	r3, [r3]
	eor	r3, r3, r2
	str	r3, [fp, #-204]
	ldr	r3, [fp, #-212]
	add	r3, r3, #1
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L133
	ldr	r3, [fp, #-212]
	add	r3, r3, #1
	ldrb	r3, [r3]	@ zero_extendqisi2
	ldr	r2, [fp, #-204]
	rsb	r3, r3, #32
	ror	r3, r2, r3
	b	.L134
.L133:
	ldr	r3, [fp, #-204]
.L134:
	str	r3, [fp, #-204]
	ldr	r3, [fp, #-204]
	lsr	r3, r3, #24
	ldr	r2, .L140
	ldr	r2, [r2, r3, lsl #2]
	ldr	r3, [fp, #-204]
	lsr	r3, r3, #16
	and	r3, r3, #255
	ldr	r1, .L140+4
	ldr	r3, [r1, r3, lsl #2]
	sub	r2, r2, r3
	ldr	r3, [fp, #-204]
	lsr	r3, r3, #8
	and	r3, r3, #255
	ldr	r1, .L140+8
	ldr	r3, [r1, r3, lsl #2]
	add	r2, r2, r3
	ldr	r3, [fp, #-204]
	and	r3, r3, #255
	ldr	r1, .L140+12
	ldr	r3, [r1, r3, lsl #2]
	eor	r1, r2, r3
	ldr	r3, [fp, #-216]
	add	r3, r3, #4
	ldr	r2, [r3]
	ldr	r3, [fp, #-216]
	add	r3, r3, #4
	eor	r2, r2, r1
	str	r2, [r3]
	ldr	r3, [fp, #-208]
	ldr	r2, [r3]
	ldr	r3, [fp, #-216]
	add	r3, r3, #12
	ldr	r3, [r3]
	add	r3, r2, r3
	str	r3, [fp, #-204]
	ldr	r3, [fp, #-212]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L135
	ldr	r3, [fp, #-212]
	ldrb	r3, [r3]	@ zero_extendqisi2
	ldr	r2, [fp, #-204]
	rsb	r3, r3, #32
	ror	r3, r2, r3
	b	.L136
.L135:
	ldr	r3, [fp, #-204]
.L136:
	str	r3, [fp, #-204]
	ldr	r3, [fp, #-204]
	lsr	r3, r3, #24
	ldr	r2, .L140
	ldr	r2, [r2, r3, lsl #2]
	ldr	r3, [fp, #-204]
	lsr	r3, r3, #16
	and	r3, r3, #255
	ldr	r1, .L140+4
	ldr	r3, [r1, r3, lsl #2]
	eor	r2, r2, r3
	ldr	r3, [fp, #-204]
	lsr	r3, r3, #8
	and	r3, r3, #255
	ldr	r1, .L140+8
	ldr	r3, [r1, r3, lsl #2]
	sub	r2, r2, r3
	ldr	r3, [fp, #-204]
	and	r3, r3, #255
	ldr	r1, .L140+12
	ldr	r3, [r1, r3, lsl #2]
	add	r1, r2, r3
	ldr	r3, [fp, #-216]
	add	r3, r3, #8
	ldr	r2, [r3]
	ldr	r3, [fp, #-216]
	add	r3, r3, #8
	eor	r2, r2, r1
	str	r2, [r3]
	nop
	ldr	r2, [fp, #-24]
	ldr	r3, [fp, #-228]
	str	r2, [r3]
	ldr	r3, [fp, #-228]
	add	r3, r3, #4
	ldr	r2, [fp, #-20]
	str	r2, [r3]
	ldr	r3, [fp, #-228]
	add	r3, r3, #8
	ldr	r2, [fp, #-16]
	str	r2, [r3]
	ldr	r3, [fp, #-228]
	add	r3, r3, #12
	ldr	r2, [fp, #-12]
	str	r2, [r3]
	nop
	ldr	r3, .L140+16
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L137
	bl	__stack_chk_fail
.L137:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L141:
	.align	2
.L140:
	.word	s1
	.word	s2
	.word	s3
	.word	s4
	.word	.LC1
	.size	cast6_encrypt, .-cast6_encrypt
	.section	.rodata
	.align	2
.LC2:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	cast6_decrypt
	.syntax unified
	.arm
	.fpu softvfp
	.type	cast6_decrypt, %function
cast6_decrypt:
	@ args = 0, pretend = 0, frame = 248
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #248
	str	r0, [fp, #-240]
	str	r1, [fp, #-244]
	str	r2, [fp, #-248]
	ldr	r3, .L240
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	ldr	r3, [fp, #-248]
	str	r3, [fp, #-232]
	ldr	r3, [fp, #-244]
	str	r3, [fp, #-228]
	ldr	r3, [fp, #-232]
	ldr	r3, [r3]
	str	r3, [fp, #-24]
	ldr	r3, [fp, #-232]
	ldr	r3, [r3, #4]
	str	r3, [fp, #-20]
	ldr	r3, [fp, #-232]
	ldr	r3, [r3, #8]
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-232]
	ldr	r3, [r3, #12]
	str	r3, [fp, #-12]
	ldr	r3, [fp, #-240]
	add	r3, r3, #176
	str	r3, [fp, #-224]
	ldr	r3, [fp, #-240]
	add	r3, r3, #236
	str	r3, [fp, #-220]
	sub	r3, fp, #24
	str	r3, [fp, #-40]
	ldr	r3, [fp, #-220]
	str	r3, [fp, #-36]
	ldr	r3, [fp, #-224]
	str	r3, [fp, #-32]
	ldr	r3, [fp, #-32]
	ldr	r2, [r3]
	ldr	r3, [fp, #-40]
	add	r3, r3, #12
	ldr	r3, [r3]
	add	r3, r2, r3
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-36]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L143
	ldr	r3, [fp, #-36]
	ldrb	r3, [r3]	@ zero_extendqisi2
	ldr	r2, [fp, #-28]
	rsb	r3, r3, #32
	ror	r3, r2, r3
	b	.L144
.L143:
	ldr	r3, [fp, #-28]
.L144:
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-28]
	lsr	r3, r3, #24
	ldr	r2, .L240+4
	ldr	r2, [r2, r3, lsl #2]
	ldr	r3, [fp, #-28]
	lsr	r3, r3, #16
	and	r3, r3, #255
	ldr	r1, .L240+8
	ldr	r3, [r1, r3, lsl #2]
	eor	r2, r2, r3
	ldr	r3, [fp, #-28]
	lsr	r3, r3, #8
	and	r3, r3, #255
	ldr	r1, .L240+12
	ldr	r3, [r1, r3, lsl #2]
	sub	r2, r2, r3
	ldr	r3, [fp, #-28]
	and	r3, r3, #255
	ldr	r1, .L240+16
	ldr	r3, [r1, r3, lsl #2]
	add	r1, r2, r3
	ldr	r3, [fp, #-40]
	add	r3, r3, #8
	ldr	r2, [r3]
	ldr	r3, [fp, #-40]
	add	r3, r3, #8
	eor	r2, r2, r1
	str	r2, [r3]
	ldr	r3, [fp, #-32]
	add	r3, r3, #4
	ldr	r2, [r3]
	ldr	r3, [fp, #-40]
	add	r3, r3, #8
	ldr	r3, [r3]
	eor	r3, r3, r2
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-36]
	add	r3, r3, #1
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L145
	ldr	r3, [fp, #-36]
	add	r3, r3, #1
	ldrb	r3, [r3]	@ zero_extendqisi2
	ldr	r2, [fp, #-28]
	rsb	r3, r3, #32
	ror	r3, r2, r3
	b	.L146
.L145:
	ldr	r3, [fp, #-28]
.L146:
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-28]
	lsr	r3, r3, #24
	ldr	r2, .L240+4
	ldr	r2, [r2, r3, lsl #2]
	ldr	r3, [fp, #-28]
	lsr	r3, r3, #16
	and	r3, r3, #255
	ldr	r1, .L240+8
	ldr	r3, [r1, r3, lsl #2]
	sub	r2, r2, r3
	ldr	r3, [fp, #-28]
	lsr	r3, r3, #8
	and	r3, r3, #255
	ldr	r1, .L240+12
	ldr	r3, [r1, r3, lsl #2]
	add	r2, r2, r3
	ldr	r3, [fp, #-28]
	and	r3, r3, #255
	ldr	r1, .L240+16
	ldr	r3, [r1, r3, lsl #2]
	eor	r1, r2, r3
	ldr	r3, [fp, #-40]
	add	r3, r3, #4
	ldr	r2, [r3]
	ldr	r3, [fp, #-40]
	add	r3, r3, #4
	eor	r2, r2, r1
	str	r2, [r3]
	ldr	r3, [fp, #-32]
	add	r3, r3, #8
	ldr	r2, [r3]
	ldr	r3, [fp, #-40]
	add	r3, r3, #4
	ldr	r3, [r3]
	sub	r3, r2, r3
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-36]
	add	r3, r3, #2
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L147
	ldr	r3, [fp, #-36]
	add	r3, r3, #2
	ldrb	r3, [r3]	@ zero_extendqisi2
	ldr	r2, [fp, #-28]
	rsb	r3, r3, #32
	ror	r3, r2, r3
	b	.L148
.L147:
	ldr	r3, [fp, #-28]
.L148:
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-28]
	lsr	r3, r3, #24
	ldr	r2, .L240+4
	ldr	r2, [r2, r3, lsl #2]
	ldr	r3, [fp, #-28]
	lsr	r3, r3, #16
	and	r3, r3, #255
	ldr	r1, .L240+8
	ldr	r3, [r1, r3, lsl #2]
	add	r2, r2, r3
	ldr	r3, [fp, #-28]
	lsr	r3, r3, #8
	and	r3, r3, #255
	ldr	r1, .L240+12
	ldr	r3, [r1, r3, lsl #2]
	eor	r2, r2, r3
	ldr	r3, [fp, #-28]
	and	r3, r3, #255
	ldr	r1, .L240+16
	ldr	r3, [r1, r3, lsl #2]
	sub	r2, r2, r3
	ldr	r3, [fp, #-40]
	ldr	r3, [r3]
	eor	r2, r2, r3
	ldr	r3, [fp, #-40]
	str	r2, [r3]
	ldr	r3, [fp, #-32]
	add	r3, r3, #12
	ldr	r2, [r3]
	ldr	r3, [fp, #-40]
	ldr	r3, [r3]
	add	r3, r2, r3
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-36]
	add	r3, r3, #3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L149
	ldr	r3, [fp, #-36]
	add	r3, r3, #3
	ldrb	r3, [r3]	@ zero_extendqisi2
	ldr	r2, [fp, #-28]
	rsb	r3, r3, #32
	ror	r3, r2, r3
	b	.L150
.L149:
	ldr	r3, [fp, #-28]
.L150:
	str	r3, [fp, #-28]
	ldr	r3, [fp, #-28]
	lsr	r3, r3, #24
	ldr	r2, .L240+4
	ldr	r2, [r2, r3, lsl #2]
	ldr	r3, [fp, #-28]
	lsr	r3, r3, #16
	and	r3, r3, #255
	ldr	r1, .L240+8
	ldr	r3, [r1, r3, lsl #2]
	eor	r2, r2, r3
	ldr	r3, [fp, #-28]
	lsr	r3, r3, #8
	and	r3, r3, #255
	ldr	r1, .L240+12
	ldr	r3, [r1, r3, lsl #2]
	sub	r2, r2, r3
	ldr	r3, [fp, #-28]
	and	r3, r3, #255
	ldr	r1, .L240+16
	ldr	r3, [r1, r3, lsl #2]
	add	r1, r2, r3
	ldr	r3, [fp, #-40]
	add	r3, r3, #12
	ldr	r2, [r3]
	ldr	r3, [fp, #-40]
	add	r3, r3, #12
	eor	r2, r2, r1
	str	r2, [r3]
	nop
	ldr	r3, [fp, #-240]
	add	r3, r3, #160
	str	r3, [fp, #-224]
	ldr	r3, [fp, #-240]
	add	r3, r3, #232
	str	r3, [fp, #-220]
	sub	r3, fp, #24
	str	r3, [fp, #-56]
	ldr	r3, [fp, #-220]
	str	r3, [fp, #-52]
	ldr	r3, [fp, #-224]
	str	r3, [fp, #-48]
	ldr	r3, [fp, #-48]
	ldr	r2, [r3]
	ldr	r3, [fp, #-56]
	add	r3, r3, #12
	ldr	r3, [r3]
	add	r3, r2, r3
	str	r3, [fp, #-44]
	ldr	r3, [fp, #-52]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L151
	ldr	r3, [fp, #-52]
	ldrb	r3, [r3]	@ zero_extendqisi2
	ldr	r2, [fp, #-44]
	rsb	r3, r3, #32
	ror	r3, r2, r3
	b	.L152
.L151:
	ldr	r3, [fp, #-44]
.L152:
	str	r3, [fp, #-44]
	ldr	r3, [fp, #-44]
	lsr	r3, r3, #24
	ldr	r2, .L240+4
	ldr	r2, [r2, r3, lsl #2]
	ldr	r3, [fp, #-44]
	lsr	r3, r3, #16
	and	r3, r3, #255
	ldr	r1, .L240+8
	ldr	r3, [r1, r3, lsl #2]
	eor	r2, r2, r3
	ldr	r3, [fp, #-44]
	lsr	r3, r3, #8
	and	r3, r3, #255
	ldr	r1, .L240+12
	ldr	r3, [r1, r3, lsl #2]
	sub	r2, r2, r3
	ldr	r3, [fp, #-44]
	and	r3, r3, #255
	ldr	r1, .L240+16
	ldr	r3, [r1, r3, lsl #2]
	add	r1, r2, r3
	ldr	r3, [fp, #-56]
	add	r3, r3, #8
	ldr	r2, [r3]
	ldr	r3, [fp, #-56]
	add	r3, r3, #8
	eor	r2, r2, r1
	str	r2, [r3]
	ldr	r3, [fp, #-48]
	add	r3, r3, #4
	ldr	r2, [r3]
	ldr	r3, [fp, #-56]
	add	r3, r3, #8
	ldr	r3, [r3]
	eor	r3, r3, r2
	str	r3, [fp, #-44]
	ldr	r3, [fp, #-52]
	add	r3, r3, #1
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L153
	ldr	r3, [fp, #-52]
	add	r3, r3, #1
	ldrb	r3, [r3]	@ zero_extendqisi2
	ldr	r2, [fp, #-44]
	rsb	r3, r3, #32
	ror	r3, r2, r3
	b	.L154
.L153:
	ldr	r3, [fp, #-44]
.L154:
	str	r3, [fp, #-44]
	ldr	r3, [fp, #-44]
	lsr	r3, r3, #24
	ldr	r2, .L240+4
	ldr	r2, [r2, r3, lsl #2]
	ldr	r3, [fp, #-44]
	lsr	r3, r3, #16
	and	r3, r3, #255
	ldr	r1, .L240+8
	ldr	r3, [r1, r3, lsl #2]
	sub	r2, r2, r3
	ldr	r3, [fp, #-44]
	lsr	r3, r3, #8
	and	r3, r3, #255
	ldr	r1, .L240+12
	ldr	r3, [r1, r3, lsl #2]
	add	r2, r2, r3
	ldr	r3, [fp, #-44]
	and	r3, r3, #255
	ldr	r1, .L240+16
	ldr	r3, [r1, r3, lsl #2]
	eor	r1, r2, r3
	ldr	r3, [fp, #-56]
	add	r3, r3, #4
	ldr	r2, [r3]
	ldr	r3, [fp, #-56]
	add	r3, r3, #4
	eor	r2, r2, r1
	str	r2, [r3]
	ldr	r3, [fp, #-48]
	add	r3, r3, #8
	ldr	r2, [r3]
	ldr	r3, [fp, #-56]
	add	r3, r3, #4
	ldr	r3, [r3]
	sub	r3, r2, r3
	str	r3, [fp, #-44]
	ldr	r3, [fp, #-52]
	add	r3, r3, #2
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L155
	ldr	r3, [fp, #-52]
	add	r3, r3, #2
	ldrb	r3, [r3]	@ zero_extendqisi2
	ldr	r2, [fp, #-44]
	rsb	r3, r3, #32
	ror	r3, r2, r3
	b	.L156
.L155:
	ldr	r3, [fp, #-44]
.L156:
	str	r3, [fp, #-44]
	ldr	r3, [fp, #-44]
	lsr	r3, r3, #24
	ldr	r2, .L240+4
	ldr	r2, [r2, r3, lsl #2]
	ldr	r3, [fp, #-44]
	lsr	r3, r3, #16
	and	r3, r3, #255
	ldr	r1, .L240+8
	ldr	r3, [r1, r3, lsl #2]
	add	r2, r2, r3
	ldr	r3, [fp, #-44]
	lsr	r3, r3, #8
	and	r3, r3, #255
	ldr	r1, .L240+12
	ldr	r3, [r1, r3, lsl #2]
	eor	r2, r2, r3
	ldr	r3, [fp, #-44]
	and	r3, r3, #255
	ldr	r1, .L240+16
	ldr	r3, [r1, r3, lsl #2]
	sub	r2, r2, r3
	ldr	r3, [fp, #-56]
	ldr	r3, [r3]
	eor	r2, r2, r3
	ldr	r3, [fp, #-56]
	str	r2, [r3]
	ldr	r3, [fp, #-48]
	add	r3, r3, #12
	ldr	r2, [r3]
	ldr	r3, [fp, #-56]
	ldr	r3, [r3]
	add	r3, r2, r3
	str	r3, [fp, #-44]
	ldr	r3, [fp, #-52]
	add	r3, r3, #3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L157
	ldr	r3, [fp, #-52]
	add	r3, r3, #3
	ldrb	r3, [r3]	@ zero_extendqisi2
	ldr	r2, [fp, #-44]
	rsb	r3, r3, #32
	ror	r3, r2, r3
	b	.L158
.L157:
	ldr	r3, [fp, #-44]
.L158:
	str	r3, [fp, #-44]
	ldr	r3, [fp, #-44]
	lsr	r3, r3, #24
	ldr	r2, .L240+4
	ldr	r2, [r2, r3, lsl #2]
	ldr	r3, [fp, #-44]
	lsr	r3, r3, #16
	and	r3, r3, #255
	ldr	r1, .L240+8
	ldr	r3, [r1, r3, lsl #2]
	eor	r2, r2, r3
	ldr	r3, [fp, #-44]
	lsr	r3, r3, #8
	and	r3, r3, #255
	ldr	r1, .L240+12
	ldr	r3, [r1, r3, lsl #2]
	sub	r2, r2, r3
	ldr	r3, [fp, #-44]
	and	r3, r3, #255
	ldr	r1, .L240+16
	ldr	r3, [r1, r3, lsl #2]
	add	r1, r2, r3
	ldr	r3, [fp, #-56]
	add	r3, r3, #12
	ldr	r2, [r3]
	ldr	r3, [fp, #-56]
	add	r3, r3, #12
	eor	r2, r2, r1
	str	r2, [r3]
	nop
	ldr	r3, [fp, #-240]
	add	r3, r3, #144
	str	r3, [fp, #-224]
	ldr	r3, [fp, #-240]
	add	r3, r3, #228
	str	r3, [fp, #-220]
	sub	r3, fp, #24
	str	r3, [fp, #-72]
	ldr	r3, [fp, #-220]
	str	r3, [fp, #-68]
	ldr	r3, [fp, #-224]
	str	r3, [fp, #-64]
	ldr	r3, [fp, #-64]
	ldr	r2, [r3]
	ldr	r3, [fp, #-72]
	add	r3, r3, #12
	ldr	r3, [r3]
	add	r3, r2, r3
	str	r3, [fp, #-60]
	ldr	r3, [fp, #-68]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L159
	ldr	r3, [fp, #-68]
	ldrb	r3, [r3]	@ zero_extendqisi2
	ldr	r2, [fp, #-60]
	rsb	r3, r3, #32
	ror	r3, r2, r3
	b	.L160
.L159:
	ldr	r3, [fp, #-60]
.L160:
	str	r3, [fp, #-60]
	ldr	r3, [fp, #-60]
	lsr	r3, r3, #24
	ldr	r2, .L240+4
	ldr	r2, [r2, r3, lsl #2]
	ldr	r3, [fp, #-60]
	lsr	r3, r3, #16
	and	r3, r3, #255
	ldr	r1, .L240+8
	ldr	r3, [r1, r3, lsl #2]
	eor	r2, r2, r3
	ldr	r3, [fp, #-60]
	lsr	r3, r3, #8
	and	r3, r3, #255
	ldr	r1, .L240+12
	ldr	r3, [r1, r3, lsl #2]
	sub	r2, r2, r3
	ldr	r3, [fp, #-60]
	and	r3, r3, #255
	ldr	r1, .L240+16
	ldr	r3, [r1, r3, lsl #2]
	add	r1, r2, r3
	ldr	r3, [fp, #-72]
	add	r3, r3, #8
	ldr	r2, [r3]
	ldr	r3, [fp, #-72]
	add	r3, r3, #8
	eor	r2, r2, r1
	str	r2, [r3]
	ldr	r3, [fp, #-64]
	add	r3, r3, #4
	ldr	r2, [r3]
	ldr	r3, [fp, #-72]
	add	r3, r3, #8
	ldr	r3, [r3]
	eor	r3, r3, r2
	str	r3, [fp, #-60]
	ldr	r3, [fp, #-68]
	add	r3, r3, #1
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L161
	ldr	r3, [fp, #-68]
	add	r3, r3, #1
	ldrb	r3, [r3]	@ zero_extendqisi2
	ldr	r2, [fp, #-60]
	rsb	r3, r3, #32
	ror	r3, r2, r3
	b	.L162
.L161:
	ldr	r3, [fp, #-60]
.L162:
	str	r3, [fp, #-60]
	ldr	r3, [fp, #-60]
	lsr	r3, r3, #24
	ldr	r2, .L240+4
	ldr	r2, [r2, r3, lsl #2]
	ldr	r3, [fp, #-60]
	lsr	r3, r3, #16
	and	r3, r3, #255
	ldr	r1, .L240+8
	ldr	r3, [r1, r3, lsl #2]
	sub	r2, r2, r3
	ldr	r3, [fp, #-60]
	lsr	r3, r3, #8
	and	r3, r3, #255
	ldr	r1, .L240+12
	ldr	r3, [r1, r3, lsl #2]
	add	r2, r2, r3
	ldr	r3, [fp, #-60]
	and	r3, r3, #255
	ldr	r1, .L240+16
	ldr	r3, [r1, r3, lsl #2]
	eor	r1, r2, r3
	ldr	r3, [fp, #-72]
	add	r3, r3, #4
	ldr	r2, [r3]
	ldr	r3, [fp, #-72]
	add	r3, r3, #4
	eor	r2, r2, r1
	str	r2, [r3]
	ldr	r3, [fp, #-64]
	add	r3, r3, #8
	ldr	r2, [r3]
	ldr	r3, [fp, #-72]
	add	r3, r3, #4
	ldr	r3, [r3]
	sub	r3, r2, r3
	str	r3, [fp, #-60]
	ldr	r3, [fp, #-68]
	add	r3, r3, #2
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L163
	ldr	r3, [fp, #-68]
	add	r3, r3, #2
	ldrb	r3, [r3]	@ zero_extendqisi2
	ldr	r2, [fp, #-60]
	rsb	r3, r3, #32
	ror	r3, r2, r3
	b	.L164
.L163:
	ldr	r3, [fp, #-60]
.L164:
	str	r3, [fp, #-60]
	ldr	r3, [fp, #-60]
	lsr	r3, r3, #24
	ldr	r2, .L240+4
	ldr	r2, [r2, r3, lsl #2]
	ldr	r3, [fp, #-60]
	lsr	r3, r3, #16
	and	r3, r3, #255
	ldr	r1, .L240+8
	ldr	r3, [r1, r3, lsl #2]
	add	r2, r2, r3
	ldr	r3, [fp, #-60]
	lsr	r3, r3, #8
	and	r3, r3, #255
	ldr	r1, .L240+12
	ldr	r3, [r1, r3, lsl #2]
	eor	r2, r2, r3
	ldr	r3, [fp, #-60]
	and	r3, r3, #255
	ldr	r1, .L240+16
	ldr	r3, [r1, r3, lsl #2]
	sub	r2, r2, r3
	ldr	r3, [fp, #-72]
	ldr	r3, [r3]
	eor	r2, r2, r3
	ldr	r3, [fp, #-72]
	str	r2, [r3]
	ldr	r3, [fp, #-64]
	add	r3, r3, #12
	ldr	r2, [r3]
	ldr	r3, [fp, #-72]
	ldr	r3, [r3]
	add	r3, r2, r3
	str	r3, [fp, #-60]
	ldr	r3, [fp, #-68]
	add	r3, r3, #3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L165
	ldr	r3, [fp, #-68]
	add	r3, r3, #3
	ldrb	r3, [r3]	@ zero_extendqisi2
	ldr	r2, [fp, #-60]
	rsb	r3, r3, #32
	ror	r3, r2, r3
	b	.L166
.L165:
	ldr	r3, [fp, #-60]
.L166:
	str	r3, [fp, #-60]
	ldr	r3, [fp, #-60]
	lsr	r3, r3, #24
	ldr	r2, .L240+4
	ldr	r2, [r2, r3, lsl #2]
	ldr	r3, [fp, #-60]
	lsr	r3, r3, #16
	and	r3, r3, #255
	ldr	r1, .L240+8
	ldr	r3, [r1, r3, lsl #2]
	eor	r2, r2, r3
	ldr	r3, [fp, #-60]
	lsr	r3, r3, #8
	and	r3, r3, #255
	ldr	r1, .L240+12
	ldr	r3, [r1, r3, lsl #2]
	sub	r2, r2, r3
	ldr	r3, [fp, #-60]
	and	r3, r3, #255
	ldr	r1, .L240+16
	ldr	r3, [r1, r3, lsl #2]
	add	r1, r2, r3
	ldr	r3, [fp, #-72]
	add	r3, r3, #12
	ldr	r2, [r3]
	ldr	r3, [fp, #-72]
	add	r3, r3, #12
	eor	r2, r2, r1
	str	r2, [r3]
	nop
	ldr	r3, [fp, #-240]
	add	r3, r3, #128
	str	r3, [fp, #-224]
	ldr	r3, [fp, #-240]
	add	r3, r3, #224
	str	r3, [fp, #-220]
	sub	r3, fp, #24
	str	r3, [fp, #-88]
	ldr	r3, [fp, #-220]
	str	r3, [fp, #-84]
	ldr	r3, [fp, #-224]
	str	r3, [fp, #-80]
	ldr	r3, [fp, #-80]
	ldr	r2, [r3]
	ldr	r3, [fp, #-88]
	add	r3, r3, #12
	ldr	r3, [r3]
	add	r3, r2, r3
	str	r3, [fp, #-76]
	ldr	r3, [fp, #-84]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L167
	ldr	r3, [fp, #-84]
	ldrb	r3, [r3]	@ zero_extendqisi2
	ldr	r2, [fp, #-76]
	rsb	r3, r3, #32
	ror	r3, r2, r3
	b	.L168
.L167:
	ldr	r3, [fp, #-76]
.L168:
	str	r3, [fp, #-76]
	ldr	r3, [fp, #-76]
	lsr	r3, r3, #24
	ldr	r2, .L240+4
	ldr	r2, [r2, r3, lsl #2]
	ldr	r3, [fp, #-76]
	lsr	r3, r3, #16
	and	r3, r3, #255
	ldr	r1, .L240+8
	ldr	r3, [r1, r3, lsl #2]
	eor	r2, r2, r3
	ldr	r3, [fp, #-76]
	lsr	r3, r3, #8
	and	r3, r3, #255
	ldr	r1, .L240+12
	ldr	r3, [r1, r3, lsl #2]
	sub	r2, r2, r3
	ldr	r3, [fp, #-76]
	and	r3, r3, #255
	ldr	r1, .L240+16
	ldr	r3, [r1, r3, lsl #2]
	add	r1, r2, r3
	ldr	r3, [fp, #-88]
	add	r3, r3, #8
	ldr	r2, [r3]
	ldr	r3, [fp, #-88]
	add	r3, r3, #8
	eor	r2, r2, r1
	str	r2, [r3]
	ldr	r3, [fp, #-80]
	add	r3, r3, #4
	ldr	r2, [r3]
	ldr	r3, [fp, #-88]
	add	r3, r3, #8
	ldr	r3, [r3]
	eor	r3, r3, r2
	str	r3, [fp, #-76]
	ldr	r3, [fp, #-84]
	add	r3, r3, #1
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L169
	ldr	r3, [fp, #-84]
	add	r3, r3, #1
	ldrb	r3, [r3]	@ zero_extendqisi2
	ldr	r2, [fp, #-76]
	rsb	r3, r3, #32
	ror	r3, r2, r3
	b	.L170
.L169:
	ldr	r3, [fp, #-76]
.L170:
	str	r3, [fp, #-76]
	ldr	r3, [fp, #-76]
	lsr	r3, r3, #24
	ldr	r2, .L240+4
	ldr	r2, [r2, r3, lsl #2]
	ldr	r3, [fp, #-76]
	lsr	r3, r3, #16
	and	r3, r3, #255
	ldr	r1, .L240+8
	ldr	r3, [r1, r3, lsl #2]
	sub	r2, r2, r3
	ldr	r3, [fp, #-76]
	lsr	r3, r3, #8
	and	r3, r3, #255
	ldr	r1, .L240+12
	ldr	r3, [r1, r3, lsl #2]
	add	r2, r2, r3
	ldr	r3, [fp, #-76]
	and	r3, r3, #255
	ldr	r1, .L240+16
	ldr	r3, [r1, r3, lsl #2]
	eor	r1, r2, r3
	ldr	r3, [fp, #-88]
	add	r3, r3, #4
	ldr	r2, [r3]
	ldr	r3, [fp, #-88]
	add	r3, r3, #4
	eor	r2, r2, r1
	str	r2, [r3]
	ldr	r3, [fp, #-80]
	add	r3, r3, #8
	ldr	r2, [r3]
	ldr	r3, [fp, #-88]
	add	r3, r3, #4
	ldr	r3, [r3]
	sub	r3, r2, r3
	str	r3, [fp, #-76]
	ldr	r3, [fp, #-84]
	add	r3, r3, #2
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L171
	ldr	r3, [fp, #-84]
	add	r3, r3, #2
	ldrb	r3, [r3]	@ zero_extendqisi2
	ldr	r2, [fp, #-76]
	rsb	r3, r3, #32
	ror	r3, r2, r3
	b	.L172
.L171:
	ldr	r3, [fp, #-76]
.L172:
	str	r3, [fp, #-76]
	ldr	r3, [fp, #-76]
	lsr	r3, r3, #24
	ldr	r2, .L240+4
	ldr	r2, [r2, r3, lsl #2]
	ldr	r3, [fp, #-76]
	lsr	r3, r3, #16
	and	r3, r3, #255
	ldr	r1, .L240+8
	ldr	r3, [r1, r3, lsl #2]
	add	r2, r2, r3
	ldr	r3, [fp, #-76]
	lsr	r3, r3, #8
	and	r3, r3, #255
	ldr	r1, .L240+12
	ldr	r3, [r1, r3, lsl #2]
	eor	r2, r2, r3
	ldr	r3, [fp, #-76]
	and	r3, r3, #255
	ldr	r1, .L240+16
	ldr	r3, [r1, r3, lsl #2]
	sub	r2, r2, r3
	ldr	r3, [fp, #-88]
	ldr	r3, [r3]
	eor	r2, r2, r3
	ldr	r3, [fp, #-88]
	str	r2, [r3]
	ldr	r3, [fp, #-80]
	add	r3, r3, #12
	ldr	r2, [r3]
	ldr	r3, [fp, #-88]
	ldr	r3, [r3]
	add	r3, r2, r3
	str	r3, [fp, #-76]
	ldr	r3, [fp, #-84]
	add	r3, r3, #3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L173
	ldr	r3, [fp, #-84]
	add	r3, r3, #3
	ldrb	r3, [r3]	@ zero_extendqisi2
	ldr	r2, [fp, #-76]
	rsb	r3, r3, #32
	ror	r3, r2, r3
	b	.L174
.L173:
	ldr	r3, [fp, #-76]
.L174:
	str	r3, [fp, #-76]
	ldr	r3, [fp, #-76]
	lsr	r3, r3, #24
	ldr	r2, .L240+4
	ldr	r2, [r2, r3, lsl #2]
	ldr	r3, [fp, #-76]
	lsr	r3, r3, #16
	and	r3, r3, #255
	ldr	r1, .L240+8
	ldr	r3, [r1, r3, lsl #2]
	eor	r2, r2, r3
	ldr	r3, [fp, #-76]
	lsr	r3, r3, #8
	and	r3, r3, #255
	ldr	r1, .L240+12
	ldr	r3, [r1, r3, lsl #2]
	sub	r2, r2, r3
	ldr	r3, [fp, #-76]
	and	r3, r3, #255
	ldr	r1, .L240+16
	ldr	r3, [r1, r3, lsl #2]
	add	r1, r2, r3
	ldr	r3, [fp, #-88]
	add	r3, r3, #12
	ldr	r2, [r3]
	ldr	r3, [fp, #-88]
	add	r3, r3, #12
	eor	r2, r2, r1
	str	r2, [r3]
	nop
	ldr	r3, [fp, #-240]
	add	r3, r3, #112
	str	r3, [fp, #-224]
	ldr	r3, [fp, #-240]
	add	r3, r3, #220
	str	r3, [fp, #-220]
	sub	r3, fp, #24
	str	r3, [fp, #-104]
	ldr	r3, [fp, #-220]
	str	r3, [fp, #-100]
	ldr	r3, [fp, #-224]
	str	r3, [fp, #-96]
	ldr	r3, [fp, #-96]
	ldr	r2, [r3]
	ldr	r3, [fp, #-104]
	add	r3, r3, #12
	ldr	r3, [r3]
	add	r3, r2, r3
	str	r3, [fp, #-92]
	ldr	r3, [fp, #-100]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L175
	ldr	r3, [fp, #-100]
	ldrb	r3, [r3]	@ zero_extendqisi2
	ldr	r2, [fp, #-92]
	rsb	r3, r3, #32
	ror	r3, r2, r3
	b	.L176
.L175:
	ldr	r3, [fp, #-92]
.L176:
	str	r3, [fp, #-92]
	ldr	r3, [fp, #-92]
	lsr	r3, r3, #24
	ldr	r2, .L240+4
	ldr	r2, [r2, r3, lsl #2]
	ldr	r3, [fp, #-92]
	lsr	r3, r3, #16
	and	r3, r3, #255
	ldr	r1, .L240+8
	ldr	r3, [r1, r3, lsl #2]
	eor	r2, r2, r3
	ldr	r3, [fp, #-92]
	lsr	r3, r3, #8
	and	r3, r3, #255
	ldr	r1, .L240+12
	ldr	r3, [r1, r3, lsl #2]
	sub	r2, r2, r3
	ldr	r3, [fp, #-92]
	and	r3, r3, #255
	ldr	r1, .L240+16
	ldr	r3, [r1, r3, lsl #2]
	add	r1, r2, r3
	ldr	r3, [fp, #-104]
	add	r3, r3, #8
	ldr	r2, [r3]
	ldr	r3, [fp, #-104]
	add	r3, r3, #8
	eor	r2, r2, r1
	str	r2, [r3]
	ldr	r3, [fp, #-96]
	add	r3, r3, #4
	ldr	r2, [r3]
	ldr	r3, [fp, #-104]
	add	r3, r3, #8
	ldr	r3, [r3]
	eor	r3, r3, r2
	str	r3, [fp, #-92]
	ldr	r3, [fp, #-100]
	add	r3, r3, #1
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L177
	ldr	r3, [fp, #-100]
	add	r3, r3, #1
	ldrb	r3, [r3]	@ zero_extendqisi2
	ldr	r2, [fp, #-92]
	rsb	r3, r3, #32
	ror	r3, r2, r3
	b	.L178
.L177:
	ldr	r3, [fp, #-92]
.L178:
	str	r3, [fp, #-92]
	ldr	r3, [fp, #-92]
	lsr	r3, r3, #24
	ldr	r2, .L240+4
	ldr	r2, [r2, r3, lsl #2]
	ldr	r3, [fp, #-92]
	lsr	r3, r3, #16
	and	r3, r3, #255
	ldr	r1, .L240+8
	ldr	r3, [r1, r3, lsl #2]
	sub	r2, r2, r3
	ldr	r3, [fp, #-92]
	lsr	r3, r3, #8
	and	r3, r3, #255
	ldr	r1, .L240+12
	ldr	r3, [r1, r3, lsl #2]
	add	r2, r2, r3
	ldr	r3, [fp, #-92]
	and	r3, r3, #255
	ldr	r1, .L240+16
	ldr	r3, [r1, r3, lsl #2]
	eor	r1, r2, r3
	ldr	r3, [fp, #-104]
	add	r3, r3, #4
	ldr	r2, [r3]
	ldr	r3, [fp, #-104]
	add	r3, r3, #4
	eor	r2, r2, r1
	str	r2, [r3]
	ldr	r3, [fp, #-96]
	add	r3, r3, #8
	ldr	r2, [r3]
	ldr	r3, [fp, #-104]
	add	r3, r3, #4
	ldr	r3, [r3]
	sub	r3, r2, r3
	str	r3, [fp, #-92]
	ldr	r3, [fp, #-100]
	add	r3, r3, #2
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L179
	ldr	r3, [fp, #-100]
	add	r3, r3, #2
	ldrb	r3, [r3]	@ zero_extendqisi2
	ldr	r2, [fp, #-92]
	rsb	r3, r3, #32
	ror	r3, r2, r3
	b	.L180
.L241:
	.align	2
.L240:
	.word	.LC2
	.word	s1
	.word	s2
	.word	s3
	.word	s4
.L179:
	ldr	r3, [fp, #-92]
.L180:
	str	r3, [fp, #-92]
	ldr	r3, [fp, #-92]
	lsr	r3, r3, #24
	ldr	r2, .L240+4
	ldr	r2, [r2, r3, lsl #2]
	ldr	r3, [fp, #-92]
	lsr	r3, r3, #16
	and	r3, r3, #255
	ldr	r1, .L240+8
	ldr	r3, [r1, r3, lsl #2]
	add	r2, r2, r3
	ldr	r3, [fp, #-92]
	lsr	r3, r3, #8
	and	r3, r3, #255
	ldr	r1, .L240+12
	ldr	r3, [r1, r3, lsl #2]
	eor	r2, r2, r3
	ldr	r3, [fp, #-92]
	and	r3, r3, #255
	ldr	r1, .L240+16
	ldr	r3, [r1, r3, lsl #2]
	sub	r2, r2, r3
	ldr	r3, [fp, #-104]
	ldr	r3, [r3]
	eor	r2, r2, r3
	ldr	r3, [fp, #-104]
	str	r2, [r3]
	ldr	r3, [fp, #-96]
	add	r3, r3, #12
	ldr	r2, [r3]
	ldr	r3, [fp, #-104]
	ldr	r3, [r3]
	add	r3, r2, r3
	str	r3, [fp, #-92]
	ldr	r3, [fp, #-100]
	add	r3, r3, #3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L181
	ldr	r3, [fp, #-100]
	add	r3, r3, #3
	ldrb	r3, [r3]	@ zero_extendqisi2
	ldr	r2, [fp, #-92]
	rsb	r3, r3, #32
	ror	r3, r2, r3
	b	.L182
.L181:
	ldr	r3, [fp, #-92]
.L182:
	str	r3, [fp, #-92]
	ldr	r3, [fp, #-92]
	lsr	r3, r3, #24
	ldr	r2, .L240+4
	ldr	r2, [r2, r3, lsl #2]
	ldr	r3, [fp, #-92]
	lsr	r3, r3, #16
	and	r3, r3, #255
	ldr	r1, .L240+8
	ldr	r3, [r1, r3, lsl #2]
	eor	r2, r2, r3
	ldr	r3, [fp, #-92]
	lsr	r3, r3, #8
	and	r3, r3, #255
	ldr	r1, .L240+12
	ldr	r3, [r1, r3, lsl #2]
	sub	r2, r2, r3
	ldr	r3, [fp, #-92]
	and	r3, r3, #255
	ldr	r1, .L240+16
	ldr	r3, [r1, r3, lsl #2]
	add	r1, r2, r3
	ldr	r3, [fp, #-104]
	add	r3, r3, #12
	ldr	r2, [r3]
	ldr	r3, [fp, #-104]
	add	r3, r3, #12
	eor	r2, r2, r1
	str	r2, [r3]
	nop
	ldr	r3, [fp, #-240]
	add	r3, r3, #96
	str	r3, [fp, #-224]
	ldr	r3, [fp, #-240]
	add	r3, r3, #216
	str	r3, [fp, #-220]
	sub	r3, fp, #24
	str	r3, [fp, #-120]
	ldr	r3, [fp, #-220]
	str	r3, [fp, #-116]
	ldr	r3, [fp, #-224]
	str	r3, [fp, #-112]
	ldr	r3, [fp, #-112]
	ldr	r2, [r3]
	ldr	r3, [fp, #-120]
	add	r3, r3, #12
	ldr	r3, [r3]
	add	r3, r2, r3
	str	r3, [fp, #-108]
	ldr	r3, [fp, #-116]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L183
	ldr	r3, [fp, #-116]
	ldrb	r3, [r3]	@ zero_extendqisi2
	ldr	r2, [fp, #-108]
	rsb	r3, r3, #32
	ror	r3, r2, r3
	b	.L184
.L183:
	ldr	r3, [fp, #-108]
.L184:
	str	r3, [fp, #-108]
	ldr	r3, [fp, #-108]
	lsr	r3, r3, #24
	ldr	r2, .L240+4
	ldr	r2, [r2, r3, lsl #2]
	ldr	r3, [fp, #-108]
	lsr	r3, r3, #16
	and	r3, r3, #255
	ldr	r1, .L240+8
	ldr	r3, [r1, r3, lsl #2]
	eor	r2, r2, r3
	ldr	r3, [fp, #-108]
	lsr	r3, r3, #8
	and	r3, r3, #255
	ldr	r1, .L240+12
	ldr	r3, [r1, r3, lsl #2]
	sub	r2, r2, r3
	ldr	r3, [fp, #-108]
	and	r3, r3, #255
	ldr	r1, .L240+16
	ldr	r3, [r1, r3, lsl #2]
	add	r1, r2, r3
	ldr	r3, [fp, #-120]
	add	r3, r3, #8
	ldr	r2, [r3]
	ldr	r3, [fp, #-120]
	add	r3, r3, #8
	eor	r2, r2, r1
	str	r2, [r3]
	ldr	r3, [fp, #-112]
	add	r3, r3, #4
	ldr	r2, [r3]
	ldr	r3, [fp, #-120]
	add	r3, r3, #8
	ldr	r3, [r3]
	eor	r3, r3, r2
	str	r3, [fp, #-108]
	ldr	r3, [fp, #-116]
	add	r3, r3, #1
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L185
	ldr	r3, [fp, #-116]
	add	r3, r3, #1
	ldrb	r3, [r3]	@ zero_extendqisi2
	ldr	r2, [fp, #-108]
	rsb	r3, r3, #32
	ror	r3, r2, r3
	b	.L186
.L185:
	ldr	r3, [fp, #-108]
.L186:
	str	r3, [fp, #-108]
	ldr	r3, [fp, #-108]
	lsr	r3, r3, #24
	ldr	r2, .L240+4
	ldr	r2, [r2, r3, lsl #2]
	ldr	r3, [fp, #-108]
	lsr	r3, r3, #16
	and	r3, r3, #255
	ldr	r1, .L240+8
	ldr	r3, [r1, r3, lsl #2]
	sub	r2, r2, r3
	ldr	r3, [fp, #-108]
	lsr	r3, r3, #8
	and	r3, r3, #255
	ldr	r1, .L240+12
	ldr	r3, [r1, r3, lsl #2]
	add	r2, r2, r3
	ldr	r3, [fp, #-108]
	and	r3, r3, #255
	ldr	r1, .L240+16
	ldr	r3, [r1, r3, lsl #2]
	eor	r1, r2, r3
	ldr	r3, [fp, #-120]
	add	r3, r3, #4
	ldr	r2, [r3]
	ldr	r3, [fp, #-120]
	add	r3, r3, #4
	eor	r2, r2, r1
	str	r2, [r3]
	ldr	r3, [fp, #-112]
	add	r3, r3, #8
	ldr	r2, [r3]
	ldr	r3, [fp, #-120]
	add	r3, r3, #4
	ldr	r3, [r3]
	sub	r3, r2, r3
	str	r3, [fp, #-108]
	ldr	r3, [fp, #-116]
	add	r3, r3, #2
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L187
	ldr	r3, [fp, #-116]
	add	r3, r3, #2
	ldrb	r3, [r3]	@ zero_extendqisi2
	ldr	r2, [fp, #-108]
	rsb	r3, r3, #32
	ror	r3, r2, r3
	b	.L188
.L187:
	ldr	r3, [fp, #-108]
.L188:
	str	r3, [fp, #-108]
	ldr	r3, [fp, #-108]
	lsr	r3, r3, #24
	ldr	r2, .L240+4
	ldr	r2, [r2, r3, lsl #2]
	ldr	r3, [fp, #-108]
	lsr	r3, r3, #16
	and	r3, r3, #255
	ldr	r1, .L240+8
	ldr	r3, [r1, r3, lsl #2]
	add	r2, r2, r3
	ldr	r3, [fp, #-108]
	lsr	r3, r3, #8
	and	r3, r3, #255
	ldr	r1, .L240+12
	ldr	r3, [r1, r3, lsl #2]
	eor	r2, r2, r3
	ldr	r3, [fp, #-108]
	and	r3, r3, #255
	ldr	r1, .L240+16
	ldr	r3, [r1, r3, lsl #2]
	sub	r2, r2, r3
	ldr	r3, [fp, #-120]
	ldr	r3, [r3]
	eor	r2, r2, r3
	ldr	r3, [fp, #-120]
	str	r2, [r3]
	ldr	r3, [fp, #-112]
	add	r3, r3, #12
	ldr	r2, [r3]
	ldr	r3, [fp, #-120]
	ldr	r3, [r3]
	add	r3, r2, r3
	str	r3, [fp, #-108]
	ldr	r3, [fp, #-116]
	add	r3, r3, #3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L189
	ldr	r3, [fp, #-116]
	add	r3, r3, #3
	ldrb	r3, [r3]	@ zero_extendqisi2
	ldr	r2, [fp, #-108]
	rsb	r3, r3, #32
	ror	r3, r2, r3
	b	.L190
.L189:
	ldr	r3, [fp, #-108]
.L190:
	str	r3, [fp, #-108]
	ldr	r3, [fp, #-108]
	lsr	r3, r3, #24
	ldr	r2, .L240+4
	ldr	r2, [r2, r3, lsl #2]
	ldr	r3, [fp, #-108]
	lsr	r3, r3, #16
	and	r3, r3, #255
	ldr	r1, .L240+8
	ldr	r3, [r1, r3, lsl #2]
	eor	r2, r2, r3
	ldr	r3, [fp, #-108]
	lsr	r3, r3, #8
	and	r3, r3, #255
	ldr	r1, .L240+12
	ldr	r3, [r1, r3, lsl #2]
	sub	r2, r2, r3
	ldr	r3, [fp, #-108]
	and	r3, r3, #255
	ldr	r1, .L240+16
	ldr	r3, [r1, r3, lsl #2]
	add	r1, r2, r3
	ldr	r3, [fp, #-120]
	add	r3, r3, #12
	ldr	r2, [r3]
	ldr	r3, [fp, #-120]
	add	r3, r3, #12
	eor	r2, r2, r1
	str	r2, [r3]
	nop
	ldr	r3, [fp, #-240]
	add	r3, r3, #80
	str	r3, [fp, #-224]
	ldr	r3, [fp, #-240]
	add	r3, r3, #212
	str	r3, [fp, #-220]
	sub	r3, fp, #24
	str	r3, [fp, #-136]
	ldr	r3, [fp, #-220]
	str	r3, [fp, #-132]
	ldr	r3, [fp, #-224]
	str	r3, [fp, #-128]
	ldr	r3, [fp, #-128]
	add	r3, r3, #12
	ldr	r2, [r3]
	ldr	r3, [fp, #-136]
	ldr	r3, [r3]
	add	r3, r2, r3
	str	r3, [fp, #-124]
	ldr	r3, [fp, #-132]
	add	r3, r3, #3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L191
	ldr	r3, [fp, #-132]
	add	r3, r3, #3
	ldrb	r3, [r3]	@ zero_extendqisi2
	ldr	r2, [fp, #-124]
	rsb	r3, r3, #32
	ror	r3, r2, r3
	b	.L192
.L191:
	ldr	r3, [fp, #-124]
.L192:
	str	r3, [fp, #-124]
	ldr	r3, [fp, #-124]
	lsr	r3, r3, #24
	ldr	r2, .L240+4
	ldr	r2, [r2, r3, lsl #2]
	ldr	r3, [fp, #-124]
	lsr	r3, r3, #16
	and	r3, r3, #255
	ldr	r1, .L240+8
	ldr	r3, [r1, r3, lsl #2]
	eor	r2, r2, r3
	ldr	r3, [fp, #-124]
	lsr	r3, r3, #8
	and	r3, r3, #255
	ldr	r1, .L240+12
	ldr	r3, [r1, r3, lsl #2]
	sub	r2, r2, r3
	ldr	r3, [fp, #-124]
	and	r3, r3, #255
	ldr	r1, .L240+16
	ldr	r3, [r1, r3, lsl #2]
	add	r1, r2, r3
	ldr	r3, [fp, #-136]
	add	r3, r3, #12
	ldr	r2, [r3]
	ldr	r3, [fp, #-136]
	add	r3, r3, #12
	eor	r2, r2, r1
	str	r2, [r3]
	ldr	r3, [fp, #-128]
	add	r3, r3, #8
	ldr	r2, [r3]
	ldr	r3, [fp, #-136]
	add	r3, r3, #4
	ldr	r3, [r3]
	sub	r3, r2, r3
	str	r3, [fp, #-124]
	ldr	r3, [fp, #-132]
	add	r3, r3, #2
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L193
	ldr	r3, [fp, #-132]
	add	r3, r3, #2
	ldrb	r3, [r3]	@ zero_extendqisi2
	ldr	r2, [fp, #-124]
	rsb	r3, r3, #32
	ror	r3, r2, r3
	b	.L194
.L193:
	ldr	r3, [fp, #-124]
.L194:
	str	r3, [fp, #-124]
	ldr	r3, [fp, #-124]
	lsr	r3, r3, #24
	ldr	r2, .L240+4
	ldr	r2, [r2, r3, lsl #2]
	ldr	r3, [fp, #-124]
	lsr	r3, r3, #16
	and	r3, r3, #255
	ldr	r1, .L240+8
	ldr	r3, [r1, r3, lsl #2]
	add	r2, r2, r3
	ldr	r3, [fp, #-124]
	lsr	r3, r3, #8
	and	r3, r3, #255
	ldr	r1, .L240+12
	ldr	r3, [r1, r3, lsl #2]
	eor	r2, r2, r3
	ldr	r3, [fp, #-124]
	and	r3, r3, #255
	ldr	r1, .L240+16
	ldr	r3, [r1, r3, lsl #2]
	sub	r2, r2, r3
	ldr	r3, [fp, #-136]
	ldr	r3, [r3]
	eor	r2, r2, r3
	ldr	r3, [fp, #-136]
	str	r2, [r3]
	ldr	r3, [fp, #-128]
	add	r3, r3, #4
	ldr	r2, [r3]
	ldr	r3, [fp, #-136]
	add	r3, r3, #8
	ldr	r3, [r3]
	eor	r3, r3, r2
	str	r3, [fp, #-124]
	ldr	r3, [fp, #-132]
	add	r3, r3, #1
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L195
	ldr	r3, [fp, #-132]
	add	r3, r3, #1
	ldrb	r3, [r3]	@ zero_extendqisi2
	ldr	r2, [fp, #-124]
	rsb	r3, r3, #32
	ror	r3, r2, r3
	b	.L196
.L195:
	ldr	r3, [fp, #-124]
.L196:
	str	r3, [fp, #-124]
	ldr	r3, [fp, #-124]
	lsr	r3, r3, #24
	ldr	r2, .L240+4
	ldr	r2, [r2, r3, lsl #2]
	ldr	r3, [fp, #-124]
	lsr	r3, r3, #16
	and	r3, r3, #255
	ldr	r1, .L240+8
	ldr	r3, [r1, r3, lsl #2]
	sub	r2, r2, r3
	ldr	r3, [fp, #-124]
	lsr	r3, r3, #8
	and	r3, r3, #255
	ldr	r1, .L240+12
	ldr	r3, [r1, r3, lsl #2]
	add	r2, r2, r3
	ldr	r3, [fp, #-124]
	and	r3, r3, #255
	ldr	r1, .L240+16
	ldr	r3, [r1, r3, lsl #2]
	eor	r1, r2, r3
	ldr	r3, [fp, #-136]
	add	r3, r3, #4
	ldr	r2, [r3]
	ldr	r3, [fp, #-136]
	add	r3, r3, #4
	eor	r2, r2, r1
	str	r2, [r3]
	ldr	r3, [fp, #-128]
	ldr	r2, [r3]
	ldr	r3, [fp, #-136]
	add	r3, r3, #12
	ldr	r3, [r3]
	add	r3, r2, r3
	str	r3, [fp, #-124]
	ldr	r3, [fp, #-132]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L197
	ldr	r3, [fp, #-132]
	ldrb	r3, [r3]	@ zero_extendqisi2
	ldr	r2, [fp, #-124]
	rsb	r3, r3, #32
	ror	r3, r2, r3
	b	.L198
.L197:
	ldr	r3, [fp, #-124]
.L198:
	str	r3, [fp, #-124]
	ldr	r3, [fp, #-124]
	lsr	r3, r3, #24
	ldr	r2, .L240+4
	ldr	r2, [r2, r3, lsl #2]
	ldr	r3, [fp, #-124]
	lsr	r3, r3, #16
	and	r3, r3, #255
	ldr	r1, .L240+8
	ldr	r3, [r1, r3, lsl #2]
	eor	r2, r2, r3
	ldr	r3, [fp, #-124]
	lsr	r3, r3, #8
	and	r3, r3, #255
	ldr	r1, .L240+12
	ldr	r3, [r1, r3, lsl #2]
	sub	r2, r2, r3
	ldr	r3, [fp, #-124]
	and	r3, r3, #255
	ldr	r1, .L240+16
	ldr	r3, [r1, r3, lsl #2]
	add	r1, r2, r3
	ldr	r3, [fp, #-136]
	add	r3, r3, #8
	ldr	r2, [r3]
	ldr	r3, [fp, #-136]
	add	r3, r3, #8
	eor	r2, r2, r1
	str	r2, [r3]
	nop
	ldr	r3, [fp, #-240]
	add	r3, r3, #64
	str	r3, [fp, #-224]
	ldr	r3, [fp, #-240]
	add	r3, r3, #208
	str	r3, [fp, #-220]
	sub	r3, fp, #24
	str	r3, [fp, #-152]
	ldr	r3, [fp, #-220]
	str	r3, [fp, #-148]
	ldr	r3, [fp, #-224]
	str	r3, [fp, #-144]
	ldr	r3, [fp, #-144]
	add	r3, r3, #12
	ldr	r2, [r3]
	ldr	r3, [fp, #-152]
	ldr	r3, [r3]
	add	r3, r2, r3
	str	r3, [fp, #-140]
	ldr	r3, [fp, #-148]
	add	r3, r3, #3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L199
	ldr	r3, [fp, #-148]
	add	r3, r3, #3
	ldrb	r3, [r3]	@ zero_extendqisi2
	ldr	r2, [fp, #-140]
	rsb	r3, r3, #32
	ror	r3, r2, r3
	b	.L200
.L199:
	ldr	r3, [fp, #-140]
.L200:
	str	r3, [fp, #-140]
	ldr	r3, [fp, #-140]
	lsr	r3, r3, #24
	ldr	r2, .L240+4
	ldr	r2, [r2, r3, lsl #2]
	ldr	r3, [fp, #-140]
	lsr	r3, r3, #16
	and	r3, r3, #255
	ldr	r1, .L240+8
	ldr	r3, [r1, r3, lsl #2]
	eor	r2, r2, r3
	ldr	r3, [fp, #-140]
	lsr	r3, r3, #8
	and	r3, r3, #255
	ldr	r1, .L240+12
	ldr	r3, [r1, r3, lsl #2]
	sub	r2, r2, r3
	ldr	r3, [fp, #-140]
	and	r3, r3, #255
	ldr	r1, .L240+16
	ldr	r3, [r1, r3, lsl #2]
	add	r1, r2, r3
	ldr	r3, [fp, #-152]
	add	r3, r3, #12
	ldr	r2, [r3]
	ldr	r3, [fp, #-152]
	add	r3, r3, #12
	eor	r2, r2, r1
	str	r2, [r3]
	ldr	r3, [fp, #-144]
	add	r3, r3, #8
	ldr	r2, [r3]
	ldr	r3, [fp, #-152]
	add	r3, r3, #4
	ldr	r3, [r3]
	sub	r3, r2, r3
	str	r3, [fp, #-140]
	ldr	r3, [fp, #-148]
	add	r3, r3, #2
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L201
	ldr	r3, [fp, #-148]
	add	r3, r3, #2
	ldrb	r3, [r3]	@ zero_extendqisi2
	ldr	r2, [fp, #-140]
	rsb	r3, r3, #32
	ror	r3, r2, r3
	b	.L202
.L201:
	ldr	r3, [fp, #-140]
.L202:
	str	r3, [fp, #-140]
	ldr	r3, [fp, #-140]
	lsr	r3, r3, #24
	ldr	r2, .L240+4
	ldr	r2, [r2, r3, lsl #2]
	ldr	r3, [fp, #-140]
	lsr	r3, r3, #16
	and	r3, r3, #255
	ldr	r1, .L240+8
	ldr	r3, [r1, r3, lsl #2]
	add	r2, r2, r3
	ldr	r3, [fp, #-140]
	lsr	r3, r3, #8
	and	r3, r3, #255
	ldr	r1, .L240+12
	ldr	r3, [r1, r3, lsl #2]
	eor	r2, r2, r3
	ldr	r3, [fp, #-140]
	and	r3, r3, #255
	ldr	r1, .L240+16
	ldr	r3, [r1, r3, lsl #2]
	sub	r2, r2, r3
	ldr	r3, [fp, #-152]
	ldr	r3, [r3]
	eor	r2, r2, r3
	ldr	r3, [fp, #-152]
	str	r2, [r3]
	ldr	r3, [fp, #-144]
	add	r3, r3, #4
	ldr	r2, [r3]
	ldr	r3, [fp, #-152]
	add	r3, r3, #8
	ldr	r3, [r3]
	eor	r3, r3, r2
	str	r3, [fp, #-140]
	ldr	r3, [fp, #-148]
	add	r3, r3, #1
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L203
	ldr	r3, [fp, #-148]
	add	r3, r3, #1
	ldrb	r3, [r3]	@ zero_extendqisi2
	ldr	r2, [fp, #-140]
	rsb	r3, r3, #32
	ror	r3, r2, r3
	b	.L204
.L203:
	ldr	r3, [fp, #-140]
.L204:
	str	r3, [fp, #-140]
	ldr	r3, [fp, #-140]
	lsr	r3, r3, #24
	ldr	r2, .L240+4
	ldr	r2, [r2, r3, lsl #2]
	ldr	r3, [fp, #-140]
	lsr	r3, r3, #16
	and	r3, r3, #255
	ldr	r1, .L240+8
	ldr	r3, [r1, r3, lsl #2]
	sub	r2, r2, r3
	ldr	r3, [fp, #-140]
	lsr	r3, r3, #8
	and	r3, r3, #255
	ldr	r1, .L240+12
	ldr	r3, [r1, r3, lsl #2]
	add	r2, r2, r3
	ldr	r3, [fp, #-140]
	and	r3, r3, #255
	ldr	r1, .L240+16
	ldr	r3, [r1, r3, lsl #2]
	eor	r1, r2, r3
	ldr	r3, [fp, #-152]
	add	r3, r3, #4
	ldr	r2, [r3]
	ldr	r3, [fp, #-152]
	add	r3, r3, #4
	eor	r2, r2, r1
	str	r2, [r3]
	ldr	r3, [fp, #-144]
	ldr	r2, [r3]
	ldr	r3, [fp, #-152]
	add	r3, r3, #12
	ldr	r3, [r3]
	add	r3, r2, r3
	str	r3, [fp, #-140]
	ldr	r3, [fp, #-148]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L205
	ldr	r3, [fp, #-148]
	ldrb	r3, [r3]	@ zero_extendqisi2
	ldr	r2, [fp, #-140]
	rsb	r3, r3, #32
	ror	r3, r2, r3
	b	.L206
.L205:
	ldr	r3, [fp, #-140]
.L206:
	str	r3, [fp, #-140]
	ldr	r3, [fp, #-140]
	lsr	r3, r3, #24
	ldr	r2, .L240+4
	ldr	r2, [r2, r3, lsl #2]
	ldr	r3, [fp, #-140]
	lsr	r3, r3, #16
	and	r3, r3, #255
	ldr	r1, .L240+8
	ldr	r3, [r1, r3, lsl #2]
	eor	r2, r2, r3
	ldr	r3, [fp, #-140]
	lsr	r3, r3, #8
	and	r3, r3, #255
	ldr	r1, .L240+12
	ldr	r3, [r1, r3, lsl #2]
	sub	r2, r2, r3
	ldr	r3, [fp, #-140]
	and	r3, r3, #255
	ldr	r1, .L240+16
	ldr	r3, [r1, r3, lsl #2]
	add	r1, r2, r3
	ldr	r3, [fp, #-152]
	add	r3, r3, #8
	ldr	r2, [r3]
	ldr	r3, [fp, #-152]
	add	r3, r3, #8
	eor	r2, r2, r1
	str	r2, [r3]
	nop
	ldr	r3, [fp, #-240]
	add	r3, r3, #48
	str	r3, [fp, #-224]
	ldr	r3, [fp, #-240]
	add	r3, r3, #204
	str	r3, [fp, #-220]
	sub	r3, fp, #24
	str	r3, [fp, #-168]
	ldr	r3, [fp, #-220]
	str	r3, [fp, #-164]
	ldr	r3, [fp, #-224]
	str	r3, [fp, #-160]
	ldr	r3, [fp, #-160]
	add	r3, r3, #12
	ldr	r2, [r3]
	ldr	r3, [fp, #-168]
	ldr	r3, [r3]
	add	r3, r2, r3
	str	r3, [fp, #-156]
	ldr	r3, [fp, #-164]
	add	r3, r3, #3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L207
	ldr	r3, [fp, #-164]
	add	r3, r3, #3
	ldrb	r3, [r3]	@ zero_extendqisi2
	ldr	r2, [fp, #-156]
	rsb	r3, r3, #32
	ror	r3, r2, r3
	b	.L208
.L207:
	ldr	r3, [fp, #-156]
.L208:
	str	r3, [fp, #-156]
	ldr	r3, [fp, #-156]
	lsr	r3, r3, #24
	ldr	r2, .L240+4
	ldr	r2, [r2, r3, lsl #2]
	ldr	r3, [fp, #-156]
	lsr	r3, r3, #16
	and	r3, r3, #255
	ldr	r1, .L240+8
	ldr	r3, [r1, r3, lsl #2]
	eor	r2, r2, r3
	ldr	r3, [fp, #-156]
	lsr	r3, r3, #8
	and	r3, r3, #255
	ldr	r1, .L240+12
	ldr	r3, [r1, r3, lsl #2]
	sub	r2, r2, r3
	ldr	r3, [fp, #-156]
	and	r3, r3, #255
	ldr	r1, .L240+16
	ldr	r3, [r1, r3, lsl #2]
	add	r1, r2, r3
	ldr	r3, [fp, #-168]
	add	r3, r3, #12
	ldr	r2, [r3]
	ldr	r3, [fp, #-168]
	add	r3, r3, #12
	eor	r2, r2, r1
	str	r2, [r3]
	ldr	r3, [fp, #-160]
	add	r3, r3, #8
	ldr	r2, [r3]
	ldr	r3, [fp, #-168]
	add	r3, r3, #4
	ldr	r3, [r3]
	sub	r3, r2, r3
	str	r3, [fp, #-156]
	ldr	r3, [fp, #-164]
	add	r3, r3, #2
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L209
	ldr	r3, [fp, #-164]
	add	r3, r3, #2
	ldrb	r3, [r3]	@ zero_extendqisi2
	ldr	r2, [fp, #-156]
	rsb	r3, r3, #32
	ror	r3, r2, r3
	b	.L210
.L209:
	ldr	r3, [fp, #-156]
.L210:
	str	r3, [fp, #-156]
	ldr	r3, [fp, #-156]
	lsr	r3, r3, #24
	ldr	r2, .L240+4
	ldr	r2, [r2, r3, lsl #2]
	ldr	r3, [fp, #-156]
	lsr	r3, r3, #16
	and	r3, r3, #255
	ldr	r1, .L240+8
	ldr	r3, [r1, r3, lsl #2]
	add	r2, r2, r3
	ldr	r3, [fp, #-156]
	lsr	r3, r3, #8
	and	r3, r3, #255
	ldr	r1, .L240+12
	ldr	r3, [r1, r3, lsl #2]
	eor	r2, r2, r3
	ldr	r3, [fp, #-156]
	and	r3, r3, #255
	ldr	r1, .L240+16
	ldr	r3, [r1, r3, lsl #2]
	sub	r2, r2, r3
	ldr	r3, [fp, #-168]
	ldr	r3, [r3]
	eor	r2, r2, r3
	ldr	r3, [fp, #-168]
	str	r2, [r3]
	ldr	r3, [fp, #-160]
	add	r3, r3, #4
	ldr	r2, [r3]
	ldr	r3, [fp, #-168]
	add	r3, r3, #8
	ldr	r3, [r3]
	eor	r3, r3, r2
	str	r3, [fp, #-156]
	ldr	r3, [fp, #-164]
	add	r3, r3, #1
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L211
	ldr	r3, [fp, #-164]
	add	r3, r3, #1
	ldrb	r3, [r3]	@ zero_extendqisi2
	ldr	r2, [fp, #-156]
	rsb	r3, r3, #32
	ror	r3, r2, r3
	b	.L212
.L211:
	ldr	r3, [fp, #-156]
.L212:
	str	r3, [fp, #-156]
	ldr	r3, [fp, #-156]
	lsr	r3, r3, #24
	ldr	r2, .L240+4
	ldr	r2, [r2, r3, lsl #2]
	ldr	r3, [fp, #-156]
	lsr	r3, r3, #16
	and	r3, r3, #255
	ldr	r1, .L240+8
	ldr	r3, [r1, r3, lsl #2]
	sub	r2, r2, r3
	ldr	r3, [fp, #-156]
	lsr	r3, r3, #8
	and	r3, r3, #255
	ldr	r1, .L240+12
	ldr	r3, [r1, r3, lsl #2]
	add	r2, r2, r3
	ldr	r3, [fp, #-156]
	and	r3, r3, #255
	ldr	r1, .L240+16
	ldr	r3, [r1, r3, lsl #2]
	eor	r1, r2, r3
	ldr	r3, [fp, #-168]
	add	r3, r3, #4
	ldr	r2, [r3]
	ldr	r3, [fp, #-168]
	add	r3, r3, #4
	eor	r2, r2, r1
	str	r2, [r3]
	ldr	r3, [fp, #-160]
	ldr	r2, [r3]
	ldr	r3, [fp, #-168]
	add	r3, r3, #12
	ldr	r3, [r3]
	add	r3, r2, r3
	str	r3, [fp, #-156]
	ldr	r3, [fp, #-164]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L213
	ldr	r3, [fp, #-164]
	ldrb	r3, [r3]	@ zero_extendqisi2
	ldr	r2, [fp, #-156]
	rsb	r3, r3, #32
	ror	r3, r2, r3
	b	.L214
.L213:
	ldr	r3, [fp, #-156]
.L214:
	str	r3, [fp, #-156]
	ldr	r3, [fp, #-156]
	lsr	r3, r3, #24
	ldr	r2, .L240+4
	ldr	r2, [r2, r3, lsl #2]
	ldr	r3, [fp, #-156]
	lsr	r3, r3, #16
	and	r3, r3, #255
	ldr	r1, .L240+8
	ldr	r3, [r1, r3, lsl #2]
	eor	r2, r2, r3
	ldr	r3, [fp, #-156]
	lsr	r3, r3, #8
	and	r3, r3, #255
	ldr	r1, .L240+12
	ldr	r3, [r1, r3, lsl #2]
	sub	r2, r2, r3
	ldr	r3, [fp, #-156]
	and	r3, r3, #255
	ldr	r1, .L240+16
	ldr	r3, [r1, r3, lsl #2]
	add	r1, r2, r3
	ldr	r3, [fp, #-168]
	add	r3, r3, #8
	ldr	r2, [r3]
	ldr	r3, [fp, #-168]
	add	r3, r3, #8
	eor	r2, r2, r1
	str	r2, [r3]
	nop
	ldr	r3, [fp, #-240]
	add	r3, r3, #32
	str	r3, [fp, #-224]
	ldr	r3, [fp, #-240]
	add	r3, r3, #200
	str	r3, [fp, #-220]
	sub	r3, fp, #24
	str	r3, [fp, #-184]
	ldr	r3, [fp, #-220]
	str	r3, [fp, #-180]
	ldr	r3, [fp, #-224]
	str	r3, [fp, #-176]
	ldr	r3, [fp, #-176]
	add	r3, r3, #12
	ldr	r2, [r3]
	ldr	r3, [fp, #-184]
	ldr	r3, [r3]
	add	r3, r2, r3
	str	r3, [fp, #-172]
	ldr	r3, [fp, #-180]
	add	r3, r3, #3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L215
	ldr	r3, [fp, #-180]
	add	r3, r3, #3
	ldrb	r3, [r3]	@ zero_extendqisi2
	ldr	r2, [fp, #-172]
	rsb	r3, r3, #32
	ror	r3, r2, r3
	b	.L216
.L215:
	ldr	r3, [fp, #-172]
.L216:
	str	r3, [fp, #-172]
	ldr	r3, [fp, #-172]
	lsr	r3, r3, #24
	ldr	r2, .L240+4
	ldr	r2, [r2, r3, lsl #2]
	ldr	r3, [fp, #-172]
	lsr	r3, r3, #16
	and	r3, r3, #255
	ldr	r1, .L240+8
	ldr	r3, [r1, r3, lsl #2]
	eor	r2, r2, r3
	ldr	r3, [fp, #-172]
	lsr	r3, r3, #8
	and	r3, r3, #255
	ldr	r1, .L240+12
	ldr	r3, [r1, r3, lsl #2]
	sub	r2, r2, r3
	ldr	r3, [fp, #-172]
	and	r3, r3, #255
	ldr	r1, .L240+16
	ldr	r3, [r1, r3, lsl #2]
	add	r1, r2, r3
	ldr	r3, [fp, #-184]
	add	r3, r3, #12
	ldr	r2, [r3]
	ldr	r3, [fp, #-184]
	add	r3, r3, #12
	eor	r2, r2, r1
	str	r2, [r3]
	ldr	r3, [fp, #-176]
	add	r3, r3, #8
	ldr	r2, [r3]
	ldr	r3, [fp, #-184]
	add	r3, r3, #4
	ldr	r3, [r3]
	sub	r3, r2, r3
	str	r3, [fp, #-172]
	ldr	r3, [fp, #-180]
	add	r3, r3, #2
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L217
	ldr	r3, [fp, #-180]
	add	r3, r3, #2
	ldrb	r3, [r3]	@ zero_extendqisi2
	ldr	r2, [fp, #-172]
	rsb	r3, r3, #32
	ror	r3, r2, r3
	b	.L218
.L217:
	ldr	r3, [fp, #-172]
.L218:
	str	r3, [fp, #-172]
	ldr	r3, [fp, #-172]
	lsr	r3, r3, #24
	ldr	r2, .L240+4
	ldr	r2, [r2, r3, lsl #2]
	ldr	r3, [fp, #-172]
	lsr	r3, r3, #16
	and	r3, r3, #255
	ldr	r1, .L240+8
	ldr	r3, [r1, r3, lsl #2]
	add	r2, r2, r3
	ldr	r3, [fp, #-172]
	lsr	r3, r3, #8
	and	r3, r3, #255
	ldr	r1, .L240+12
	ldr	r3, [r1, r3, lsl #2]
	eor	r2, r2, r3
	ldr	r3, [fp, #-172]
	and	r3, r3, #255
	ldr	r1, .L240+16
	ldr	r3, [r1, r3, lsl #2]
	sub	r2, r2, r3
	ldr	r3, [fp, #-184]
	ldr	r3, [r3]
	eor	r2, r2, r3
	ldr	r3, [fp, #-184]
	str	r2, [r3]
	ldr	r3, [fp, #-176]
	add	r3, r3, #4
	ldr	r2, [r3]
	ldr	r3, [fp, #-184]
	add	r3, r3, #8
	ldr	r3, [r3]
	eor	r3, r3, r2
	str	r3, [fp, #-172]
	ldr	r3, [fp, #-180]
	add	r3, r3, #1
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L219
	ldr	r3, [fp, #-180]
	add	r3, r3, #1
	ldrb	r3, [r3]	@ zero_extendqisi2
	ldr	r2, [fp, #-172]
	rsb	r3, r3, #32
	ror	r3, r2, r3
	b	.L220
.L219:
	ldr	r3, [fp, #-172]
.L220:
	str	r3, [fp, #-172]
	ldr	r3, [fp, #-172]
	lsr	r3, r3, #24
	ldr	r2, .L242
	ldr	r2, [r2, r3, lsl #2]
	ldr	r3, [fp, #-172]
	lsr	r3, r3, #16
	and	r3, r3, #255
	ldr	r1, .L242+4
	ldr	r3, [r1, r3, lsl #2]
	sub	r2, r2, r3
	ldr	r3, [fp, #-172]
	lsr	r3, r3, #8
	and	r3, r3, #255
	ldr	r1, .L242+8
	ldr	r3, [r1, r3, lsl #2]
	add	r2, r2, r3
	ldr	r3, [fp, #-172]
	and	r3, r3, #255
	ldr	r1, .L242+12
	ldr	r3, [r1, r3, lsl #2]
	eor	r1, r2, r3
	ldr	r3, [fp, #-184]
	add	r3, r3, #4
	ldr	r2, [r3]
	ldr	r3, [fp, #-184]
	add	r3, r3, #4
	eor	r2, r2, r1
	str	r2, [r3]
	ldr	r3, [fp, #-176]
	ldr	r2, [r3]
	ldr	r3, [fp, #-184]
	add	r3, r3, #12
	ldr	r3, [r3]
	add	r3, r2, r3
	str	r3, [fp, #-172]
	ldr	r3, [fp, #-180]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L221
	ldr	r3, [fp, #-180]
	ldrb	r3, [r3]	@ zero_extendqisi2
	ldr	r2, [fp, #-172]
	rsb	r3, r3, #32
	ror	r3, r2, r3
	b	.L222
.L221:
	ldr	r3, [fp, #-172]
.L222:
	str	r3, [fp, #-172]
	ldr	r3, [fp, #-172]
	lsr	r3, r3, #24
	ldr	r2, .L242
	ldr	r2, [r2, r3, lsl #2]
	ldr	r3, [fp, #-172]
	lsr	r3, r3, #16
	and	r3, r3, #255
	ldr	r1, .L242+4
	ldr	r3, [r1, r3, lsl #2]
	eor	r2, r2, r3
	ldr	r3, [fp, #-172]
	lsr	r3, r3, #8
	and	r3, r3, #255
	ldr	r1, .L242+8
	ldr	r3, [r1, r3, lsl #2]
	sub	r2, r2, r3
	ldr	r3, [fp, #-172]
	and	r3, r3, #255
	ldr	r1, .L242+12
	ldr	r3, [r1, r3, lsl #2]
	add	r1, r2, r3
	ldr	r3, [fp, #-184]
	add	r3, r3, #8
	ldr	r2, [r3]
	ldr	r3, [fp, #-184]
	add	r3, r3, #8
	eor	r2, r2, r1
	str	r2, [r3]
	nop
	ldr	r3, [fp, #-240]
	add	r3, r3, #16
	str	r3, [fp, #-224]
	ldr	r3, [fp, #-240]
	add	r3, r3, #196
	str	r3, [fp, #-220]
	sub	r3, fp, #24
	str	r3, [fp, #-200]
	ldr	r3, [fp, #-220]
	str	r3, [fp, #-196]
	ldr	r3, [fp, #-224]
	str	r3, [fp, #-192]
	ldr	r3, [fp, #-192]
	add	r3, r3, #12
	ldr	r2, [r3]
	ldr	r3, [fp, #-200]
	ldr	r3, [r3]
	add	r3, r2, r3
	str	r3, [fp, #-188]
	ldr	r3, [fp, #-196]
	add	r3, r3, #3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L223
	ldr	r3, [fp, #-196]
	add	r3, r3, #3
	ldrb	r3, [r3]	@ zero_extendqisi2
	ldr	r2, [fp, #-188]
	rsb	r3, r3, #32
	ror	r3, r2, r3
	b	.L224
.L223:
	ldr	r3, [fp, #-188]
.L224:
	str	r3, [fp, #-188]
	ldr	r3, [fp, #-188]
	lsr	r3, r3, #24
	ldr	r2, .L242
	ldr	r2, [r2, r3, lsl #2]
	ldr	r3, [fp, #-188]
	lsr	r3, r3, #16
	and	r3, r3, #255
	ldr	r1, .L242+4
	ldr	r3, [r1, r3, lsl #2]
	eor	r2, r2, r3
	ldr	r3, [fp, #-188]
	lsr	r3, r3, #8
	and	r3, r3, #255
	ldr	r1, .L242+8
	ldr	r3, [r1, r3, lsl #2]
	sub	r2, r2, r3
	ldr	r3, [fp, #-188]
	and	r3, r3, #255
	ldr	r1, .L242+12
	ldr	r3, [r1, r3, lsl #2]
	add	r1, r2, r3
	ldr	r3, [fp, #-200]
	add	r3, r3, #12
	ldr	r2, [r3]
	ldr	r3, [fp, #-200]
	add	r3, r3, #12
	eor	r2, r2, r1
	str	r2, [r3]
	ldr	r3, [fp, #-192]
	add	r3, r3, #8
	ldr	r2, [r3]
	ldr	r3, [fp, #-200]
	add	r3, r3, #4
	ldr	r3, [r3]
	sub	r3, r2, r3
	str	r3, [fp, #-188]
	ldr	r3, [fp, #-196]
	add	r3, r3, #2
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L225
	ldr	r3, [fp, #-196]
	add	r3, r3, #2
	ldrb	r3, [r3]	@ zero_extendqisi2
	ldr	r2, [fp, #-188]
	rsb	r3, r3, #32
	ror	r3, r2, r3
	b	.L226
.L225:
	ldr	r3, [fp, #-188]
.L226:
	str	r3, [fp, #-188]
	ldr	r3, [fp, #-188]
	lsr	r3, r3, #24
	ldr	r2, .L242
	ldr	r2, [r2, r3, lsl #2]
	ldr	r3, [fp, #-188]
	lsr	r3, r3, #16
	and	r3, r3, #255
	ldr	r1, .L242+4
	ldr	r3, [r1, r3, lsl #2]
	add	r2, r2, r3
	ldr	r3, [fp, #-188]
	lsr	r3, r3, #8
	and	r3, r3, #255
	ldr	r1, .L242+8
	ldr	r3, [r1, r3, lsl #2]
	eor	r2, r2, r3
	ldr	r3, [fp, #-188]
	and	r3, r3, #255
	ldr	r1, .L242+12
	ldr	r3, [r1, r3, lsl #2]
	sub	r2, r2, r3
	ldr	r3, [fp, #-200]
	ldr	r3, [r3]
	eor	r2, r2, r3
	ldr	r3, [fp, #-200]
	str	r2, [r3]
	ldr	r3, [fp, #-192]
	add	r3, r3, #4
	ldr	r2, [r3]
	ldr	r3, [fp, #-200]
	add	r3, r3, #8
	ldr	r3, [r3]
	eor	r3, r3, r2
	str	r3, [fp, #-188]
	ldr	r3, [fp, #-196]
	add	r3, r3, #1
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L227
	ldr	r3, [fp, #-196]
	add	r3, r3, #1
	ldrb	r3, [r3]	@ zero_extendqisi2
	ldr	r2, [fp, #-188]
	rsb	r3, r3, #32
	ror	r3, r2, r3
	b	.L228
.L227:
	ldr	r3, [fp, #-188]
.L228:
	str	r3, [fp, #-188]
	ldr	r3, [fp, #-188]
	lsr	r3, r3, #24
	ldr	r2, .L242
	ldr	r2, [r2, r3, lsl #2]
	ldr	r3, [fp, #-188]
	lsr	r3, r3, #16
	and	r3, r3, #255
	ldr	r1, .L242+4
	ldr	r3, [r1, r3, lsl #2]
	sub	r2, r2, r3
	ldr	r3, [fp, #-188]
	lsr	r3, r3, #8
	and	r3, r3, #255
	ldr	r1, .L242+8
	ldr	r3, [r1, r3, lsl #2]
	add	r2, r2, r3
	ldr	r3, [fp, #-188]
	and	r3, r3, #255
	ldr	r1, .L242+12
	ldr	r3, [r1, r3, lsl #2]
	eor	r1, r2, r3
	ldr	r3, [fp, #-200]
	add	r3, r3, #4
	ldr	r2, [r3]
	ldr	r3, [fp, #-200]
	add	r3, r3, #4
	eor	r2, r2, r1
	str	r2, [r3]
	ldr	r3, [fp, #-192]
	ldr	r2, [r3]
	ldr	r3, [fp, #-200]
	add	r3, r3, #12
	ldr	r3, [r3]
	add	r3, r2, r3
	str	r3, [fp, #-188]
	ldr	r3, [fp, #-196]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L229
	ldr	r3, [fp, #-196]
	ldrb	r3, [r3]	@ zero_extendqisi2
	ldr	r2, [fp, #-188]
	rsb	r3, r3, #32
	ror	r3, r2, r3
	b	.L230
.L229:
	ldr	r3, [fp, #-188]
.L230:
	str	r3, [fp, #-188]
	ldr	r3, [fp, #-188]
	lsr	r3, r3, #24
	ldr	r2, .L242
	ldr	r2, [r2, r3, lsl #2]
	ldr	r3, [fp, #-188]
	lsr	r3, r3, #16
	and	r3, r3, #255
	ldr	r1, .L242+4
	ldr	r3, [r1, r3, lsl #2]
	eor	r2, r2, r3
	ldr	r3, [fp, #-188]
	lsr	r3, r3, #8
	and	r3, r3, #255
	ldr	r1, .L242+8
	ldr	r3, [r1, r3, lsl #2]
	sub	r2, r2, r3
	ldr	r3, [fp, #-188]
	and	r3, r3, #255
	ldr	r1, .L242+12
	ldr	r3, [r1, r3, lsl #2]
	add	r1, r2, r3
	ldr	r3, [fp, #-200]
	add	r3, r3, #8
	ldr	r2, [r3]
	ldr	r3, [fp, #-200]
	add	r3, r3, #8
	eor	r2, r2, r1
	str	r2, [r3]
	nop
	ldr	r3, [fp, #-240]
	str	r3, [fp, #-224]
	ldr	r3, [fp, #-240]
	add	r3, r3, #192
	str	r3, [fp, #-220]
	sub	r3, fp, #24
	str	r3, [fp, #-216]
	ldr	r3, [fp, #-220]
	str	r3, [fp, #-212]
	ldr	r3, [fp, #-224]
	str	r3, [fp, #-208]
	ldr	r3, [fp, #-208]
	add	r3, r3, #12
	ldr	r2, [r3]
	ldr	r3, [fp, #-216]
	ldr	r3, [r3]
	add	r3, r2, r3
	str	r3, [fp, #-204]
	ldr	r3, [fp, #-212]
	add	r3, r3, #3
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L231
	ldr	r3, [fp, #-212]
	add	r3, r3, #3
	ldrb	r3, [r3]	@ zero_extendqisi2
	ldr	r2, [fp, #-204]
	rsb	r3, r3, #32
	ror	r3, r2, r3
	b	.L232
.L231:
	ldr	r3, [fp, #-204]
.L232:
	str	r3, [fp, #-204]
	ldr	r3, [fp, #-204]
	lsr	r3, r3, #24
	ldr	r2, .L242
	ldr	r2, [r2, r3, lsl #2]
	ldr	r3, [fp, #-204]
	lsr	r3, r3, #16
	and	r3, r3, #255
	ldr	r1, .L242+4
	ldr	r3, [r1, r3, lsl #2]
	eor	r2, r2, r3
	ldr	r3, [fp, #-204]
	lsr	r3, r3, #8
	and	r3, r3, #255
	ldr	r1, .L242+8
	ldr	r3, [r1, r3, lsl #2]
	sub	r2, r2, r3
	ldr	r3, [fp, #-204]
	and	r3, r3, #255
	ldr	r1, .L242+12
	ldr	r3, [r1, r3, lsl #2]
	add	r1, r2, r3
	ldr	r3, [fp, #-216]
	add	r3, r3, #12
	ldr	r2, [r3]
	ldr	r3, [fp, #-216]
	add	r3, r3, #12
	eor	r2, r2, r1
	str	r2, [r3]
	ldr	r3, [fp, #-208]
	add	r3, r3, #8
	ldr	r2, [r3]
	ldr	r3, [fp, #-216]
	add	r3, r3, #4
	ldr	r3, [r3]
	sub	r3, r2, r3
	str	r3, [fp, #-204]
	ldr	r3, [fp, #-212]
	add	r3, r3, #2
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L233
	ldr	r3, [fp, #-212]
	add	r3, r3, #2
	ldrb	r3, [r3]	@ zero_extendqisi2
	ldr	r2, [fp, #-204]
	rsb	r3, r3, #32
	ror	r3, r2, r3
	b	.L234
.L233:
	ldr	r3, [fp, #-204]
.L234:
	str	r3, [fp, #-204]
	ldr	r3, [fp, #-204]
	lsr	r3, r3, #24
	ldr	r2, .L242
	ldr	r2, [r2, r3, lsl #2]
	ldr	r3, [fp, #-204]
	lsr	r3, r3, #16
	and	r3, r3, #255
	ldr	r1, .L242+4
	ldr	r3, [r1, r3, lsl #2]
	add	r2, r2, r3
	ldr	r3, [fp, #-204]
	lsr	r3, r3, #8
	and	r3, r3, #255
	ldr	r1, .L242+8
	ldr	r3, [r1, r3, lsl #2]
	eor	r2, r2, r3
	ldr	r3, [fp, #-204]
	and	r3, r3, #255
	ldr	r1, .L242+12
	ldr	r3, [r1, r3, lsl #2]
	sub	r2, r2, r3
	ldr	r3, [fp, #-216]
	ldr	r3, [r3]
	eor	r2, r2, r3
	ldr	r3, [fp, #-216]
	str	r2, [r3]
	ldr	r3, [fp, #-208]
	add	r3, r3, #4
	ldr	r2, [r3]
	ldr	r3, [fp, #-216]
	add	r3, r3, #8
	ldr	r3, [r3]
	eor	r3, r3, r2
	str	r3, [fp, #-204]
	ldr	r3, [fp, #-212]
	add	r3, r3, #1
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L235
	ldr	r3, [fp, #-212]
	add	r3, r3, #1
	ldrb	r3, [r3]	@ zero_extendqisi2
	ldr	r2, [fp, #-204]
	rsb	r3, r3, #32
	ror	r3, r2, r3
	b	.L236
.L235:
	ldr	r3, [fp, #-204]
.L236:
	str	r3, [fp, #-204]
	ldr	r3, [fp, #-204]
	lsr	r3, r3, #24
	ldr	r2, .L242
	ldr	r2, [r2, r3, lsl #2]
	ldr	r3, [fp, #-204]
	lsr	r3, r3, #16
	and	r3, r3, #255
	ldr	r1, .L242+4
	ldr	r3, [r1, r3, lsl #2]
	sub	r2, r2, r3
	ldr	r3, [fp, #-204]
	lsr	r3, r3, #8
	and	r3, r3, #255
	ldr	r1, .L242+8
	ldr	r3, [r1, r3, lsl #2]
	add	r2, r2, r3
	ldr	r3, [fp, #-204]
	and	r3, r3, #255
	ldr	r1, .L242+12
	ldr	r3, [r1, r3, lsl #2]
	eor	r1, r2, r3
	ldr	r3, [fp, #-216]
	add	r3, r3, #4
	ldr	r2, [r3]
	ldr	r3, [fp, #-216]
	add	r3, r3, #4
	eor	r2, r2, r1
	str	r2, [r3]
	ldr	r3, [fp, #-208]
	ldr	r2, [r3]
	ldr	r3, [fp, #-216]
	add	r3, r3, #12
	ldr	r3, [r3]
	add	r3, r2, r3
	str	r3, [fp, #-204]
	ldr	r3, [fp, #-212]
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	beq	.L237
	ldr	r3, [fp, #-212]
	ldrb	r3, [r3]	@ zero_extendqisi2
	ldr	r2, [fp, #-204]
	rsb	r3, r3, #32
	ror	r3, r2, r3
	b	.L238
.L237:
	ldr	r3, [fp, #-204]
.L238:
	str	r3, [fp, #-204]
	ldr	r3, [fp, #-204]
	lsr	r3, r3, #24
	ldr	r2, .L242
	ldr	r2, [r2, r3, lsl #2]
	ldr	r3, [fp, #-204]
	lsr	r3, r3, #16
	and	r3, r3, #255
	ldr	r1, .L242+4
	ldr	r3, [r1, r3, lsl #2]
	eor	r2, r2, r3
	ldr	r3, [fp, #-204]
	lsr	r3, r3, #8
	and	r3, r3, #255
	ldr	r1, .L242+8
	ldr	r3, [r1, r3, lsl #2]
	sub	r2, r2, r3
	ldr	r3, [fp, #-204]
	and	r3, r3, #255
	ldr	r1, .L242+12
	ldr	r3, [r1, r3, lsl #2]
	add	r1, r2, r3
	ldr	r3, [fp, #-216]
	add	r3, r3, #8
	ldr	r2, [r3]
	ldr	r3, [fp, #-216]
	add	r3, r3, #8
	eor	r2, r2, r1
	str	r2, [r3]
	nop
	ldr	r2, [fp, #-24]
	ldr	r3, [fp, #-228]
	str	r2, [r3]
	ldr	r3, [fp, #-228]
	add	r3, r3, #4
	ldr	r2, [fp, #-20]
	str	r2, [r3]
	ldr	r3, [fp, #-228]
	add	r3, r3, #8
	ldr	r2, [fp, #-16]
	str	r2, [r3]
	ldr	r3, [fp, #-228]
	add	r3, r3, #12
	ldr	r2, [fp, #-12]
	str	r2, [r3]
	nop
	ldr	r3, .L242+16
	ldr	r2, [r3]
	ldr	r3, [fp, #-8]
	eors	r2, r3, r2
	mov	r3, #0
	beq	.L239
	bl	__stack_chk_fail
.L239:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L243:
	.align	2
.L242:
	.word	s1
	.word	s2
	.word	s3
	.word	s4
	.word	.LC2
	.size	cast6_decrypt, .-cast6_decrypt
	.data
	.align	2
	.type	in_key, %object
	.size	in_key, 32
in_key:
	.ascii	"\253|\032\001\034:%&I7\251>-\235\363\275S\027B\312U"
	.ascii	"\361\272KR\014\243\350:\204\353="
	.local	in
	.comm	in,16,4
	.local	out
	.comm	out,16,4
	.section	.rodata
	.align	2
.LC3:
	.word	__stack_chk_guard
	.text
	.align	2
	.global	main
	.syntax unified
	.arm
	.fpu softvfp
	.type	main, %function
main:
	@ args = 0, pretend = 0, frame = 256
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #256
	str	r0, [fp, #-256]
	str	r1, [fp, #-260]
	ldr	r3, .L247
	ldr	r3, [r3]
	str	r3, [fp, #-8]
	mov	r3,#0
	sub	r3, fp, #248
	mov	r2, #240
	mov	r1, #0
	mov	r0, r3
	bl	memset
	mov	r2, #32
	ldr	r1, .L247+4
	mov	r0, #0
	bl	read
	mov	r2, #16
	ldr	r1, .L247+8
	mov	r0, #0
	bl	read
	sub	r3, fp, #248
	mov	r2, #32
	mov	r1, r3
	ldr	r0, .L247+4
	bl	cast6_setkey
	sub	r3, fp, #248
	ldr	r2, .L247+8
	ldr	r1, .L247+12
	mov	r0, r3
	bl	cast6_encrypt
	mov	r2, #16
	ldr	r1, .L247+12
	mov	r0, #1
	bl	write
	mov	r3, #0
	ldr	r2, .L247
	ldr	r1, [r2]
	ldr	r2, [fp, #-8]
	eors	r1, r2, r1
	mov	r2, #0
	beq	.L246
	bl	__stack_chk_fail
.L246:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L248:
	.align	2
.L247:
	.word	.LC3
	.word	in_key
	.word	in
	.word	out
	.size	main, .-main
	.ident	"GCC: (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0"
	.section	.note.GNU-stack,"",%progbits
