sha1_586.asm 25 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433
  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