rc4-md5-x86_64.s 22 KB

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