sha1_586.asm 25 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432
  1. %ifidn __OUTPUT_FORMAT__,obj
  2. section code use32 class=code align=256
  3. %elifidn __OUTPUT_FORMAT__,win32
  4. [email protected] equ 1
  5. section .text code align=256
  6. %else
  7. section .text code
  8. %endif
  9. global _sha1_block_data_order
  10. align 16
  11. _sha1_block_data_order:
  12. L$_sha1_block_data_order_begin:
  13. push ebp
  14. push ebx
  15. push esi
  16. push edi
  17. mov ebp,DWORD [20+esp]
  18. mov esi,DWORD [24+esp]
  19. mov eax,DWORD [28+esp]
  20. sub esp,76
  21. shl eax,6
  22. add eax,esi
  23. mov DWORD [104+esp],eax
  24. mov edi,DWORD [16+ebp]
  25. jmp NEAR L$000loop
  26. align 16
  27. L$000loop:
  28. mov eax,DWORD [esi]
  29. mov ebx,DWORD [4+esi]
  30. mov ecx,DWORD [8+esi]
  31. mov edx,DWORD [12+esi]
  32. ; bswap eax
  33. xchg ah,al
  34. ror eax,16
  35. xchg ah,al
  36. ; bswap ebx
  37. xchg bh,bl
  38. ror ebx,16
  39. xchg bh,bl
  40. ; bswap ecx
  41. xchg ch,cl
  42. ror ecx,16
  43. xchg ch,cl
  44. ; bswap edx
  45. xchg dh,dl
  46. ror edx,16
  47. xchg dh,dl
  48. mov DWORD [esp],eax
  49. mov DWORD [4+esp],ebx
  50. mov DWORD [8+esp],ecx
  51. mov DWORD [12+esp],edx
  52. mov eax,DWORD [16+esi]
  53. mov ebx,DWORD [20+esi]
  54. mov ecx,DWORD [24+esi]
  55. mov edx,DWORD [28+esi]
  56. ; bswap eax
  57. xchg ah,al
  58. ror eax,16
  59. xchg ah,al
  60. ; bswap ebx
  61. xchg bh,bl
  62. ror ebx,16
  63. xchg bh,bl
  64. ; bswap ecx
  65. xchg ch,cl
  66. ror ecx,16
  67. xchg ch,cl
  68. ; bswap edx
  69. xchg dh,dl
  70. ror edx,16
  71. xchg dh,dl
  72. mov DWORD [16+esp],eax
  73. mov DWORD [20+esp],ebx
  74. mov DWORD [24+esp],ecx
  75. mov DWORD [28+esp],edx
  76. mov eax,DWORD [32+esi]
  77. mov ebx,DWORD [36+esi]
  78. mov ecx,DWORD [40+esi]
  79. mov edx,DWORD [44+esi]
  80. ; bswap eax
  81. xchg ah,al
  82. ror eax,16
  83. xchg ah,al
  84. ; bswap ebx
  85. xchg bh,bl
  86. ror ebx,16
  87. xchg bh,bl
  88. ; bswap ecx
  89. xchg ch,cl
  90. ror ecx,16
  91. xchg ch,cl
  92. ; bswap edx
  93. xchg dh,dl
  94. ror edx,16
  95. xchg dh,dl
  96. mov DWORD [32+esp],eax
  97. mov DWORD [36+esp],ebx
  98. mov DWORD [40+esp],ecx
  99. mov DWORD [44+esp],edx
  100. mov eax,DWORD [48+esi]
  101. mov ebx,DWORD [52+esi]
  102. mov ecx,DWORD [56+esi]
  103. mov edx,DWORD [60+esi]
  104. ; bswap eax
  105. xchg ah,al
  106. ror eax,16
  107. xchg ah,al
  108. ; bswap ebx
  109. xchg bh,bl
  110. ror ebx,16
  111. xchg bh,bl
  112. ; bswap ecx
  113. xchg ch,cl
  114. ror ecx,16
  115. xchg ch,cl
  116. ; bswap edx
  117. xchg dh,dl
  118. ror edx,16
  119. xchg dh,dl
  120. mov DWORD [48+esp],eax
  121. mov DWORD [52+esp],ebx
  122. mov DWORD [56+esp],ecx
  123. mov DWORD [60+esp],edx
  124. mov DWORD [100+esp],esi
  125. mov eax,DWORD [ebp]
  126. mov ebx,DWORD [4+ebp]
  127. mov ecx,DWORD [8+ebp]
  128. mov edx,DWORD [12+ebp]
  129. ; 00_15 0
  130. mov esi,ecx
  131. mov ebp,eax
  132. rol ebp,5
  133. xor esi,edx
  134. add ebp,edi
  135. mov edi,DWORD [esp]
  136. and esi,ebx
  137. ror ebx,2
  138. xor esi,edx
  139. lea ebp,[1518500249+edi*1+ebp]
  140. add ebp,esi
  141. ; 00_15 1
  142. mov edi,ebx
  143. mov esi,ebp
  144. rol ebp,5
  145. xor edi,ecx
  146. add ebp,edx
  147. mov edx,DWORD [4+esp]
  148. and edi,eax
  149. ror eax,2
  150. xor edi,ecx
  151. lea ebp,[1518500249+edx*1+ebp]
  152. add ebp,edi
  153. ; 00_15 2
  154. mov edx,eax
  155. mov edi,ebp
  156. rol ebp,5
  157. xor edx,ebx
  158. add ebp,ecx
  159. mov ecx,DWORD [8+esp]
  160. and edx,esi
  161. ror esi,2
  162. xor edx,ebx
  163. lea ebp,[1518500249+ecx*1+ebp]
  164. add ebp,edx
  165. ; 00_15 3
  166. mov ecx,esi
  167. mov edx,ebp
  168. rol ebp,5
  169. xor ecx,eax
  170. add ebp,ebx
  171. mov ebx,DWORD [12+esp]
  172. and ecx,edi
  173. ror edi,2
  174. xor ecx,eax
  175. lea ebp,[1518500249+ebx*1+ebp]
  176. add ebp,ecx
  177. ; 00_15 4
  178. mov ebx,edi
  179. mov ecx,ebp
  180. rol ebp,5
  181. xor ebx,esi
  182. add ebp,eax
  183. mov eax,DWORD [16+esp]
  184. and ebx,edx
  185. ror edx,2
  186. xor ebx,esi
  187. lea ebp,[1518500249+eax*1+ebp]
  188. add ebp,ebx
  189. ; 00_15 5
  190. mov eax,edx
  191. mov ebx,ebp
  192. rol ebp,5
  193. xor eax,edi
  194. add ebp,esi
  195. mov esi,DWORD [20+esp]
  196. and eax,ecx
  197. ror ecx,2
  198. xor eax,edi
  199. lea ebp,[1518500249+esi*1+ebp]
  200. add ebp,eax
  201. ; 00_15 6
  202. mov esi,ecx
  203. mov eax,ebp
  204. rol ebp,5
  205. xor esi,edx
  206. add ebp,edi
  207. mov edi,DWORD [24+esp]
  208. and esi,ebx
  209. ror ebx,2
  210. xor esi,edx
  211. lea ebp,[1518500249+edi*1+ebp]
  212. add ebp,esi
  213. ; 00_15 7
  214. mov edi,ebx
  215. mov esi,ebp
  216. rol ebp,5
  217. xor edi,ecx
  218. add ebp,edx
  219. mov edx,DWORD [28+esp]
  220. and edi,eax
  221. ror eax,2
  222. xor edi,ecx
  223. lea ebp,[1518500249+edx*1+ebp]
  224. add ebp,edi
  225. ; 00_15 8
  226. mov edx,eax
  227. mov edi,ebp
  228. rol ebp,5
  229. xor edx,ebx
  230. add ebp,ecx
  231. mov ecx,DWORD [32+esp]
  232. and edx,esi
  233. ror esi,2
  234. xor edx,ebx
  235. lea ebp,[1518500249+ecx*1+ebp]
  236. add ebp,edx
  237. ; 00_15 9
  238. mov ecx,esi
  239. mov edx,ebp
  240. rol ebp,5
  241. xor ecx,eax
  242. add ebp,ebx
  243. mov ebx,DWORD [36+esp]
  244. and ecx,edi
  245. ror edi,2
  246. xor ecx,eax
  247. lea ebp,[1518500249+ebx*1+ebp]
  248. add ebp,ecx
  249. ; 00_15 10
  250. mov ebx,edi
  251. mov ecx,ebp
  252. rol ebp,5
  253. xor ebx,esi
  254. add ebp,eax
  255. mov eax,DWORD [40+esp]
  256. and ebx,edx
  257. ror edx,2
  258. xor ebx,esi
  259. lea ebp,[1518500249+eax*1+ebp]
  260. add ebp,ebx
  261. ; 00_15 11
  262. mov eax,edx
  263. mov ebx,ebp
  264. rol ebp,5
  265. xor eax,edi
  266. add ebp,esi
  267. mov esi,DWORD [44+esp]
  268. and eax,ecx
  269. ror ecx,2
  270. xor eax,edi
  271. lea ebp,[1518500249+esi*1+ebp]
  272. add ebp,eax
  273. ; 00_15 12
  274. mov esi,ecx
  275. mov eax,ebp
  276. rol ebp,5
  277. xor esi,edx
  278. add ebp,edi
  279. mov edi,DWORD [48+esp]
  280. and esi,ebx
  281. ror ebx,2
  282. xor esi,edx
  283. lea ebp,[1518500249+edi*1+ebp]
  284. add ebp,esi
  285. ; 00_15 13
  286. mov edi,ebx
  287. mov esi,ebp
  288. rol ebp,5
  289. xor edi,ecx
  290. add ebp,edx
  291. mov edx,DWORD [52+esp]
  292. and edi,eax
  293. ror eax,2
  294. xor edi,ecx
  295. lea ebp,[1518500249+edx*1+ebp]
  296. add ebp,edi
  297. ; 00_15 14
  298. mov edx,eax
  299. mov edi,ebp
  300. rol ebp,5
  301. xor edx,ebx
  302. add ebp,ecx
  303. mov ecx,DWORD [56+esp]
  304. and edx,esi
  305. ror esi,2
  306. xor edx,ebx
  307. lea ebp,[1518500249+ecx*1+ebp]
  308. add ebp,edx
  309. ; 00_15 15
  310. mov ecx,esi
  311. mov edx,ebp
  312. rol ebp,5
  313. xor ecx,eax
  314. add ebp,ebx
  315. mov ebx,DWORD [60+esp]
  316. and ecx,edi
  317. ror edi,2
  318. xor ecx,eax
  319. lea ebp,[1518500249+ebx*1+ebp]
  320. mov ebx,DWORD [esp]
  321. add ecx,ebp
  322. ; 16_19 16
  323. mov ebp,edi
  324. xor ebx,DWORD [8+esp]
  325. xor ebp,esi
  326. xor ebx,DWORD [32+esp]
  327. and ebp,edx
  328. xor ebx,DWORD [52+esp]
  329. rol ebx,1
  330. xor ebp,esi
  331. add eax,ebp
  332. mov ebp,ecx
  333. ror edx,2
  334. mov DWORD [esp],ebx
  335. rol ebp,5
  336. lea ebx,[1518500249+eax*1+ebx]
  337. mov eax,DWORD [4+esp]
  338. add ebx,ebp
  339. ; 16_19 17
  340. mov ebp,edx
  341. xor eax,DWORD [12+esp]
  342. xor ebp,edi
  343. xor eax,DWORD [36+esp]
  344. and ebp,ecx
  345. xor eax,DWORD [56+esp]
  346. rol eax,1
  347. xor ebp,edi
  348. add esi,ebp
  349. mov ebp,ebx
  350. ror ecx,2
  351. mov DWORD [4+esp],eax
  352. rol ebp,5
  353. lea eax,[1518500249+esi*1+eax]
  354. mov esi,DWORD [8+esp]
  355. add eax,ebp
  356. ; 16_19 18
  357. mov ebp,ecx
  358. xor esi,DWORD [16+esp]
  359. xor ebp,edx
  360. xor esi,DWORD [40+esp]
  361. and ebp,ebx
  362. xor esi,DWORD [60+esp]
  363. rol esi,1
  364. xor ebp,edx
  365. add edi,ebp
  366. mov ebp,eax
  367. ror ebx,2
  368. mov DWORD [8+esp],esi
  369. rol ebp,5
  370. lea esi,[1518500249+edi*1+esi]
  371. mov edi,DWORD [12+esp]
  372. add esi,ebp
  373. ; 16_19 19
  374. mov ebp,ebx
  375. xor edi,DWORD [20+esp]
  376. xor ebp,ecx
  377. xor edi,DWORD [44+esp]
  378. and ebp,eax
  379. xor edi,DWORD [esp]
  380. rol edi,1
  381. xor ebp,ecx
  382. add edx,ebp
  383. mov ebp,esi
  384. ror eax,2
  385. mov DWORD [12+esp],edi
  386. rol ebp,5
  387. lea edi,[1518500249+edx*1+edi]
  388. mov edx,DWORD [16+esp]
  389. add edi,ebp
  390. ; 20_39 20
  391. mov ebp,esi
  392. xor edx,DWORD [24+esp]
  393. xor ebp,eax
  394. xor edx,DWORD [48+esp]
  395. xor ebp,ebx
  396. xor edx,DWORD [4+esp]
  397. rol edx,1
  398. add ecx,ebp
  399. ror esi,2
  400. mov ebp,edi
  401. rol ebp,5
  402. mov DWORD [16+esp],edx
  403. lea edx,[1859775393+ecx*1+edx]
  404. mov ecx,DWORD [20+esp]
  405. add edx,ebp
  406. ; 20_39 21
  407. mov ebp,edi
  408. xor ecx,DWORD [28+esp]
  409. xor ebp,esi
  410. xor ecx,DWORD [52+esp]
  411. xor ebp,eax
  412. xor ecx,DWORD [8+esp]
  413. rol ecx,1
  414. add ebx,ebp
  415. ror edi,2
  416. mov ebp,edx
  417. rol ebp,5
  418. mov DWORD [20+esp],ecx
  419. lea ecx,[1859775393+ebx*1+ecx]
  420. mov ebx,DWORD [24+esp]
  421. add ecx,ebp
  422. ; 20_39 22
  423. mov ebp,edx
  424. xor ebx,DWORD [32+esp]
  425. xor ebp,edi
  426. xor ebx,DWORD [56+esp]
  427. xor ebp,esi
  428. xor ebx,DWORD [12+esp]
  429. rol ebx,1
  430. add eax,ebp
  431. ror edx,2
  432. mov ebp,ecx
  433. rol ebp,5
  434. mov DWORD [24+esp],ebx
  435. lea ebx,[1859775393+eax*1+ebx]
  436. mov eax,DWORD [28+esp]
  437. add ebx,ebp
  438. ; 20_39 23
  439. mov ebp,ecx
  440. xor eax,DWORD [36+esp]
  441. xor ebp,edx
  442. xor eax,DWORD [60+esp]
  443. xor ebp,edi
  444. xor eax,DWORD [16+esp]
  445. rol eax,1
  446. add esi,ebp
  447. ror ecx,2
  448. mov ebp,ebx
  449. rol ebp,5
  450. mov DWORD [28+esp],eax
  451. lea eax,[1859775393+esi*1+eax]
  452. mov esi,DWORD [32+esp]
  453. add eax,ebp
  454. ; 20_39 24
  455. mov ebp,ebx
  456. xor esi,DWORD [40+esp]
  457. xor ebp,ecx
  458. xor esi,DWORD [esp]
  459. xor ebp,edx
  460. xor esi,DWORD [20+esp]
  461. rol esi,1
  462. add edi,ebp
  463. ror ebx,2
  464. mov ebp,eax
  465. rol ebp,5
  466. mov DWORD [32+esp],esi
  467. lea esi,[1859775393+edi*1+esi]
  468. mov edi,DWORD [36+esp]
  469. add esi,ebp
  470. ; 20_39 25
  471. mov ebp,eax
  472. xor edi,DWORD [44+esp]
  473. xor ebp,ebx
  474. xor edi,DWORD [4+esp]
  475. xor ebp,ecx
  476. xor edi,DWORD [24+esp]
  477. rol edi,1
  478. add edx,ebp
  479. ror eax,2
  480. mov ebp,esi
  481. rol ebp,5
  482. mov DWORD [36+esp],edi
  483. lea edi,[1859775393+edx*1+edi]
  484. mov edx,DWORD [40+esp]
  485. add edi,ebp
  486. ; 20_39 26
  487. mov ebp,esi
  488. xor edx,DWORD [48+esp]
  489. xor ebp,eax
  490. xor edx,DWORD [8+esp]
  491. xor ebp,ebx
  492. xor edx,DWORD [28+esp]
  493. rol edx,1
  494. add ecx,ebp
  495. ror esi,2
  496. mov ebp,edi
  497. rol ebp,5
  498. mov DWORD [40+esp],edx
  499. lea edx,[1859775393+ecx*1+edx]
  500. mov ecx,DWORD [44+esp]
  501. add edx,ebp
  502. ; 20_39 27
  503. mov ebp,edi
  504. xor ecx,DWORD [52+esp]
  505. xor ebp,esi
  506. xor ecx,DWORD [12+esp]
  507. xor ebp,eax
  508. xor ecx,DWORD [32+esp]
  509. rol ecx,1
  510. add ebx,ebp
  511. ror edi,2
  512. mov ebp,edx
  513. rol ebp,5
  514. mov DWORD [44+esp],ecx
  515. lea ecx,[1859775393+ebx*1+ecx]
  516. mov ebx,DWORD [48+esp]
  517. add ecx,ebp
  518. ; 20_39 28
  519. mov ebp,edx
  520. xor ebx,DWORD [56+esp]
  521. xor ebp,edi
  522. xor ebx,DWORD [16+esp]
  523. xor ebp,esi
  524. xor ebx,DWORD [36+esp]
  525. rol ebx,1
  526. add eax,ebp
  527. ror edx,2
  528. mov ebp,ecx
  529. rol ebp,5
  530. mov DWORD [48+esp],ebx
  531. lea ebx,[1859775393+eax*1+ebx]
  532. mov eax,DWORD [52+esp]
  533. add ebx,ebp
  534. ; 20_39 29
  535. mov ebp,ecx
  536. xor eax,DWORD [60+esp]
  537. xor ebp,edx
  538. xor eax,DWORD [20+esp]
  539. xor ebp,edi
  540. xor eax,DWORD [40+esp]
  541. rol eax,1
  542. add esi,ebp
  543. ror ecx,2
  544. mov ebp,ebx
  545. rol ebp,5
  546. mov DWORD [52+esp],eax
  547. lea eax,[1859775393+esi*1+eax]
  548. mov esi,DWORD [56+esp]
  549. add eax,ebp
  550. ; 20_39 30
  551. mov ebp,ebx
  552. xor esi,DWORD [esp]
  553. xor ebp,ecx
  554. xor esi,DWORD [24+esp]
  555. xor ebp,edx
  556. xor esi,DWORD [44+esp]
  557. rol esi,1
  558. add edi,ebp
  559. ror ebx,2
  560. mov ebp,eax
  561. rol ebp,5
  562. mov DWORD [56+esp],esi
  563. lea esi,[1859775393+edi*1+esi]
  564. mov edi,DWORD [60+esp]
  565. add esi,ebp
  566. ; 20_39 31
  567. mov ebp,eax
  568. xor edi,DWORD [4+esp]
  569. xor ebp,ebx
  570. xor edi,DWORD [28+esp]
  571. xor ebp,ecx
  572. xor edi,DWORD [48+esp]
  573. rol edi,1
  574. add edx,ebp
  575. ror eax,2
  576. mov ebp,esi
  577. rol ebp,5
  578. mov DWORD [60+esp],edi
  579. lea edi,[1859775393+edx*1+edi]
  580. mov edx,DWORD [esp]
  581. add edi,ebp
  582. ; 20_39 32
  583. mov ebp,esi
  584. xor edx,DWORD [8+esp]
  585. xor ebp,eax
  586. xor edx,DWORD [32+esp]
  587. xor ebp,ebx
  588. xor edx,DWORD [52+esp]
  589. rol edx,1
  590. add ecx,ebp
  591. ror esi,2
  592. mov ebp,edi
  593. rol ebp,5
  594. mov DWORD [esp],edx
  595. lea edx,[1859775393+ecx*1+edx]
  596. mov ecx,DWORD [4+esp]
  597. add edx,ebp
  598. ; 20_39 33
  599. mov ebp,edi
  600. xor ecx,DWORD [12+esp]
  601. xor ebp,esi
  602. xor ecx,DWORD [36+esp]
  603. xor ebp,eax
  604. xor ecx,DWORD [56+esp]
  605. rol ecx,1
  606. add ebx,ebp
  607. ror edi,2
  608. mov ebp,edx
  609. rol ebp,5
  610. mov DWORD [4+esp],ecx
  611. lea ecx,[1859775393+ebx*1+ecx]
  612. mov ebx,DWORD [8+esp]
  613. add ecx,ebp
  614. ; 20_39 34
  615. mov ebp,edx
  616. xor ebx,DWORD [16+esp]
  617. xor ebp,edi
  618. xor ebx,DWORD [40+esp]
  619. xor ebp,esi
  620. xor ebx,DWORD [60+esp]
  621. rol ebx,1
  622. add eax,ebp
  623. ror edx,2
  624. mov ebp,ecx
  625. rol ebp,5
  626. mov DWORD [8+esp],ebx
  627. lea ebx,[1859775393+eax*1+ebx]
  628. mov eax,DWORD [12+esp]
  629. add ebx,ebp
  630. ; 20_39 35
  631. mov ebp,ecx
  632. xor eax,DWORD [20+esp]
  633. xor ebp,edx
  634. xor eax,DWORD [44+esp]
  635. xor ebp,edi
  636. xor eax,DWORD [esp]
  637. rol eax,1
  638. add esi,ebp
  639. ror ecx,2
  640. mov ebp,ebx
  641. rol ebp,5
  642. mov DWORD [12+esp],eax
  643. lea eax,[1859775393+esi*1+eax]
  644. mov esi,DWORD [16+esp]
  645. add eax,ebp
  646. ; 20_39 36
  647. mov ebp,ebx
  648. xor esi,DWORD [24+esp]
  649. xor ebp,ecx
  650. xor esi,DWORD [48+esp]
  651. xor ebp,edx
  652. xor esi,DWORD [4+esp]
  653. rol esi,1
  654. add edi,ebp
  655. ror ebx,2
  656. mov ebp,eax
  657. rol ebp,5
  658. mov DWORD [16+esp],esi
  659. lea esi,[1859775393+edi*1+esi]
  660. mov edi,DWORD [20+esp]
  661. add esi,ebp
  662. ; 20_39 37
  663. mov ebp,eax
  664. xor edi,DWORD [28+esp]
  665. xor ebp,ebx
  666. xor edi,DWORD [52+esp]
  667. xor ebp,ecx
  668. xor edi,DWORD [8+esp]
  669. rol edi,1
  670. add edx,ebp
  671. ror eax,2
  672. mov ebp,esi
  673. rol ebp,5
  674. mov DWORD [20+esp],edi
  675. lea edi,[1859775393+edx*1+edi]
  676. mov edx,DWORD [24+esp]
  677. add edi,ebp
  678. ; 20_39 38
  679. mov ebp,esi
  680. xor edx,DWORD [32+esp]
  681. xor ebp,eax
  682. xor edx,DWORD [56+esp]
  683. xor ebp,ebx
  684. xor edx,DWORD [12+esp]
  685. rol edx,1
  686. add ecx,ebp
  687. ror esi,2
  688. mov ebp,edi
  689. rol ebp,5
  690. mov DWORD [24+esp],edx
  691. lea edx,[1859775393+ecx*1+edx]
  692. mov ecx,DWORD [28+esp]
  693. add edx,ebp
  694. ; 20_39 39
  695. mov ebp,edi
  696. xor ecx,DWORD [36+esp]
  697. xor ebp,esi
  698. xor ecx,DWORD [60+esp]
  699. xor ebp,eax
  700. xor ecx,DWORD [16+esp]
  701. rol ecx,1
  702. add ebx,ebp
  703. ror edi,2
  704. mov ebp,edx
  705. rol ebp,5
  706. mov DWORD [28+esp],ecx
  707. lea ecx,[1859775393+ebx*1+ecx]
  708. mov ebx,DWORD [32+esp]
  709. add ecx,ebp
  710. ; 40_59 40
  711. mov ebp,edi
  712. xor ebx,DWORD [40+esp]
  713. xor ebp,esi
  714. xor ebx,DWORD [esp]
  715. and ebp,edx
  716. xor ebx,DWORD [20+esp]
  717. rol ebx,1
  718. add ebp,eax
  719. ror edx,2
  720. mov eax,ecx
  721. rol eax,5
  722. mov DWORD [32+esp],ebx
  723. lea ebx,[2400959708+ebp*1+ebx]
  724. mov ebp,edi
  725. add ebx,eax
  726. and ebp,esi
  727. mov eax,DWORD [36+esp]
  728. add ebx,ebp
  729. ; 40_59 41
  730. mov ebp,edx
  731. xor eax,DWORD [44+esp]
  732. xor ebp,edi
  733. xor eax,DWORD [4+esp]
  734. and ebp,ecx
  735. xor eax,DWORD [24+esp]
  736. rol eax,1
  737. add ebp,esi
  738. ror ecx,2
  739. mov esi,ebx
  740. rol esi,5
  741. mov DWORD [36+esp],eax
  742. lea eax,[2400959708+ebp*1+eax]
  743. mov ebp,edx
  744. add eax,esi
  745. and ebp,edi
  746. mov esi,DWORD [40+esp]
  747. add eax,ebp
  748. ; 40_59 42
  749. mov ebp,ecx
  750. xor esi,DWORD [48+esp]
  751. xor ebp,edx
  752. xor esi,DWORD [8+esp]
  753. and ebp,ebx
  754. xor esi,DWORD [28+esp]
  755. rol esi,1
  756. add ebp,edi
  757. ror ebx,2
  758. mov edi,eax
  759. rol edi,5
  760. mov DWORD [40+esp],esi
  761. lea esi,[2400959708+ebp*1+esi]
  762. mov ebp,ecx
  763. add esi,edi
  764. and ebp,edx
  765. mov edi,DWORD [44+esp]
  766. add esi,ebp
  767. ; 40_59 43
  768. mov ebp,ebx
  769. xor edi,DWORD [52+esp]
  770. xor ebp,ecx
  771. xor edi,DWORD [12+esp]
  772. and ebp,eax
  773. xor edi,DWORD [32+esp]
  774. rol edi,1
  775. add ebp,edx
  776. ror eax,2
  777. mov edx,esi
  778. rol edx,5
  779. mov DWORD [44+esp],edi
  780. lea edi,[2400959708+ebp*1+edi]
  781. mov ebp,ebx
  782. add edi,edx
  783. and ebp,ecx
  784. mov edx,DWORD [48+esp]
  785. add edi,ebp
  786. ; 40_59 44
  787. mov ebp,eax
  788. xor edx,DWORD [56+esp]
  789. xor ebp,ebx
  790. xor edx,DWORD [16+esp]
  791. and ebp,esi
  792. xor edx,DWORD [36+esp]
  793. rol edx,1
  794. add ebp,ecx
  795. ror esi,2
  796. mov ecx,edi
  797. rol ecx,5
  798. mov DWORD [48+esp],edx
  799. lea edx,[2400959708+ebp*1+edx]
  800. mov ebp,eax
  801. add edx,ecx
  802. and ebp,ebx
  803. mov ecx,DWORD [52+esp]
  804. add edx,ebp
  805. ; 40_59 45
  806. mov ebp,esi
  807. xor ecx,DWORD [60+esp]
  808. xor ebp,eax
  809. xor ecx,DWORD [20+esp]
  810. and ebp,edi
  811. xor ecx,DWORD [40+esp]
  812. rol ecx,1
  813. add ebp,ebx
  814. ror edi,2
  815. mov ebx,edx
  816. rol ebx,5
  817. mov DWORD [52+esp],ecx
  818. lea ecx,[2400959708+ebp*1+ecx]
  819. mov ebp,esi
  820. add ecx,ebx
  821. and ebp,eax
  822. mov ebx,DWORD [56+esp]
  823. add ecx,ebp
  824. ; 40_59 46
  825. mov ebp,edi
  826. xor ebx,DWORD [esp]
  827. xor ebp,esi
  828. xor ebx,DWORD [24+esp]
  829. and ebp,edx
  830. xor ebx,DWORD [44+esp]
  831. rol ebx,1
  832. add ebp,eax
  833. ror edx,2
  834. mov eax,ecx
  835. rol eax,5
  836. mov DWORD [56+esp],ebx
  837. lea ebx,[2400959708+ebp*1+ebx]
  838. mov ebp,edi
  839. add ebx,eax
  840. and ebp,esi
  841. mov eax,DWORD [60+esp]
  842. add ebx,ebp
  843. ; 40_59 47
  844. mov ebp,edx
  845. xor eax,DWORD [4+esp]
  846. xor ebp,edi
  847. xor eax,DWORD [28+esp]
  848. and ebp,ecx
  849. xor eax,DWORD [48+esp]
  850. rol eax,1
  851. add ebp,esi
  852. ror ecx,2
  853. mov esi,ebx
  854. rol esi,5
  855. mov DWORD [60+esp],eax
  856. lea eax,[2400959708+ebp*1+eax]
  857. mov ebp,edx
  858. add eax,esi
  859. and ebp,edi
  860. mov esi,DWORD [esp]
  861. add eax,ebp
  862. ; 40_59 48
  863. mov ebp,ecx
  864. xor esi,DWORD [8+esp]
  865. xor ebp,edx
  866. xor esi,DWORD [32+esp]
  867. and ebp,ebx
  868. xor esi,DWORD [52+esp]
  869. rol esi,1
  870. add ebp,edi
  871. ror ebx,2
  872. mov edi,eax
  873. rol edi,5
  874. mov DWORD [esp],esi
  875. lea esi,[2400959708+ebp*1+esi]
  876. mov ebp,ecx
  877. add esi,edi
  878. and ebp,edx
  879. mov edi,DWORD [4+esp]
  880. add esi,ebp
  881. ; 40_59 49
  882. mov ebp,ebx
  883. xor edi,DWORD [12+esp]
  884. xor ebp,ecx
  885. xor edi,DWORD [36+esp]
  886. and ebp,eax
  887. xor edi,DWORD [56+esp]
  888. rol edi,1
  889. add ebp,edx
  890. ror eax,2
  891. mov edx,esi
  892. rol edx,5
  893. mov DWORD [4+esp],edi
  894. lea edi,[2400959708+ebp*1+edi]
  895. mov ebp,ebx
  896. add edi,edx
  897. and ebp,ecx
  898. mov edx,DWORD [8+esp]
  899. add edi,ebp
  900. ; 40_59 50
  901. mov ebp,eax
  902. xor edx,DWORD [16+esp]
  903. xor ebp,ebx
  904. xor edx,DWORD [40+esp]
  905. and ebp,esi
  906. xor edx,DWORD [60+esp]
  907. rol edx,1
  908. add ebp,ecx
  909. ror esi,2
  910. mov ecx,edi
  911. rol ecx,5
  912. mov DWORD [8+esp],edx
  913. lea edx,[2400959708+ebp*1+edx]
  914. mov ebp,eax
  915. add edx,ecx
  916. and ebp,ebx
  917. mov ecx,DWORD [12+esp]
  918. add edx,ebp
  919. ; 40_59 51
  920. mov ebp,esi
  921. xor ecx,DWORD [20+esp]
  922. xor ebp,eax
  923. xor ecx,DWORD [44+esp]
  924. and ebp,edi
  925. xor ecx,DWORD [esp]
  926. rol ecx,1
  927. add ebp,ebx
  928. ror edi,2
  929. mov ebx,edx
  930. rol ebx,5
  931. mov DWORD [12+esp],ecx
  932. lea ecx,[2400959708+ebp*1+ecx]
  933. mov ebp,esi
  934. add ecx,ebx
  935. and ebp,eax
  936. mov ebx,DWORD [16+esp]
  937. add ecx,ebp
  938. ; 40_59 52
  939. mov ebp,edi
  940. xor ebx,DWORD [24+esp]
  941. xor ebp,esi
  942. xor ebx,DWORD [48+esp]
  943. and ebp,edx
  944. xor ebx,DWORD [4+esp]
  945. rol ebx,1
  946. add ebp,eax
  947. ror edx,2
  948. mov eax,ecx
  949. rol eax,5
  950. mov DWORD [16+esp],ebx
  951. lea ebx,[2400959708+ebp*1+ebx]
  952. mov ebp,edi
  953. add ebx,eax
  954. and ebp,esi
  955. mov eax,DWORD [20+esp]
  956. add ebx,ebp
  957. ; 40_59 53
  958. mov ebp,edx
  959. xor eax,DWORD [28+esp]
  960. xor ebp,edi
  961. xor eax,DWORD [52+esp]
  962. and ebp,ecx
  963. xor eax,DWORD [8+esp]
  964. rol eax,1
  965. add ebp,esi
  966. ror ecx,2
  967. mov esi,ebx
  968. rol esi,5
  969. mov DWORD [20+esp],eax
  970. lea eax,[2400959708+ebp*1+eax]
  971. mov ebp,edx
  972. add eax,esi
  973. and ebp,edi
  974. mov esi,DWORD [24+esp]
  975. add eax,ebp
  976. ; 40_59 54
  977. mov ebp,ecx
  978. xor esi,DWORD [32+esp]
  979. xor ebp,edx
  980. xor esi,DWORD [56+esp]
  981. and ebp,ebx
  982. xor esi,DWORD [12+esp]
  983. rol esi,1
  984. add ebp,edi
  985. ror ebx,2
  986. mov edi,eax
  987. rol edi,5
  988. mov DWORD [24+esp],esi
  989. lea esi,[2400959708+ebp*1+esi]
  990. mov ebp,ecx
  991. add esi,edi
  992. and ebp,edx
  993. mov edi,DWORD [28+esp]
  994. add esi,ebp
  995. ; 40_59 55
  996. mov ebp,ebx
  997. xor edi,DWORD [36+esp]
  998. xor ebp,ecx
  999. xor edi,DWORD [60+esp]
  1000. and ebp,eax
  1001. xor edi,DWORD [16+esp]
  1002. rol edi,1
  1003. add ebp,edx
  1004. ror eax,2
  1005. mov edx,esi
  1006. rol edx,5
  1007. mov DWORD [28+esp],edi
  1008. lea edi,[2400959708+ebp*1+edi]
  1009. mov ebp,ebx
  1010. add edi,edx
  1011. and ebp,ecx
  1012. mov edx,DWORD [32+esp]
  1013. add edi,ebp
  1014. ; 40_59 56
  1015. mov ebp,eax
  1016. xor edx,DWORD [40+esp]
  1017. xor ebp,ebx
  1018. xor edx,DWORD [esp]
  1019. and ebp,esi
  1020. xor edx,DWORD [20+esp]
  1021. rol edx,1
  1022. add ebp,ecx
  1023. ror esi,2
  1024. mov ecx,edi
  1025. rol ecx,5
  1026. mov DWORD [32+esp],edx
  1027. lea edx,[2400959708+ebp*1+edx]
  1028. mov ebp,eax
  1029. add edx,ecx
  1030. and ebp,ebx
  1031. mov ecx,DWORD [36+esp]
  1032. add edx,ebp
  1033. ; 40_59 57
  1034. mov ebp,esi
  1035. xor ecx,DWORD [44+esp]
  1036. xor ebp,eax
  1037. xor ecx,DWORD [4+esp]
  1038. and ebp,edi
  1039. xor ecx,DWORD [24+esp]
  1040. rol ecx,1
  1041. add ebp,ebx
  1042. ror edi,2
  1043. mov ebx,edx
  1044. rol ebx,5
  1045. mov DWORD [36+esp],ecx
  1046. lea ecx,[2400959708+ebp*1+ecx]
  1047. mov ebp,esi
  1048. add ecx,ebx
  1049. and ebp,eax
  1050. mov ebx,DWORD [40+esp]
  1051. add ecx,ebp
  1052. ; 40_59 58
  1053. mov ebp,edi
  1054. xor ebx,DWORD [48+esp]
  1055. xor ebp,esi
  1056. xor ebx,DWORD [8+esp]
  1057. and ebp,edx
  1058. xor ebx,DWORD [28+esp]
  1059. rol ebx,1
  1060. add ebp,eax
  1061. ror edx,2
  1062. mov eax,ecx
  1063. rol eax,5
  1064. mov DWORD [40+esp],ebx
  1065. lea ebx,[2400959708+ebp*1+ebx]
  1066. mov ebp,edi
  1067. add ebx,eax
  1068. and ebp,esi
  1069. mov eax,DWORD [44+esp]
  1070. add ebx,ebp
  1071. ; 40_59 59
  1072. mov ebp,edx
  1073. xor eax,DWORD [52+esp]
  1074. xor ebp,edi
  1075. xor eax,DWORD [12+esp]
  1076. and ebp,ecx
  1077. xor eax,DWORD [32+esp]
  1078. rol eax,1
  1079. add ebp,esi
  1080. ror ecx,2
  1081. mov esi,ebx
  1082. rol esi,5
  1083. mov DWORD [44+esp],eax
  1084. lea eax,[2400959708+ebp*1+eax]
  1085. mov ebp,edx
  1086. add eax,esi
  1087. and ebp,edi
  1088. mov esi,DWORD [48+esp]
  1089. add eax,ebp
  1090. ; 20_39 60
  1091. mov ebp,ebx
  1092. xor esi,DWORD [56+esp]
  1093. xor ebp,ecx
  1094. xor esi,DWORD [16+esp]
  1095. xor ebp,edx
  1096. xor esi,DWORD [36+esp]
  1097. rol esi,1
  1098. add edi,ebp
  1099. ror ebx,2
  1100. mov ebp,eax
  1101. rol ebp,5
  1102. mov DWORD [48+esp],esi
  1103. lea esi,[3395469782+edi*1+esi]
  1104. mov edi,DWORD [52+esp]
  1105. add esi,ebp
  1106. ; 20_39 61
  1107. mov ebp,eax
  1108. xor edi,DWORD [60+esp]
  1109. xor ebp,ebx
  1110. xor edi,DWORD [20+esp]
  1111. xor ebp,ecx
  1112. xor edi,DWORD [40+esp]
  1113. rol edi,1
  1114. add edx,ebp
  1115. ror eax,2
  1116. mov ebp,esi
  1117. rol ebp,5
  1118. mov DWORD [52+esp],edi
  1119. lea edi,[3395469782+edx*1+edi]
  1120. mov edx,DWORD [56+esp]
  1121. add edi,ebp
  1122. ; 20_39 62
  1123. mov ebp,esi
  1124. xor edx,DWORD [esp]
  1125. xor ebp,eax
  1126. xor edx,DWORD [24+esp]
  1127. xor ebp,ebx
  1128. xor edx,DWORD [44+esp]
  1129. rol edx,1
  1130. add ecx,ebp
  1131. ror esi,2
  1132. mov ebp,edi
  1133. rol ebp,5
  1134. mov DWORD [56+esp],edx
  1135. lea edx,[3395469782+ecx*1+edx]
  1136. mov ecx,DWORD [60+esp]
  1137. add edx,ebp
  1138. ; 20_39 63
  1139. mov ebp,edi
  1140. xor ecx,DWORD [4+esp]
  1141. xor ebp,esi
  1142. xor ecx,DWORD [28+esp]
  1143. xor ebp,eax
  1144. xor ecx,DWORD [48+esp]
  1145. rol ecx,1
  1146. add ebx,ebp
  1147. ror edi,2
  1148. mov ebp,edx
  1149. rol ebp,5
  1150. mov DWORD [60+esp],ecx
  1151. lea ecx,[3395469782+ebx*1+ecx]
  1152. mov ebx,DWORD [esp]
  1153. add ecx,ebp
  1154. ; 20_39 64
  1155. mov ebp,edx
  1156. xor ebx,DWORD [8+esp]
  1157. xor ebp,edi
  1158. xor ebx,DWORD [32+esp]
  1159. xor ebp,esi
  1160. xor ebx,DWORD [52+esp]
  1161. rol ebx,1
  1162. add eax,ebp
  1163. ror edx,2
  1164. mov ebp,ecx
  1165. rol ebp,5
  1166. mov DWORD [esp],ebx
  1167. lea ebx,[3395469782+eax*1+ebx]
  1168. mov eax,DWORD [4+esp]
  1169. add ebx,ebp
  1170. ; 20_39 65
  1171. mov ebp,ecx
  1172. xor eax,DWORD [12+esp]
  1173. xor ebp,edx
  1174. xor eax,DWORD [36+esp]
  1175. xor ebp,edi
  1176. xor eax,DWORD [56+esp]
  1177. rol eax,1
  1178. add esi,ebp
  1179. ror ecx,2
  1180. mov ebp,ebx
  1181. rol ebp,5
  1182. mov DWORD [4+esp],eax
  1183. lea eax,[3395469782+esi*1+eax]
  1184. mov esi,DWORD [8+esp]
  1185. add eax,ebp
  1186. ; 20_39 66
  1187. mov ebp,ebx
  1188. xor esi,DWORD [16+esp]
  1189. xor ebp,ecx
  1190. xor esi,DWORD [40+esp]
  1191. xor ebp,edx
  1192. xor esi,DWORD [60+esp]
  1193. rol esi,1
  1194. add edi,ebp
  1195. ror ebx,2
  1196. mov ebp,eax
  1197. rol ebp,5
  1198. mov DWORD [8+esp],esi
  1199. lea esi,[3395469782+edi*1+esi]
  1200. mov edi,DWORD [12+esp]
  1201. add esi,ebp
  1202. ; 20_39 67
  1203. mov ebp,eax
  1204. xor edi,DWORD [20+esp]
  1205. xor ebp,ebx
  1206. xor edi,DWORD [44+esp]
  1207. xor ebp,ecx
  1208. xor edi,DWORD [esp]
  1209. rol edi,1
  1210. add edx,ebp
  1211. ror eax,2
  1212. mov ebp,esi
  1213. rol ebp,5
  1214. mov DWORD [12+esp],edi
  1215. lea edi,[3395469782+edx*1+edi]
  1216. mov edx,DWORD [16+esp]
  1217. add edi,ebp
  1218. ; 20_39 68
  1219. mov ebp,esi
  1220. xor edx,DWORD [24+esp]
  1221. xor ebp,eax
  1222. xor edx,DWORD [48+esp]
  1223. xor ebp,ebx
  1224. xor edx,DWORD [4+esp]
  1225. rol edx,1
  1226. add ecx,ebp
  1227. ror esi,2
  1228. mov ebp,edi
  1229. rol ebp,5
  1230. mov DWORD [16+esp],edx
  1231. lea edx,[3395469782+ecx*1+edx]
  1232. mov ecx,DWORD [20+esp]
  1233. add edx,ebp
  1234. ; 20_39 69
  1235. mov ebp,edi
  1236. xor ecx,DWORD [28+esp]
  1237. xor ebp,esi
  1238. xor ecx,DWORD [52+esp]
  1239. xor ebp,eax
  1240. xor ecx,DWORD [8+esp]
  1241. rol ecx,1
  1242. add ebx,ebp
  1243. ror edi,2
  1244. mov ebp,edx
  1245. rol ebp,5
  1246. mov DWORD [20+esp],ecx
  1247. lea ecx,[3395469782+ebx*1+ecx]
  1248. mov ebx,DWORD [24+esp]
  1249. add ecx,ebp
  1250. ; 20_39 70
  1251. mov ebp,edx
  1252. xor ebx,DWORD [32+esp]
  1253. xor ebp,edi
  1254. xor ebx,DWORD [56+esp]
  1255. xor ebp,esi
  1256. xor ebx,DWORD [12+esp]
  1257. rol ebx,1
  1258. add eax,ebp
  1259. ror edx,2
  1260. mov ebp,ecx
  1261. rol ebp,5
  1262. mov DWORD [24+esp],ebx
  1263. lea ebx,[3395469782+eax*1+ebx]
  1264. mov eax,DWORD [28+esp]
  1265. add ebx,ebp
  1266. ; 20_39 71
  1267. mov ebp,ecx
  1268. xor eax,DWORD [36+esp]
  1269. xor ebp,edx
  1270. xor eax,DWORD [60+esp]
  1271. xor ebp,edi
  1272. xor eax,DWORD [16+esp]
  1273. rol eax,1
  1274. add esi,ebp
  1275. ror ecx,2
  1276. mov ebp,ebx
  1277. rol ebp,5
  1278. mov DWORD [28+esp],eax
  1279. lea eax,[3395469782+esi*1+eax]
  1280. mov esi,DWORD [32+esp]
  1281. add eax,ebp
  1282. ; 20_39 72
  1283. mov ebp,ebx
  1284. xor esi,DWORD [40+esp]
  1285. xor ebp,ecx
  1286. xor esi,DWORD [esp]
  1287. xor ebp,edx
  1288. xor esi,DWORD [20+esp]
  1289. rol esi,1
  1290. add edi,ebp
  1291. ror ebx,2
  1292. mov ebp,eax
  1293. rol ebp,5
  1294. mov DWORD [32+esp],esi
  1295. lea esi,[3395469782+edi*1+esi]
  1296. mov edi,DWORD [36+esp]
  1297. add esi,ebp
  1298. ; 20_39 73
  1299. mov ebp,eax
  1300. xor edi,DWORD [44+esp]
  1301. xor ebp,ebx
  1302. xor edi,DWORD [4+esp]
  1303. xor ebp,ecx
  1304. xor edi,DWORD [24+esp]
  1305. rol edi,1
  1306. add edx,ebp
  1307. ror eax,2
  1308. mov ebp,esi
  1309. rol ebp,5
  1310. mov DWORD [36+esp],edi
  1311. lea edi,[3395469782+edx*1+edi]
  1312. mov edx,DWORD [40+esp]
  1313. add edi,ebp
  1314. ; 20_39 74
  1315. mov ebp,esi
  1316. xor edx,DWORD [48+esp]
  1317. xor ebp,eax
  1318. xor edx,DWORD [8+esp]
  1319. xor ebp,ebx
  1320. xor edx,DWORD [28+esp]
  1321. rol edx,1
  1322. add ecx,ebp
  1323. ror esi,2
  1324. mov ebp,edi
  1325. rol ebp,5
  1326. mov DWORD [40+esp],edx
  1327. lea edx,[3395469782+ecx*1+edx]
  1328. mov ecx,DWORD [44+esp]
  1329. add edx,ebp
  1330. ; 20_39 75
  1331. mov ebp,edi
  1332. xor ecx,DWORD [52+esp]
  1333. xor ebp,esi
  1334. xor ecx,DWORD [12+esp]
  1335. xor ebp,eax
  1336. xor ecx,DWORD [32+esp]
  1337. rol ecx,1
  1338. add ebx,ebp
  1339. ror edi,2
  1340. mov ebp,edx
  1341. rol ebp,5
  1342. mov DWORD [44+esp],ecx
  1343. lea ecx,[3395469782+ebx*1+ecx]
  1344. mov ebx,DWORD [48+esp]
  1345. add ecx,ebp
  1346. ; 20_39 76
  1347. mov ebp,edx
  1348. xor ebx,DWORD [56+esp]
  1349. xor ebp,edi
  1350. xor ebx,DWORD [16+esp]
  1351. xor ebp,esi
  1352. xor ebx,DWORD [36+esp]
  1353. rol ebx,1
  1354. add eax,ebp
  1355. ror edx,2
  1356. mov ebp,ecx
  1357. rol ebp,5
  1358. mov DWORD [48+esp],ebx
  1359. lea ebx,[3395469782+eax*1+ebx]
  1360. mov eax,DWORD [52+esp]
  1361. add ebx,ebp
  1362. ; 20_39 77
  1363. mov ebp,ecx
  1364. xor eax,DWORD [60+esp]
  1365. xor ebp,edx
  1366. xor eax,DWORD [20+esp]
  1367. xor ebp,edi
  1368. xor eax,DWORD [40+esp]
  1369. rol eax,1
  1370. add esi,ebp
  1371. ror ecx,2
  1372. mov ebp,ebx
  1373. rol ebp,5
  1374. lea eax,[3395469782+esi*1+eax]
  1375. mov esi,DWORD [56+esp]
  1376. add eax,ebp
  1377. ; 20_39 78
  1378. mov ebp,ebx
  1379. xor esi,DWORD [esp]
  1380. xor ebp,ecx
  1381. xor esi,DWORD [24+esp]
  1382. xor ebp,edx
  1383. xor esi,DWORD [44+esp]
  1384. rol esi,1
  1385. add edi,ebp
  1386. ror ebx,2
  1387. mov ebp,eax
  1388. rol ebp,5
  1389. lea esi,[3395469782+edi*1+esi]
  1390. mov edi,DWORD [60+esp]
  1391. add esi,ebp
  1392. ; 20_39 79
  1393. mov ebp,eax
  1394. xor edi,DWORD [4+esp]
  1395. xor ebp,ebx
  1396. xor edi,DWORD [28+esp]
  1397. xor ebp,ecx
  1398. xor edi,DWORD [48+esp]
  1399. rol edi,1
  1400. add edx,ebp
  1401. ror eax,2
  1402. mov ebp,esi
  1403. rol ebp,5
  1404. lea edi,[3395469782+edx*1+edi]
  1405. add edi,ebp
  1406. mov ebp,DWORD [96+esp]
  1407. mov edx,DWORD [100+esp]
  1408. add edi,DWORD [ebp]
  1409. add esi,DWORD [4+ebp]
  1410. add eax,DWORD [8+ebp]
  1411. add ebx,DWORD [12+ebp]
  1412. add ecx,DWORD [16+ebp]
  1413. mov DWORD [ebp],edi
  1414. add edx,64
  1415. mov DWORD [4+ebp],esi
  1416. cmp edx,DWORD [104+esp]
  1417. mov DWORD [8+ebp],eax
  1418. mov edi,ecx
  1419. mov DWORD [12+ebp],ebx
  1420. mov esi,edx
  1421. mov DWORD [16+ebp],ecx
  1422. jb NEAR L$000loop
  1423. add esp,76
  1424. pop edi
  1425. pop esi
  1426. pop ebx
  1427. pop ebp
  1428. ret
  1429. db 83,72,65,49,32,98,108,111,99,107,32,116,114,97,110,115
  1430. db 102,111,114,109,32,102,111,114,32,120,56,54,44,32,67,82
  1431. db 89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112
  1432. db 114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0