wp-mmx.s 30 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106
  1. .text
  2. .globl whirlpool_block_mmx
  3. .type whirlpool_block_mmx,@function
  4. .align 16
  5. whirlpool_block_mmx:
  6. .L_whirlpool_block_mmx_begin:
  7. pushl %ebp
  8. pushl %ebx
  9. pushl %esi
  10. pushl %edi
  11. movl 20(%esp),%esi
  12. movl 24(%esp),%edi
  13. movl 28(%esp),%ebp
  14. movl %esp,%eax
  15. subl $148,%esp
  16. andl $-64,%esp
  17. leal 128(%esp),%ebx
  18. movl %esi,(%ebx)
  19. movl %edi,4(%ebx)
  20. movl %ebp,8(%ebx)
  21. movl %eax,16(%ebx)
  22. call .L000pic_point
  23. .L000pic_point:
  24. popl %ebp
  25. leal .L001table-.L000pic_point(%ebp),%ebp
  26. xorl %ecx,%ecx
  27. xorl %edx,%edx
  28. movq (%esi),%mm0
  29. movq 8(%esi),%mm1
  30. movq 16(%esi),%mm2
  31. movq 24(%esi),%mm3
  32. movq 32(%esi),%mm4
  33. movq 40(%esi),%mm5
  34. movq 48(%esi),%mm6
  35. movq 56(%esi),%mm7
  36. .L002outerloop:
  37. movq %mm0,(%esp)
  38. movq %mm1,8(%esp)
  39. movq %mm2,16(%esp)
  40. movq %mm3,24(%esp)
  41. movq %mm4,32(%esp)
  42. movq %mm5,40(%esp)
  43. movq %mm6,48(%esp)
  44. movq %mm7,56(%esp)
  45. pxor (%edi),%mm0
  46. pxor 8(%edi),%mm1
  47. pxor 16(%edi),%mm2
  48. pxor 24(%edi),%mm3
  49. pxor 32(%edi),%mm4
  50. pxor 40(%edi),%mm5
  51. pxor 48(%edi),%mm6
  52. pxor 56(%edi),%mm7
  53. movq %mm0,64(%esp)
  54. movq %mm1,72(%esp)
  55. movq %mm2,80(%esp)
  56. movq %mm3,88(%esp)
  57. movq %mm4,96(%esp)
  58. movq %mm5,104(%esp)
  59. movq %mm6,112(%esp)
  60. movq %mm7,120(%esp)
  61. xorl %esi,%esi
  62. movl %esi,12(%ebx)
  63. .align 16
  64. .L003round:
  65. movq 4096(%ebp,%esi,8),%mm0
  66. movl (%esp),%eax
  67. movl 4(%esp),%ebx
  68. movzbl %al,%ecx
  69. movzbl %ah,%edx
  70. shrl $16,%eax
  71. leal (%ecx,%ecx,1),%esi
  72. movzbl %al,%ecx
  73. leal (%edx,%edx,1),%edi
  74. movzbl %ah,%edx
  75. pxor (%ebp,%esi,8),%mm0
  76. movq 7(%ebp,%edi,8),%mm1
  77. movl 8(%esp),%eax
  78. leal (%ecx,%ecx,1),%esi
  79. movzbl %bl,%ecx
  80. leal (%edx,%edx,1),%edi
  81. movzbl %bh,%edx
  82. movq 6(%ebp,%esi,8),%mm2
  83. movq 5(%ebp,%edi,8),%mm3
  84. shrl $16,%ebx
  85. leal (%ecx,%ecx,1),%esi
  86. movzbl %bl,%ecx
  87. leal (%edx,%edx,1),%edi
  88. movzbl %bh,%edx
  89. movq 4(%ebp,%esi,8),%mm4
  90. movq 3(%ebp,%edi,8),%mm5
  91. movl 12(%esp),%ebx
  92. leal (%ecx,%ecx,1),%esi
  93. movzbl %al,%ecx
  94. leal (%edx,%edx,1),%edi
  95. movzbl %ah,%edx
  96. movq 2(%ebp,%esi,8),%mm6
  97. movq 1(%ebp,%edi,8),%mm7
  98. shrl $16,%eax
  99. leal (%ecx,%ecx,1),%esi
  100. movzbl %al,%ecx
  101. leal (%edx,%edx,1),%edi
  102. movzbl %ah,%edx
  103. pxor (%ebp,%esi,8),%mm1
  104. pxor 7(%ebp,%edi,8),%mm2
  105. movl 16(%esp),%eax
  106. leal (%ecx,%ecx,1),%esi
  107. movzbl %bl,%ecx
  108. leal (%edx,%edx,1),%edi
  109. movzbl %bh,%edx
  110. pxor 6(%ebp,%esi,8),%mm3
  111. pxor 5(%ebp,%edi,8),%mm4
  112. shrl $16,%ebx
  113. leal (%ecx,%ecx,1),%esi
  114. movzbl %bl,%ecx
  115. leal (%edx,%edx,1),%edi
  116. movzbl %bh,%edx
  117. pxor 4(%ebp,%esi,8),%mm5
  118. pxor 3(%ebp,%edi,8),%mm6
  119. movl 20(%esp),%ebx
  120. leal (%ecx,%ecx,1),%esi
  121. movzbl %al,%ecx
  122. leal (%edx,%edx,1),%edi
  123. movzbl %ah,%edx
  124. pxor 2(%ebp,%esi,8),%mm7
  125. pxor 1(%ebp,%edi,8),%mm0
  126. shrl $16,%eax
  127. leal (%ecx,%ecx,1),%esi
  128. movzbl %al,%ecx
  129. leal (%edx,%edx,1),%edi
  130. movzbl %ah,%edx
  131. pxor (%ebp,%esi,8),%mm2
  132. pxor 7(%ebp,%edi,8),%mm3
  133. movl 24(%esp),%eax
  134. leal (%ecx,%ecx,1),%esi
  135. movzbl %bl,%ecx
  136. leal (%edx,%edx,1),%edi
  137. movzbl %bh,%edx
  138. pxor 6(%ebp,%esi,8),%mm4
  139. pxor 5(%ebp,%edi,8),%mm5
  140. shrl $16,%ebx
  141. leal (%ecx,%ecx,1),%esi
  142. movzbl %bl,%ecx
  143. leal (%edx,%edx,1),%edi
  144. movzbl %bh,%edx
  145. pxor 4(%ebp,%esi,8),%mm6
  146. pxor 3(%ebp,%edi,8),%mm7
  147. movl 28(%esp),%ebx
  148. leal (%ecx,%ecx,1),%esi
  149. movzbl %al,%ecx
  150. leal (%edx,%edx,1),%edi
  151. movzbl %ah,%edx
  152. pxor 2(%ebp,%esi,8),%mm0
  153. pxor 1(%ebp,%edi,8),%mm1
  154. shrl $16,%eax
  155. leal (%ecx,%ecx,1),%esi
  156. movzbl %al,%ecx
  157. leal (%edx,%edx,1),%edi
  158. movzbl %ah,%edx
  159. pxor (%ebp,%esi,8),%mm3
  160. pxor 7(%ebp,%edi,8),%mm4
  161. movl 32(%esp),%eax
  162. leal (%ecx,%ecx,1),%esi
  163. movzbl %bl,%ecx
  164. leal (%edx,%edx,1),%edi
  165. movzbl %bh,%edx
  166. pxor 6(%ebp,%esi,8),%mm5
  167. pxor 5(%ebp,%edi,8),%mm6
  168. shrl $16,%ebx
  169. leal (%ecx,%ecx,1),%esi
  170. movzbl %bl,%ecx
  171. leal (%edx,%edx,1),%edi
  172. movzbl %bh,%edx
  173. pxor 4(%ebp,%esi,8),%mm7
  174. pxor 3(%ebp,%edi,8),%mm0
  175. movl 36(%esp),%ebx
  176. leal (%ecx,%ecx,1),%esi
  177. movzbl %al,%ecx
  178. leal (%edx,%edx,1),%edi
  179. movzbl %ah,%edx
  180. pxor 2(%ebp,%esi,8),%mm1
  181. pxor 1(%ebp,%edi,8),%mm2
  182. shrl $16,%eax
  183. leal (%ecx,%ecx,1),%esi
  184. movzbl %al,%ecx
  185. leal (%edx,%edx,1),%edi
  186. movzbl %ah,%edx
  187. pxor (%ebp,%esi,8),%mm4
  188. pxor 7(%ebp,%edi,8),%mm5
  189. movl 40(%esp),%eax
  190. leal (%ecx,%ecx,1),%esi
  191. movzbl %bl,%ecx
  192. leal (%edx,%edx,1),%edi
  193. movzbl %bh,%edx
  194. pxor 6(%ebp,%esi,8),%mm6
  195. pxor 5(%ebp,%edi,8),%mm7
  196. shrl $16,%ebx
  197. leal (%ecx,%ecx,1),%esi
  198. movzbl %bl,%ecx
  199. leal (%edx,%edx,1),%edi
  200. movzbl %bh,%edx
  201. pxor 4(%ebp,%esi,8),%mm0
  202. pxor 3(%ebp,%edi,8),%mm1
  203. movl 44(%esp),%ebx
  204. leal (%ecx,%ecx,1),%esi
  205. movzbl %al,%ecx
  206. leal (%edx,%edx,1),%edi
  207. movzbl %ah,%edx
  208. pxor 2(%ebp,%esi,8),%mm2
  209. pxor 1(%ebp,%edi,8),%mm3
  210. shrl $16,%eax
  211. leal (%ecx,%ecx,1),%esi
  212. movzbl %al,%ecx
  213. leal (%edx,%edx,1),%edi
  214. movzbl %ah,%edx
  215. pxor (%ebp,%esi,8),%mm5
  216. pxor 7(%ebp,%edi,8),%mm6
  217. movl 48(%esp),%eax
  218. leal (%ecx,%ecx,1),%esi
  219. movzbl %bl,%ecx
  220. leal (%edx,%edx,1),%edi
  221. movzbl %bh,%edx
  222. pxor 6(%ebp,%esi,8),%mm7
  223. pxor 5(%ebp,%edi,8),%mm0
  224. shrl $16,%ebx
  225. leal (%ecx,%ecx,1),%esi
  226. movzbl %bl,%ecx
  227. leal (%edx,%edx,1),%edi
  228. movzbl %bh,%edx
  229. pxor 4(%ebp,%esi,8),%mm1
  230. pxor 3(%ebp,%edi,8),%mm2
  231. movl 52(%esp),%ebx
  232. leal (%ecx,%ecx,1),%esi
  233. movzbl %al,%ecx
  234. leal (%edx,%edx,1),%edi
  235. movzbl %ah,%edx
  236. pxor 2(%ebp,%esi,8),%mm3
  237. pxor 1(%ebp,%edi,8),%mm4
  238. shrl $16,%eax
  239. leal (%ecx,%ecx,1),%esi
  240. movzbl %al,%ecx
  241. leal (%edx,%edx,1),%edi
  242. movzbl %ah,%edx
  243. pxor (%ebp,%esi,8),%mm6
  244. pxor 7(%ebp,%edi,8),%mm7
  245. movl 56(%esp),%eax
  246. leal (%ecx,%ecx,1),%esi
  247. movzbl %bl,%ecx
  248. leal (%edx,%edx,1),%edi
  249. movzbl %bh,%edx
  250. pxor 6(%ebp,%esi,8),%mm0
  251. pxor 5(%ebp,%edi,8),%mm1
  252. shrl $16,%ebx
  253. leal (%ecx,%ecx,1),%esi
  254. movzbl %bl,%ecx
  255. leal (%edx,%edx,1),%edi
  256. movzbl %bh,%edx
  257. pxor 4(%ebp,%esi,8),%mm2
  258. pxor 3(%ebp,%edi,8),%mm3
  259. movl 60(%esp),%ebx
  260. leal (%ecx,%ecx,1),%esi
  261. movzbl %al,%ecx
  262. leal (%edx,%edx,1),%edi
  263. movzbl %ah,%edx
  264. pxor 2(%ebp,%esi,8),%mm4
  265. pxor 1(%ebp,%edi,8),%mm5
  266. shrl $16,%eax
  267. leal (%ecx,%ecx,1),%esi
  268. movzbl %al,%ecx
  269. leal (%edx,%edx,1),%edi
  270. movzbl %ah,%edx
  271. pxor (%ebp,%esi,8),%mm7
  272. pxor 7(%ebp,%edi,8),%mm0
  273. movl 64(%esp),%eax
  274. leal (%ecx,%ecx,1),%esi
  275. movzbl %bl,%ecx
  276. leal (%edx,%edx,1),%edi
  277. movzbl %bh,%edx
  278. pxor 6(%ebp,%esi,8),%mm1
  279. pxor 5(%ebp,%edi,8),%mm2
  280. shrl $16,%ebx
  281. leal (%ecx,%ecx,1),%esi
  282. movzbl %bl,%ecx
  283. leal (%edx,%edx,1),%edi
  284. movzbl %bh,%edx
  285. pxor 4(%ebp,%esi,8),%mm3
  286. pxor 3(%ebp,%edi,8),%mm4
  287. movl 68(%esp),%ebx
  288. leal (%ecx,%ecx,1),%esi
  289. movzbl %al,%ecx
  290. leal (%edx,%edx,1),%edi
  291. movzbl %ah,%edx
  292. pxor 2(%ebp,%esi,8),%mm5
  293. pxor 1(%ebp,%edi,8),%mm6
  294. movq %mm0,(%esp)
  295. movq %mm1,8(%esp)
  296. movq %mm2,16(%esp)
  297. movq %mm3,24(%esp)
  298. movq %mm4,32(%esp)
  299. movq %mm5,40(%esp)
  300. movq %mm6,48(%esp)
  301. movq %mm7,56(%esp)
  302. shrl $16,%eax
  303. leal (%ecx,%ecx,1),%esi
  304. movzbl %al,%ecx
  305. leal (%edx,%edx,1),%edi
  306. movzbl %ah,%edx
  307. pxor (%ebp,%esi,8),%mm0
  308. pxor 7(%ebp,%edi,8),%mm1
  309. movl 72(%esp),%eax
  310. leal (%ecx,%ecx,1),%esi
  311. movzbl %bl,%ecx
  312. leal (%edx,%edx,1),%edi
  313. movzbl %bh,%edx
  314. pxor 6(%ebp,%esi,8),%mm2
  315. pxor 5(%ebp,%edi,8),%mm3
  316. shrl $16,%ebx
  317. leal (%ecx,%ecx,1),%esi
  318. movzbl %bl,%ecx
  319. leal (%edx,%edx,1),%edi
  320. movzbl %bh,%edx
  321. pxor 4(%ebp,%esi,8),%mm4
  322. pxor 3(%ebp,%edi,8),%mm5
  323. movl 76(%esp),%ebx
  324. leal (%ecx,%ecx,1),%esi
  325. movzbl %al,%ecx
  326. leal (%edx,%edx,1),%edi
  327. movzbl %ah,%edx
  328. pxor 2(%ebp,%esi,8),%mm6
  329. pxor 1(%ebp,%edi,8),%mm7
  330. shrl $16,%eax
  331. leal (%ecx,%ecx,1),%esi
  332. movzbl %al,%ecx
  333. leal (%edx,%edx,1),%edi
  334. movzbl %ah,%edx
  335. pxor (%ebp,%esi,8),%mm1
  336. pxor 7(%ebp,%edi,8),%mm2
  337. movl 80(%esp),%eax
  338. leal (%ecx,%ecx,1),%esi
  339. movzbl %bl,%ecx
  340. leal (%edx,%edx,1),%edi
  341. movzbl %bh,%edx
  342. pxor 6(%ebp,%esi,8),%mm3
  343. pxor 5(%ebp,%edi,8),%mm4
  344. shrl $16,%ebx
  345. leal (%ecx,%ecx,1),%esi
  346. movzbl %bl,%ecx
  347. leal (%edx,%edx,1),%edi
  348. movzbl %bh,%edx
  349. pxor 4(%ebp,%esi,8),%mm5
  350. pxor 3(%ebp,%edi,8),%mm6
  351. movl 84(%esp),%ebx
  352. leal (%ecx,%ecx,1),%esi
  353. movzbl %al,%ecx
  354. leal (%edx,%edx,1),%edi
  355. movzbl %ah,%edx
  356. pxor 2(%ebp,%esi,8),%mm7
  357. pxor 1(%ebp,%edi,8),%mm0
  358. shrl $16,%eax
  359. leal (%ecx,%ecx,1),%esi
  360. movzbl %al,%ecx
  361. leal (%edx,%edx,1),%edi
  362. movzbl %ah,%edx
  363. pxor (%ebp,%esi,8),%mm2
  364. pxor 7(%ebp,%edi,8),%mm3
  365. movl 88(%esp),%eax
  366. leal (%ecx,%ecx,1),%esi
  367. movzbl %bl,%ecx
  368. leal (%edx,%edx,1),%edi
  369. movzbl %bh,%edx
  370. pxor 6(%ebp,%esi,8),%mm4
  371. pxor 5(%ebp,%edi,8),%mm5
  372. shrl $16,%ebx
  373. leal (%ecx,%ecx,1),%esi
  374. movzbl %bl,%ecx
  375. leal (%edx,%edx,1),%edi
  376. movzbl %bh,%edx
  377. pxor 4(%ebp,%esi,8),%mm6
  378. pxor 3(%ebp,%edi,8),%mm7
  379. movl 92(%esp),%ebx
  380. leal (%ecx,%ecx,1),%esi
  381. movzbl %al,%ecx
  382. leal (%edx,%edx,1),%edi
  383. movzbl %ah,%edx
  384. pxor 2(%ebp,%esi,8),%mm0
  385. pxor 1(%ebp,%edi,8),%mm1
  386. shrl $16,%eax
  387. leal (%ecx,%ecx,1),%esi
  388. movzbl %al,%ecx
  389. leal (%edx,%edx,1),%edi
  390. movzbl %ah,%edx
  391. pxor (%ebp,%esi,8),%mm3
  392. pxor 7(%ebp,%edi,8),%mm4
  393. movl 96(%esp),%eax
  394. leal (%ecx,%ecx,1),%esi
  395. movzbl %bl,%ecx
  396. leal (%edx,%edx,1),%edi
  397. movzbl %bh,%edx
  398. pxor 6(%ebp,%esi,8),%mm5
  399. pxor 5(%ebp,%edi,8),%mm6
  400. shrl $16,%ebx
  401. leal (%ecx,%ecx,1),%esi
  402. movzbl %bl,%ecx
  403. leal (%edx,%edx,1),%edi
  404. movzbl %bh,%edx
  405. pxor 4(%ebp,%esi,8),%mm7
  406. pxor 3(%ebp,%edi,8),%mm0
  407. movl 100(%esp),%ebx
  408. leal (%ecx,%ecx,1),%esi
  409. movzbl %al,%ecx
  410. leal (%edx,%edx,1),%edi
  411. movzbl %ah,%edx
  412. pxor 2(%ebp,%esi,8),%mm1
  413. pxor 1(%ebp,%edi,8),%mm2
  414. shrl $16,%eax
  415. leal (%ecx,%ecx,1),%esi
  416. movzbl %al,%ecx
  417. leal (%edx,%edx,1),%edi
  418. movzbl %ah,%edx
  419. pxor (%ebp,%esi,8),%mm4
  420. pxor 7(%ebp,%edi,8),%mm5
  421. movl 104(%esp),%eax
  422. leal (%ecx,%ecx,1),%esi
  423. movzbl %bl,%ecx
  424. leal (%edx,%edx,1),%edi
  425. movzbl %bh,%edx
  426. pxor 6(%ebp,%esi,8),%mm6
  427. pxor 5(%ebp,%edi,8),%mm7
  428. shrl $16,%ebx
  429. leal (%ecx,%ecx,1),%esi
  430. movzbl %bl,%ecx
  431. leal (%edx,%edx,1),%edi
  432. movzbl %bh,%edx
  433. pxor 4(%ebp,%esi,8),%mm0
  434. pxor 3(%ebp,%edi,8),%mm1
  435. movl 108(%esp),%ebx
  436. leal (%ecx,%ecx,1),%esi
  437. movzbl %al,%ecx
  438. leal (%edx,%edx,1),%edi
  439. movzbl %ah,%edx
  440. pxor 2(%ebp,%esi,8),%mm2
  441. pxor 1(%ebp,%edi,8),%mm3
  442. shrl $16,%eax
  443. leal (%ecx,%ecx,1),%esi
  444. movzbl %al,%ecx
  445. leal (%edx,%edx,1),%edi
  446. movzbl %ah,%edx
  447. pxor (%ebp,%esi,8),%mm5
  448. pxor 7(%ebp,%edi,8),%mm6
  449. movl 112(%esp),%eax
  450. leal (%ecx,%ecx,1),%esi
  451. movzbl %bl,%ecx
  452. leal (%edx,%edx,1),%edi
  453. movzbl %bh,%edx
  454. pxor 6(%ebp,%esi,8),%mm7
  455. pxor 5(%ebp,%edi,8),%mm0
  456. shrl $16,%ebx
  457. leal (%ecx,%ecx,1),%esi
  458. movzbl %bl,%ecx
  459. leal (%edx,%edx,1),%edi
  460. movzbl %bh,%edx
  461. pxor 4(%ebp,%esi,8),%mm1
  462. pxor 3(%ebp,%edi,8),%mm2
  463. movl 116(%esp),%ebx
  464. leal (%ecx,%ecx,1),%esi
  465. movzbl %al,%ecx
  466. leal (%edx,%edx,1),%edi
  467. movzbl %ah,%edx
  468. pxor 2(%ebp,%esi,8),%mm3
  469. pxor 1(%ebp,%edi,8),%mm4
  470. shrl $16,%eax
  471. leal (%ecx,%ecx,1),%esi
  472. movzbl %al,%ecx
  473. leal (%edx,%edx,1),%edi
  474. movzbl %ah,%edx
  475. pxor (%ebp,%esi,8),%mm6
  476. pxor 7(%ebp,%edi,8),%mm7
  477. movl 120(%esp),%eax
  478. leal (%ecx,%ecx,1),%esi
  479. movzbl %bl,%ecx
  480. leal (%edx,%edx,1),%edi
  481. movzbl %bh,%edx
  482. pxor 6(%ebp,%esi,8),%mm0
  483. pxor 5(%ebp,%edi,8),%mm1
  484. shrl $16,%ebx
  485. leal (%ecx,%ecx,1),%esi
  486. movzbl %bl,%ecx
  487. leal (%edx,%edx,1),%edi
  488. movzbl %bh,%edx
  489. pxor 4(%ebp,%esi,8),%mm2
  490. pxor 3(%ebp,%edi,8),%mm3
  491. movl 124(%esp),%ebx
  492. leal (%ecx,%ecx,1),%esi
  493. movzbl %al,%ecx
  494. leal (%edx,%edx,1),%edi
  495. movzbl %ah,%edx
  496. pxor 2(%ebp,%esi,8),%mm4
  497. pxor 1(%ebp,%edi,8),%mm5
  498. shrl $16,%eax
  499. leal (%ecx,%ecx,1),%esi
  500. movzbl %al,%ecx
  501. leal (%edx,%edx,1),%edi
  502. movzbl %ah,%edx
  503. pxor (%ebp,%esi,8),%mm7
  504. pxor 7(%ebp,%edi,8),%mm0
  505. leal (%ecx,%ecx,1),%esi
  506. movzbl %bl,%ecx
  507. leal (%edx,%edx,1),%edi
  508. movzbl %bh,%edx
  509. pxor 6(%ebp,%esi,8),%mm1
  510. pxor 5(%ebp,%edi,8),%mm2
  511. shrl $16,%ebx
  512. leal (%ecx,%ecx,1),%esi
  513. movzbl %bl,%ecx
  514. leal (%edx,%edx,1),%edi
  515. movzbl %bh,%edx
  516. pxor 4(%ebp,%esi,8),%mm3
  517. pxor 3(%ebp,%edi,8),%mm4
  518. leal (%ecx,%ecx,1),%esi
  519. movzbl %al,%ecx
  520. leal (%edx,%edx,1),%edi
  521. movzbl %ah,%edx
  522. pxor 2(%ebp,%esi,8),%mm5
  523. pxor 1(%ebp,%edi,8),%mm6
  524. leal 128(%esp),%ebx
  525. movl 12(%ebx),%esi
  526. addl $1,%esi
  527. cmpl $10,%esi
  528. je .L004roundsdone
  529. movl %esi,12(%ebx)
  530. movq %mm0,64(%esp)
  531. movq %mm1,72(%esp)
  532. movq %mm2,80(%esp)
  533. movq %mm3,88(%esp)
  534. movq %mm4,96(%esp)
  535. movq %mm5,104(%esp)
  536. movq %mm6,112(%esp)
  537. movq %mm7,120(%esp)
  538. jmp .L003round
  539. .align 16
  540. .L004roundsdone:
  541. movl (%ebx),%esi
  542. movl 4(%ebx),%edi
  543. movl 8(%ebx),%eax
  544. pxor (%edi),%mm0
  545. pxor 8(%edi),%mm1
  546. pxor 16(%edi),%mm2
  547. pxor 24(%edi),%mm3
  548. pxor 32(%edi),%mm4
  549. pxor 40(%edi),%mm5
  550. pxor 48(%edi),%mm6
  551. pxor 56(%edi),%mm7
  552. pxor (%esi),%mm0
  553. pxor 8(%esi),%mm1
  554. pxor 16(%esi),%mm2
  555. pxor 24(%esi),%mm3
  556. pxor 32(%esi),%mm4
  557. pxor 40(%esi),%mm5
  558. pxor 48(%esi),%mm6
  559. pxor 56(%esi),%mm7
  560. movq %mm0,(%esi)
  561. movq %mm1,8(%esi)
  562. movq %mm2,16(%esi)
  563. movq %mm3,24(%esi)
  564. movq %mm4,32(%esi)
  565. movq %mm5,40(%esi)
  566. movq %mm6,48(%esi)
  567. movq %mm7,56(%esi)
  568. leal 64(%edi),%edi
  569. subl $1,%eax
  570. jz .L005alldone
  571. movl %edi,4(%ebx)
  572. movl %eax,8(%ebx)
  573. jmp .L002outerloop
  574. .L005alldone:
  575. emms
  576. movl 16(%ebx),%esp
  577. popl %edi
  578. popl %esi
  579. popl %ebx
  580. popl %ebp
  581. ret
  582. .align 64
  583. .L001table:
  584. .byte 24,24,96,24,192,120,48,216
  585. .byte 24,24,96,24,192,120,48,216
  586. .byte 35,35,140,35,5,175,70,38
  587. .byte 35,35,140,35,5,175,70,38
  588. .byte 198,198,63,198,126,249,145,184
  589. .byte 198,198,63,198,126,249,145,184
  590. .byte 232,232,135,232,19,111,205,251
  591. .byte 232,232,135,232,19,111,205,251
  592. .byte 135,135,38,135,76,161,19,203
  593. .byte 135,135,38,135,76,161,19,203
  594. .byte 184,184,218,184,169,98,109,17
  595. .byte 184,184,218,184,169,98,109,17
  596. .byte 1,1,4,1,8,5,2,9
  597. .byte 1,1,4,1,8,5,2,9
  598. .byte 79,79,33,79,66,110,158,13
  599. .byte 79,79,33,79,66,110,158,13
  600. .byte 54,54,216,54,173,238,108,155
  601. .byte 54,54,216,54,173,238,108,155
  602. .byte 166,166,162,166,89,4,81,255
  603. .byte 166,166,162,166,89,4,81,255
  604. .byte 210,210,111,210,222,189,185,12
  605. .byte 210,210,111,210,222,189,185,12
  606. .byte 245,245,243,245,251,6,247,14
  607. .byte 245,245,243,245,251,6,247,14
  608. .byte 121,121,249,121,239,128,242,150
  609. .byte 121,121,249,121,239,128,242,150
  610. .byte 111,111,161,111,95,206,222,48
  611. .byte 111,111,161,111,95,206,222,48
  612. .byte 145,145,126,145,252,239,63,109
  613. .byte 145,145,126,145,252,239,63,109
  614. .byte 82,82,85,82,170,7,164,248
  615. .byte 82,82,85,82,170,7,164,248
  616. .byte 96,96,157,96,39,253,192,71
  617. .byte 96,96,157,96,39,253,192,71
  618. .byte 188,188,202,188,137,118,101,53
  619. .byte 188,188,202,188,137,118,101,53
  620. .byte 155,155,86,155,172,205,43,55
  621. .byte 155,155,86,155,172,205,43,55
  622. .byte 142,142,2,142,4,140,1,138
  623. .byte 142,142,2,142,4,140,1,138
  624. .byte 163,163,182,163,113,21,91,210
  625. .byte 163,163,182,163,113,21,91,210
  626. .byte 12,12,48,12,96,60,24,108
  627. .byte 12,12,48,12,96,60,24,108
  628. .byte 123,123,241,123,255,138,246,132
  629. .byte 123,123,241,123,255,138,246,132
  630. .byte 53,53,212,53,181,225,106,128
  631. .byte 53,53,212,53,181,225,106,128
  632. .byte 29,29,116,29,232,105,58,245
  633. .byte 29,29,116,29,232,105,58,245
  634. .byte 224,224,167,224,83,71,221,179
  635. .byte 224,224,167,224,83,71,221,179
  636. .byte 215,215,123,215,246,172,179,33
  637. .byte 215,215,123,215,246,172,179,33
  638. .byte 194,194,47,194,94,237,153,156
  639. .byte 194,194,47,194,94,237,153,156
  640. .byte 46,46,184,46,109,150,92,67
  641. .byte 46,46,184,46,109,150,92,67
  642. .byte 75,75,49,75,98,122,150,41
  643. .byte 75,75,49,75,98,122,150,41
  644. .byte 254,254,223,254,163,33,225,93
  645. .byte 254,254,223,254,163,33,225,93
  646. .byte 87,87,65,87,130,22,174,213
  647. .byte 87,87,65,87,130,22,174,213
  648. .byte 21,21,84,21,168,65,42,189
  649. .byte 21,21,84,21,168,65,42,189
  650. .byte 119,119,193,119,159,182,238,232
  651. .byte 119,119,193,119,159,182,238,232
  652. .byte 55,55,220,55,165,235,110,146
  653. .byte 55,55,220,55,165,235,110,146
  654. .byte 229,229,179,229,123,86,215,158
  655. .byte 229,229,179,229,123,86,215,158
  656. .byte 159,159,70,159,140,217,35,19
  657. .byte 159,159,70,159,140,217,35,19
  658. .byte 240,240,231,240,211,23,253,35
  659. .byte 240,240,231,240,211,23,253,35
  660. .byte 74,74,53,74,106,127,148,32
  661. .byte 74,74,53,74,106,127,148,32
  662. .byte 218,218,79,218,158,149,169,68
  663. .byte 218,218,79,218,158,149,169,68
  664. .byte 88,88,125,88,250,37,176,162
  665. .byte 88,88,125,88,250,37,176,162
  666. .byte 201,201,3,201,6,202,143,207
  667. .byte 201,201,3,201,6,202,143,207
  668. .byte 41,41,164,41,85,141,82,124
  669. .byte 41,41,164,41,85,141,82,124
  670. .byte 10,10,40,10,80,34,20,90
  671. .byte 10,10,40,10,80,34,20,90
  672. .byte 177,177,254,177,225,79,127,80
  673. .byte 177,177,254,177,225,79,127,80
  674. .byte 160,160,186,160,105,26,93,201
  675. .byte 160,160,186,160,105,26,93,201
  676. .byte 107,107,177,107,127,218,214,20
  677. .byte 107,107,177,107,127,218,214,20
  678. .byte 133,133,46,133,92,171,23,217
  679. .byte 133,133,46,133,92,171,23,217
  680. .byte 189,189,206,189,129,115,103,60
  681. .byte 189,189,206,189,129,115,103,60
  682. .byte 93,93,105,93,210,52,186,143
  683. .byte 93,93,105,93,210,52,186,143
  684. .byte 16,16,64,16,128,80,32,144
  685. .byte 16,16,64,16,128,80,32,144
  686. .byte 244,244,247,244,243,3,245,7
  687. .byte 244,244,247,244,243,3,245,7
  688. .byte 203,203,11,203,22,192,139,221
  689. .byte 203,203,11,203,22,192,139,221
  690. .byte 62,62,248,62,237,198,124,211
  691. .byte 62,62,248,62,237,198,124,211
  692. .byte 5,5,20,5,40,17,10,45
  693. .byte 5,5,20,5,40,17,10,45
  694. .byte 103,103,129,103,31,230,206,120
  695. .byte 103,103,129,103,31,230,206,120
  696. .byte 228,228,183,228,115,83,213,151
  697. .byte 228,228,183,228,115,83,213,151
  698. .byte 39,39,156,39,37,187,78,2
  699. .byte 39,39,156,39,37,187,78,2
  700. .byte 65,65,25,65,50,88,130,115
  701. .byte 65,65,25,65,50,88,130,115
  702. .byte 139,139,22,139,44,157,11,167
  703. .byte 139,139,22,139,44,157,11,167
  704. .byte 167,167,166,167,81,1,83,246
  705. .byte 167,167,166,167,81,1,83,246
  706. .byte 125,125,233,125,207,148,250,178
  707. .byte 125,125,233,125,207,148,250,178
  708. .byte 149,149,110,149,220,251,55,73
  709. .byte 149,149,110,149,220,251,55,73
  710. .byte 216,216,71,216,142,159,173,86
  711. .byte 216,216,71,216,142,159,173,86
  712. .byte 251,251,203,251,139,48,235,112
  713. .byte 251,251,203,251,139,48,235,112
  714. .byte 238,238,159,238,35,113,193,205
  715. .byte 238,238,159,238,35,113,193,205
  716. .byte 124,124,237,124,199,145,248,187
  717. .byte 124,124,237,124,199,145,248,187
  718. .byte 102,102,133,102,23,227,204,113
  719. .byte 102,102,133,102,23,227,204,113
  720. .byte 221,221,83,221,166,142,167,123
  721. .byte 221,221,83,221,166,142,167,123
  722. .byte 23,23,92,23,184,75,46,175
  723. .byte 23,23,92,23,184,75,46,175
  724. .byte 71,71,1,71,2,70,142,69
  725. .byte 71,71,1,71,2,70,142,69
  726. .byte 158,158,66,158,132,220,33,26
  727. .byte 158,158,66,158,132,220,33,26
  728. .byte 202,202,15,202,30,197,137,212
  729. .byte 202,202,15,202,30,197,137,212
  730. .byte 45,45,180,45,117,153,90,88
  731. .byte 45,45,180,45,117,153,90,88
  732. .byte 191,191,198,191,145,121,99,46
  733. .byte 191,191,198,191,145,121,99,46
  734. .byte 7,7,28,7,56,27,14,63
  735. .byte 7,7,28,7,56,27,14,63
  736. .byte 173,173,142,173,1,35,71,172
  737. .byte 173,173,142,173,1,35,71,172
  738. .byte 90,90,117,90,234,47,180,176
  739. .byte 90,90,117,90,234,47,180,176
  740. .byte 131,131,54,131,108,181,27,239
  741. .byte 131,131,54,131,108,181,27,239
  742. .byte 51,51,204,51,133,255,102,182
  743. .byte 51,51,204,51,133,255,102,182
  744. .byte 99,99,145,99,63,242,198,92
  745. .byte 99,99,145,99,63,242,198,92
  746. .byte 2,2,8,2,16,10,4,18
  747. .byte 2,2,8,2,16,10,4,18
  748. .byte 170,170,146,170,57,56,73,147
  749. .byte 170,170,146,170,57,56,73,147
  750. .byte 113,113,217,113,175,168,226,222
  751. .byte 113,113,217,113,175,168,226,222
  752. .byte 200,200,7,200,14,207,141,198
  753. .byte 200,200,7,200,14,207,141,198
  754. .byte 25,25,100,25,200,125,50,209
  755. .byte 25,25,100,25,200,125,50,209
  756. .byte 73,73,57,73,114,112,146,59
  757. .byte 73,73,57,73,114,112,146,59
  758. .byte 217,217,67,217,134,154,175,95
  759. .byte 217,217,67,217,134,154,175,95
  760. .byte 242,242,239,242,195,29,249,49
  761. .byte 242,242,239,242,195,29,249,49
  762. .byte 227,227,171,227,75,72,219,168
  763. .byte 227,227,171,227,75,72,219,168
  764. .byte 91,91,113,91,226,42,182,185
  765. .byte 91,91,113,91,226,42,182,185
  766. .byte 136,136,26,136,52,146,13,188
  767. .byte 136,136,26,136,52,146,13,188
  768. .byte 154,154,82,154,164,200,41,62
  769. .byte 154,154,82,154,164,200,41,62
  770. .byte 38,38,152,38,45,190,76,11
  771. .byte 38,38,152,38,45,190,76,11
  772. .byte 50,50,200,50,141,250,100,191
  773. .byte 50,50,200,50,141,250,100,191
  774. .byte 176,176,250,176,233,74,125,89
  775. .byte 176,176,250,176,233,74,125,89
  776. .byte 233,233,131,233,27,106,207,242
  777. .byte 233,233,131,233,27,106,207,242
  778. .byte 15,15,60,15,120,51,30,119
  779. .byte 15,15,60,15,120,51,30,119
  780. .byte 213,213,115,213,230,166,183,51
  781. .byte 213,213,115,213,230,166,183,51
  782. .byte 128,128,58,128,116,186,29,244
  783. .byte 128,128,58,128,116,186,29,244
  784. .byte 190,190,194,190,153,124,97,39
  785. .byte 190,190,194,190,153,124,97,39
  786. .byte 205,205,19,205,38,222,135,235
  787. .byte 205,205,19,205,38,222,135,235
  788. .byte 52,52,208,52,189,228,104,137
  789. .byte 52,52,208,52,189,228,104,137
  790. .byte 72,72,61,72,122,117,144,50
  791. .byte 72,72,61,72,122,117,144,50
  792. .byte 255,255,219,255,171,36,227,84
  793. .byte 255,255,219,255,171,36,227,84
  794. .byte 122,122,245,122,247,143,244,141
  795. .byte 122,122,245,122,247,143,244,141
  796. .byte 144,144,122,144,244,234,61,100
  797. .byte 144,144,122,144,244,234,61,100
  798. .byte 95,95,97,95,194,62,190,157
  799. .byte 95,95,97,95,194,62,190,157
  800. .byte 32,32,128,32,29,160,64,61
  801. .byte 32,32,128,32,29,160,64,61
  802. .byte 104,104,189,104,103,213,208,15
  803. .byte 104,104,189,104,103,213,208,15
  804. .byte 26,26,104,26,208,114,52,202
  805. .byte 26,26,104,26,208,114,52,202
  806. .byte 174,174,130,174,25,44,65,183
  807. .byte 174,174,130,174,25,44,65,183
  808. .byte 180,180,234,180,201,94,117,125
  809. .byte 180,180,234,180,201,94,117,125
  810. .byte 84,84,77,84,154,25,168,206
  811. .byte 84,84,77,84,154,25,168,206
  812. .byte 147,147,118,147,236,229,59,127
  813. .byte 147,147,118,147,236,229,59,127
  814. .byte 34,34,136,34,13,170,68,47
  815. .byte 34,34,136,34,13,170,68,47
  816. .byte 100,100,141,100,7,233,200,99
  817. .byte 100,100,141,100,7,233,200,99
  818. .byte 241,241,227,241,219,18,255,42
  819. .byte 241,241,227,241,219,18,255,42
  820. .byte 115,115,209,115,191,162,230,204
  821. .byte 115,115,209,115,191,162,230,204
  822. .byte 18,18,72,18,144,90,36,130
  823. .byte 18,18,72,18,144,90,36,130
  824. .byte 64,64,29,64,58,93,128,122
  825. .byte 64,64,29,64,58,93,128,122
  826. .byte 8,8,32,8,64,40,16,72
  827. .byte 8,8,32,8,64,40,16,72
  828. .byte 195,195,43,195,86,232,155,149
  829. .byte 195,195,43,195,86,232,155,149
  830. .byte 236,236,151,236,51,123,197,223
  831. .byte 236,236,151,236,51,123,197,223
  832. .byte 219,219,75,219,150,144,171,77
  833. .byte 219,219,75,219,150,144,171,77
  834. .byte 161,161,190,161,97,31,95,192
  835. .byte 161,161,190,161,97,31,95,192
  836. .byte 141,141,14,141,28,131,7,145
  837. .byte 141,141,14,141,28,131,7,145
  838. .byte 61,61,244,61,245,201,122,200
  839. .byte 61,61,244,61,245,201,122,200
  840. .byte 151,151,102,151,204,241,51,91
  841. .byte 151,151,102,151,204,241,51,91
  842. .byte 0,0,0,0,0,0,0,0
  843. .byte 0,0,0,0,0,0,0,0
  844. .byte 207,207,27,207,54,212,131,249
  845. .byte 207,207,27,207,54,212,131,249
  846. .byte 43,43,172,43,69,135,86,110
  847. .byte 43,43,172,43,69,135,86,110
  848. .byte 118,118,197,118,151,179,236,225
  849. .byte 118,118,197,118,151,179,236,225
  850. .byte 130,130,50,130,100,176,25,230
  851. .byte 130,130,50,130,100,176,25,230
  852. .byte 214,214,127,214,254,169,177,40
  853. .byte 214,214,127,214,254,169,177,40
  854. .byte 27,27,108,27,216,119,54,195
  855. .byte 27,27,108,27,216,119,54,195
  856. .byte 181,181,238,181,193,91,119,116
  857. .byte 181,181,238,181,193,91,119,116
  858. .byte 175,175,134,175,17,41,67,190
  859. .byte 175,175,134,175,17,41,67,190
  860. .byte 106,106,181,106,119,223,212,29
  861. .byte 106,106,181,106,119,223,212,29
  862. .byte 80,80,93,80,186,13,160,234
  863. .byte 80,80,93,80,186,13,160,234
  864. .byte 69,69,9,69,18,76,138,87
  865. .byte 69,69,9,69,18,76,138,87
  866. .byte 243,243,235,243,203,24,251,56
  867. .byte 243,243,235,243,203,24,251,56
  868. .byte 48,48,192,48,157,240,96,173
  869. .byte 48,48,192,48,157,240,96,173
  870. .byte 239,239,155,239,43,116,195,196
  871. .byte 239,239,155,239,43,116,195,196
  872. .byte 63,63,252,63,229,195,126,218
  873. .byte 63,63,252,63,229,195,126,218
  874. .byte 85,85,73,85,146,28,170,199
  875. .byte 85,85,73,85,146,28,170,199
  876. .byte 162,162,178,162,121,16,89,219
  877. .byte 162,162,178,162,121,16,89,219
  878. .byte 234,234,143,234,3,101,201,233
  879. .byte 234,234,143,234,3,101,201,233
  880. .byte 101,101,137,101,15,236,202,106
  881. .byte 101,101,137,101,15,236,202,106
  882. .byte 186,186,210,186,185,104,105,3
  883. .byte 186,186,210,186,185,104,105,3
  884. .byte 47,47,188,47,101,147,94,74
  885. .byte 47,47,188,47,101,147,94,74
  886. .byte 192,192,39,192,78,231,157,142
  887. .byte 192,192,39,192,78,231,157,142
  888. .byte 222,222,95,222,190,129,161,96
  889. .byte 222,222,95,222,190,129,161,96
  890. .byte 28,28,112,28,224,108,56,252
  891. .byte 28,28,112,28,224,108,56,252
  892. .byte 253,253,211,253,187,46,231,70
  893. .byte 253,253,211,253,187,46,231,70
  894. .byte 77,77,41,77,82,100,154,31
  895. .byte 77,77,41,77,82,100,154,31
  896. .byte 146,146,114,146,228,224,57,118
  897. .byte 146,146,114,146,228,224,57,118
  898. .byte 117,117,201,117,143,188,234,250
  899. .byte 117,117,201,117,143,188,234,250
  900. .byte 6,6,24,6,48,30,12,54
  901. .byte 6,6,24,6,48,30,12,54
  902. .byte 138,138,18,138,36,152,9,174
  903. .byte 138,138,18,138,36,152,9,174
  904. .byte 178,178,242,178,249,64,121,75
  905. .byte 178,178,242,178,249,64,121,75
  906. .byte 230,230,191,230,99,89,209,133
  907. .byte 230,230,191,230,99,89,209,133
  908. .byte 14,14,56,14,112,54,28,126
  909. .byte 14,14,56,14,112,54,28,126
  910. .byte 31,31,124,31,248,99,62,231
  911. .byte 31,31,124,31,248,99,62,231
  912. .byte 98,98,149,98,55,247,196,85
  913. .byte 98,98,149,98,55,247,196,85
  914. .byte 212,212,119,212,238,163,181,58
  915. .byte 212,212,119,212,238,163,181,58
  916. .byte 168,168,154,168,41,50,77,129
  917. .byte 168,168,154,168,41,50,77,129
  918. .byte 150,150,98,150,196,244,49,82
  919. .byte 150,150,98,150,196,244,49,82
  920. .byte 249,249,195,249,155,58,239,98
  921. .byte 249,249,195,249,155,58,239,98
  922. .byte 197,197,51,197,102,246,151,163
  923. .byte 197,197,51,197,102,246,151,163
  924. .byte 37,37,148,37,53,177,74,16
  925. .byte 37,37,148,37,53,177,74,16
  926. .byte 89,89,121,89,242,32,178,171
  927. .byte 89,89,121,89,242,32,178,171
  928. .byte 132,132,42,132,84,174,21,208
  929. .byte 132,132,42,132,84,174,21,208
  930. .byte 114,114,213,114,183,167,228,197
  931. .byte 114,114,213,114,183,167,228,197
  932. .byte 57,57,228,57,213,221,114,236
  933. .byte 57,57,228,57,213,221,114,236
  934. .byte 76,76,45,76,90,97,152,22
  935. .byte 76,76,45,76,90,97,152,22
  936. .byte 94,94,101,94,202,59,188,148
  937. .byte 94,94,101,94,202,59,188,148
  938. .byte 120,120,253,120,231,133,240,159
  939. .byte 120,120,253,120,231,133,240,159
  940. .byte 56,56,224,56,221,216,112,229
  941. .byte 56,56,224,56,221,216,112,229
  942. .byte 140,140,10,140,20,134,5,152
  943. .byte 140,140,10,140,20,134,5,152
  944. .byte 209,209,99,209,198,178,191,23
  945. .byte 209,209,99,209,198,178,191,23
  946. .byte 165,165,174,165,65,11,87,228
  947. .byte 165,165,174,165,65,11,87,228
  948. .byte 226,226,175,226,67,77,217,161
  949. .byte 226,226,175,226,67,77,217,161
  950. .byte 97,97,153,97,47,248,194,78
  951. .byte 97,97,153,97,47,248,194,78
  952. .byte 179,179,246,179,241,69,123,66
  953. .byte 179,179,246,179,241,69,123,66
  954. .byte 33,33,132,33,21,165,66,52
  955. .byte 33,33,132,33,21,165,66,52
  956. .byte 156,156,74,156,148,214,37,8
  957. .byte 156,156,74,156,148,214,37,8
  958. .byte 30,30,120,30,240,102,60,238
  959. .byte 30,30,120,30,240,102,60,238
  960. .byte 67,67,17,67,34,82,134,97
  961. .byte 67,67,17,67,34,82,134,97
  962. .byte 199,199,59,199,118,252,147,177
  963. .byte 199,199,59,199,118,252,147,177
  964. .byte 252,252,215,252,179,43,229,79
  965. .byte 252,252,215,252,179,43,229,79
  966. .byte 4,4,16,4,32,20,8,36
  967. .byte 4,4,16,4,32,20,8,36
  968. .byte 81,81,89,81,178,8,162,227
  969. .byte 81,81,89,81,178,8,162,227
  970. .byte 153,153,94,153,188,199,47,37
  971. .byte 153,153,94,153,188,199,47,37
  972. .byte 109,109,169,109,79,196,218,34
  973. .byte 109,109,169,109,79,196,218,34
  974. .byte 13,13,52,13,104,57,26,101
  975. .byte 13,13,52,13,104,57,26,101
  976. .byte 250,250,207,250,131,53,233,121
  977. .byte 250,250,207,250,131,53,233,121
  978. .byte 223,223,91,223,182,132,163,105
  979. .byte 223,223,91,223,182,132,163,105
  980. .byte 126,126,229,126,215,155,252,169
  981. .byte 126,126,229,126,215,155,252,169
  982. .byte 36,36,144,36,61,180,72,25
  983. .byte 36,36,144,36,61,180,72,25
  984. .byte 59,59,236,59,197,215,118,254
  985. .byte 59,59,236,59,197,215,118,254
  986. .byte 171,171,150,171,49,61,75,154
  987. .byte 171,171,150,171,49,61,75,154
  988. .byte 206,206,31,206,62,209,129,240
  989. .byte 206,206,31,206,62,209,129,240
  990. .byte 17,17,68,17,136,85,34,153
  991. .byte 17,17,68,17,136,85,34,153
  992. .byte 143,143,6,143,12,137,3,131
  993. .byte 143,143,6,143,12,137,3,131
  994. .byte 78,78,37,78,74,107,156,4
  995. .byte 78,78,37,78,74,107,156,4
  996. .byte 183,183,230,183,209,81,115,102
  997. .byte 183,183,230,183,209,81,115,102
  998. .byte 235,235,139,235,11,96,203,224
  999. .byte 235,235,139,235,11,96,203,224
  1000. .byte 60,60,240,60,253,204,120,193
  1001. .byte 60,60,240,60,253,204,120,193
  1002. .byte 129,129,62,129,124,191,31,253
  1003. .byte 129,129,62,129,124,191,31,253
  1004. .byte 148,148,106,148,212,254,53,64
  1005. .byte 148,148,106,148,212,254,53,64
  1006. .byte 247,247,251,247,235,12,243,28
  1007. .byte 247,247,251,247,235,12,243,28
  1008. .byte 185,185,222,185,161,103,111,24
  1009. .byte 185,185,222,185,161,103,111,24
  1010. .byte 19,19,76,19,152,95,38,139
  1011. .byte 19,19,76,19,152,95,38,139
  1012. .byte 44,44,176,44,125,156,88,81
  1013. .byte 44,44,176,44,125,156,88,81
  1014. .byte 211,211,107,211,214,184,187,5
  1015. .byte 211,211,107,211,214,184,187,5
  1016. .byte 231,231,187,231,107,92,211,140
  1017. .byte 231,231,187,231,107,92,211,140
  1018. .byte 110,110,165,110,87,203,220,57
  1019. .byte 110,110,165,110,87,203,220,57
  1020. .byte 196,196,55,196,110,243,149,170
  1021. .byte 196,196,55,196,110,243,149,170
  1022. .byte 3,3,12,3,24,15,6,27
  1023. .byte 3,3,12,3,24,15,6,27
  1024. .byte 86,86,69,86,138,19,172,220
  1025. .byte 86,86,69,86,138,19,172,220
  1026. .byte 68,68,13,68,26,73,136,94
  1027. .byte 68,68,13,68,26,73,136,94
  1028. .byte 127,127,225,127,223,158,254,160
  1029. .byte 127,127,225,127,223,158,254,160
  1030. .byte 169,169,158,169,33,55,79,136
  1031. .byte 169,169,158,169,33,55,79,136
  1032. .byte 42,42,168,42,77,130,84,103
  1033. .byte 42,42,168,42,77,130,84,103
  1034. .byte 187,187,214,187,177,109,107,10
  1035. .byte 187,187,214,187,177,109,107,10
  1036. .byte 193,193,35,193,70,226,159,135
  1037. .byte 193,193,35,193,70,226,159,135
  1038. .byte 83,83,81,83,162,2,166,241
  1039. .byte 83,83,81,83,162,2,166,241
  1040. .byte 220,220,87,220,174,139,165,114
  1041. .byte 220,220,87,220,174,139,165,114
  1042. .byte 11,11,44,11,88,39,22,83
  1043. .byte 11,11,44,11,88,39,22,83
  1044. .byte 157,157,78,157,156,211,39,1
  1045. .byte 157,157,78,157,156,211,39,1
  1046. .byte 108,108,173,108,71,193,216,43
  1047. .byte 108,108,173,108,71,193,216,43
  1048. .byte 49,49,196,49,149,245,98,164
  1049. .byte 49,49,196,49,149,245,98,164
  1050. .byte 116,116,205,116,135,185,232,243
  1051. .byte 116,116,205,116,135,185,232,243
  1052. .byte 246,246,255,246,227,9,241,21
  1053. .byte 246,246,255,246,227,9,241,21
  1054. .byte 70,70,5,70,10,67,140,76
  1055. .byte 70,70,5,70,10,67,140,76
  1056. .byte 172,172,138,172,9,38,69,165
  1057. .byte 172,172,138,172,9,38,69,165
  1058. .byte 137,137,30,137,60,151,15,181
  1059. .byte 137,137,30,137,60,151,15,181
  1060. .byte 20,20,80,20,160,68,40,180
  1061. .byte 20,20,80,20,160,68,40,180
  1062. .byte 225,225,163,225,91,66,223,186
  1063. .byte 225,225,163,225,91,66,223,186
  1064. .byte 22,22,88,22,176,78,44,166
  1065. .byte 22,22,88,22,176,78,44,166
  1066. .byte 58,58,232,58,205,210,116,247
  1067. .byte 58,58,232,58,205,210,116,247
  1068. .byte 105,105,185,105,111,208,210,6
  1069. .byte 105,105,185,105,111,208,210,6
  1070. .byte 9,9,36,9,72,45,18,65
  1071. .byte 9,9,36,9,72,45,18,65
  1072. .byte 112,112,221,112,167,173,224,215
  1073. .byte 112,112,221,112,167,173,224,215
  1074. .byte 182,182,226,182,217,84,113,111
  1075. .byte 182,182,226,182,217,84,113,111
  1076. .byte 208,208,103,208,206,183,189,30
  1077. .byte 208,208,103,208,206,183,189,30
  1078. .byte 237,237,147,237,59,126,199,214
  1079. .byte 237,237,147,237,59,126,199,214
  1080. .byte 204,204,23,204,46,219,133,226
  1081. .byte 204,204,23,204,46,219,133,226
  1082. .byte 66,66,21,66,42,87,132,104
  1083. .byte 66,66,21,66,42,87,132,104
  1084. .byte 152,152,90,152,180,194,45,44
  1085. .byte 152,152,90,152,180,194,45,44
  1086. .byte 164,164,170,164,73,14,85,237
  1087. .byte 164,164,170,164,73,14,85,237
  1088. .byte 40,40,160,40,93,136,80,117
  1089. .byte 40,40,160,40,93,136,80,117
  1090. .byte 92,92,109,92,218,49,184,134
  1091. .byte 92,92,109,92,218,49,184,134
  1092. .byte 248,248,199,248,147,63,237,107
  1093. .byte 248,248,199,248,147,63,237,107
  1094. .byte 134,134,34,134,68,164,17,194
  1095. .byte 134,134,34,134,68,164,17,194
  1096. .byte 24,35,198,232,135,184,1,79
  1097. .byte 54,166,210,245,121,111,145,82
  1098. .byte 96,188,155,142,163,12,123,53
  1099. .byte 29,224,215,194,46,75,254,87
  1100. .byte 21,119,55,229,159,240,74,218
  1101. .byte 88,201,41,10,177,160,107,133
  1102. .byte 189,93,16,244,203,62,5,103
  1103. .byte 228,39,65,139,167,125,149,216
  1104. .byte 251,238,124,102,221,23,71,158
  1105. .byte 202,45,191,7,173,90,131,51
  1106. .size whirlpool_block_mmx,.-.L_whirlpool_block_mmx_begin