sha256-586.S 96 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527452845294530453145324533453445354536453745384539454045414542454345444545454645474548454945504551455245534554455545564557455845594560456145624563456445654566456745684569457045714572457345744575457645774578457945804581458245834584458545864587458845894590459145924593459445954596459745984599460046014602460346044605460646074608460946104611461246134614461546164617461846194620462146224623462446254626462746284629463046314632463346344635463646374638463946404641464246434644464546464647464846494650465146524653465446554656465746584659466046614662466346644665466646674668466946704671467246734674467546764677467846794680468146824683468446854686468746884689469046914692469346944695469646974698469947004701470247034704470547064707470847094710471147124713471447154716471747184719472047214722472347244725472647274728472947304731473247334734473547364737473847394740474147424743474447454746474747484749475047514752475347544755475647574758475947604761476247634764476547664767476847694770477147724773477447754776477747784779478047814782478347844785478647874788478947904791479247934794479547964797479847994800480148024803480448054806480748084809481048114812481348144815481648174818481948204821482248234824482548264827482848294830483148324833483448354836483748384839484048414842484348444845484648474848484948504851485248534854485548564857485848594860486148624863486448654866486748684869487048714872487348744875487648774878487948804881488248834884488548864887488848894890489148924893489448954896489748984899490049014902490349044905490649074908490949104911491249134914491549164917491849194920492149224923492449254926492749284929493049314932493349344935493649374938493949404941494249434944494549464947494849494950495149524953495449554956495749584959496049614962496349644965496649674968496949704971497249734974497549764977497849794980498149824983498449854986498749884989499049914992499349944995499649974998499950005001500250035004500550065007500850095010501150125013501450155016501750185019502050215022502350245025502650275028502950305031503250335034503550365037503850395040504150425043504450455046504750485049505050515052505350545055505650575058505950605061506250635064506550665067506850695070507150725073507450755076507750785079508050815082508350845085508650875088508950905091509250935094509550965097509850995100510151025103510451055106510751085109511051115112511351145115511651175118511951205121512251235124512551265127512851295130513151325133513451355136513751385139514051415142514351445145514651475148514951505151515251535154515551565157515851595160516151625163516451655166516751685169517051715172517351745175517651775178517951805181518251835184518551865187518851895190519151925193519451955196519751985199520052015202520352045205520652075208520952105211521252135214521552165217521852195220522152225223522452255226522752285229523052315232523352345235523652375238523952405241524252435244524552465247524852495250525152525253525452555256525752585259526052615262526352645265526652675268526952705271527252735274527552765277527852795280528152825283528452855286528752885289529052915292529352945295529652975298529953005301530253035304530553065307530853095310531153125313531453155316531753185319532053215322532353245325532653275328532953305331533253335334533553365337533853395340534153425343534453455346534753485349535053515352535353545355535653575358535953605361536253635364536553665367536853695370537153725373537453755376537753785379538053815382538353845385538653875388538953905391539253935394539553965397539853995400540154025403540454055406540754085409541054115412541354145415541654175418541954205421542254235424542554265427542854295430543154325433543454355436543754385439544054415442544354445445544654475448544954505451545254535454545554565457545854595460546154625463546454655466546754685469547054715472547354745475547654775478547954805481548254835484548554865487548854895490549154925493549454955496549754985499550055015502550355045505550655075508550955105511551255135514551555165517551855195520552155225523552455255526552755285529553055315532553355345535553655375538553955405541554255435544554555465547554855495550555155525553555455555556555755585559556055615562556355645565556655675568
  1. // This file is generated from a similarly-named Perl script in the BoringSSL
  2. // source tree. Do not edit by hand.
  3. #if defined(__i386__)
  4. #if defined(BORINGSSL_PREFIX)
  5. #include <boringssl_prefix_symbols_asm.h>
  6. #endif
  7. .text
  8. .globl _sha256_block_data_order
  9. .private_extern _sha256_block_data_order
  10. .align 4
  11. _sha256_block_data_order:
  12. L_sha256_block_data_order_begin:
  13. pushl %ebp
  14. pushl %ebx
  15. pushl %esi
  16. pushl %edi
  17. movl 20(%esp),%esi
  18. movl 24(%esp),%edi
  19. movl 28(%esp),%eax
  20. movl %esp,%ebx
  21. call L000pic_point
  22. L000pic_point:
  23. popl %ebp
  24. leal L001K256-L000pic_point(%ebp),%ebp
  25. subl $16,%esp
  26. andl $-64,%esp
  27. shll $6,%eax
  28. addl %edi,%eax
  29. movl %esi,(%esp)
  30. movl %edi,4(%esp)
  31. movl %eax,8(%esp)
  32. movl %ebx,12(%esp)
  33. movl L_OPENSSL_ia32cap_P$non_lazy_ptr-L001K256(%ebp),%edx
  34. movl (%edx),%ecx
  35. movl 4(%edx),%ebx
  36. testl $1048576,%ecx
  37. jnz L002loop
  38. movl 8(%edx),%edx
  39. testl $16777216,%ecx
  40. jz L003no_xmm
  41. andl $1073741824,%ecx
  42. andl $268435968,%ebx
  43. orl %ebx,%ecx
  44. andl $1342177280,%ecx
  45. cmpl $1342177280,%ecx
  46. je L004AVX
  47. testl $512,%ebx
  48. jnz L005SSSE3
  49. L003no_xmm:
  50. subl %edi,%eax
  51. cmpl $256,%eax
  52. jae L006unrolled
  53. jmp L002loop
  54. .align 4,0x90
  55. L002loop:
  56. movl (%edi),%eax
  57. movl 4(%edi),%ebx
  58. movl 8(%edi),%ecx
  59. bswap %eax
  60. movl 12(%edi),%edx
  61. bswap %ebx
  62. pushl %eax
  63. bswap %ecx
  64. pushl %ebx
  65. bswap %edx
  66. pushl %ecx
  67. pushl %edx
  68. movl 16(%edi),%eax
  69. movl 20(%edi),%ebx
  70. movl 24(%edi),%ecx
  71. bswap %eax
  72. movl 28(%edi),%edx
  73. bswap %ebx
  74. pushl %eax
  75. bswap %ecx
  76. pushl %ebx
  77. bswap %edx
  78. pushl %ecx
  79. pushl %edx
  80. movl 32(%edi),%eax
  81. movl 36(%edi),%ebx
  82. movl 40(%edi),%ecx
  83. bswap %eax
  84. movl 44(%edi),%edx
  85. bswap %ebx
  86. pushl %eax
  87. bswap %ecx
  88. pushl %ebx
  89. bswap %edx
  90. pushl %ecx
  91. pushl %edx
  92. movl 48(%edi),%eax
  93. movl 52(%edi),%ebx
  94. movl 56(%edi),%ecx
  95. bswap %eax
  96. movl 60(%edi),%edx
  97. bswap %ebx
  98. pushl %eax
  99. bswap %ecx
  100. pushl %ebx
  101. bswap %edx
  102. pushl %ecx
  103. pushl %edx
  104. addl $64,%edi
  105. leal -36(%esp),%esp
  106. movl %edi,104(%esp)
  107. movl (%esi),%eax
  108. movl 4(%esi),%ebx
  109. movl 8(%esi),%ecx
  110. movl 12(%esi),%edi
  111. movl %ebx,8(%esp)
  112. xorl %ecx,%ebx
  113. movl %ecx,12(%esp)
  114. movl %edi,16(%esp)
  115. movl %ebx,(%esp)
  116. movl 16(%esi),%edx
  117. movl 20(%esi),%ebx
  118. movl 24(%esi),%ecx
  119. movl 28(%esi),%edi
  120. movl %ebx,24(%esp)
  121. movl %ecx,28(%esp)
  122. movl %edi,32(%esp)
  123. .align 4,0x90
  124. L00700_15:
  125. movl %edx,%ecx
  126. movl 24(%esp),%esi
  127. rorl $14,%ecx
  128. movl 28(%esp),%edi
  129. xorl %edx,%ecx
  130. xorl %edi,%esi
  131. movl 96(%esp),%ebx
  132. rorl $5,%ecx
  133. andl %edx,%esi
  134. movl %edx,20(%esp)
  135. xorl %ecx,%edx
  136. addl 32(%esp),%ebx
  137. xorl %edi,%esi
  138. rorl $6,%edx
  139. movl %eax,%ecx
  140. addl %esi,%ebx
  141. rorl $9,%ecx
  142. addl %edx,%ebx
  143. movl 8(%esp),%edi
  144. xorl %eax,%ecx
  145. movl %eax,4(%esp)
  146. leal -4(%esp),%esp
  147. rorl $11,%ecx
  148. movl (%ebp),%esi
  149. xorl %eax,%ecx
  150. movl 20(%esp),%edx
  151. xorl %edi,%eax
  152. rorl $2,%ecx
  153. addl %esi,%ebx
  154. movl %eax,(%esp)
  155. addl %ebx,%edx
  156. andl 4(%esp),%eax
  157. addl %ecx,%ebx
  158. xorl %edi,%eax
  159. addl $4,%ebp
  160. addl %ebx,%eax
  161. cmpl $3248222580,%esi
  162. jne L00700_15
  163. movl 156(%esp),%ecx
  164. jmp L00816_63
  165. .align 4,0x90
  166. L00816_63:
  167. movl %ecx,%ebx
  168. movl 104(%esp),%esi
  169. rorl $11,%ecx
  170. movl %esi,%edi
  171. rorl $2,%esi
  172. xorl %ebx,%ecx
  173. shrl $3,%ebx
  174. rorl $7,%ecx
  175. xorl %edi,%esi
  176. xorl %ecx,%ebx
  177. rorl $17,%esi
  178. addl 160(%esp),%ebx
  179. shrl $10,%edi
  180. addl 124(%esp),%ebx
  181. movl %edx,%ecx
  182. xorl %esi,%edi
  183. movl 24(%esp),%esi
  184. rorl $14,%ecx
  185. addl %edi,%ebx
  186. movl 28(%esp),%edi
  187. xorl %edx,%ecx
  188. xorl %edi,%esi
  189. movl %ebx,96(%esp)
  190. rorl $5,%ecx
  191. andl %edx,%esi
  192. movl %edx,20(%esp)
  193. xorl %ecx,%edx
  194. addl 32(%esp),%ebx
  195. xorl %edi,%esi
  196. rorl $6,%edx
  197. movl %eax,%ecx
  198. addl %esi,%ebx
  199. rorl $9,%ecx
  200. addl %edx,%ebx
  201. movl 8(%esp),%edi
  202. xorl %eax,%ecx
  203. movl %eax,4(%esp)
  204. leal -4(%esp),%esp
  205. rorl $11,%ecx
  206. movl (%ebp),%esi
  207. xorl %eax,%ecx
  208. movl 20(%esp),%edx
  209. xorl %edi,%eax
  210. rorl $2,%ecx
  211. addl %esi,%ebx
  212. movl %eax,(%esp)
  213. addl %ebx,%edx
  214. andl 4(%esp),%eax
  215. addl %ecx,%ebx
  216. xorl %edi,%eax
  217. movl 156(%esp),%ecx
  218. addl $4,%ebp
  219. addl %ebx,%eax
  220. cmpl $3329325298,%esi
  221. jne L00816_63
  222. movl 356(%esp),%esi
  223. movl 8(%esp),%ebx
  224. movl 16(%esp),%ecx
  225. addl (%esi),%eax
  226. addl 4(%esi),%ebx
  227. addl 8(%esi),%edi
  228. addl 12(%esi),%ecx
  229. movl %eax,(%esi)
  230. movl %ebx,4(%esi)
  231. movl %edi,8(%esi)
  232. movl %ecx,12(%esi)
  233. movl 24(%esp),%eax
  234. movl 28(%esp),%ebx
  235. movl 32(%esp),%ecx
  236. movl 360(%esp),%edi
  237. addl 16(%esi),%edx
  238. addl 20(%esi),%eax
  239. addl 24(%esi),%ebx
  240. addl 28(%esi),%ecx
  241. movl %edx,16(%esi)
  242. movl %eax,20(%esi)
  243. movl %ebx,24(%esi)
  244. movl %ecx,28(%esi)
  245. leal 356(%esp),%esp
  246. subl $256,%ebp
  247. cmpl 8(%esp),%edi
  248. jb L002loop
  249. movl 12(%esp),%esp
  250. popl %edi
  251. popl %esi
  252. popl %ebx
  253. popl %ebp
  254. ret
  255. .align 6,0x90
  256. L001K256:
  257. .long 1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298
  258. .long 66051,67438087,134810123,202182159
  259. .byte 83,72,65,50,53,54,32,98,108,111,99,107,32,116,114,97
  260. .byte 110,115,102,111,114,109,32,102,111,114,32,120,56,54,44,32
  261. .byte 67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97
  262. .byte 112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103
  263. .byte 62,0
  264. .align 4,0x90
  265. L006unrolled:
  266. leal -96(%esp),%esp
  267. movl (%esi),%eax
  268. movl 4(%esi),%ebp
  269. movl 8(%esi),%ecx
  270. movl 12(%esi),%ebx
  271. movl %ebp,4(%esp)
  272. xorl %ecx,%ebp
  273. movl %ecx,8(%esp)
  274. movl %ebx,12(%esp)
  275. movl 16(%esi),%edx
  276. movl 20(%esi),%ebx
  277. movl 24(%esi),%ecx
  278. movl 28(%esi),%esi
  279. movl %ebx,20(%esp)
  280. movl %ecx,24(%esp)
  281. movl %esi,28(%esp)
  282. jmp L009grand_loop
  283. .align 4,0x90
  284. L009grand_loop:
  285. movl (%edi),%ebx
  286. movl 4(%edi),%ecx
  287. bswap %ebx
  288. movl 8(%edi),%esi
  289. bswap %ecx
  290. movl %ebx,32(%esp)
  291. bswap %esi
  292. movl %ecx,36(%esp)
  293. movl %esi,40(%esp)
  294. movl 12(%edi),%ebx
  295. movl 16(%edi),%ecx
  296. bswap %ebx
  297. movl 20(%edi),%esi
  298. bswap %ecx
  299. movl %ebx,44(%esp)
  300. bswap %esi
  301. movl %ecx,48(%esp)
  302. movl %esi,52(%esp)
  303. movl 24(%edi),%ebx
  304. movl 28(%edi),%ecx
  305. bswap %ebx
  306. movl 32(%edi),%esi
  307. bswap %ecx
  308. movl %ebx,56(%esp)
  309. bswap %esi
  310. movl %ecx,60(%esp)
  311. movl %esi,64(%esp)
  312. movl 36(%edi),%ebx
  313. movl 40(%edi),%ecx
  314. bswap %ebx
  315. movl 44(%edi),%esi
  316. bswap %ecx
  317. movl %ebx,68(%esp)
  318. bswap %esi
  319. movl %ecx,72(%esp)
  320. movl %esi,76(%esp)
  321. movl 48(%edi),%ebx
  322. movl 52(%edi),%ecx
  323. bswap %ebx
  324. movl 56(%edi),%esi
  325. bswap %ecx
  326. movl %ebx,80(%esp)
  327. bswap %esi
  328. movl %ecx,84(%esp)
  329. movl %esi,88(%esp)
  330. movl 60(%edi),%ebx
  331. addl $64,%edi
  332. bswap %ebx
  333. movl %edi,100(%esp)
  334. movl %ebx,92(%esp)
  335. movl %edx,%ecx
  336. movl 20(%esp),%esi
  337. rorl $14,%edx
  338. movl 24(%esp),%edi
  339. xorl %ecx,%edx
  340. movl 32(%esp),%ebx
  341. xorl %edi,%esi
  342. rorl $5,%edx
  343. andl %ecx,%esi
  344. movl %ecx,16(%esp)
  345. xorl %ecx,%edx
  346. addl 28(%esp),%ebx
  347. xorl %esi,%edi
  348. rorl $6,%edx
  349. movl %eax,%ecx
  350. addl %edi,%ebx
  351. rorl $9,%ecx
  352. movl %eax,%esi
  353. movl 4(%esp),%edi
  354. xorl %eax,%ecx
  355. movl %eax,(%esp)
  356. xorl %edi,%eax
  357. rorl $11,%ecx
  358. andl %eax,%ebp
  359. leal 1116352408(%ebx,%edx,1),%edx
  360. xorl %esi,%ecx
  361. xorl %edi,%ebp
  362. rorl $2,%ecx
  363. addl %edx,%ebp
  364. addl 12(%esp),%edx
  365. addl %ecx,%ebp
  366. movl %edx,%esi
  367. movl 16(%esp),%ecx
  368. rorl $14,%edx
  369. movl 20(%esp),%edi
  370. xorl %esi,%edx
  371. movl 36(%esp),%ebx
  372. xorl %edi,%ecx
  373. rorl $5,%edx
  374. andl %esi,%ecx
  375. movl %esi,12(%esp)
  376. xorl %esi,%edx
  377. addl 24(%esp),%ebx
  378. xorl %ecx,%edi
  379. rorl $6,%edx
  380. movl %ebp,%esi
  381. addl %edi,%ebx
  382. rorl $9,%esi
  383. movl %ebp,%ecx
  384. movl (%esp),%edi
  385. xorl %ebp,%esi
  386. movl %ebp,28(%esp)
  387. xorl %edi,%ebp
  388. rorl $11,%esi
  389. andl %ebp,%eax
  390. leal 1899447441(%ebx,%edx,1),%edx
  391. xorl %ecx,%esi
  392. xorl %edi,%eax
  393. rorl $2,%esi
  394. addl %edx,%eax
  395. addl 8(%esp),%edx
  396. addl %esi,%eax
  397. movl %edx,%ecx
  398. movl 12(%esp),%esi
  399. rorl $14,%edx
  400. movl 16(%esp),%edi
  401. xorl %ecx,%edx
  402. movl 40(%esp),%ebx
  403. xorl %edi,%esi
  404. rorl $5,%edx
  405. andl %ecx,%esi
  406. movl %ecx,8(%esp)
  407. xorl %ecx,%edx
  408. addl 20(%esp),%ebx
  409. xorl %esi,%edi
  410. rorl $6,%edx
  411. movl %eax,%ecx
  412. addl %edi,%ebx
  413. rorl $9,%ecx
  414. movl %eax,%esi
  415. movl 28(%esp),%edi
  416. xorl %eax,%ecx
  417. movl %eax,24(%esp)
  418. xorl %edi,%eax
  419. rorl $11,%ecx
  420. andl %eax,%ebp
  421. leal 3049323471(%ebx,%edx,1),%edx
  422. xorl %esi,%ecx
  423. xorl %edi,%ebp
  424. rorl $2,%ecx
  425. addl %edx,%ebp
  426. addl 4(%esp),%edx
  427. addl %ecx,%ebp
  428. movl %edx,%esi
  429. movl 8(%esp),%ecx
  430. rorl $14,%edx
  431. movl 12(%esp),%edi
  432. xorl %esi,%edx
  433. movl 44(%esp),%ebx
  434. xorl %edi,%ecx
  435. rorl $5,%edx
  436. andl %esi,%ecx
  437. movl %esi,4(%esp)
  438. xorl %esi,%edx
  439. addl 16(%esp),%ebx
  440. xorl %ecx,%edi
  441. rorl $6,%edx
  442. movl %ebp,%esi
  443. addl %edi,%ebx
  444. rorl $9,%esi
  445. movl %ebp,%ecx
  446. movl 24(%esp),%edi
  447. xorl %ebp,%esi
  448. movl %ebp,20(%esp)
  449. xorl %edi,%ebp
  450. rorl $11,%esi
  451. andl %ebp,%eax
  452. leal 3921009573(%ebx,%edx,1),%edx
  453. xorl %ecx,%esi
  454. xorl %edi,%eax
  455. rorl $2,%esi
  456. addl %edx,%eax
  457. addl (%esp),%edx
  458. addl %esi,%eax
  459. movl %edx,%ecx
  460. movl 4(%esp),%esi
  461. rorl $14,%edx
  462. movl 8(%esp),%edi
  463. xorl %ecx,%edx
  464. movl 48(%esp),%ebx
  465. xorl %edi,%esi
  466. rorl $5,%edx
  467. andl %ecx,%esi
  468. movl %ecx,(%esp)
  469. xorl %ecx,%edx
  470. addl 12(%esp),%ebx
  471. xorl %esi,%edi
  472. rorl $6,%edx
  473. movl %eax,%ecx
  474. addl %edi,%ebx
  475. rorl $9,%ecx
  476. movl %eax,%esi
  477. movl 20(%esp),%edi
  478. xorl %eax,%ecx
  479. movl %eax,16(%esp)
  480. xorl %edi,%eax
  481. rorl $11,%ecx
  482. andl %eax,%ebp
  483. leal 961987163(%ebx,%edx,1),%edx
  484. xorl %esi,%ecx
  485. xorl %edi,%ebp
  486. rorl $2,%ecx
  487. addl %edx,%ebp
  488. addl 28(%esp),%edx
  489. addl %ecx,%ebp
  490. movl %edx,%esi
  491. movl (%esp),%ecx
  492. rorl $14,%edx
  493. movl 4(%esp),%edi
  494. xorl %esi,%edx
  495. movl 52(%esp),%ebx
  496. xorl %edi,%ecx
  497. rorl $5,%edx
  498. andl %esi,%ecx
  499. movl %esi,28(%esp)
  500. xorl %esi,%edx
  501. addl 8(%esp),%ebx
  502. xorl %ecx,%edi
  503. rorl $6,%edx
  504. movl %ebp,%esi
  505. addl %edi,%ebx
  506. rorl $9,%esi
  507. movl %ebp,%ecx
  508. movl 16(%esp),%edi
  509. xorl %ebp,%esi
  510. movl %ebp,12(%esp)
  511. xorl %edi,%ebp
  512. rorl $11,%esi
  513. andl %ebp,%eax
  514. leal 1508970993(%ebx,%edx,1),%edx
  515. xorl %ecx,%esi
  516. xorl %edi,%eax
  517. rorl $2,%esi
  518. addl %edx,%eax
  519. addl 24(%esp),%edx
  520. addl %esi,%eax
  521. movl %edx,%ecx
  522. movl 28(%esp),%esi
  523. rorl $14,%edx
  524. movl (%esp),%edi
  525. xorl %ecx,%edx
  526. movl 56(%esp),%ebx
  527. xorl %edi,%esi
  528. rorl $5,%edx
  529. andl %ecx,%esi
  530. movl %ecx,24(%esp)
  531. xorl %ecx,%edx
  532. addl 4(%esp),%ebx
  533. xorl %esi,%edi
  534. rorl $6,%edx
  535. movl %eax,%ecx
  536. addl %edi,%ebx
  537. rorl $9,%ecx
  538. movl %eax,%esi
  539. movl 12(%esp),%edi
  540. xorl %eax,%ecx
  541. movl %eax,8(%esp)
  542. xorl %edi,%eax
  543. rorl $11,%ecx
  544. andl %eax,%ebp
  545. leal 2453635748(%ebx,%edx,1),%edx
  546. xorl %esi,%ecx
  547. xorl %edi,%ebp
  548. rorl $2,%ecx
  549. addl %edx,%ebp
  550. addl 20(%esp),%edx
  551. addl %ecx,%ebp
  552. movl %edx,%esi
  553. movl 24(%esp),%ecx
  554. rorl $14,%edx
  555. movl 28(%esp),%edi
  556. xorl %esi,%edx
  557. movl 60(%esp),%ebx
  558. xorl %edi,%ecx
  559. rorl $5,%edx
  560. andl %esi,%ecx
  561. movl %esi,20(%esp)
  562. xorl %esi,%edx
  563. addl (%esp),%ebx
  564. xorl %ecx,%edi
  565. rorl $6,%edx
  566. movl %ebp,%esi
  567. addl %edi,%ebx
  568. rorl $9,%esi
  569. movl %ebp,%ecx
  570. movl 8(%esp),%edi
  571. xorl %ebp,%esi
  572. movl %ebp,4(%esp)
  573. xorl %edi,%ebp
  574. rorl $11,%esi
  575. andl %ebp,%eax
  576. leal 2870763221(%ebx,%edx,1),%edx
  577. xorl %ecx,%esi
  578. xorl %edi,%eax
  579. rorl $2,%esi
  580. addl %edx,%eax
  581. addl 16(%esp),%edx
  582. addl %esi,%eax
  583. movl %edx,%ecx
  584. movl 20(%esp),%esi
  585. rorl $14,%edx
  586. movl 24(%esp),%edi
  587. xorl %ecx,%edx
  588. movl 64(%esp),%ebx
  589. xorl %edi,%esi
  590. rorl $5,%edx
  591. andl %ecx,%esi
  592. movl %ecx,16(%esp)
  593. xorl %ecx,%edx
  594. addl 28(%esp),%ebx
  595. xorl %esi,%edi
  596. rorl $6,%edx
  597. movl %eax,%ecx
  598. addl %edi,%ebx
  599. rorl $9,%ecx
  600. movl %eax,%esi
  601. movl 4(%esp),%edi
  602. xorl %eax,%ecx
  603. movl %eax,(%esp)
  604. xorl %edi,%eax
  605. rorl $11,%ecx
  606. andl %eax,%ebp
  607. leal 3624381080(%ebx,%edx,1),%edx
  608. xorl %esi,%ecx
  609. xorl %edi,%ebp
  610. rorl $2,%ecx
  611. addl %edx,%ebp
  612. addl 12(%esp),%edx
  613. addl %ecx,%ebp
  614. movl %edx,%esi
  615. movl 16(%esp),%ecx
  616. rorl $14,%edx
  617. movl 20(%esp),%edi
  618. xorl %esi,%edx
  619. movl 68(%esp),%ebx
  620. xorl %edi,%ecx
  621. rorl $5,%edx
  622. andl %esi,%ecx
  623. movl %esi,12(%esp)
  624. xorl %esi,%edx
  625. addl 24(%esp),%ebx
  626. xorl %ecx,%edi
  627. rorl $6,%edx
  628. movl %ebp,%esi
  629. addl %edi,%ebx
  630. rorl $9,%esi
  631. movl %ebp,%ecx
  632. movl (%esp),%edi
  633. xorl %ebp,%esi
  634. movl %ebp,28(%esp)
  635. xorl %edi,%ebp
  636. rorl $11,%esi
  637. andl %ebp,%eax
  638. leal 310598401(%ebx,%edx,1),%edx
  639. xorl %ecx,%esi
  640. xorl %edi,%eax
  641. rorl $2,%esi
  642. addl %edx,%eax
  643. addl 8(%esp),%edx
  644. addl %esi,%eax
  645. movl %edx,%ecx
  646. movl 12(%esp),%esi
  647. rorl $14,%edx
  648. movl 16(%esp),%edi
  649. xorl %ecx,%edx
  650. movl 72(%esp),%ebx
  651. xorl %edi,%esi
  652. rorl $5,%edx
  653. andl %ecx,%esi
  654. movl %ecx,8(%esp)
  655. xorl %ecx,%edx
  656. addl 20(%esp),%ebx
  657. xorl %esi,%edi
  658. rorl $6,%edx
  659. movl %eax,%ecx
  660. addl %edi,%ebx
  661. rorl $9,%ecx
  662. movl %eax,%esi
  663. movl 28(%esp),%edi
  664. xorl %eax,%ecx
  665. movl %eax,24(%esp)
  666. xorl %edi,%eax
  667. rorl $11,%ecx
  668. andl %eax,%ebp
  669. leal 607225278(%ebx,%edx,1),%edx
  670. xorl %esi,%ecx
  671. xorl %edi,%ebp
  672. rorl $2,%ecx
  673. addl %edx,%ebp
  674. addl 4(%esp),%edx
  675. addl %ecx,%ebp
  676. movl %edx,%esi
  677. movl 8(%esp),%ecx
  678. rorl $14,%edx
  679. movl 12(%esp),%edi
  680. xorl %esi,%edx
  681. movl 76(%esp),%ebx
  682. xorl %edi,%ecx
  683. rorl $5,%edx
  684. andl %esi,%ecx
  685. movl %esi,4(%esp)
  686. xorl %esi,%edx
  687. addl 16(%esp),%ebx
  688. xorl %ecx,%edi
  689. rorl $6,%edx
  690. movl %ebp,%esi
  691. addl %edi,%ebx
  692. rorl $9,%esi
  693. movl %ebp,%ecx
  694. movl 24(%esp),%edi
  695. xorl %ebp,%esi
  696. movl %ebp,20(%esp)
  697. xorl %edi,%ebp
  698. rorl $11,%esi
  699. andl %ebp,%eax
  700. leal 1426881987(%ebx,%edx,1),%edx
  701. xorl %ecx,%esi
  702. xorl %edi,%eax
  703. rorl $2,%esi
  704. addl %edx,%eax
  705. addl (%esp),%edx
  706. addl %esi,%eax
  707. movl %edx,%ecx
  708. movl 4(%esp),%esi
  709. rorl $14,%edx
  710. movl 8(%esp),%edi
  711. xorl %ecx,%edx
  712. movl 80(%esp),%ebx
  713. xorl %edi,%esi
  714. rorl $5,%edx
  715. andl %ecx,%esi
  716. movl %ecx,(%esp)
  717. xorl %ecx,%edx
  718. addl 12(%esp),%ebx
  719. xorl %esi,%edi
  720. rorl $6,%edx
  721. movl %eax,%ecx
  722. addl %edi,%ebx
  723. rorl $9,%ecx
  724. movl %eax,%esi
  725. movl 20(%esp),%edi
  726. xorl %eax,%ecx
  727. movl %eax,16(%esp)
  728. xorl %edi,%eax
  729. rorl $11,%ecx
  730. andl %eax,%ebp
  731. leal 1925078388(%ebx,%edx,1),%edx
  732. xorl %esi,%ecx
  733. xorl %edi,%ebp
  734. rorl $2,%ecx
  735. addl %edx,%ebp
  736. addl 28(%esp),%edx
  737. addl %ecx,%ebp
  738. movl %edx,%esi
  739. movl (%esp),%ecx
  740. rorl $14,%edx
  741. movl 4(%esp),%edi
  742. xorl %esi,%edx
  743. movl 84(%esp),%ebx
  744. xorl %edi,%ecx
  745. rorl $5,%edx
  746. andl %esi,%ecx
  747. movl %esi,28(%esp)
  748. xorl %esi,%edx
  749. addl 8(%esp),%ebx
  750. xorl %ecx,%edi
  751. rorl $6,%edx
  752. movl %ebp,%esi
  753. addl %edi,%ebx
  754. rorl $9,%esi
  755. movl %ebp,%ecx
  756. movl 16(%esp),%edi
  757. xorl %ebp,%esi
  758. movl %ebp,12(%esp)
  759. xorl %edi,%ebp
  760. rorl $11,%esi
  761. andl %ebp,%eax
  762. leal 2162078206(%ebx,%edx,1),%edx
  763. xorl %ecx,%esi
  764. xorl %edi,%eax
  765. rorl $2,%esi
  766. addl %edx,%eax
  767. addl 24(%esp),%edx
  768. addl %esi,%eax
  769. movl %edx,%ecx
  770. movl 28(%esp),%esi
  771. rorl $14,%edx
  772. movl (%esp),%edi
  773. xorl %ecx,%edx
  774. movl 88(%esp),%ebx
  775. xorl %edi,%esi
  776. rorl $5,%edx
  777. andl %ecx,%esi
  778. movl %ecx,24(%esp)
  779. xorl %ecx,%edx
  780. addl 4(%esp),%ebx
  781. xorl %esi,%edi
  782. rorl $6,%edx
  783. movl %eax,%ecx
  784. addl %edi,%ebx
  785. rorl $9,%ecx
  786. movl %eax,%esi
  787. movl 12(%esp),%edi
  788. xorl %eax,%ecx
  789. movl %eax,8(%esp)
  790. xorl %edi,%eax
  791. rorl $11,%ecx
  792. andl %eax,%ebp
  793. leal 2614888103(%ebx,%edx,1),%edx
  794. xorl %esi,%ecx
  795. xorl %edi,%ebp
  796. rorl $2,%ecx
  797. addl %edx,%ebp
  798. addl 20(%esp),%edx
  799. addl %ecx,%ebp
  800. movl %edx,%esi
  801. movl 24(%esp),%ecx
  802. rorl $14,%edx
  803. movl 28(%esp),%edi
  804. xorl %esi,%edx
  805. movl 92(%esp),%ebx
  806. xorl %edi,%ecx
  807. rorl $5,%edx
  808. andl %esi,%ecx
  809. movl %esi,20(%esp)
  810. xorl %esi,%edx
  811. addl (%esp),%ebx
  812. xorl %ecx,%edi
  813. rorl $6,%edx
  814. movl %ebp,%esi
  815. addl %edi,%ebx
  816. rorl $9,%esi
  817. movl %ebp,%ecx
  818. movl 8(%esp),%edi
  819. xorl %ebp,%esi
  820. movl %ebp,4(%esp)
  821. xorl %edi,%ebp
  822. rorl $11,%esi
  823. andl %ebp,%eax
  824. leal 3248222580(%ebx,%edx,1),%edx
  825. xorl %ecx,%esi
  826. xorl %edi,%eax
  827. movl 36(%esp),%ecx
  828. rorl $2,%esi
  829. addl %edx,%eax
  830. addl 16(%esp),%edx
  831. addl %esi,%eax
  832. movl 88(%esp),%esi
  833. movl %ecx,%ebx
  834. rorl $11,%ecx
  835. movl %esi,%edi
  836. rorl $2,%esi
  837. xorl %ebx,%ecx
  838. shrl $3,%ebx
  839. rorl $7,%ecx
  840. xorl %edi,%esi
  841. xorl %ecx,%ebx
  842. rorl $17,%esi
  843. addl 32(%esp),%ebx
  844. shrl $10,%edi
  845. addl 68(%esp),%ebx
  846. movl %edx,%ecx
  847. xorl %esi,%edi
  848. movl 20(%esp),%esi
  849. rorl $14,%edx
  850. addl %edi,%ebx
  851. movl 24(%esp),%edi
  852. xorl %ecx,%edx
  853. movl %ebx,32(%esp)
  854. xorl %edi,%esi
  855. rorl $5,%edx
  856. andl %ecx,%esi
  857. movl %ecx,16(%esp)
  858. xorl %ecx,%edx
  859. addl 28(%esp),%ebx
  860. xorl %esi,%edi
  861. rorl $6,%edx
  862. movl %eax,%ecx
  863. addl %edi,%ebx
  864. rorl $9,%ecx
  865. movl %eax,%esi
  866. movl 4(%esp),%edi
  867. xorl %eax,%ecx
  868. movl %eax,(%esp)
  869. xorl %edi,%eax
  870. rorl $11,%ecx
  871. andl %eax,%ebp
  872. leal 3835390401(%ebx,%edx,1),%edx
  873. xorl %esi,%ecx
  874. xorl %edi,%ebp
  875. movl 40(%esp),%esi
  876. rorl $2,%ecx
  877. addl %edx,%ebp
  878. addl 12(%esp),%edx
  879. addl %ecx,%ebp
  880. movl 92(%esp),%ecx
  881. movl %esi,%ebx
  882. rorl $11,%esi
  883. movl %ecx,%edi
  884. rorl $2,%ecx
  885. xorl %ebx,%esi
  886. shrl $3,%ebx
  887. rorl $7,%esi
  888. xorl %edi,%ecx
  889. xorl %esi,%ebx
  890. rorl $17,%ecx
  891. addl 36(%esp),%ebx
  892. shrl $10,%edi
  893. addl 72(%esp),%ebx
  894. movl %edx,%esi
  895. xorl %ecx,%edi
  896. movl 16(%esp),%ecx
  897. rorl $14,%edx
  898. addl %edi,%ebx
  899. movl 20(%esp),%edi
  900. xorl %esi,%edx
  901. movl %ebx,36(%esp)
  902. xorl %edi,%ecx
  903. rorl $5,%edx
  904. andl %esi,%ecx
  905. movl %esi,12(%esp)
  906. xorl %esi,%edx
  907. addl 24(%esp),%ebx
  908. xorl %ecx,%edi
  909. rorl $6,%edx
  910. movl %ebp,%esi
  911. addl %edi,%ebx
  912. rorl $9,%esi
  913. movl %ebp,%ecx
  914. movl (%esp),%edi
  915. xorl %ebp,%esi
  916. movl %ebp,28(%esp)
  917. xorl %edi,%ebp
  918. rorl $11,%esi
  919. andl %ebp,%eax
  920. leal 4022224774(%ebx,%edx,1),%edx
  921. xorl %ecx,%esi
  922. xorl %edi,%eax
  923. movl 44(%esp),%ecx
  924. rorl $2,%esi
  925. addl %edx,%eax
  926. addl 8(%esp),%edx
  927. addl %esi,%eax
  928. movl 32(%esp),%esi
  929. movl %ecx,%ebx
  930. rorl $11,%ecx
  931. movl %esi,%edi
  932. rorl $2,%esi
  933. xorl %ebx,%ecx
  934. shrl $3,%ebx
  935. rorl $7,%ecx
  936. xorl %edi,%esi
  937. xorl %ecx,%ebx
  938. rorl $17,%esi
  939. addl 40(%esp),%ebx
  940. shrl $10,%edi
  941. addl 76(%esp),%ebx
  942. movl %edx,%ecx
  943. xorl %esi,%edi
  944. movl 12(%esp),%esi
  945. rorl $14,%edx
  946. addl %edi,%ebx
  947. movl 16(%esp),%edi
  948. xorl %ecx,%edx
  949. movl %ebx,40(%esp)
  950. xorl %edi,%esi
  951. rorl $5,%edx
  952. andl %ecx,%esi
  953. movl %ecx,8(%esp)
  954. xorl %ecx,%edx
  955. addl 20(%esp),%ebx
  956. xorl %esi,%edi
  957. rorl $6,%edx
  958. movl %eax,%ecx
  959. addl %edi,%ebx
  960. rorl $9,%ecx
  961. movl %eax,%esi
  962. movl 28(%esp),%edi
  963. xorl %eax,%ecx
  964. movl %eax,24(%esp)
  965. xorl %edi,%eax
  966. rorl $11,%ecx
  967. andl %eax,%ebp
  968. leal 264347078(%ebx,%edx,1),%edx
  969. xorl %esi,%ecx
  970. xorl %edi,%ebp
  971. movl 48(%esp),%esi
  972. rorl $2,%ecx
  973. addl %edx,%ebp
  974. addl 4(%esp),%edx
  975. addl %ecx,%ebp
  976. movl 36(%esp),%ecx
  977. movl %esi,%ebx
  978. rorl $11,%esi
  979. movl %ecx,%edi
  980. rorl $2,%ecx
  981. xorl %ebx,%esi
  982. shrl $3,%ebx
  983. rorl $7,%esi
  984. xorl %edi,%ecx
  985. xorl %esi,%ebx
  986. rorl $17,%ecx
  987. addl 44(%esp),%ebx
  988. shrl $10,%edi
  989. addl 80(%esp),%ebx
  990. movl %edx,%esi
  991. xorl %ecx,%edi
  992. movl 8(%esp),%ecx
  993. rorl $14,%edx
  994. addl %edi,%ebx
  995. movl 12(%esp),%edi
  996. xorl %esi,%edx
  997. movl %ebx,44(%esp)
  998. xorl %edi,%ecx
  999. rorl $5,%edx
  1000. andl %esi,%ecx
  1001. movl %esi,4(%esp)
  1002. xorl %esi,%edx
  1003. addl 16(%esp),%ebx
  1004. xorl %ecx,%edi
  1005. rorl $6,%edx
  1006. movl %ebp,%esi
  1007. addl %edi,%ebx
  1008. rorl $9,%esi
  1009. movl %ebp,%ecx
  1010. movl 24(%esp),%edi
  1011. xorl %ebp,%esi
  1012. movl %ebp,20(%esp)
  1013. xorl %edi,%ebp
  1014. rorl $11,%esi
  1015. andl %ebp,%eax
  1016. leal 604807628(%ebx,%edx,1),%edx
  1017. xorl %ecx,%esi
  1018. xorl %edi,%eax
  1019. movl 52(%esp),%ecx
  1020. rorl $2,%esi
  1021. addl %edx,%eax
  1022. addl (%esp),%edx
  1023. addl %esi,%eax
  1024. movl 40(%esp),%esi
  1025. movl %ecx,%ebx
  1026. rorl $11,%ecx
  1027. movl %esi,%edi
  1028. rorl $2,%esi
  1029. xorl %ebx,%ecx
  1030. shrl $3,%ebx
  1031. rorl $7,%ecx
  1032. xorl %edi,%esi
  1033. xorl %ecx,%ebx
  1034. rorl $17,%esi
  1035. addl 48(%esp),%ebx
  1036. shrl $10,%edi
  1037. addl 84(%esp),%ebx
  1038. movl %edx,%ecx
  1039. xorl %esi,%edi
  1040. movl 4(%esp),%esi
  1041. rorl $14,%edx
  1042. addl %edi,%ebx
  1043. movl 8(%esp),%edi
  1044. xorl %ecx,%edx
  1045. movl %ebx,48(%esp)
  1046. xorl %edi,%esi
  1047. rorl $5,%edx
  1048. andl %ecx,%esi
  1049. movl %ecx,(%esp)
  1050. xorl %ecx,%edx
  1051. addl 12(%esp),%ebx
  1052. xorl %esi,%edi
  1053. rorl $6,%edx
  1054. movl %eax,%ecx
  1055. addl %edi,%ebx
  1056. rorl $9,%ecx
  1057. movl %eax,%esi
  1058. movl 20(%esp),%edi
  1059. xorl %eax,%ecx
  1060. movl %eax,16(%esp)
  1061. xorl %edi,%eax
  1062. rorl $11,%ecx
  1063. andl %eax,%ebp
  1064. leal 770255983(%ebx,%edx,1),%edx
  1065. xorl %esi,%ecx
  1066. xorl %edi,%ebp
  1067. movl 56(%esp),%esi
  1068. rorl $2,%ecx
  1069. addl %edx,%ebp
  1070. addl 28(%esp),%edx
  1071. addl %ecx,%ebp
  1072. movl 44(%esp),%ecx
  1073. movl %esi,%ebx
  1074. rorl $11,%esi
  1075. movl %ecx,%edi
  1076. rorl $2,%ecx
  1077. xorl %ebx,%esi
  1078. shrl $3,%ebx
  1079. rorl $7,%esi
  1080. xorl %edi,%ecx
  1081. xorl %esi,%ebx
  1082. rorl $17,%ecx
  1083. addl 52(%esp),%ebx
  1084. shrl $10,%edi
  1085. addl 88(%esp),%ebx
  1086. movl %edx,%esi
  1087. xorl %ecx,%edi
  1088. movl (%esp),%ecx
  1089. rorl $14,%edx
  1090. addl %edi,%ebx
  1091. movl 4(%esp),%edi
  1092. xorl %esi,%edx
  1093. movl %ebx,52(%esp)
  1094. xorl %edi,%ecx
  1095. rorl $5,%edx
  1096. andl %esi,%ecx
  1097. movl %esi,28(%esp)
  1098. xorl %esi,%edx
  1099. addl 8(%esp),%ebx
  1100. xorl %ecx,%edi
  1101. rorl $6,%edx
  1102. movl %ebp,%esi
  1103. addl %edi,%ebx
  1104. rorl $9,%esi
  1105. movl %ebp,%ecx
  1106. movl 16(%esp),%edi
  1107. xorl %ebp,%esi
  1108. movl %ebp,12(%esp)
  1109. xorl %edi,%ebp
  1110. rorl $11,%esi
  1111. andl %ebp,%eax
  1112. leal 1249150122(%ebx,%edx,1),%edx
  1113. xorl %ecx,%esi
  1114. xorl %edi,%eax
  1115. movl 60(%esp),%ecx
  1116. rorl $2,%esi
  1117. addl %edx,%eax
  1118. addl 24(%esp),%edx
  1119. addl %esi,%eax
  1120. movl 48(%esp),%esi
  1121. movl %ecx,%ebx
  1122. rorl $11,%ecx
  1123. movl %esi,%edi
  1124. rorl $2,%esi
  1125. xorl %ebx,%ecx
  1126. shrl $3,%ebx
  1127. rorl $7,%ecx
  1128. xorl %edi,%esi
  1129. xorl %ecx,%ebx
  1130. rorl $17,%esi
  1131. addl 56(%esp),%ebx
  1132. shrl $10,%edi
  1133. addl 92(%esp),%ebx
  1134. movl %edx,%ecx
  1135. xorl %esi,%edi
  1136. movl 28(%esp),%esi
  1137. rorl $14,%edx
  1138. addl %edi,%ebx
  1139. movl (%esp),%edi
  1140. xorl %ecx,%edx
  1141. movl %ebx,56(%esp)
  1142. xorl %edi,%esi
  1143. rorl $5,%edx
  1144. andl %ecx,%esi
  1145. movl %ecx,24(%esp)
  1146. xorl %ecx,%edx
  1147. addl 4(%esp),%ebx
  1148. xorl %esi,%edi
  1149. rorl $6,%edx
  1150. movl %eax,%ecx
  1151. addl %edi,%ebx
  1152. rorl $9,%ecx
  1153. movl %eax,%esi
  1154. movl 12(%esp),%edi
  1155. xorl %eax,%ecx
  1156. movl %eax,8(%esp)
  1157. xorl %edi,%eax
  1158. rorl $11,%ecx
  1159. andl %eax,%ebp
  1160. leal 1555081692(%ebx,%edx,1),%edx
  1161. xorl %esi,%ecx
  1162. xorl %edi,%ebp
  1163. movl 64(%esp),%esi
  1164. rorl $2,%ecx
  1165. addl %edx,%ebp
  1166. addl 20(%esp),%edx
  1167. addl %ecx,%ebp
  1168. movl 52(%esp),%ecx
  1169. movl %esi,%ebx
  1170. rorl $11,%esi
  1171. movl %ecx,%edi
  1172. rorl $2,%ecx
  1173. xorl %ebx,%esi
  1174. shrl $3,%ebx
  1175. rorl $7,%esi
  1176. xorl %edi,%ecx
  1177. xorl %esi,%ebx
  1178. rorl $17,%ecx
  1179. addl 60(%esp),%ebx
  1180. shrl $10,%edi
  1181. addl 32(%esp),%ebx
  1182. movl %edx,%esi
  1183. xorl %ecx,%edi
  1184. movl 24(%esp),%ecx
  1185. rorl $14,%edx
  1186. addl %edi,%ebx
  1187. movl 28(%esp),%edi
  1188. xorl %esi,%edx
  1189. movl %ebx,60(%esp)
  1190. xorl %edi,%ecx
  1191. rorl $5,%edx
  1192. andl %esi,%ecx
  1193. movl %esi,20(%esp)
  1194. xorl %esi,%edx
  1195. addl (%esp),%ebx
  1196. xorl %ecx,%edi
  1197. rorl $6,%edx
  1198. movl %ebp,%esi
  1199. addl %edi,%ebx
  1200. rorl $9,%esi
  1201. movl %ebp,%ecx
  1202. movl 8(%esp),%edi
  1203. xorl %ebp,%esi
  1204. movl %ebp,4(%esp)
  1205. xorl %edi,%ebp
  1206. rorl $11,%esi
  1207. andl %ebp,%eax
  1208. leal 1996064986(%ebx,%edx,1),%edx
  1209. xorl %ecx,%esi
  1210. xorl %edi,%eax
  1211. movl 68(%esp),%ecx
  1212. rorl $2,%esi
  1213. addl %edx,%eax
  1214. addl 16(%esp),%edx
  1215. addl %esi,%eax
  1216. movl 56(%esp),%esi
  1217. movl %ecx,%ebx
  1218. rorl $11,%ecx
  1219. movl %esi,%edi
  1220. rorl $2,%esi
  1221. xorl %ebx,%ecx
  1222. shrl $3,%ebx
  1223. rorl $7,%ecx
  1224. xorl %edi,%esi
  1225. xorl %ecx,%ebx
  1226. rorl $17,%esi
  1227. addl 64(%esp),%ebx
  1228. shrl $10,%edi
  1229. addl 36(%esp),%ebx
  1230. movl %edx,%ecx
  1231. xorl %esi,%edi
  1232. movl 20(%esp),%esi
  1233. rorl $14,%edx
  1234. addl %edi,%ebx
  1235. movl 24(%esp),%edi
  1236. xorl %ecx,%edx
  1237. movl %ebx,64(%esp)
  1238. xorl %edi,%esi
  1239. rorl $5,%edx
  1240. andl %ecx,%esi
  1241. movl %ecx,16(%esp)
  1242. xorl %ecx,%edx
  1243. addl 28(%esp),%ebx
  1244. xorl %esi,%edi
  1245. rorl $6,%edx
  1246. movl %eax,%ecx
  1247. addl %edi,%ebx
  1248. rorl $9,%ecx
  1249. movl %eax,%esi
  1250. movl 4(%esp),%edi
  1251. xorl %eax,%ecx
  1252. movl %eax,(%esp)
  1253. xorl %edi,%eax
  1254. rorl $11,%ecx
  1255. andl %eax,%ebp
  1256. leal 2554220882(%ebx,%edx,1),%edx
  1257. xorl %esi,%ecx
  1258. xorl %edi,%ebp
  1259. movl 72(%esp),%esi
  1260. rorl $2,%ecx
  1261. addl %edx,%ebp
  1262. addl 12(%esp),%edx
  1263. addl %ecx,%ebp
  1264. movl 60(%esp),%ecx
  1265. movl %esi,%ebx
  1266. rorl $11,%esi
  1267. movl %ecx,%edi
  1268. rorl $2,%ecx
  1269. xorl %ebx,%esi
  1270. shrl $3,%ebx
  1271. rorl $7,%esi
  1272. xorl %edi,%ecx
  1273. xorl %esi,%ebx
  1274. rorl $17,%ecx
  1275. addl 68(%esp),%ebx
  1276. shrl $10,%edi
  1277. addl 40(%esp),%ebx
  1278. movl %edx,%esi
  1279. xorl %ecx,%edi
  1280. movl 16(%esp),%ecx
  1281. rorl $14,%edx
  1282. addl %edi,%ebx
  1283. movl 20(%esp),%edi
  1284. xorl %esi,%edx
  1285. movl %ebx,68(%esp)
  1286. xorl %edi,%ecx
  1287. rorl $5,%edx
  1288. andl %esi,%ecx
  1289. movl %esi,12(%esp)
  1290. xorl %esi,%edx
  1291. addl 24(%esp),%ebx
  1292. xorl %ecx,%edi
  1293. rorl $6,%edx
  1294. movl %ebp,%esi
  1295. addl %edi,%ebx
  1296. rorl $9,%esi
  1297. movl %ebp,%ecx
  1298. movl (%esp),%edi
  1299. xorl %ebp,%esi
  1300. movl %ebp,28(%esp)
  1301. xorl %edi,%ebp
  1302. rorl $11,%esi
  1303. andl %ebp,%eax
  1304. leal 2821834349(%ebx,%edx,1),%edx
  1305. xorl %ecx,%esi
  1306. xorl %edi,%eax
  1307. movl 76(%esp),%ecx
  1308. rorl $2,%esi
  1309. addl %edx,%eax
  1310. addl 8(%esp),%edx
  1311. addl %esi,%eax
  1312. movl 64(%esp),%esi
  1313. movl %ecx,%ebx
  1314. rorl $11,%ecx
  1315. movl %esi,%edi
  1316. rorl $2,%esi
  1317. xorl %ebx,%ecx
  1318. shrl $3,%ebx
  1319. rorl $7,%ecx
  1320. xorl %edi,%esi
  1321. xorl %ecx,%ebx
  1322. rorl $17,%esi
  1323. addl 72(%esp),%ebx
  1324. shrl $10,%edi
  1325. addl 44(%esp),%ebx
  1326. movl %edx,%ecx
  1327. xorl %esi,%edi
  1328. movl 12(%esp),%esi
  1329. rorl $14,%edx
  1330. addl %edi,%ebx
  1331. movl 16(%esp),%edi
  1332. xorl %ecx,%edx
  1333. movl %ebx,72(%esp)
  1334. xorl %edi,%esi
  1335. rorl $5,%edx
  1336. andl %ecx,%esi
  1337. movl %ecx,8(%esp)
  1338. xorl %ecx,%edx
  1339. addl 20(%esp),%ebx
  1340. xorl %esi,%edi
  1341. rorl $6,%edx
  1342. movl %eax,%ecx
  1343. addl %edi,%ebx
  1344. rorl $9,%ecx
  1345. movl %eax,%esi
  1346. movl 28(%esp),%edi
  1347. xorl %eax,%ecx
  1348. movl %eax,24(%esp)
  1349. xorl %edi,%eax
  1350. rorl $11,%ecx
  1351. andl %eax,%ebp
  1352. leal 2952996808(%ebx,%edx,1),%edx
  1353. xorl %esi,%ecx
  1354. xorl %edi,%ebp
  1355. movl 80(%esp),%esi
  1356. rorl $2,%ecx
  1357. addl %edx,%ebp
  1358. addl 4(%esp),%edx
  1359. addl %ecx,%ebp
  1360. movl 68(%esp),%ecx
  1361. movl %esi,%ebx
  1362. rorl $11,%esi
  1363. movl %ecx,%edi
  1364. rorl $2,%ecx
  1365. xorl %ebx,%esi
  1366. shrl $3,%ebx
  1367. rorl $7,%esi
  1368. xorl %edi,%ecx
  1369. xorl %esi,%ebx
  1370. rorl $17,%ecx
  1371. addl 76(%esp),%ebx
  1372. shrl $10,%edi
  1373. addl 48(%esp),%ebx
  1374. movl %edx,%esi
  1375. xorl %ecx,%edi
  1376. movl 8(%esp),%ecx
  1377. rorl $14,%edx
  1378. addl %edi,%ebx
  1379. movl 12(%esp),%edi
  1380. xorl %esi,%edx
  1381. movl %ebx,76(%esp)
  1382. xorl %edi,%ecx
  1383. rorl $5,%edx
  1384. andl %esi,%ecx
  1385. movl %esi,4(%esp)
  1386. xorl %esi,%edx
  1387. addl 16(%esp),%ebx
  1388. xorl %ecx,%edi
  1389. rorl $6,%edx
  1390. movl %ebp,%esi
  1391. addl %edi,%ebx
  1392. rorl $9,%esi
  1393. movl %ebp,%ecx
  1394. movl 24(%esp),%edi
  1395. xorl %ebp,%esi
  1396. movl %ebp,20(%esp)
  1397. xorl %edi,%ebp
  1398. rorl $11,%esi
  1399. andl %ebp,%eax
  1400. leal 3210313671(%ebx,%edx,1),%edx
  1401. xorl %ecx,%esi
  1402. xorl %edi,%eax
  1403. movl 84(%esp),%ecx
  1404. rorl $2,%esi
  1405. addl %edx,%eax
  1406. addl (%esp),%edx
  1407. addl %esi,%eax
  1408. movl 72(%esp),%esi
  1409. movl %ecx,%ebx
  1410. rorl $11,%ecx
  1411. movl %esi,%edi
  1412. rorl $2,%esi
  1413. xorl %ebx,%ecx
  1414. shrl $3,%ebx
  1415. rorl $7,%ecx
  1416. xorl %edi,%esi
  1417. xorl %ecx,%ebx
  1418. rorl $17,%esi
  1419. addl 80(%esp),%ebx
  1420. shrl $10,%edi
  1421. addl 52(%esp),%ebx
  1422. movl %edx,%ecx
  1423. xorl %esi,%edi
  1424. movl 4(%esp),%esi
  1425. rorl $14,%edx
  1426. addl %edi,%ebx
  1427. movl 8(%esp),%edi
  1428. xorl %ecx,%edx
  1429. movl %ebx,80(%esp)
  1430. xorl %edi,%esi
  1431. rorl $5,%edx
  1432. andl %ecx,%esi
  1433. movl %ecx,(%esp)
  1434. xorl %ecx,%edx
  1435. addl 12(%esp),%ebx
  1436. xorl %esi,%edi
  1437. rorl $6,%edx
  1438. movl %eax,%ecx
  1439. addl %edi,%ebx
  1440. rorl $9,%ecx
  1441. movl %eax,%esi
  1442. movl 20(%esp),%edi
  1443. xorl %eax,%ecx
  1444. movl %eax,16(%esp)
  1445. xorl %edi,%eax
  1446. rorl $11,%ecx
  1447. andl %eax,%ebp
  1448. leal 3336571891(%ebx,%edx,1),%edx
  1449. xorl %esi,%ecx
  1450. xorl %edi,%ebp
  1451. movl 88(%esp),%esi
  1452. rorl $2,%ecx
  1453. addl %edx,%ebp
  1454. addl 28(%esp),%edx
  1455. addl %ecx,%ebp
  1456. movl 76(%esp),%ecx
  1457. movl %esi,%ebx
  1458. rorl $11,%esi
  1459. movl %ecx,%edi
  1460. rorl $2,%ecx
  1461. xorl %ebx,%esi
  1462. shrl $3,%ebx
  1463. rorl $7,%esi
  1464. xorl %edi,%ecx
  1465. xorl %esi,%ebx
  1466. rorl $17,%ecx
  1467. addl 84(%esp),%ebx
  1468. shrl $10,%edi
  1469. addl 56(%esp),%ebx
  1470. movl %edx,%esi
  1471. xorl %ecx,%edi
  1472. movl (%esp),%ecx
  1473. rorl $14,%edx
  1474. addl %edi,%ebx
  1475. movl 4(%esp),%edi
  1476. xorl %esi,%edx
  1477. movl %ebx,84(%esp)
  1478. xorl %edi,%ecx
  1479. rorl $5,%edx
  1480. andl %esi,%ecx
  1481. movl %esi,28(%esp)
  1482. xorl %esi,%edx
  1483. addl 8(%esp),%ebx
  1484. xorl %ecx,%edi
  1485. rorl $6,%edx
  1486. movl %ebp,%esi
  1487. addl %edi,%ebx
  1488. rorl $9,%esi
  1489. movl %ebp,%ecx
  1490. movl 16(%esp),%edi
  1491. xorl %ebp,%esi
  1492. movl %ebp,12(%esp)
  1493. xorl %edi,%ebp
  1494. rorl $11,%esi
  1495. andl %ebp,%eax
  1496. leal 3584528711(%ebx,%edx,1),%edx
  1497. xorl %ecx,%esi
  1498. xorl %edi,%eax
  1499. movl 92(%esp),%ecx
  1500. rorl $2,%esi
  1501. addl %edx,%eax
  1502. addl 24(%esp),%edx
  1503. addl %esi,%eax
  1504. movl 80(%esp),%esi
  1505. movl %ecx,%ebx
  1506. rorl $11,%ecx
  1507. movl %esi,%edi
  1508. rorl $2,%esi
  1509. xorl %ebx,%ecx
  1510. shrl $3,%ebx
  1511. rorl $7,%ecx
  1512. xorl %edi,%esi
  1513. xorl %ecx,%ebx
  1514. rorl $17,%esi
  1515. addl 88(%esp),%ebx
  1516. shrl $10,%edi
  1517. addl 60(%esp),%ebx
  1518. movl %edx,%ecx
  1519. xorl %esi,%edi
  1520. movl 28(%esp),%esi
  1521. rorl $14,%edx
  1522. addl %edi,%ebx
  1523. movl (%esp),%edi
  1524. xorl %ecx,%edx
  1525. movl %ebx,88(%esp)
  1526. xorl %edi,%esi
  1527. rorl $5,%edx
  1528. andl %ecx,%esi
  1529. movl %ecx,24(%esp)
  1530. xorl %ecx,%edx
  1531. addl 4(%esp),%ebx
  1532. xorl %esi,%edi
  1533. rorl $6,%edx
  1534. movl %eax,%ecx
  1535. addl %edi,%ebx
  1536. rorl $9,%ecx
  1537. movl %eax,%esi
  1538. movl 12(%esp),%edi
  1539. xorl %eax,%ecx
  1540. movl %eax,8(%esp)
  1541. xorl %edi,%eax
  1542. rorl $11,%ecx
  1543. andl %eax,%ebp
  1544. leal 113926993(%ebx,%edx,1),%edx
  1545. xorl %esi,%ecx
  1546. xorl %edi,%ebp
  1547. movl 32(%esp),%esi
  1548. rorl $2,%ecx
  1549. addl %edx,%ebp
  1550. addl 20(%esp),%edx
  1551. addl %ecx,%ebp
  1552. movl 84(%esp),%ecx
  1553. movl %esi,%ebx
  1554. rorl $11,%esi
  1555. movl %ecx,%edi
  1556. rorl $2,%ecx
  1557. xorl %ebx,%esi
  1558. shrl $3,%ebx
  1559. rorl $7,%esi
  1560. xorl %edi,%ecx
  1561. xorl %esi,%ebx
  1562. rorl $17,%ecx
  1563. addl 92(%esp),%ebx
  1564. shrl $10,%edi
  1565. addl 64(%esp),%ebx
  1566. movl %edx,%esi
  1567. xorl %ecx,%edi
  1568. movl 24(%esp),%ecx
  1569. rorl $14,%edx
  1570. addl %edi,%ebx
  1571. movl 28(%esp),%edi
  1572. xorl %esi,%edx
  1573. movl %ebx,92(%esp)
  1574. xorl %edi,%ecx
  1575. rorl $5,%edx
  1576. andl %esi,%ecx
  1577. movl %esi,20(%esp)
  1578. xorl %esi,%edx
  1579. addl (%esp),%ebx
  1580. xorl %ecx,%edi
  1581. rorl $6,%edx
  1582. movl %ebp,%esi
  1583. addl %edi,%ebx
  1584. rorl $9,%esi
  1585. movl %ebp,%ecx
  1586. movl 8(%esp),%edi
  1587. xorl %ebp,%esi
  1588. movl %ebp,4(%esp)
  1589. xorl %edi,%ebp
  1590. rorl $11,%esi
  1591. andl %ebp,%eax
  1592. leal 338241895(%ebx,%edx,1),%edx
  1593. xorl %ecx,%esi
  1594. xorl %edi,%eax
  1595. movl 36(%esp),%ecx
  1596. rorl $2,%esi
  1597. addl %edx,%eax
  1598. addl 16(%esp),%edx
  1599. addl %esi,%eax
  1600. movl 88(%esp),%esi
  1601. movl %ecx,%ebx
  1602. rorl $11,%ecx
  1603. movl %esi,%edi
  1604. rorl $2,%esi
  1605. xorl %ebx,%ecx
  1606. shrl $3,%ebx
  1607. rorl $7,%ecx
  1608. xorl %edi,%esi
  1609. xorl %ecx,%ebx
  1610. rorl $17,%esi
  1611. addl 32(%esp),%ebx
  1612. shrl $10,%edi
  1613. addl 68(%esp),%ebx
  1614. movl %edx,%ecx
  1615. xorl %esi,%edi
  1616. movl 20(%esp),%esi
  1617. rorl $14,%edx
  1618. addl %edi,%ebx
  1619. movl 24(%esp),%edi
  1620. xorl %ecx,%edx
  1621. movl %ebx,32(%esp)
  1622. xorl %edi,%esi
  1623. rorl $5,%edx
  1624. andl %ecx,%esi
  1625. movl %ecx,16(%esp)
  1626. xorl %ecx,%edx
  1627. addl 28(%esp),%ebx
  1628. xorl %esi,%edi
  1629. rorl $6,%edx
  1630. movl %eax,%ecx
  1631. addl %edi,%ebx
  1632. rorl $9,%ecx
  1633. movl %eax,%esi
  1634. movl 4(%esp),%edi
  1635. xorl %eax,%ecx
  1636. movl %eax,(%esp)
  1637. xorl %edi,%eax
  1638. rorl $11,%ecx
  1639. andl %eax,%ebp
  1640. leal 666307205(%ebx,%edx,1),%edx
  1641. xorl %esi,%ecx
  1642. xorl %edi,%ebp
  1643. movl 40(%esp),%esi
  1644. rorl $2,%ecx
  1645. addl %edx,%ebp
  1646. addl 12(%esp),%edx
  1647. addl %ecx,%ebp
  1648. movl 92(%esp),%ecx
  1649. movl %esi,%ebx
  1650. rorl $11,%esi
  1651. movl %ecx,%edi
  1652. rorl $2,%ecx
  1653. xorl %ebx,%esi
  1654. shrl $3,%ebx
  1655. rorl $7,%esi
  1656. xorl %edi,%ecx
  1657. xorl %esi,%ebx
  1658. rorl $17,%ecx
  1659. addl 36(%esp),%ebx
  1660. shrl $10,%edi
  1661. addl 72(%esp),%ebx
  1662. movl %edx,%esi
  1663. xorl %ecx,%edi
  1664. movl 16(%esp),%ecx
  1665. rorl $14,%edx
  1666. addl %edi,%ebx
  1667. movl 20(%esp),%edi
  1668. xorl %esi,%edx
  1669. movl %ebx,36(%esp)
  1670. xorl %edi,%ecx
  1671. rorl $5,%edx
  1672. andl %esi,%ecx
  1673. movl %esi,12(%esp)
  1674. xorl %esi,%edx
  1675. addl 24(%esp),%ebx
  1676. xorl %ecx,%edi
  1677. rorl $6,%edx
  1678. movl %ebp,%esi
  1679. addl %edi,%ebx
  1680. rorl $9,%esi
  1681. movl %ebp,%ecx
  1682. movl (%esp),%edi
  1683. xorl %ebp,%esi
  1684. movl %ebp,28(%esp)
  1685. xorl %edi,%ebp
  1686. rorl $11,%esi
  1687. andl %ebp,%eax
  1688. leal 773529912(%ebx,%edx,1),%edx
  1689. xorl %ecx,%esi
  1690. xorl %edi,%eax
  1691. movl 44(%esp),%ecx
  1692. rorl $2,%esi
  1693. addl %edx,%eax
  1694. addl 8(%esp),%edx
  1695. addl %esi,%eax
  1696. movl 32(%esp),%esi
  1697. movl %ecx,%ebx
  1698. rorl $11,%ecx
  1699. movl %esi,%edi
  1700. rorl $2,%esi
  1701. xorl %ebx,%ecx
  1702. shrl $3,%ebx
  1703. rorl $7,%ecx
  1704. xorl %edi,%esi
  1705. xorl %ecx,%ebx
  1706. rorl $17,%esi
  1707. addl 40(%esp),%ebx
  1708. shrl $10,%edi
  1709. addl 76(%esp),%ebx
  1710. movl %edx,%ecx
  1711. xorl %esi,%edi
  1712. movl 12(%esp),%esi
  1713. rorl $14,%edx
  1714. addl %edi,%ebx
  1715. movl 16(%esp),%edi
  1716. xorl %ecx,%edx
  1717. movl %ebx,40(%esp)
  1718. xorl %edi,%esi
  1719. rorl $5,%edx
  1720. andl %ecx,%esi
  1721. movl %ecx,8(%esp)
  1722. xorl %ecx,%edx
  1723. addl 20(%esp),%ebx
  1724. xorl %esi,%edi
  1725. rorl $6,%edx
  1726. movl %eax,%ecx
  1727. addl %edi,%ebx
  1728. rorl $9,%ecx
  1729. movl %eax,%esi
  1730. movl 28(%esp),%edi
  1731. xorl %eax,%ecx
  1732. movl %eax,24(%esp)
  1733. xorl %edi,%eax
  1734. rorl $11,%ecx
  1735. andl %eax,%ebp
  1736. leal 1294757372(%ebx,%edx,1),%edx
  1737. xorl %esi,%ecx
  1738. xorl %edi,%ebp
  1739. movl 48(%esp),%esi
  1740. rorl $2,%ecx
  1741. addl %edx,%ebp
  1742. addl 4(%esp),%edx
  1743. addl %ecx,%ebp
  1744. movl 36(%esp),%ecx
  1745. movl %esi,%ebx
  1746. rorl $11,%esi
  1747. movl %ecx,%edi
  1748. rorl $2,%ecx
  1749. xorl %ebx,%esi
  1750. shrl $3,%ebx
  1751. rorl $7,%esi
  1752. xorl %edi,%ecx
  1753. xorl %esi,%ebx
  1754. rorl $17,%ecx
  1755. addl 44(%esp),%ebx
  1756. shrl $10,%edi
  1757. addl 80(%esp),%ebx
  1758. movl %edx,%esi
  1759. xorl %ecx,%edi
  1760. movl 8(%esp),%ecx
  1761. rorl $14,%edx
  1762. addl %edi,%ebx
  1763. movl 12(%esp),%edi
  1764. xorl %esi,%edx
  1765. movl %ebx,44(%esp)
  1766. xorl %edi,%ecx
  1767. rorl $5,%edx
  1768. andl %esi,%ecx
  1769. movl %esi,4(%esp)
  1770. xorl %esi,%edx
  1771. addl 16(%esp),%ebx
  1772. xorl %ecx,%edi
  1773. rorl $6,%edx
  1774. movl %ebp,%esi
  1775. addl %edi,%ebx
  1776. rorl $9,%esi
  1777. movl %ebp,%ecx
  1778. movl 24(%esp),%edi
  1779. xorl %ebp,%esi
  1780. movl %ebp,20(%esp)
  1781. xorl %edi,%ebp
  1782. rorl $11,%esi
  1783. andl %ebp,%eax
  1784. leal 1396182291(%ebx,%edx,1),%edx
  1785. xorl %ecx,%esi
  1786. xorl %edi,%eax
  1787. movl 52(%esp),%ecx
  1788. rorl $2,%esi
  1789. addl %edx,%eax
  1790. addl (%esp),%edx
  1791. addl %esi,%eax
  1792. movl 40(%esp),%esi
  1793. movl %ecx,%ebx
  1794. rorl $11,%ecx
  1795. movl %esi,%edi
  1796. rorl $2,%esi
  1797. xorl %ebx,%ecx
  1798. shrl $3,%ebx
  1799. rorl $7,%ecx
  1800. xorl %edi,%esi
  1801. xorl %ecx,%ebx
  1802. rorl $17,%esi
  1803. addl 48(%esp),%ebx
  1804. shrl $10,%edi
  1805. addl 84(%esp),%ebx
  1806. movl %edx,%ecx
  1807. xorl %esi,%edi
  1808. movl 4(%esp),%esi
  1809. rorl $14,%edx
  1810. addl %edi,%ebx
  1811. movl 8(%esp),%edi
  1812. xorl %ecx,%edx
  1813. movl %ebx,48(%esp)
  1814. xorl %edi,%esi
  1815. rorl $5,%edx
  1816. andl %ecx,%esi
  1817. movl %ecx,(%esp)
  1818. xorl %ecx,%edx
  1819. addl 12(%esp),%ebx
  1820. xorl %esi,%edi
  1821. rorl $6,%edx
  1822. movl %eax,%ecx
  1823. addl %edi,%ebx
  1824. rorl $9,%ecx
  1825. movl %eax,%esi
  1826. movl 20(%esp),%edi
  1827. xorl %eax,%ecx
  1828. movl %eax,16(%esp)
  1829. xorl %edi,%eax
  1830. rorl $11,%ecx
  1831. andl %eax,%ebp
  1832. leal 1695183700(%ebx,%edx,1),%edx
  1833. xorl %esi,%ecx
  1834. xorl %edi,%ebp
  1835. movl 56(%esp),%esi
  1836. rorl $2,%ecx
  1837. addl %edx,%ebp
  1838. addl 28(%esp),%edx
  1839. addl %ecx,%ebp
  1840. movl 44(%esp),%ecx
  1841. movl %esi,%ebx
  1842. rorl $11,%esi
  1843. movl %ecx,%edi
  1844. rorl $2,%ecx
  1845. xorl %ebx,%esi
  1846. shrl $3,%ebx
  1847. rorl $7,%esi
  1848. xorl %edi,%ecx
  1849. xorl %esi,%ebx
  1850. rorl $17,%ecx
  1851. addl 52(%esp),%ebx
  1852. shrl $10,%edi
  1853. addl 88(%esp),%ebx
  1854. movl %edx,%esi
  1855. xorl %ecx,%edi
  1856. movl (%esp),%ecx
  1857. rorl $14,%edx
  1858. addl %edi,%ebx
  1859. movl 4(%esp),%edi
  1860. xorl %esi,%edx
  1861. movl %ebx,52(%esp)
  1862. xorl %edi,%ecx
  1863. rorl $5,%edx
  1864. andl %esi,%ecx
  1865. movl %esi,28(%esp)
  1866. xorl %esi,%edx
  1867. addl 8(%esp),%ebx
  1868. xorl %ecx,%edi
  1869. rorl $6,%edx
  1870. movl %ebp,%esi
  1871. addl %edi,%ebx
  1872. rorl $9,%esi
  1873. movl %ebp,%ecx
  1874. movl 16(%esp),%edi
  1875. xorl %ebp,%esi
  1876. movl %ebp,12(%esp)
  1877. xorl %edi,%ebp
  1878. rorl $11,%esi
  1879. andl %ebp,%eax
  1880. leal 1986661051(%ebx,%edx,1),%edx
  1881. xorl %ecx,%esi
  1882. xorl %edi,%eax
  1883. movl 60(%esp),%ecx
  1884. rorl $2,%esi
  1885. addl %edx,%eax
  1886. addl 24(%esp),%edx
  1887. addl %esi,%eax
  1888. movl 48(%esp),%esi
  1889. movl %ecx,%ebx
  1890. rorl $11,%ecx
  1891. movl %esi,%edi
  1892. rorl $2,%esi
  1893. xorl %ebx,%ecx
  1894. shrl $3,%ebx
  1895. rorl $7,%ecx
  1896. xorl %edi,%esi
  1897. xorl %ecx,%ebx
  1898. rorl $17,%esi
  1899. addl 56(%esp),%ebx
  1900. shrl $10,%edi
  1901. addl 92(%esp),%ebx
  1902. movl %edx,%ecx
  1903. xorl %esi,%edi
  1904. movl 28(%esp),%esi
  1905. rorl $14,%edx
  1906. addl %edi,%ebx
  1907. movl (%esp),%edi
  1908. xorl %ecx,%edx
  1909. movl %ebx,56(%esp)
  1910. xorl %edi,%esi
  1911. rorl $5,%edx
  1912. andl %ecx,%esi
  1913. movl %ecx,24(%esp)
  1914. xorl %ecx,%edx
  1915. addl 4(%esp),%ebx
  1916. xorl %esi,%edi
  1917. rorl $6,%edx
  1918. movl %eax,%ecx
  1919. addl %edi,%ebx
  1920. rorl $9,%ecx
  1921. movl %eax,%esi
  1922. movl 12(%esp),%edi
  1923. xorl %eax,%ecx
  1924. movl %eax,8(%esp)
  1925. xorl %edi,%eax
  1926. rorl $11,%ecx
  1927. andl %eax,%ebp
  1928. leal 2177026350(%ebx,%edx,1),%edx
  1929. xorl %esi,%ecx
  1930. xorl %edi,%ebp
  1931. movl 64(%esp),%esi
  1932. rorl $2,%ecx
  1933. addl %edx,%ebp
  1934. addl 20(%esp),%edx
  1935. addl %ecx,%ebp
  1936. movl 52(%esp),%ecx
  1937. movl %esi,%ebx
  1938. rorl $11,%esi
  1939. movl %ecx,%edi
  1940. rorl $2,%ecx
  1941. xorl %ebx,%esi
  1942. shrl $3,%ebx
  1943. rorl $7,%esi
  1944. xorl %edi,%ecx
  1945. xorl %esi,%ebx
  1946. rorl $17,%ecx
  1947. addl 60(%esp),%ebx
  1948. shrl $10,%edi
  1949. addl 32(%esp),%ebx
  1950. movl %edx,%esi
  1951. xorl %ecx,%edi
  1952. movl 24(%esp),%ecx
  1953. rorl $14,%edx
  1954. addl %edi,%ebx
  1955. movl 28(%esp),%edi
  1956. xorl %esi,%edx
  1957. movl %ebx,60(%esp)
  1958. xorl %edi,%ecx
  1959. rorl $5,%edx
  1960. andl %esi,%ecx
  1961. movl %esi,20(%esp)
  1962. xorl %esi,%edx
  1963. addl (%esp),%ebx
  1964. xorl %ecx,%edi
  1965. rorl $6,%edx
  1966. movl %ebp,%esi
  1967. addl %edi,%ebx
  1968. rorl $9,%esi
  1969. movl %ebp,%ecx
  1970. movl 8(%esp),%edi
  1971. xorl %ebp,%esi
  1972. movl %ebp,4(%esp)
  1973. xorl %edi,%ebp
  1974. rorl $11,%esi
  1975. andl %ebp,%eax
  1976. leal 2456956037(%ebx,%edx,1),%edx
  1977. xorl %ecx,%esi
  1978. xorl %edi,%eax
  1979. movl 68(%esp),%ecx
  1980. rorl $2,%esi
  1981. addl %edx,%eax
  1982. addl 16(%esp),%edx
  1983. addl %esi,%eax
  1984. movl 56(%esp),%esi
  1985. movl %ecx,%ebx
  1986. rorl $11,%ecx
  1987. movl %esi,%edi
  1988. rorl $2,%esi
  1989. xorl %ebx,%ecx
  1990. shrl $3,%ebx
  1991. rorl $7,%ecx
  1992. xorl %edi,%esi
  1993. xorl %ecx,%ebx
  1994. rorl $17,%esi
  1995. addl 64(%esp),%ebx
  1996. shrl $10,%edi
  1997. addl 36(%esp),%ebx
  1998. movl %edx,%ecx
  1999. xorl %esi,%edi
  2000. movl 20(%esp),%esi
  2001. rorl $14,%edx
  2002. addl %edi,%ebx
  2003. movl 24(%esp),%edi
  2004. xorl %ecx,%edx
  2005. movl %ebx,64(%esp)
  2006. xorl %edi,%esi
  2007. rorl $5,%edx
  2008. andl %ecx,%esi
  2009. movl %ecx,16(%esp)
  2010. xorl %ecx,%edx
  2011. addl 28(%esp),%ebx
  2012. xorl %esi,%edi
  2013. rorl $6,%edx
  2014. movl %eax,%ecx
  2015. addl %edi,%ebx
  2016. rorl $9,%ecx
  2017. movl %eax,%esi
  2018. movl 4(%esp),%edi
  2019. xorl %eax,%ecx
  2020. movl %eax,(%esp)
  2021. xorl %edi,%eax
  2022. rorl $11,%ecx
  2023. andl %eax,%ebp
  2024. leal 2730485921(%ebx,%edx,1),%edx
  2025. xorl %esi,%ecx
  2026. xorl %edi,%ebp
  2027. movl 72(%esp),%esi
  2028. rorl $2,%ecx
  2029. addl %edx,%ebp
  2030. addl 12(%esp),%edx
  2031. addl %ecx,%ebp
  2032. movl 60(%esp),%ecx
  2033. movl %esi,%ebx
  2034. rorl $11,%esi
  2035. movl %ecx,%edi
  2036. rorl $2,%ecx
  2037. xorl %ebx,%esi
  2038. shrl $3,%ebx
  2039. rorl $7,%esi
  2040. xorl %edi,%ecx
  2041. xorl %esi,%ebx
  2042. rorl $17,%ecx
  2043. addl 68(%esp),%ebx
  2044. shrl $10,%edi
  2045. addl 40(%esp),%ebx
  2046. movl %edx,%esi
  2047. xorl %ecx,%edi
  2048. movl 16(%esp),%ecx
  2049. rorl $14,%edx
  2050. addl %edi,%ebx
  2051. movl 20(%esp),%edi
  2052. xorl %esi,%edx
  2053. movl %ebx,68(%esp)
  2054. xorl %edi,%ecx
  2055. rorl $5,%edx
  2056. andl %esi,%ecx
  2057. movl %esi,12(%esp)
  2058. xorl %esi,%edx
  2059. addl 24(%esp),%ebx
  2060. xorl %ecx,%edi
  2061. rorl $6,%edx
  2062. movl %ebp,%esi
  2063. addl %edi,%ebx
  2064. rorl $9,%esi
  2065. movl %ebp,%ecx
  2066. movl (%esp),%edi
  2067. xorl %ebp,%esi
  2068. movl %ebp,28(%esp)
  2069. xorl %edi,%ebp
  2070. rorl $11,%esi
  2071. andl %ebp,%eax
  2072. leal 2820302411(%ebx,%edx,1),%edx
  2073. xorl %ecx,%esi
  2074. xorl %edi,%eax
  2075. movl 76(%esp),%ecx
  2076. rorl $2,%esi
  2077. addl %edx,%eax
  2078. addl 8(%esp),%edx
  2079. addl %esi,%eax
  2080. movl 64(%esp),%esi
  2081. movl %ecx,%ebx
  2082. rorl $11,%ecx
  2083. movl %esi,%edi
  2084. rorl $2,%esi
  2085. xorl %ebx,%ecx
  2086. shrl $3,%ebx
  2087. rorl $7,%ecx
  2088. xorl %edi,%esi
  2089. xorl %ecx,%ebx
  2090. rorl $17,%esi
  2091. addl 72(%esp),%ebx
  2092. shrl $10,%edi
  2093. addl 44(%esp),%ebx
  2094. movl %edx,%ecx
  2095. xorl %esi,%edi
  2096. movl 12(%esp),%esi
  2097. rorl $14,%edx
  2098. addl %edi,%ebx
  2099. movl 16(%esp),%edi
  2100. xorl %ecx,%edx
  2101. movl %ebx,72(%esp)
  2102. xorl %edi,%esi
  2103. rorl $5,%edx
  2104. andl %ecx,%esi
  2105. movl %ecx,8(%esp)
  2106. xorl %ecx,%edx
  2107. addl 20(%esp),%ebx
  2108. xorl %esi,%edi
  2109. rorl $6,%edx
  2110. movl %eax,%ecx
  2111. addl %edi,%ebx
  2112. rorl $9,%ecx
  2113. movl %eax,%esi
  2114. movl 28(%esp),%edi
  2115. xorl %eax,%ecx
  2116. movl %eax,24(%esp)
  2117. xorl %edi,%eax
  2118. rorl $11,%ecx
  2119. andl %eax,%ebp
  2120. leal 3259730800(%ebx,%edx,1),%edx
  2121. xorl %esi,%ecx
  2122. xorl %edi,%ebp
  2123. movl 80(%esp),%esi
  2124. rorl $2,%ecx
  2125. addl %edx,%ebp
  2126. addl 4(%esp),%edx
  2127. addl %ecx,%ebp
  2128. movl 68(%esp),%ecx
  2129. movl %esi,%ebx
  2130. rorl $11,%esi
  2131. movl %ecx,%edi
  2132. rorl $2,%ecx
  2133. xorl %ebx,%esi
  2134. shrl $3,%ebx
  2135. rorl $7,%esi
  2136. xorl %edi,%ecx
  2137. xorl %esi,%ebx
  2138. rorl $17,%ecx
  2139. addl 76(%esp),%ebx
  2140. shrl $10,%edi
  2141. addl 48(%esp),%ebx
  2142. movl %edx,%esi
  2143. xorl %ecx,%edi
  2144. movl 8(%esp),%ecx
  2145. rorl $14,%edx
  2146. addl %edi,%ebx
  2147. movl 12(%esp),%edi
  2148. xorl %esi,%edx
  2149. movl %ebx,76(%esp)
  2150. xorl %edi,%ecx
  2151. rorl $5,%edx
  2152. andl %esi,%ecx
  2153. movl %esi,4(%esp)
  2154. xorl %esi,%edx
  2155. addl 16(%esp),%ebx
  2156. xorl %ecx,%edi
  2157. rorl $6,%edx
  2158. movl %ebp,%esi
  2159. addl %edi,%ebx
  2160. rorl $9,%esi
  2161. movl %ebp,%ecx
  2162. movl 24(%esp),%edi
  2163. xorl %ebp,%esi
  2164. movl %ebp,20(%esp)
  2165. xorl %edi,%ebp
  2166. rorl $11,%esi
  2167. andl %ebp,%eax
  2168. leal 3345764771(%ebx,%edx,1),%edx
  2169. xorl %ecx,%esi
  2170. xorl %edi,%eax
  2171. movl 84(%esp),%ecx
  2172. rorl $2,%esi
  2173. addl %edx,%eax
  2174. addl (%esp),%edx
  2175. addl %esi,%eax
  2176. movl 72(%esp),%esi
  2177. movl %ecx,%ebx
  2178. rorl $11,%ecx
  2179. movl %esi,%edi
  2180. rorl $2,%esi
  2181. xorl %ebx,%ecx
  2182. shrl $3,%ebx
  2183. rorl $7,%ecx
  2184. xorl %edi,%esi
  2185. xorl %ecx,%ebx
  2186. rorl $17,%esi
  2187. addl 80(%esp),%ebx
  2188. shrl $10,%edi
  2189. addl 52(%esp),%ebx
  2190. movl %edx,%ecx
  2191. xorl %esi,%edi
  2192. movl 4(%esp),%esi
  2193. rorl $14,%edx
  2194. addl %edi,%ebx
  2195. movl 8(%esp),%edi
  2196. xorl %ecx,%edx
  2197. movl %ebx,80(%esp)
  2198. xorl %edi,%esi
  2199. rorl $5,%edx
  2200. andl %ecx,%esi
  2201. movl %ecx,(%esp)
  2202. xorl %ecx,%edx
  2203. addl 12(%esp),%ebx
  2204. xorl %esi,%edi
  2205. rorl $6,%edx
  2206. movl %eax,%ecx
  2207. addl %edi,%ebx
  2208. rorl $9,%ecx
  2209. movl %eax,%esi
  2210. movl 20(%esp),%edi
  2211. xorl %eax,%ecx
  2212. movl %eax,16(%esp)
  2213. xorl %edi,%eax
  2214. rorl $11,%ecx
  2215. andl %eax,%ebp
  2216. leal 3516065817(%ebx,%edx,1),%edx
  2217. xorl %esi,%ecx
  2218. xorl %edi,%ebp
  2219. movl 88(%esp),%esi
  2220. rorl $2,%ecx
  2221. addl %edx,%ebp
  2222. addl 28(%esp),%edx
  2223. addl %ecx,%ebp
  2224. movl 76(%esp),%ecx
  2225. movl %esi,%ebx
  2226. rorl $11,%esi
  2227. movl %ecx,%edi
  2228. rorl $2,%ecx
  2229. xorl %ebx,%esi
  2230. shrl $3,%ebx
  2231. rorl $7,%esi
  2232. xorl %edi,%ecx
  2233. xorl %esi,%ebx
  2234. rorl $17,%ecx
  2235. addl 84(%esp),%ebx
  2236. shrl $10,%edi
  2237. addl 56(%esp),%ebx
  2238. movl %edx,%esi
  2239. xorl %ecx,%edi
  2240. movl (%esp),%ecx
  2241. rorl $14,%edx
  2242. addl %edi,%ebx
  2243. movl 4(%esp),%edi
  2244. xorl %esi,%edx
  2245. movl %ebx,84(%esp)
  2246. xorl %edi,%ecx
  2247. rorl $5,%edx
  2248. andl %esi,%ecx
  2249. movl %esi,28(%esp)
  2250. xorl %esi,%edx
  2251. addl 8(%esp),%ebx
  2252. xorl %ecx,%edi
  2253. rorl $6,%edx
  2254. movl %ebp,%esi
  2255. addl %edi,%ebx
  2256. rorl $9,%esi
  2257. movl %ebp,%ecx
  2258. movl 16(%esp),%edi
  2259. xorl %ebp,%esi
  2260. movl %ebp,12(%esp)
  2261. xorl %edi,%ebp
  2262. rorl $11,%esi
  2263. andl %ebp,%eax
  2264. leal 3600352804(%ebx,%edx,1),%edx
  2265. xorl %ecx,%esi
  2266. xorl %edi,%eax
  2267. movl 92(%esp),%ecx
  2268. rorl $2,%esi
  2269. addl %edx,%eax
  2270. addl 24(%esp),%edx
  2271. addl %esi,%eax
  2272. movl 80(%esp),%esi
  2273. movl %ecx,%ebx
  2274. rorl $11,%ecx
  2275. movl %esi,%edi
  2276. rorl $2,%esi
  2277. xorl %ebx,%ecx
  2278. shrl $3,%ebx
  2279. rorl $7,%ecx
  2280. xorl %edi,%esi
  2281. xorl %ecx,%ebx
  2282. rorl $17,%esi
  2283. addl 88(%esp),%ebx
  2284. shrl $10,%edi
  2285. addl 60(%esp),%ebx
  2286. movl %edx,%ecx
  2287. xorl %esi,%edi
  2288. movl 28(%esp),%esi
  2289. rorl $14,%edx
  2290. addl %edi,%ebx
  2291. movl (%esp),%edi
  2292. xorl %ecx,%edx
  2293. movl %ebx,88(%esp)
  2294. xorl %edi,%esi
  2295. rorl $5,%edx
  2296. andl %ecx,%esi
  2297. movl %ecx,24(%esp)
  2298. xorl %ecx,%edx
  2299. addl 4(%esp),%ebx
  2300. xorl %esi,%edi
  2301. rorl $6,%edx
  2302. movl %eax,%ecx
  2303. addl %edi,%ebx
  2304. rorl $9,%ecx
  2305. movl %eax,%esi
  2306. movl 12(%esp),%edi
  2307. xorl %eax,%ecx
  2308. movl %eax,8(%esp)
  2309. xorl %edi,%eax
  2310. rorl $11,%ecx
  2311. andl %eax,%ebp
  2312. leal 4094571909(%ebx,%edx,1),%edx
  2313. xorl %esi,%ecx
  2314. xorl %edi,%ebp
  2315. movl 32(%esp),%esi
  2316. rorl $2,%ecx
  2317. addl %edx,%ebp
  2318. addl 20(%esp),%edx
  2319. addl %ecx,%ebp
  2320. movl 84(%esp),%ecx
  2321. movl %esi,%ebx
  2322. rorl $11,%esi
  2323. movl %ecx,%edi
  2324. rorl $2,%ecx
  2325. xorl %ebx,%esi
  2326. shrl $3,%ebx
  2327. rorl $7,%esi
  2328. xorl %edi,%ecx
  2329. xorl %esi,%ebx
  2330. rorl $17,%ecx
  2331. addl 92(%esp),%ebx
  2332. shrl $10,%edi
  2333. addl 64(%esp),%ebx
  2334. movl %edx,%esi
  2335. xorl %ecx,%edi
  2336. movl 24(%esp),%ecx
  2337. rorl $14,%edx
  2338. addl %edi,%ebx
  2339. movl 28(%esp),%edi
  2340. xorl %esi,%edx
  2341. movl %ebx,92(%esp)
  2342. xorl %edi,%ecx
  2343. rorl $5,%edx
  2344. andl %esi,%ecx
  2345. movl %esi,20(%esp)
  2346. xorl %esi,%edx
  2347. addl (%esp),%ebx
  2348. xorl %ecx,%edi
  2349. rorl $6,%edx
  2350. movl %ebp,%esi
  2351. addl %edi,%ebx
  2352. rorl $9,%esi
  2353. movl %ebp,%ecx
  2354. movl 8(%esp),%edi
  2355. xorl %ebp,%esi
  2356. movl %ebp,4(%esp)
  2357. xorl %edi,%ebp
  2358. rorl $11,%esi
  2359. andl %ebp,%eax
  2360. leal 275423344(%ebx,%edx,1),%edx
  2361. xorl %ecx,%esi
  2362. xorl %edi,%eax
  2363. movl 36(%esp),%ecx
  2364. rorl $2,%esi
  2365. addl %edx,%eax
  2366. addl 16(%esp),%edx
  2367. addl %esi,%eax
  2368. movl 88(%esp),%esi
  2369. movl %ecx,%ebx
  2370. rorl $11,%ecx
  2371. movl %esi,%edi
  2372. rorl $2,%esi
  2373. xorl %ebx,%ecx
  2374. shrl $3,%ebx
  2375. rorl $7,%ecx
  2376. xorl %edi,%esi
  2377. xorl %ecx,%ebx
  2378. rorl $17,%esi
  2379. addl 32(%esp),%ebx
  2380. shrl $10,%edi
  2381. addl 68(%esp),%ebx
  2382. movl %edx,%ecx
  2383. xorl %esi,%edi
  2384. movl 20(%esp),%esi
  2385. rorl $14,%edx
  2386. addl %edi,%ebx
  2387. movl 24(%esp),%edi
  2388. xorl %ecx,%edx
  2389. movl %ebx,32(%esp)
  2390. xorl %edi,%esi
  2391. rorl $5,%edx
  2392. andl %ecx,%esi
  2393. movl %ecx,16(%esp)
  2394. xorl %ecx,%edx
  2395. addl 28(%esp),%ebx
  2396. xorl %esi,%edi
  2397. rorl $6,%edx
  2398. movl %eax,%ecx
  2399. addl %edi,%ebx
  2400. rorl $9,%ecx
  2401. movl %eax,%esi
  2402. movl 4(%esp),%edi
  2403. xorl %eax,%ecx
  2404. movl %eax,(%esp)
  2405. xorl %edi,%eax
  2406. rorl $11,%ecx
  2407. andl %eax,%ebp
  2408. leal 430227734(%ebx,%edx,1),%edx
  2409. xorl %esi,%ecx
  2410. xorl %edi,%ebp
  2411. movl 40(%esp),%esi
  2412. rorl $2,%ecx
  2413. addl %edx,%ebp
  2414. addl 12(%esp),%edx
  2415. addl %ecx,%ebp
  2416. movl 92(%esp),%ecx
  2417. movl %esi,%ebx
  2418. rorl $11,%esi
  2419. movl %ecx,%edi
  2420. rorl $2,%ecx
  2421. xorl %ebx,%esi
  2422. shrl $3,%ebx
  2423. rorl $7,%esi
  2424. xorl %edi,%ecx
  2425. xorl %esi,%ebx
  2426. rorl $17,%ecx
  2427. addl 36(%esp),%ebx
  2428. shrl $10,%edi
  2429. addl 72(%esp),%ebx
  2430. movl %edx,%esi
  2431. xorl %ecx,%edi
  2432. movl 16(%esp),%ecx
  2433. rorl $14,%edx
  2434. addl %edi,%ebx
  2435. movl 20(%esp),%edi
  2436. xorl %esi,%edx
  2437. movl %ebx,36(%esp)
  2438. xorl %edi,%ecx
  2439. rorl $5,%edx
  2440. andl %esi,%ecx
  2441. movl %esi,12(%esp)
  2442. xorl %esi,%edx
  2443. addl 24(%esp),%ebx
  2444. xorl %ecx,%edi
  2445. rorl $6,%edx
  2446. movl %ebp,%esi
  2447. addl %edi,%ebx
  2448. rorl $9,%esi
  2449. movl %ebp,%ecx
  2450. movl (%esp),%edi
  2451. xorl %ebp,%esi
  2452. movl %ebp,28(%esp)
  2453. xorl %edi,%ebp
  2454. rorl $11,%esi
  2455. andl %ebp,%eax
  2456. leal 506948616(%ebx,%edx,1),%edx
  2457. xorl %ecx,%esi
  2458. xorl %edi,%eax
  2459. movl 44(%esp),%ecx
  2460. rorl $2,%esi
  2461. addl %edx,%eax
  2462. addl 8(%esp),%edx
  2463. addl %esi,%eax
  2464. movl 32(%esp),%esi
  2465. movl %ecx,%ebx
  2466. rorl $11,%ecx
  2467. movl %esi,%edi
  2468. rorl $2,%esi
  2469. xorl %ebx,%ecx
  2470. shrl $3,%ebx
  2471. rorl $7,%ecx
  2472. xorl %edi,%esi
  2473. xorl %ecx,%ebx
  2474. rorl $17,%esi
  2475. addl 40(%esp),%ebx
  2476. shrl $10,%edi
  2477. addl 76(%esp),%ebx
  2478. movl %edx,%ecx
  2479. xorl %esi,%edi
  2480. movl 12(%esp),%esi
  2481. rorl $14,%edx
  2482. addl %edi,%ebx
  2483. movl 16(%esp),%edi
  2484. xorl %ecx,%edx
  2485. movl %ebx,40(%esp)
  2486. xorl %edi,%esi
  2487. rorl $5,%edx
  2488. andl %ecx,%esi
  2489. movl %ecx,8(%esp)
  2490. xorl %ecx,%edx
  2491. addl 20(%esp),%ebx
  2492. xorl %esi,%edi
  2493. rorl $6,%edx
  2494. movl %eax,%ecx
  2495. addl %edi,%ebx
  2496. rorl $9,%ecx
  2497. movl %eax,%esi
  2498. movl 28(%esp),%edi
  2499. xorl %eax,%ecx
  2500. movl %eax,24(%esp)
  2501. xorl %edi,%eax
  2502. rorl $11,%ecx
  2503. andl %eax,%ebp
  2504. leal 659060556(%ebx,%edx,1),%edx
  2505. xorl %esi,%ecx
  2506. xorl %edi,%ebp
  2507. movl 48(%esp),%esi
  2508. rorl $2,%ecx
  2509. addl %edx,%ebp
  2510. addl 4(%esp),%edx
  2511. addl %ecx,%ebp
  2512. movl 36(%esp),%ecx
  2513. movl %esi,%ebx
  2514. rorl $11,%esi
  2515. movl %ecx,%edi
  2516. rorl $2,%ecx
  2517. xorl %ebx,%esi
  2518. shrl $3,%ebx
  2519. rorl $7,%esi
  2520. xorl %edi,%ecx
  2521. xorl %esi,%ebx
  2522. rorl $17,%ecx
  2523. addl 44(%esp),%ebx
  2524. shrl $10,%edi
  2525. addl 80(%esp),%ebx
  2526. movl %edx,%esi
  2527. xorl %ecx,%edi
  2528. movl 8(%esp),%ecx
  2529. rorl $14,%edx
  2530. addl %edi,%ebx
  2531. movl 12(%esp),%edi
  2532. xorl %esi,%edx
  2533. movl %ebx,44(%esp)
  2534. xorl %edi,%ecx
  2535. rorl $5,%edx
  2536. andl %esi,%ecx
  2537. movl %esi,4(%esp)
  2538. xorl %esi,%edx
  2539. addl 16(%esp),%ebx
  2540. xorl %ecx,%edi
  2541. rorl $6,%edx
  2542. movl %ebp,%esi
  2543. addl %edi,%ebx
  2544. rorl $9,%esi
  2545. movl %ebp,%ecx
  2546. movl 24(%esp),%edi
  2547. xorl %ebp,%esi
  2548. movl %ebp,20(%esp)
  2549. xorl %edi,%ebp
  2550. rorl $11,%esi
  2551. andl %ebp,%eax
  2552. leal 883997877(%ebx,%edx,1),%edx
  2553. xorl %ecx,%esi
  2554. xorl %edi,%eax
  2555. movl 52(%esp),%ecx
  2556. rorl $2,%esi
  2557. addl %edx,%eax
  2558. addl (%esp),%edx
  2559. addl %esi,%eax
  2560. movl 40(%esp),%esi
  2561. movl %ecx,%ebx
  2562. rorl $11,%ecx
  2563. movl %esi,%edi
  2564. rorl $2,%esi
  2565. xorl %ebx,%ecx
  2566. shrl $3,%ebx
  2567. rorl $7,%ecx
  2568. xorl %edi,%esi
  2569. xorl %ecx,%ebx
  2570. rorl $17,%esi
  2571. addl 48(%esp),%ebx
  2572. shrl $10,%edi
  2573. addl 84(%esp),%ebx
  2574. movl %edx,%ecx
  2575. xorl %esi,%edi
  2576. movl 4(%esp),%esi
  2577. rorl $14,%edx
  2578. addl %edi,%ebx
  2579. movl 8(%esp),%edi
  2580. xorl %ecx,%edx
  2581. movl %ebx,48(%esp)
  2582. xorl %edi,%esi
  2583. rorl $5,%edx
  2584. andl %ecx,%esi
  2585. movl %ecx,(%esp)
  2586. xorl %ecx,%edx
  2587. addl 12(%esp),%ebx
  2588. xorl %esi,%edi
  2589. rorl $6,%edx
  2590. movl %eax,%ecx
  2591. addl %edi,%ebx
  2592. rorl $9,%ecx
  2593. movl %eax,%esi
  2594. movl 20(%esp),%edi
  2595. xorl %eax,%ecx
  2596. movl %eax,16(%esp)
  2597. xorl %edi,%eax
  2598. rorl $11,%ecx
  2599. andl %eax,%ebp
  2600. leal 958139571(%ebx,%edx,1),%edx
  2601. xorl %esi,%ecx
  2602. xorl %edi,%ebp
  2603. movl 56(%esp),%esi
  2604. rorl $2,%ecx
  2605. addl %edx,%ebp
  2606. addl 28(%esp),%edx
  2607. addl %ecx,%ebp
  2608. movl 44(%esp),%ecx
  2609. movl %esi,%ebx
  2610. rorl $11,%esi
  2611. movl %ecx,%edi
  2612. rorl $2,%ecx
  2613. xorl %ebx,%esi
  2614. shrl $3,%ebx
  2615. rorl $7,%esi
  2616. xorl %edi,%ecx
  2617. xorl %esi,%ebx
  2618. rorl $17,%ecx
  2619. addl 52(%esp),%ebx
  2620. shrl $10,%edi
  2621. addl 88(%esp),%ebx
  2622. movl %edx,%esi
  2623. xorl %ecx,%edi
  2624. movl (%esp),%ecx
  2625. rorl $14,%edx
  2626. addl %edi,%ebx
  2627. movl 4(%esp),%edi
  2628. xorl %esi,%edx
  2629. movl %ebx,52(%esp)
  2630. xorl %edi,%ecx
  2631. rorl $5,%edx
  2632. andl %esi,%ecx
  2633. movl %esi,28(%esp)
  2634. xorl %esi,%edx
  2635. addl 8(%esp),%ebx
  2636. xorl %ecx,%edi
  2637. rorl $6,%edx
  2638. movl %ebp,%esi
  2639. addl %edi,%ebx
  2640. rorl $9,%esi
  2641. movl %ebp,%ecx
  2642. movl 16(%esp),%edi
  2643. xorl %ebp,%esi
  2644. movl %ebp,12(%esp)
  2645. xorl %edi,%ebp
  2646. rorl $11,%esi
  2647. andl %ebp,%eax
  2648. leal 1322822218(%ebx,%edx,1),%edx
  2649. xorl %ecx,%esi
  2650. xorl %edi,%eax
  2651. movl 60(%esp),%ecx
  2652. rorl $2,%esi
  2653. addl %edx,%eax
  2654. addl 24(%esp),%edx
  2655. addl %esi,%eax
  2656. movl 48(%esp),%esi
  2657. movl %ecx,%ebx
  2658. rorl $11,%ecx
  2659. movl %esi,%edi
  2660. rorl $2,%esi
  2661. xorl %ebx,%ecx
  2662. shrl $3,%ebx
  2663. rorl $7,%ecx
  2664. xorl %edi,%esi
  2665. xorl %ecx,%ebx
  2666. rorl $17,%esi
  2667. addl 56(%esp),%ebx
  2668. shrl $10,%edi
  2669. addl 92(%esp),%ebx
  2670. movl %edx,%ecx
  2671. xorl %esi,%edi
  2672. movl 28(%esp),%esi
  2673. rorl $14,%edx
  2674. addl %edi,%ebx
  2675. movl (%esp),%edi
  2676. xorl %ecx,%edx
  2677. movl %ebx,56(%esp)
  2678. xorl %edi,%esi
  2679. rorl $5,%edx
  2680. andl %ecx,%esi
  2681. movl %ecx,24(%esp)
  2682. xorl %ecx,%edx
  2683. addl 4(%esp),%ebx
  2684. xorl %esi,%edi
  2685. rorl $6,%edx
  2686. movl %eax,%ecx
  2687. addl %edi,%ebx
  2688. rorl $9,%ecx
  2689. movl %eax,%esi
  2690. movl 12(%esp),%edi
  2691. xorl %eax,%ecx
  2692. movl %eax,8(%esp)
  2693. xorl %edi,%eax
  2694. rorl $11,%ecx
  2695. andl %eax,%ebp
  2696. leal 1537002063(%ebx,%edx,1),%edx
  2697. xorl %esi,%ecx
  2698. xorl %edi,%ebp
  2699. movl 64(%esp),%esi
  2700. rorl $2,%ecx
  2701. addl %edx,%ebp
  2702. addl 20(%esp),%edx
  2703. addl %ecx,%ebp
  2704. movl 52(%esp),%ecx
  2705. movl %esi,%ebx
  2706. rorl $11,%esi
  2707. movl %ecx,%edi
  2708. rorl $2,%ecx
  2709. xorl %ebx,%esi
  2710. shrl $3,%ebx
  2711. rorl $7,%esi
  2712. xorl %edi,%ecx
  2713. xorl %esi,%ebx
  2714. rorl $17,%ecx
  2715. addl 60(%esp),%ebx
  2716. shrl $10,%edi
  2717. addl 32(%esp),%ebx
  2718. movl %edx,%esi
  2719. xorl %ecx,%edi
  2720. movl 24(%esp),%ecx
  2721. rorl $14,%edx
  2722. addl %edi,%ebx
  2723. movl 28(%esp),%edi
  2724. xorl %esi,%edx
  2725. movl %ebx,60(%esp)
  2726. xorl %edi,%ecx
  2727. rorl $5,%edx
  2728. andl %esi,%ecx
  2729. movl %esi,20(%esp)
  2730. xorl %esi,%edx
  2731. addl (%esp),%ebx
  2732. xorl %ecx,%edi
  2733. rorl $6,%edx
  2734. movl %ebp,%esi
  2735. addl %edi,%ebx
  2736. rorl $9,%esi
  2737. movl %ebp,%ecx
  2738. movl 8(%esp),%edi
  2739. xorl %ebp,%esi
  2740. movl %ebp,4(%esp)
  2741. xorl %edi,%ebp
  2742. rorl $11,%esi
  2743. andl %ebp,%eax
  2744. leal 1747873779(%ebx,%edx,1),%edx
  2745. xorl %ecx,%esi
  2746. xorl %edi,%eax
  2747. movl 68(%esp),%ecx
  2748. rorl $2,%esi
  2749. addl %edx,%eax
  2750. addl 16(%esp),%edx
  2751. addl %esi,%eax
  2752. movl 56(%esp),%esi
  2753. movl %ecx,%ebx
  2754. rorl $11,%ecx
  2755. movl %esi,%edi
  2756. rorl $2,%esi
  2757. xorl %ebx,%ecx
  2758. shrl $3,%ebx
  2759. rorl $7,%ecx
  2760. xorl %edi,%esi
  2761. xorl %ecx,%ebx
  2762. rorl $17,%esi
  2763. addl 64(%esp),%ebx
  2764. shrl $10,%edi
  2765. addl 36(%esp),%ebx
  2766. movl %edx,%ecx
  2767. xorl %esi,%edi
  2768. movl 20(%esp),%esi
  2769. rorl $14,%edx
  2770. addl %edi,%ebx
  2771. movl 24(%esp),%edi
  2772. xorl %ecx,%edx
  2773. movl %ebx,64(%esp)
  2774. xorl %edi,%esi
  2775. rorl $5,%edx
  2776. andl %ecx,%esi
  2777. movl %ecx,16(%esp)
  2778. xorl %ecx,%edx
  2779. addl 28(%esp),%ebx
  2780. xorl %esi,%edi
  2781. rorl $6,%edx
  2782. movl %eax,%ecx
  2783. addl %edi,%ebx
  2784. rorl $9,%ecx
  2785. movl %eax,%esi
  2786. movl 4(%esp),%edi
  2787. xorl %eax,%ecx
  2788. movl %eax,(%esp)
  2789. xorl %edi,%eax
  2790. rorl $11,%ecx
  2791. andl %eax,%ebp
  2792. leal 1955562222(%ebx,%edx,1),%edx
  2793. xorl %esi,%ecx
  2794. xorl %edi,%ebp
  2795. movl 72(%esp),%esi
  2796. rorl $2,%ecx
  2797. addl %edx,%ebp
  2798. addl 12(%esp),%edx
  2799. addl %ecx,%ebp
  2800. movl 60(%esp),%ecx
  2801. movl %esi,%ebx
  2802. rorl $11,%esi
  2803. movl %ecx,%edi
  2804. rorl $2,%ecx
  2805. xorl %ebx,%esi
  2806. shrl $3,%ebx
  2807. rorl $7,%esi
  2808. xorl %edi,%ecx
  2809. xorl %esi,%ebx
  2810. rorl $17,%ecx
  2811. addl 68(%esp),%ebx
  2812. shrl $10,%edi
  2813. addl 40(%esp),%ebx
  2814. movl %edx,%esi
  2815. xorl %ecx,%edi
  2816. movl 16(%esp),%ecx
  2817. rorl $14,%edx
  2818. addl %edi,%ebx
  2819. movl 20(%esp),%edi
  2820. xorl %esi,%edx
  2821. movl %ebx,68(%esp)
  2822. xorl %edi,%ecx
  2823. rorl $5,%edx
  2824. andl %esi,%ecx
  2825. movl %esi,12(%esp)
  2826. xorl %esi,%edx
  2827. addl 24(%esp),%ebx
  2828. xorl %ecx,%edi
  2829. rorl $6,%edx
  2830. movl %ebp,%esi
  2831. addl %edi,%ebx
  2832. rorl $9,%esi
  2833. movl %ebp,%ecx
  2834. movl (%esp),%edi
  2835. xorl %ebp,%esi
  2836. movl %ebp,28(%esp)
  2837. xorl %edi,%ebp
  2838. rorl $11,%esi
  2839. andl %ebp,%eax
  2840. leal 2024104815(%ebx,%edx,1),%edx
  2841. xorl %ecx,%esi
  2842. xorl %edi,%eax
  2843. movl 76(%esp),%ecx
  2844. rorl $2,%esi
  2845. addl %edx,%eax
  2846. addl 8(%esp),%edx
  2847. addl %esi,%eax
  2848. movl 64(%esp),%esi
  2849. movl %ecx,%ebx
  2850. rorl $11,%ecx
  2851. movl %esi,%edi
  2852. rorl $2,%esi
  2853. xorl %ebx,%ecx
  2854. shrl $3,%ebx
  2855. rorl $7,%ecx
  2856. xorl %edi,%esi
  2857. xorl %ecx,%ebx
  2858. rorl $17,%esi
  2859. addl 72(%esp),%ebx
  2860. shrl $10,%edi
  2861. addl 44(%esp),%ebx
  2862. movl %edx,%ecx
  2863. xorl %esi,%edi
  2864. movl 12(%esp),%esi
  2865. rorl $14,%edx
  2866. addl %edi,%ebx
  2867. movl 16(%esp),%edi
  2868. xorl %ecx,%edx
  2869. movl %ebx,72(%esp)
  2870. xorl %edi,%esi
  2871. rorl $5,%edx
  2872. andl %ecx,%esi
  2873. movl %ecx,8(%esp)
  2874. xorl %ecx,%edx
  2875. addl 20(%esp),%ebx
  2876. xorl %esi,%edi
  2877. rorl $6,%edx
  2878. movl %eax,%ecx
  2879. addl %edi,%ebx
  2880. rorl $9,%ecx
  2881. movl %eax,%esi
  2882. movl 28(%esp),%edi
  2883. xorl %eax,%ecx
  2884. movl %eax,24(%esp)
  2885. xorl %edi,%eax
  2886. rorl $11,%ecx
  2887. andl %eax,%ebp
  2888. leal 2227730452(%ebx,%edx,1),%edx
  2889. xorl %esi,%ecx
  2890. xorl %edi,%ebp
  2891. movl 80(%esp),%esi
  2892. rorl $2,%ecx
  2893. addl %edx,%ebp
  2894. addl 4(%esp),%edx
  2895. addl %ecx,%ebp
  2896. movl 68(%esp),%ecx
  2897. movl %esi,%ebx
  2898. rorl $11,%esi
  2899. movl %ecx,%edi
  2900. rorl $2,%ecx
  2901. xorl %ebx,%esi
  2902. shrl $3,%ebx
  2903. rorl $7,%esi
  2904. xorl %edi,%ecx
  2905. xorl %esi,%ebx
  2906. rorl $17,%ecx
  2907. addl 76(%esp),%ebx
  2908. shrl $10,%edi
  2909. addl 48(%esp),%ebx
  2910. movl %edx,%esi
  2911. xorl %ecx,%edi
  2912. movl 8(%esp),%ecx
  2913. rorl $14,%edx
  2914. addl %edi,%ebx
  2915. movl 12(%esp),%edi
  2916. xorl %esi,%edx
  2917. movl %ebx,76(%esp)
  2918. xorl %edi,%ecx
  2919. rorl $5,%edx
  2920. andl %esi,%ecx
  2921. movl %esi,4(%esp)
  2922. xorl %esi,%edx
  2923. addl 16(%esp),%ebx
  2924. xorl %ecx,%edi
  2925. rorl $6,%edx
  2926. movl %ebp,%esi
  2927. addl %edi,%ebx
  2928. rorl $9,%esi
  2929. movl %ebp,%ecx
  2930. movl 24(%esp),%edi
  2931. xorl %ebp,%esi
  2932. movl %ebp,20(%esp)
  2933. xorl %edi,%ebp
  2934. rorl $11,%esi
  2935. andl %ebp,%eax
  2936. leal 2361852424(%ebx,%edx,1),%edx
  2937. xorl %ecx,%esi
  2938. xorl %edi,%eax
  2939. movl 84(%esp),%ecx
  2940. rorl $2,%esi
  2941. addl %edx,%eax
  2942. addl (%esp),%edx
  2943. addl %esi,%eax
  2944. movl 72(%esp),%esi
  2945. movl %ecx,%ebx
  2946. rorl $11,%ecx
  2947. movl %esi,%edi
  2948. rorl $2,%esi
  2949. xorl %ebx,%ecx
  2950. shrl $3,%ebx
  2951. rorl $7,%ecx
  2952. xorl %edi,%esi
  2953. xorl %ecx,%ebx
  2954. rorl $17,%esi
  2955. addl 80(%esp),%ebx
  2956. shrl $10,%edi
  2957. addl 52(%esp),%ebx
  2958. movl %edx,%ecx
  2959. xorl %esi,%edi
  2960. movl 4(%esp),%esi
  2961. rorl $14,%edx
  2962. addl %edi,%ebx
  2963. movl 8(%esp),%edi
  2964. xorl %ecx,%edx
  2965. movl %ebx,80(%esp)
  2966. xorl %edi,%esi
  2967. rorl $5,%edx
  2968. andl %ecx,%esi
  2969. movl %ecx,(%esp)
  2970. xorl %ecx,%edx
  2971. addl 12(%esp),%ebx
  2972. xorl %esi,%edi
  2973. rorl $6,%edx
  2974. movl %eax,%ecx
  2975. addl %edi,%ebx
  2976. rorl $9,%ecx
  2977. movl %eax,%esi
  2978. movl 20(%esp),%edi
  2979. xorl %eax,%ecx
  2980. movl %eax,16(%esp)
  2981. xorl %edi,%eax
  2982. rorl $11,%ecx
  2983. andl %eax,%ebp
  2984. leal 2428436474(%ebx,%edx,1),%edx
  2985. xorl %esi,%ecx
  2986. xorl %edi,%ebp
  2987. movl 88(%esp),%esi
  2988. rorl $2,%ecx
  2989. addl %edx,%ebp
  2990. addl 28(%esp),%edx
  2991. addl %ecx,%ebp
  2992. movl 76(%esp),%ecx
  2993. movl %esi,%ebx
  2994. rorl $11,%esi
  2995. movl %ecx,%edi
  2996. rorl $2,%ecx
  2997. xorl %ebx,%esi
  2998. shrl $3,%ebx
  2999. rorl $7,%esi
  3000. xorl %edi,%ecx
  3001. xorl %esi,%ebx
  3002. rorl $17,%ecx
  3003. addl 84(%esp),%ebx
  3004. shrl $10,%edi
  3005. addl 56(%esp),%ebx
  3006. movl %edx,%esi
  3007. xorl %ecx,%edi
  3008. movl (%esp),%ecx
  3009. rorl $14,%edx
  3010. addl %edi,%ebx
  3011. movl 4(%esp),%edi
  3012. xorl %esi,%edx
  3013. movl %ebx,84(%esp)
  3014. xorl %edi,%ecx
  3015. rorl $5,%edx
  3016. andl %esi,%ecx
  3017. movl %esi,28(%esp)
  3018. xorl %esi,%edx
  3019. addl 8(%esp),%ebx
  3020. xorl %ecx,%edi
  3021. rorl $6,%edx
  3022. movl %ebp,%esi
  3023. addl %edi,%ebx
  3024. rorl $9,%esi
  3025. movl %ebp,%ecx
  3026. movl 16(%esp),%edi
  3027. xorl %ebp,%esi
  3028. movl %ebp,12(%esp)
  3029. xorl %edi,%ebp
  3030. rorl $11,%esi
  3031. andl %ebp,%eax
  3032. leal 2756734187(%ebx,%edx,1),%edx
  3033. xorl %ecx,%esi
  3034. xorl %edi,%eax
  3035. movl 92(%esp),%ecx
  3036. rorl $2,%esi
  3037. addl %edx,%eax
  3038. addl 24(%esp),%edx
  3039. addl %esi,%eax
  3040. movl 80(%esp),%esi
  3041. movl %ecx,%ebx
  3042. rorl $11,%ecx
  3043. movl %esi,%edi
  3044. rorl $2,%esi
  3045. xorl %ebx,%ecx
  3046. shrl $3,%ebx
  3047. rorl $7,%ecx
  3048. xorl %edi,%esi
  3049. xorl %ecx,%ebx
  3050. rorl $17,%esi
  3051. addl 88(%esp),%ebx
  3052. shrl $10,%edi
  3053. addl 60(%esp),%ebx
  3054. movl %edx,%ecx
  3055. xorl %esi,%edi
  3056. movl 28(%esp),%esi
  3057. rorl $14,%edx
  3058. addl %edi,%ebx
  3059. movl (%esp),%edi
  3060. xorl %ecx,%edx
  3061. xorl %edi,%esi
  3062. rorl $5,%edx
  3063. andl %ecx,%esi
  3064. movl %ecx,24(%esp)
  3065. xorl %ecx,%edx
  3066. addl 4(%esp),%ebx
  3067. xorl %esi,%edi
  3068. rorl $6,%edx
  3069. movl %eax,%ecx
  3070. addl %edi,%ebx
  3071. rorl $9,%ecx
  3072. movl %eax,%esi
  3073. movl 12(%esp),%edi
  3074. xorl %eax,%ecx
  3075. movl %eax,8(%esp)
  3076. xorl %edi,%eax
  3077. rorl $11,%ecx
  3078. andl %eax,%ebp
  3079. leal 3204031479(%ebx,%edx,1),%edx
  3080. xorl %esi,%ecx
  3081. xorl %edi,%ebp
  3082. movl 32(%esp),%esi
  3083. rorl $2,%ecx
  3084. addl %edx,%ebp
  3085. addl 20(%esp),%edx
  3086. addl %ecx,%ebp
  3087. movl 84(%esp),%ecx
  3088. movl %esi,%ebx
  3089. rorl $11,%esi
  3090. movl %ecx,%edi
  3091. rorl $2,%ecx
  3092. xorl %ebx,%esi
  3093. shrl $3,%ebx
  3094. rorl $7,%esi
  3095. xorl %edi,%ecx
  3096. xorl %esi,%ebx
  3097. rorl $17,%ecx
  3098. addl 92(%esp),%ebx
  3099. shrl $10,%edi
  3100. addl 64(%esp),%ebx
  3101. movl %edx,%esi
  3102. xorl %ecx,%edi
  3103. movl 24(%esp),%ecx
  3104. rorl $14,%edx
  3105. addl %edi,%ebx
  3106. movl 28(%esp),%edi
  3107. xorl %esi,%edx
  3108. xorl %edi,%ecx
  3109. rorl $5,%edx
  3110. andl %esi,%ecx
  3111. movl %esi,20(%esp)
  3112. xorl %esi,%edx
  3113. addl (%esp),%ebx
  3114. xorl %ecx,%edi
  3115. rorl $6,%edx
  3116. movl %ebp,%esi
  3117. addl %edi,%ebx
  3118. rorl $9,%esi
  3119. movl %ebp,%ecx
  3120. movl 8(%esp),%edi
  3121. xorl %ebp,%esi
  3122. movl %ebp,4(%esp)
  3123. xorl %edi,%ebp
  3124. rorl $11,%esi
  3125. andl %ebp,%eax
  3126. leal 3329325298(%ebx,%edx,1),%edx
  3127. xorl %ecx,%esi
  3128. xorl %edi,%eax
  3129. rorl $2,%esi
  3130. addl %edx,%eax
  3131. addl 16(%esp),%edx
  3132. addl %esi,%eax
  3133. movl 96(%esp),%esi
  3134. xorl %edi,%ebp
  3135. movl 12(%esp),%ecx
  3136. addl (%esi),%eax
  3137. addl 4(%esi),%ebp
  3138. addl 8(%esi),%edi
  3139. addl 12(%esi),%ecx
  3140. movl %eax,(%esi)
  3141. movl %ebp,4(%esi)
  3142. movl %edi,8(%esi)
  3143. movl %ecx,12(%esi)
  3144. movl %ebp,4(%esp)
  3145. xorl %edi,%ebp
  3146. movl %edi,8(%esp)
  3147. movl %ecx,12(%esp)
  3148. movl 20(%esp),%edi
  3149. movl 24(%esp),%ebx
  3150. movl 28(%esp),%ecx
  3151. addl 16(%esi),%edx
  3152. addl 20(%esi),%edi
  3153. addl 24(%esi),%ebx
  3154. addl 28(%esi),%ecx
  3155. movl %edx,16(%esi)
  3156. movl %edi,20(%esi)
  3157. movl %ebx,24(%esi)
  3158. movl %ecx,28(%esi)
  3159. movl %edi,20(%esp)
  3160. movl 100(%esp),%edi
  3161. movl %ebx,24(%esp)
  3162. movl %ecx,28(%esp)
  3163. cmpl 104(%esp),%edi
  3164. jb L009grand_loop
  3165. movl 108(%esp),%esp
  3166. popl %edi
  3167. popl %esi
  3168. popl %ebx
  3169. popl %ebp
  3170. ret
  3171. .align 5,0x90
  3172. L005SSSE3:
  3173. leal -96(%esp),%esp
  3174. movl (%esi),%eax
  3175. movl 4(%esi),%ebx
  3176. movl 8(%esi),%ecx
  3177. movl 12(%esi),%edi
  3178. movl %ebx,4(%esp)
  3179. xorl %ecx,%ebx
  3180. movl %ecx,8(%esp)
  3181. movl %edi,12(%esp)
  3182. movl 16(%esi),%edx
  3183. movl 20(%esi),%edi
  3184. movl 24(%esi),%ecx
  3185. movl 28(%esi),%esi
  3186. movl %edi,20(%esp)
  3187. movl 100(%esp),%edi
  3188. movl %ecx,24(%esp)
  3189. movl %esi,28(%esp)
  3190. movdqa 256(%ebp),%xmm7
  3191. jmp L010grand_ssse3
  3192. .align 4,0x90
  3193. L010grand_ssse3:
  3194. movdqu (%edi),%xmm0
  3195. movdqu 16(%edi),%xmm1
  3196. movdqu 32(%edi),%xmm2
  3197. movdqu 48(%edi),%xmm3
  3198. addl $64,%edi
  3199. .byte 102,15,56,0,199
  3200. movl %edi,100(%esp)
  3201. .byte 102,15,56,0,207
  3202. movdqa (%ebp),%xmm4
  3203. .byte 102,15,56,0,215
  3204. movdqa 16(%ebp),%xmm5
  3205. paddd %xmm0,%xmm4
  3206. .byte 102,15,56,0,223
  3207. movdqa 32(%ebp),%xmm6
  3208. paddd %xmm1,%xmm5
  3209. movdqa 48(%ebp),%xmm7
  3210. movdqa %xmm4,32(%esp)
  3211. paddd %xmm2,%xmm6
  3212. movdqa %xmm5,48(%esp)
  3213. paddd %xmm3,%xmm7
  3214. movdqa %xmm6,64(%esp)
  3215. movdqa %xmm7,80(%esp)
  3216. jmp L011ssse3_00_47
  3217. .align 4,0x90
  3218. L011ssse3_00_47:
  3219. addl $64,%ebp
  3220. movl %edx,%ecx
  3221. movdqa %xmm1,%xmm4
  3222. rorl $14,%edx
  3223. movl 20(%esp),%esi
  3224. movdqa %xmm3,%xmm7
  3225. xorl %ecx,%edx
  3226. movl 24(%esp),%edi
  3227. .byte 102,15,58,15,224,4
  3228. xorl %edi,%esi
  3229. rorl $5,%edx
  3230. andl %ecx,%esi
  3231. .byte 102,15,58,15,250,4
  3232. movl %ecx,16(%esp)
  3233. xorl %ecx,%edx
  3234. xorl %esi,%edi
  3235. movdqa %xmm4,%xmm5
  3236. rorl $6,%edx
  3237. movl %eax,%ecx
  3238. movdqa %xmm4,%xmm6
  3239. addl %edi,%edx
  3240. movl 4(%esp),%edi
  3241. psrld $3,%xmm4
  3242. movl %eax,%esi
  3243. rorl $9,%ecx
  3244. paddd %xmm7,%xmm0
  3245. movl %eax,(%esp)
  3246. xorl %eax,%ecx
  3247. psrld $7,%xmm6
  3248. xorl %edi,%eax
  3249. addl 28(%esp),%edx
  3250. rorl $11,%ecx
  3251. andl %eax,%ebx
  3252. pshufd $250,%xmm3,%xmm7
  3253. xorl %esi,%ecx
  3254. addl 32(%esp),%edx
  3255. pslld $14,%xmm5
  3256. xorl %edi,%ebx
  3257. rorl $2,%ecx
  3258. pxor %xmm6,%xmm4
  3259. addl %edx,%ebx
  3260. addl 12(%esp),%edx
  3261. psrld $11,%xmm6
  3262. addl %ecx,%ebx
  3263. movl %edx,%ecx
  3264. rorl $14,%edx
  3265. pxor %xmm5,%xmm4
  3266. movl 16(%esp),%esi
  3267. xorl %ecx,%edx
  3268. pslld $11,%xmm5
  3269. movl 20(%esp),%edi
  3270. xorl %edi,%esi
  3271. rorl $5,%edx
  3272. pxor %xmm6,%xmm4
  3273. andl %ecx,%esi
  3274. movl %ecx,12(%esp)
  3275. movdqa %xmm7,%xmm6
  3276. xorl %ecx,%edx
  3277. xorl %esi,%edi
  3278. rorl $6,%edx
  3279. pxor %xmm5,%xmm4
  3280. movl %ebx,%ecx
  3281. addl %edi,%edx
  3282. psrld $10,%xmm7
  3283. movl (%esp),%edi
  3284. movl %ebx,%esi
  3285. rorl $9,%ecx
  3286. paddd %xmm4,%xmm0
  3287. movl %ebx,28(%esp)
  3288. xorl %ebx,%ecx
  3289. psrlq $17,%xmm6
  3290. xorl %edi,%ebx
  3291. addl 24(%esp),%edx
  3292. rorl $11,%ecx
  3293. pxor %xmm6,%xmm7
  3294. andl %ebx,%eax
  3295. xorl %esi,%ecx
  3296. psrlq $2,%xmm6
  3297. addl 36(%esp),%edx
  3298. xorl %edi,%eax
  3299. rorl $2,%ecx
  3300. pxor %xmm6,%xmm7
  3301. addl %edx,%eax
  3302. addl 8(%esp),%edx
  3303. pshufd $128,%xmm7,%xmm7
  3304. addl %ecx,%eax
  3305. movl %edx,%ecx
  3306. rorl $14,%edx
  3307. movl 12(%esp),%esi
  3308. xorl %ecx,%edx
  3309. movl 16(%esp),%edi
  3310. xorl %edi,%esi
  3311. rorl $5,%edx
  3312. andl %ecx,%esi
  3313. psrldq $8,%xmm7
  3314. movl %ecx,8(%esp)
  3315. xorl %ecx,%edx
  3316. xorl %esi,%edi
  3317. paddd %xmm7,%xmm0
  3318. rorl $6,%edx
  3319. movl %eax,%ecx
  3320. addl %edi,%edx
  3321. movl 28(%esp),%edi
  3322. movl %eax,%esi
  3323. rorl $9,%ecx
  3324. movl %eax,24(%esp)
  3325. pshufd $80,%xmm0,%xmm7
  3326. xorl %eax,%ecx
  3327. xorl %edi,%eax
  3328. addl 20(%esp),%edx
  3329. movdqa %xmm7,%xmm6
  3330. rorl $11,%ecx
  3331. psrld $10,%xmm7
  3332. andl %eax,%ebx
  3333. psrlq $17,%xmm6
  3334. xorl %esi,%ecx
  3335. addl 40(%esp),%edx
  3336. xorl %edi,%ebx
  3337. rorl $2,%ecx
  3338. pxor %xmm6,%xmm7
  3339. addl %edx,%ebx
  3340. addl 4(%esp),%edx
  3341. psrlq $2,%xmm6
  3342. addl %ecx,%ebx
  3343. movl %edx,%ecx
  3344. rorl $14,%edx
  3345. pxor %xmm6,%xmm7
  3346. movl 8(%esp),%esi
  3347. xorl %ecx,%edx
  3348. movl 12(%esp),%edi
  3349. pshufd $8,%xmm7,%xmm7
  3350. xorl %edi,%esi
  3351. rorl $5,%edx
  3352. movdqa (%ebp),%xmm6
  3353. andl %ecx,%esi
  3354. movl %ecx,4(%esp)
  3355. pslldq $8,%xmm7
  3356. xorl %ecx,%edx
  3357. xorl %esi,%edi
  3358. rorl $6,%edx
  3359. movl %ebx,%ecx
  3360. addl %edi,%edx
  3361. movl 24(%esp),%edi
  3362. movl %ebx,%esi
  3363. rorl $9,%ecx
  3364. paddd %xmm7,%xmm0
  3365. movl %ebx,20(%esp)
  3366. xorl %ebx,%ecx
  3367. xorl %edi,%ebx
  3368. addl 16(%esp),%edx
  3369. paddd %xmm0,%xmm6
  3370. rorl $11,%ecx
  3371. andl %ebx,%eax
  3372. xorl %esi,%ecx
  3373. addl 44(%esp),%edx
  3374. xorl %edi,%eax
  3375. rorl $2,%ecx
  3376. addl %edx,%eax
  3377. addl (%esp),%edx
  3378. addl %ecx,%eax
  3379. movdqa %xmm6,32(%esp)
  3380. movl %edx,%ecx
  3381. movdqa %xmm2,%xmm4
  3382. rorl $14,%edx
  3383. movl 4(%esp),%esi
  3384. movdqa %xmm0,%xmm7
  3385. xorl %ecx,%edx
  3386. movl 8(%esp),%edi
  3387. .byte 102,15,58,15,225,4
  3388. xorl %edi,%esi
  3389. rorl $5,%edx
  3390. andl %ecx,%esi
  3391. .byte 102,15,58,15,251,4
  3392. movl %ecx,(%esp)
  3393. xorl %ecx,%edx
  3394. xorl %esi,%edi
  3395. movdqa %xmm4,%xmm5
  3396. rorl $6,%edx
  3397. movl %eax,%ecx
  3398. movdqa %xmm4,%xmm6
  3399. addl %edi,%edx
  3400. movl 20(%esp),%edi
  3401. psrld $3,%xmm4
  3402. movl %eax,%esi
  3403. rorl $9,%ecx
  3404. paddd %xmm7,%xmm1
  3405. movl %eax,16(%esp)
  3406. xorl %eax,%ecx
  3407. psrld $7,%xmm6
  3408. xorl %edi,%eax
  3409. addl 12(%esp),%edx
  3410. rorl $11,%ecx
  3411. andl %eax,%ebx
  3412. pshufd $250,%xmm0,%xmm7
  3413. xorl %esi,%ecx
  3414. addl 48(%esp),%edx
  3415. pslld $14,%xmm5
  3416. xorl %edi,%ebx
  3417. rorl $2,%ecx
  3418. pxor %xmm6,%xmm4
  3419. addl %edx,%ebx
  3420. addl 28(%esp),%edx
  3421. psrld $11,%xmm6
  3422. addl %ecx,%ebx
  3423. movl %edx,%ecx
  3424. rorl $14,%edx
  3425. pxor %xmm5,%xmm4
  3426. movl (%esp),%esi
  3427. xorl %ecx,%edx
  3428. pslld $11,%xmm5
  3429. movl 4(%esp),%edi
  3430. xorl %edi,%esi
  3431. rorl $5,%edx
  3432. pxor %xmm6,%xmm4
  3433. andl %ecx,%esi
  3434. movl %ecx,28(%esp)
  3435. movdqa %xmm7,%xmm6
  3436. xorl %ecx,%edx
  3437. xorl %esi,%edi
  3438. rorl $6,%edx
  3439. pxor %xmm5,%xmm4
  3440. movl %ebx,%ecx
  3441. addl %edi,%edx
  3442. psrld $10,%xmm7
  3443. movl 16(%esp),%edi
  3444. movl %ebx,%esi
  3445. rorl $9,%ecx
  3446. paddd %xmm4,%xmm1
  3447. movl %ebx,12(%esp)
  3448. xorl %ebx,%ecx
  3449. psrlq $17,%xmm6
  3450. xorl %edi,%ebx
  3451. addl 8(%esp),%edx
  3452. rorl $11,%ecx
  3453. pxor %xmm6,%xmm7
  3454. andl %ebx,%eax
  3455. xorl %esi,%ecx
  3456. psrlq $2,%xmm6
  3457. addl 52(%esp),%edx
  3458. xorl %edi,%eax
  3459. rorl $2,%ecx
  3460. pxor %xmm6,%xmm7
  3461. addl %edx,%eax
  3462. addl 24(%esp),%edx
  3463. pshufd $128,%xmm7,%xmm7
  3464. addl %ecx,%eax
  3465. movl %edx,%ecx
  3466. rorl $14,%edx
  3467. movl 28(%esp),%esi
  3468. xorl %ecx,%edx
  3469. movl (%esp),%edi
  3470. xorl %edi,%esi
  3471. rorl $5,%edx
  3472. andl %ecx,%esi
  3473. psrldq $8,%xmm7
  3474. movl %ecx,24(%esp)
  3475. xorl %ecx,%edx
  3476. xorl %esi,%edi
  3477. paddd %xmm7,%xmm1
  3478. rorl $6,%edx
  3479. movl %eax,%ecx
  3480. addl %edi,%edx
  3481. movl 12(%esp),%edi
  3482. movl %eax,%esi
  3483. rorl $9,%ecx
  3484. movl %eax,8(%esp)
  3485. pshufd $80,%xmm1,%xmm7
  3486. xorl %eax,%ecx
  3487. xorl %edi,%eax
  3488. addl 4(%esp),%edx
  3489. movdqa %xmm7,%xmm6
  3490. rorl $11,%ecx
  3491. psrld $10,%xmm7
  3492. andl %eax,%ebx
  3493. psrlq $17,%xmm6
  3494. xorl %esi,%ecx
  3495. addl 56(%esp),%edx
  3496. xorl %edi,%ebx
  3497. rorl $2,%ecx
  3498. pxor %xmm6,%xmm7
  3499. addl %edx,%ebx
  3500. addl 20(%esp),%edx
  3501. psrlq $2,%xmm6
  3502. addl %ecx,%ebx
  3503. movl %edx,%ecx
  3504. rorl $14,%edx
  3505. pxor %xmm6,%xmm7
  3506. movl 24(%esp),%esi
  3507. xorl %ecx,%edx
  3508. movl 28(%esp),%edi
  3509. pshufd $8,%xmm7,%xmm7
  3510. xorl %edi,%esi
  3511. rorl $5,%edx
  3512. movdqa 16(%ebp),%xmm6
  3513. andl %ecx,%esi
  3514. movl %ecx,20(%esp)
  3515. pslldq $8,%xmm7
  3516. xorl %ecx,%edx
  3517. xorl %esi,%edi
  3518. rorl $6,%edx
  3519. movl %ebx,%ecx
  3520. addl %edi,%edx
  3521. movl 8(%esp),%edi
  3522. movl %ebx,%esi
  3523. rorl $9,%ecx
  3524. paddd %xmm7,%xmm1
  3525. movl %ebx,4(%esp)
  3526. xorl %ebx,%ecx
  3527. xorl %edi,%ebx
  3528. addl (%esp),%edx
  3529. paddd %xmm1,%xmm6
  3530. rorl $11,%ecx
  3531. andl %ebx,%eax
  3532. xorl %esi,%ecx
  3533. addl 60(%esp),%edx
  3534. xorl %edi,%eax
  3535. rorl $2,%ecx
  3536. addl %edx,%eax
  3537. addl 16(%esp),%edx
  3538. addl %ecx,%eax
  3539. movdqa %xmm6,48(%esp)
  3540. movl %edx,%ecx
  3541. movdqa %xmm3,%xmm4
  3542. rorl $14,%edx
  3543. movl 20(%esp),%esi
  3544. movdqa %xmm1,%xmm7
  3545. xorl %ecx,%edx
  3546. movl 24(%esp),%edi
  3547. .byte 102,15,58,15,226,4
  3548. xorl %edi,%esi
  3549. rorl $5,%edx
  3550. andl %ecx,%esi
  3551. .byte 102,15,58,15,248,4
  3552. movl %ecx,16(%esp)
  3553. xorl %ecx,%edx
  3554. xorl %esi,%edi
  3555. movdqa %xmm4,%xmm5
  3556. rorl $6,%edx
  3557. movl %eax,%ecx
  3558. movdqa %xmm4,%xmm6
  3559. addl %edi,%edx
  3560. movl 4(%esp),%edi
  3561. psrld $3,%xmm4
  3562. movl %eax,%esi
  3563. rorl $9,%ecx
  3564. paddd %xmm7,%xmm2
  3565. movl %eax,(%esp)
  3566. xorl %eax,%ecx
  3567. psrld $7,%xmm6
  3568. xorl %edi,%eax
  3569. addl 28(%esp),%edx
  3570. rorl $11,%ecx
  3571. andl %eax,%ebx
  3572. pshufd $250,%xmm1,%xmm7
  3573. xorl %esi,%ecx
  3574. addl 64(%esp),%edx
  3575. pslld $14,%xmm5
  3576. xorl %edi,%ebx
  3577. rorl $2,%ecx
  3578. pxor %xmm6,%xmm4
  3579. addl %edx,%ebx
  3580. addl 12(%esp),%edx
  3581. psrld $11,%xmm6
  3582. addl %ecx,%ebx
  3583. movl %edx,%ecx
  3584. rorl $14,%edx
  3585. pxor %xmm5,%xmm4
  3586. movl 16(%esp),%esi
  3587. xorl %ecx,%edx
  3588. pslld $11,%xmm5
  3589. movl 20(%esp),%edi
  3590. xorl %edi,%esi
  3591. rorl $5,%edx
  3592. pxor %xmm6,%xmm4
  3593. andl %ecx,%esi
  3594. movl %ecx,12(%esp)
  3595. movdqa %xmm7,%xmm6
  3596. xorl %ecx,%edx
  3597. xorl %esi,%edi
  3598. rorl $6,%edx
  3599. pxor %xmm5,%xmm4
  3600. movl %ebx,%ecx
  3601. addl %edi,%edx
  3602. psrld $10,%xmm7
  3603. movl (%esp),%edi
  3604. movl %ebx,%esi
  3605. rorl $9,%ecx
  3606. paddd %xmm4,%xmm2
  3607. movl %ebx,28(%esp)
  3608. xorl %ebx,%ecx
  3609. psrlq $17,%xmm6
  3610. xorl %edi,%ebx
  3611. addl 24(%esp),%edx
  3612. rorl $11,%ecx
  3613. pxor %xmm6,%xmm7
  3614. andl %ebx,%eax
  3615. xorl %esi,%ecx
  3616. psrlq $2,%xmm6
  3617. addl 68(%esp),%edx
  3618. xorl %edi,%eax
  3619. rorl $2,%ecx
  3620. pxor %xmm6,%xmm7
  3621. addl %edx,%eax
  3622. addl 8(%esp),%edx
  3623. pshufd $128,%xmm7,%xmm7
  3624. addl %ecx,%eax
  3625. movl %edx,%ecx
  3626. rorl $14,%edx
  3627. movl 12(%esp),%esi
  3628. xorl %ecx,%edx
  3629. movl 16(%esp),%edi
  3630. xorl %edi,%esi
  3631. rorl $5,%edx
  3632. andl %ecx,%esi
  3633. psrldq $8,%xmm7
  3634. movl %ecx,8(%esp)
  3635. xorl %ecx,%edx
  3636. xorl %esi,%edi
  3637. paddd %xmm7,%xmm2
  3638. rorl $6,%edx
  3639. movl %eax,%ecx
  3640. addl %edi,%edx
  3641. movl 28(%esp),%edi
  3642. movl %eax,%esi
  3643. rorl $9,%ecx
  3644. movl %eax,24(%esp)
  3645. pshufd $80,%xmm2,%xmm7
  3646. xorl %eax,%ecx
  3647. xorl %edi,%eax
  3648. addl 20(%esp),%edx
  3649. movdqa %xmm7,%xmm6
  3650. rorl $11,%ecx
  3651. psrld $10,%xmm7
  3652. andl %eax,%ebx
  3653. psrlq $17,%xmm6
  3654. xorl %esi,%ecx
  3655. addl 72(%esp),%edx
  3656. xorl %edi,%ebx
  3657. rorl $2,%ecx
  3658. pxor %xmm6,%xmm7
  3659. addl %edx,%ebx
  3660. addl 4(%esp),%edx
  3661. psrlq $2,%xmm6
  3662. addl %ecx,%ebx
  3663. movl %edx,%ecx
  3664. rorl $14,%edx
  3665. pxor %xmm6,%xmm7
  3666. movl 8(%esp),%esi
  3667. xorl %ecx,%edx
  3668. movl 12(%esp),%edi
  3669. pshufd $8,%xmm7,%xmm7
  3670. xorl %edi,%esi
  3671. rorl $5,%edx
  3672. movdqa 32(%ebp),%xmm6
  3673. andl %ecx,%esi
  3674. movl %ecx,4(%esp)
  3675. pslldq $8,%xmm7
  3676. xorl %ecx,%edx
  3677. xorl %esi,%edi
  3678. rorl $6,%edx
  3679. movl %ebx,%ecx
  3680. addl %edi,%edx
  3681. movl 24(%esp),%edi
  3682. movl %ebx,%esi
  3683. rorl $9,%ecx
  3684. paddd %xmm7,%xmm2
  3685. movl %ebx,20(%esp)
  3686. xorl %ebx,%ecx
  3687. xorl %edi,%ebx
  3688. addl 16(%esp),%edx
  3689. paddd %xmm2,%xmm6
  3690. rorl $11,%ecx
  3691. andl %ebx,%eax
  3692. xorl %esi,%ecx
  3693. addl 76(%esp),%edx
  3694. xorl %edi,%eax
  3695. rorl $2,%ecx
  3696. addl %edx,%eax
  3697. addl (%esp),%edx
  3698. addl %ecx,%eax
  3699. movdqa %xmm6,64(%esp)
  3700. movl %edx,%ecx
  3701. movdqa %xmm0,%xmm4
  3702. rorl $14,%edx
  3703. movl 4(%esp),%esi
  3704. movdqa %xmm2,%xmm7
  3705. xorl %ecx,%edx
  3706. movl 8(%esp),%edi
  3707. .byte 102,15,58,15,227,4
  3708. xorl %edi,%esi
  3709. rorl $5,%edx
  3710. andl %ecx,%esi
  3711. .byte 102,15,58,15,249,4
  3712. movl %ecx,(%esp)
  3713. xorl %ecx,%edx
  3714. xorl %esi,%edi
  3715. movdqa %xmm4,%xmm5
  3716. rorl $6,%edx
  3717. movl %eax,%ecx
  3718. movdqa %xmm4,%xmm6
  3719. addl %edi,%edx
  3720. movl 20(%esp),%edi
  3721. psrld $3,%xmm4
  3722. movl %eax,%esi
  3723. rorl $9,%ecx
  3724. paddd %xmm7,%xmm3
  3725. movl %eax,16(%esp)
  3726. xorl %eax,%ecx
  3727. psrld $7,%xmm6
  3728. xorl %edi,%eax
  3729. addl 12(%esp),%edx
  3730. rorl $11,%ecx
  3731. andl %eax,%ebx
  3732. pshufd $250,%xmm2,%xmm7
  3733. xorl %esi,%ecx
  3734. addl 80(%esp),%edx
  3735. pslld $14,%xmm5
  3736. xorl %edi,%ebx
  3737. rorl $2,%ecx
  3738. pxor %xmm6,%xmm4
  3739. addl %edx,%ebx
  3740. addl 28(%esp),%edx
  3741. psrld $11,%xmm6
  3742. addl %ecx,%ebx
  3743. movl %edx,%ecx
  3744. rorl $14,%edx
  3745. pxor %xmm5,%xmm4
  3746. movl (%esp),%esi
  3747. xorl %ecx,%edx
  3748. pslld $11,%xmm5
  3749. movl 4(%esp),%edi
  3750. xorl %edi,%esi
  3751. rorl $5,%edx
  3752. pxor %xmm6,%xmm4
  3753. andl %ecx,%esi
  3754. movl %ecx,28(%esp)
  3755. movdqa %xmm7,%xmm6
  3756. xorl %ecx,%edx
  3757. xorl %esi,%edi
  3758. rorl $6,%edx
  3759. pxor %xmm5,%xmm4
  3760. movl %ebx,%ecx
  3761. addl %edi,%edx
  3762. psrld $10,%xmm7
  3763. movl 16(%esp),%edi
  3764. movl %ebx,%esi
  3765. rorl $9,%ecx
  3766. paddd %xmm4,%xmm3
  3767. movl %ebx,12(%esp)
  3768. xorl %ebx,%ecx
  3769. psrlq $17,%xmm6
  3770. xorl %edi,%ebx
  3771. addl 8(%esp),%edx
  3772. rorl $11,%ecx
  3773. pxor %xmm6,%xmm7
  3774. andl %ebx,%eax
  3775. xorl %esi,%ecx
  3776. psrlq $2,%xmm6
  3777. addl 84(%esp),%edx
  3778. xorl %edi,%eax
  3779. rorl $2,%ecx
  3780. pxor %xmm6,%xmm7
  3781. addl %edx,%eax
  3782. addl 24(%esp),%edx
  3783. pshufd $128,%xmm7,%xmm7
  3784. addl %ecx,%eax
  3785. movl %edx,%ecx
  3786. rorl $14,%edx
  3787. movl 28(%esp),%esi
  3788. xorl %ecx,%edx
  3789. movl (%esp),%edi
  3790. xorl %edi,%esi
  3791. rorl $5,%edx
  3792. andl %ecx,%esi
  3793. psrldq $8,%xmm7
  3794. movl %ecx,24(%esp)
  3795. xorl %ecx,%edx
  3796. xorl %esi,%edi
  3797. paddd %xmm7,%xmm3
  3798. rorl $6,%edx
  3799. movl %eax,%ecx
  3800. addl %edi,%edx
  3801. movl 12(%esp),%edi
  3802. movl %eax,%esi
  3803. rorl $9,%ecx
  3804. movl %eax,8(%esp)
  3805. pshufd $80,%xmm3,%xmm7
  3806. xorl %eax,%ecx
  3807. xorl %edi,%eax
  3808. addl 4(%esp),%edx
  3809. movdqa %xmm7,%xmm6
  3810. rorl $11,%ecx
  3811. psrld $10,%xmm7
  3812. andl %eax,%ebx
  3813. psrlq $17,%xmm6
  3814. xorl %esi,%ecx
  3815. addl 88(%esp),%edx
  3816. xorl %edi,%ebx
  3817. rorl $2,%ecx
  3818. pxor %xmm6,%xmm7
  3819. addl %edx,%ebx
  3820. addl 20(%esp),%edx
  3821. psrlq $2,%xmm6
  3822. addl %ecx,%ebx
  3823. movl %edx,%ecx
  3824. rorl $14,%edx
  3825. pxor %xmm6,%xmm7
  3826. movl 24(%esp),%esi
  3827. xorl %ecx,%edx
  3828. movl 28(%esp),%edi
  3829. pshufd $8,%xmm7,%xmm7
  3830. xorl %edi,%esi
  3831. rorl $5,%edx
  3832. movdqa 48(%ebp),%xmm6
  3833. andl %ecx,%esi
  3834. movl %ecx,20(%esp)
  3835. pslldq $8,%xmm7
  3836. xorl %ecx,%edx
  3837. xorl %esi,%edi
  3838. rorl $6,%edx
  3839. movl %ebx,%ecx
  3840. addl %edi,%edx
  3841. movl 8(%esp),%edi
  3842. movl %ebx,%esi
  3843. rorl $9,%ecx
  3844. paddd %xmm7,%xmm3
  3845. movl %ebx,4(%esp)
  3846. xorl %ebx,%ecx
  3847. xorl %edi,%ebx
  3848. addl (%esp),%edx
  3849. paddd %xmm3,%xmm6
  3850. rorl $11,%ecx
  3851. andl %ebx,%eax
  3852. xorl %esi,%ecx
  3853. addl 92(%esp),%edx
  3854. xorl %edi,%eax
  3855. rorl $2,%ecx
  3856. addl %edx,%eax
  3857. addl 16(%esp),%edx
  3858. addl %ecx,%eax
  3859. movdqa %xmm6,80(%esp)
  3860. cmpl $66051,64(%ebp)
  3861. jne L011ssse3_00_47
  3862. movl %edx,%ecx
  3863. rorl $14,%edx
  3864. movl 20(%esp),%esi
  3865. xorl %ecx,%edx
  3866. movl 24(%esp),%edi
  3867. xorl %edi,%esi
  3868. rorl $5,%edx
  3869. andl %ecx,%esi
  3870. movl %ecx,16(%esp)
  3871. xorl %ecx,%edx
  3872. xorl %esi,%edi
  3873. rorl $6,%edx
  3874. movl %eax,%ecx
  3875. addl %edi,%edx
  3876. movl 4(%esp),%edi
  3877. movl %eax,%esi
  3878. rorl $9,%ecx
  3879. movl %eax,(%esp)
  3880. xorl %eax,%ecx
  3881. xorl %edi,%eax
  3882. addl 28(%esp),%edx
  3883. rorl $11,%ecx
  3884. andl %eax,%ebx
  3885. xorl %esi,%ecx
  3886. addl 32(%esp),%edx
  3887. xorl %edi,%ebx
  3888. rorl $2,%ecx
  3889. addl %edx,%ebx
  3890. addl 12(%esp),%edx
  3891. addl %ecx,%ebx
  3892. movl %edx,%ecx
  3893. rorl $14,%edx
  3894. movl 16(%esp),%esi
  3895. xorl %ecx,%edx
  3896. movl 20(%esp),%edi
  3897. xorl %edi,%esi
  3898. rorl $5,%edx
  3899. andl %ecx,%esi
  3900. movl %ecx,12(%esp)
  3901. xorl %ecx,%edx
  3902. xorl %esi,%edi
  3903. rorl $6,%edx
  3904. movl %ebx,%ecx
  3905. addl %edi,%edx
  3906. movl (%esp),%edi
  3907. movl %ebx,%esi
  3908. rorl $9,%ecx
  3909. movl %ebx,28(%esp)
  3910. xorl %ebx,%ecx
  3911. xorl %edi,%ebx
  3912. addl 24(%esp),%edx
  3913. rorl $11,%ecx
  3914. andl %ebx,%eax
  3915. xorl %esi,%ecx
  3916. addl 36(%esp),%edx
  3917. xorl %edi,%eax
  3918. rorl $2,%ecx
  3919. addl %edx,%eax
  3920. addl 8(%esp),%edx
  3921. addl %ecx,%eax
  3922. movl %edx,%ecx
  3923. rorl $14,%edx
  3924. movl 12(%esp),%esi
  3925. xorl %ecx,%edx
  3926. movl 16(%esp),%edi
  3927. xorl %edi,%esi
  3928. rorl $5,%edx
  3929. andl %ecx,%esi
  3930. movl %ecx,8(%esp)
  3931. xorl %ecx,%edx
  3932. xorl %esi,%edi
  3933. rorl $6,%edx
  3934. movl %eax,%ecx
  3935. addl %edi,%edx
  3936. movl 28(%esp),%edi
  3937. movl %eax,%esi
  3938. rorl $9,%ecx
  3939. movl %eax,24(%esp)
  3940. xorl %eax,%ecx
  3941. xorl %edi,%eax
  3942. addl 20(%esp),%edx
  3943. rorl $11,%ecx
  3944. andl %eax,%ebx
  3945. xorl %esi,%ecx
  3946. addl 40(%esp),%edx
  3947. xorl %edi,%ebx
  3948. rorl $2,%ecx
  3949. addl %edx,%ebx
  3950. addl 4(%esp),%edx
  3951. addl %ecx,%ebx
  3952. movl %edx,%ecx
  3953. rorl $14,%edx
  3954. movl 8(%esp),%esi
  3955. xorl %ecx,%edx
  3956. movl 12(%esp),%edi
  3957. xorl %edi,%esi
  3958. rorl $5,%edx
  3959. andl %ecx,%esi
  3960. movl %ecx,4(%esp)
  3961. xorl %ecx,%edx
  3962. xorl %esi,%edi
  3963. rorl $6,%edx
  3964. movl %ebx,%ecx
  3965. addl %edi,%edx
  3966. movl 24(%esp),%edi
  3967. movl %ebx,%esi
  3968. rorl $9,%ecx
  3969. movl %ebx,20(%esp)
  3970. xorl %ebx,%ecx
  3971. xorl %edi,%ebx
  3972. addl 16(%esp),%edx
  3973. rorl $11,%ecx
  3974. andl %ebx,%eax
  3975. xorl %esi,%ecx
  3976. addl 44(%esp),%edx
  3977. xorl %edi,%eax
  3978. rorl $2,%ecx
  3979. addl %edx,%eax
  3980. addl (%esp),%edx
  3981. addl %ecx,%eax
  3982. movl %edx,%ecx
  3983. rorl $14,%edx
  3984. movl 4(%esp),%esi
  3985. xorl %ecx,%edx
  3986. movl 8(%esp),%edi
  3987. xorl %edi,%esi
  3988. rorl $5,%edx
  3989. andl %ecx,%esi
  3990. movl %ecx,(%esp)
  3991. xorl %ecx,%edx
  3992. xorl %esi,%edi
  3993. rorl $6,%edx
  3994. movl %eax,%ecx
  3995. addl %edi,%edx
  3996. movl 20(%esp),%edi
  3997. movl %eax,%esi
  3998. rorl $9,%ecx
  3999. movl %eax,16(%esp)
  4000. xorl %eax,%ecx
  4001. xorl %edi,%eax
  4002. addl 12(%esp),%edx
  4003. rorl $11,%ecx
  4004. andl %eax,%ebx
  4005. xorl %esi,%ecx
  4006. addl 48(%esp),%edx
  4007. xorl %edi,%ebx
  4008. rorl $2,%ecx
  4009. addl %edx,%ebx
  4010. addl 28(%esp),%edx
  4011. addl %ecx,%ebx
  4012. movl %edx,%ecx
  4013. rorl $14,%edx
  4014. movl (%esp),%esi
  4015. xorl %ecx,%edx
  4016. movl 4(%esp),%edi
  4017. xorl %edi,%esi
  4018. rorl $5,%edx
  4019. andl %ecx,%esi
  4020. movl %ecx,28(%esp)
  4021. xorl %ecx,%edx
  4022. xorl %esi,%edi
  4023. rorl $6,%edx
  4024. movl %ebx,%ecx
  4025. addl %edi,%edx
  4026. movl 16(%esp),%edi
  4027. movl %ebx,%esi
  4028. rorl $9,%ecx
  4029. movl %ebx,12(%esp)
  4030. xorl %ebx,%ecx
  4031. xorl %edi,%ebx
  4032. addl 8(%esp),%edx
  4033. rorl $11,%ecx
  4034. andl %ebx,%eax
  4035. xorl %esi,%ecx
  4036. addl 52(%esp),%edx
  4037. xorl %edi,%eax
  4038. rorl $2,%ecx
  4039. addl %edx,%eax
  4040. addl 24(%esp),%edx
  4041. addl %ecx,%eax
  4042. movl %edx,%ecx
  4043. rorl $14,%edx
  4044. movl 28(%esp),%esi
  4045. xorl %ecx,%edx
  4046. movl (%esp),%edi
  4047. xorl %edi,%esi
  4048. rorl $5,%edx
  4049. andl %ecx,%esi
  4050. movl %ecx,24(%esp)
  4051. xorl %ecx,%edx
  4052. xorl %esi,%edi
  4053. rorl $6,%edx
  4054. movl %eax,%ecx
  4055. addl %edi,%edx
  4056. movl 12(%esp),%edi
  4057. movl %eax,%esi
  4058. rorl $9,%ecx
  4059. movl %eax,8(%esp)
  4060. xorl %eax,%ecx
  4061. xorl %edi,%eax
  4062. addl 4(%esp),%edx
  4063. rorl $11,%ecx
  4064. andl %eax,%ebx
  4065. xorl %esi,%ecx
  4066. addl 56(%esp),%edx
  4067. xorl %edi,%ebx
  4068. rorl $2,%ecx
  4069. addl %edx,%ebx
  4070. addl 20(%esp),%edx
  4071. addl %ecx,%ebx
  4072. movl %edx,%ecx
  4073. rorl $14,%edx
  4074. movl 24(%esp),%esi
  4075. xorl %ecx,%edx
  4076. movl 28(%esp),%edi
  4077. xorl %edi,%esi
  4078. rorl $5,%edx
  4079. andl %ecx,%esi
  4080. movl %ecx,20(%esp)
  4081. xorl %ecx,%edx
  4082. xorl %esi,%edi
  4083. rorl $6,%edx
  4084. movl %ebx,%ecx
  4085. addl %edi,%edx
  4086. movl 8(%esp),%edi
  4087. movl %ebx,%esi
  4088. rorl $9,%ecx
  4089. movl %ebx,4(%esp)
  4090. xorl %ebx,%ecx
  4091. xorl %edi,%ebx
  4092. addl (%esp),%edx
  4093. rorl $11,%ecx
  4094. andl %ebx,%eax
  4095. xorl %esi,%ecx
  4096. addl 60(%esp),%edx
  4097. xorl %edi,%eax
  4098. rorl $2,%ecx
  4099. addl %edx,%eax
  4100. addl 16(%esp),%edx
  4101. addl %ecx,%eax
  4102. movl %edx,%ecx
  4103. rorl $14,%edx
  4104. movl 20(%esp),%esi
  4105. xorl %ecx,%edx
  4106. movl 24(%esp),%edi
  4107. xorl %edi,%esi
  4108. rorl $5,%edx
  4109. andl %ecx,%esi
  4110. movl %ecx,16(%esp)
  4111. xorl %ecx,%edx
  4112. xorl %esi,%edi
  4113. rorl $6,%edx
  4114. movl %eax,%ecx
  4115. addl %edi,%edx
  4116. movl 4(%esp),%edi
  4117. movl %eax,%esi
  4118. rorl $9,%ecx
  4119. movl %eax,(%esp)
  4120. xorl %eax,%ecx
  4121. xorl %edi,%eax
  4122. addl 28(%esp),%edx
  4123. rorl $11,%ecx
  4124. andl %eax,%ebx
  4125. xorl %esi,%ecx
  4126. addl 64(%esp),%edx
  4127. xorl %edi,%ebx
  4128. rorl $2,%ecx
  4129. addl %edx,%ebx
  4130. addl 12(%esp),%edx
  4131. addl %ecx,%ebx
  4132. movl %edx,%ecx
  4133. rorl $14,%edx
  4134. movl 16(%esp),%esi
  4135. xorl %ecx,%edx
  4136. movl 20(%esp),%edi
  4137. xorl %edi,%esi
  4138. rorl $5,%edx
  4139. andl %ecx,%esi
  4140. movl %ecx,12(%esp)
  4141. xorl %ecx,%edx
  4142. xorl %esi,%edi
  4143. rorl $6,%edx
  4144. movl %ebx,%ecx
  4145. addl %edi,%edx
  4146. movl (%esp),%edi
  4147. movl %ebx,%esi
  4148. rorl $9,%ecx
  4149. movl %ebx,28(%esp)
  4150. xorl %ebx,%ecx
  4151. xorl %edi,%ebx
  4152. addl 24(%esp),%edx
  4153. rorl $11,%ecx
  4154. andl %ebx,%eax
  4155. xorl %esi,%ecx
  4156. addl 68(%esp),%edx
  4157. xorl %edi,%eax
  4158. rorl $2,%ecx
  4159. addl %edx,%eax
  4160. addl 8(%esp),%edx
  4161. addl %ecx,%eax
  4162. movl %edx,%ecx
  4163. rorl $14,%edx
  4164. movl 12(%esp),%esi
  4165. xorl %ecx,%edx
  4166. movl 16(%esp),%edi
  4167. xorl %edi,%esi
  4168. rorl $5,%edx
  4169. andl %ecx,%esi
  4170. movl %ecx,8(%esp)
  4171. xorl %ecx,%edx
  4172. xorl %esi,%edi
  4173. rorl $6,%edx
  4174. movl %eax,%ecx
  4175. addl %edi,%edx
  4176. movl 28(%esp),%edi
  4177. movl %eax,%esi
  4178. rorl $9,%ecx
  4179. movl %eax,24(%esp)
  4180. xorl %eax,%ecx
  4181. xorl %edi,%eax
  4182. addl 20(%esp),%edx
  4183. rorl $11,%ecx
  4184. andl %eax,%ebx
  4185. xorl %esi,%ecx
  4186. addl 72(%esp),%edx
  4187. xorl %edi,%ebx
  4188. rorl $2,%ecx
  4189. addl %edx,%ebx
  4190. addl 4(%esp),%edx
  4191. addl %ecx,%ebx
  4192. movl %edx,%ecx
  4193. rorl $14,%edx
  4194. movl 8(%esp),%esi
  4195. xorl %ecx,%edx
  4196. movl 12(%esp),%edi
  4197. xorl %edi,%esi
  4198. rorl $5,%edx
  4199. andl %ecx,%esi
  4200. movl %ecx,4(%esp)
  4201. xorl %ecx,%edx
  4202. xorl %esi,%edi
  4203. rorl $6,%edx
  4204. movl %ebx,%ecx
  4205. addl %edi,%edx
  4206. movl 24(%esp),%edi
  4207. movl %ebx,%esi
  4208. rorl $9,%ecx
  4209. movl %ebx,20(%esp)
  4210. xorl %ebx,%ecx
  4211. xorl %edi,%ebx
  4212. addl 16(%esp),%edx
  4213. rorl $11,%ecx
  4214. andl %ebx,%eax
  4215. xorl %esi,%ecx
  4216. addl 76(%esp),%edx
  4217. xorl %edi,%eax
  4218. rorl $2,%ecx
  4219. addl %edx,%eax
  4220. addl (%esp),%edx
  4221. addl %ecx,%eax
  4222. movl %edx,%ecx
  4223. rorl $14,%edx
  4224. movl 4(%esp),%esi
  4225. xorl %ecx,%edx
  4226. movl 8(%esp),%edi
  4227. xorl %edi,%esi
  4228. rorl $5,%edx
  4229. andl %ecx,%esi
  4230. movl %ecx,(%esp)
  4231. xorl %ecx,%edx
  4232. xorl %esi,%edi
  4233. rorl $6,%edx
  4234. movl %eax,%ecx
  4235. addl %edi,%edx
  4236. movl 20(%esp),%edi
  4237. movl %eax,%esi
  4238. rorl $9,%ecx
  4239. movl %eax,16(%esp)
  4240. xorl %eax,%ecx
  4241. xorl %edi,%eax
  4242. addl 12(%esp),%edx
  4243. rorl $11,%ecx
  4244. andl %eax,%ebx
  4245. xorl %esi,%ecx
  4246. addl 80(%esp),%edx
  4247. xorl %edi,%ebx
  4248. rorl $2,%ecx
  4249. addl %edx,%ebx
  4250. addl 28(%esp),%edx
  4251. addl %ecx,%ebx
  4252. movl %edx,%ecx
  4253. rorl $14,%edx
  4254. movl (%esp),%esi
  4255. xorl %ecx,%edx
  4256. movl 4(%esp),%edi
  4257. xorl %edi,%esi
  4258. rorl $5,%edx
  4259. andl %ecx,%esi
  4260. movl %ecx,28(%esp)
  4261. xorl %ecx,%edx
  4262. xorl %esi,%edi
  4263. rorl $6,%edx
  4264. movl %ebx,%ecx
  4265. addl %edi,%edx
  4266. movl 16(%esp),%edi
  4267. movl %ebx,%esi
  4268. rorl $9,%ecx
  4269. movl %ebx,12(%esp)
  4270. xorl %ebx,%ecx
  4271. xorl %edi,%ebx
  4272. addl 8(%esp),%edx
  4273. rorl $11,%ecx
  4274. andl %ebx,%eax
  4275. xorl %esi,%ecx
  4276. addl 84(%esp),%edx
  4277. xorl %edi,%eax
  4278. rorl $2,%ecx
  4279. addl %edx,%eax
  4280. addl 24(%esp),%edx
  4281. addl %ecx,%eax
  4282. movl %edx,%ecx
  4283. rorl $14,%edx
  4284. movl 28(%esp),%esi
  4285. xorl %ecx,%edx
  4286. movl (%esp),%edi
  4287. xorl %edi,%esi
  4288. rorl $5,%edx
  4289. andl %ecx,%esi
  4290. movl %ecx,24(%esp)
  4291. xorl %ecx,%edx
  4292. xorl %esi,%edi
  4293. rorl $6,%edx
  4294. movl %eax,%ecx
  4295. addl %edi,%edx
  4296. movl 12(%esp),%edi
  4297. movl %eax,%esi
  4298. rorl $9,%ecx
  4299. movl %eax,8(%esp)
  4300. xorl %eax,%ecx
  4301. xorl %edi,%eax
  4302. addl 4(%esp),%edx
  4303. rorl $11,%ecx
  4304. andl %eax,%ebx
  4305. xorl %esi,%ecx
  4306. addl 88(%esp),%edx
  4307. xorl %edi,%ebx
  4308. rorl $2,%ecx
  4309. addl %edx,%ebx
  4310. addl 20(%esp),%edx
  4311. addl %ecx,%ebx
  4312. movl %edx,%ecx
  4313. rorl $14,%edx
  4314. movl 24(%esp),%esi
  4315. xorl %ecx,%edx
  4316. movl 28(%esp),%edi
  4317. xorl %edi,%esi
  4318. rorl $5,%edx
  4319. andl %ecx,%esi
  4320. movl %ecx,20(%esp)
  4321. xorl %ecx,%edx
  4322. xorl %esi,%edi
  4323. rorl $6,%edx
  4324. movl %ebx,%ecx
  4325. addl %edi,%edx
  4326. movl 8(%esp),%edi
  4327. movl %ebx,%esi
  4328. rorl $9,%ecx
  4329. movl %ebx,4(%esp)
  4330. xorl %ebx,%ecx
  4331. xorl %edi,%ebx
  4332. addl (%esp),%edx
  4333. rorl $11,%ecx
  4334. andl %ebx,%eax
  4335. xorl %esi,%ecx
  4336. addl 92(%esp),%edx
  4337. xorl %edi,%eax
  4338. rorl $2,%ecx
  4339. addl %edx,%eax
  4340. addl 16(%esp),%edx
  4341. addl %ecx,%eax
  4342. movl 96(%esp),%esi
  4343. xorl %edi,%ebx
  4344. movl 12(%esp),%ecx
  4345. addl (%esi),%eax
  4346. addl 4(%esi),%ebx
  4347. addl 8(%esi),%edi
  4348. addl 12(%esi),%ecx
  4349. movl %eax,(%esi)
  4350. movl %ebx,4(%esi)
  4351. movl %edi,8(%esi)
  4352. movl %ecx,12(%esi)
  4353. movl %ebx,4(%esp)
  4354. xorl %edi,%ebx
  4355. movl %edi,8(%esp)
  4356. movl %ecx,12(%esp)
  4357. movl 20(%esp),%edi
  4358. movl 24(%esp),%ecx
  4359. addl 16(%esi),%edx
  4360. addl 20(%esi),%edi
  4361. addl 24(%esi),%ecx
  4362. movl %edx,16(%esi)
  4363. movl %edi,20(%esi)
  4364. movl %edi,20(%esp)
  4365. movl 28(%esp),%edi
  4366. movl %ecx,24(%esi)
  4367. addl 28(%esi),%edi
  4368. movl %ecx,24(%esp)
  4369. movl %edi,28(%esi)
  4370. movl %edi,28(%esp)
  4371. movl 100(%esp),%edi
  4372. movdqa 64(%ebp),%xmm7
  4373. subl $192,%ebp
  4374. cmpl 104(%esp),%edi
  4375. jb L010grand_ssse3
  4376. movl 108(%esp),%esp
  4377. popl %edi
  4378. popl %esi
  4379. popl %ebx
  4380. popl %ebp
  4381. ret
  4382. .align 5,0x90
  4383. L004AVX:
  4384. leal -96(%esp),%esp
  4385. vzeroall
  4386. movl (%esi),%eax
  4387. movl 4(%esi),%ebx
  4388. movl 8(%esi),%ecx
  4389. movl 12(%esi),%edi
  4390. movl %ebx,4(%esp)
  4391. xorl %ecx,%ebx
  4392. movl %ecx,8(%esp)
  4393. movl %edi,12(%esp)
  4394. movl 16(%esi),%edx
  4395. movl 20(%esi),%edi
  4396. movl 24(%esi),%ecx
  4397. movl 28(%esi),%esi
  4398. movl %edi,20(%esp)
  4399. movl 100(%esp),%edi
  4400. movl %ecx,24(%esp)
  4401. movl %esi,28(%esp)
  4402. vmovdqa 256(%ebp),%xmm7
  4403. jmp L012grand_avx
  4404. .align 5,0x90
  4405. L012grand_avx:
  4406. vmovdqu (%edi),%xmm0
  4407. vmovdqu 16(%edi),%xmm1
  4408. vmovdqu 32(%edi),%xmm2
  4409. vmovdqu 48(%edi),%xmm3
  4410. addl $64,%edi
  4411. vpshufb %xmm7,%xmm0,%xmm0
  4412. movl %edi,100(%esp)
  4413. vpshufb %xmm7,%xmm1,%xmm1
  4414. vpshufb %xmm7,%xmm2,%xmm2
  4415. vpaddd (%ebp),%xmm0,%xmm4
  4416. vpshufb %xmm7,%xmm3,%xmm3
  4417. vpaddd 16(%ebp),%xmm1,%xmm5
  4418. vpaddd 32(%ebp),%xmm2,%xmm6
  4419. vpaddd 48(%ebp),%xmm3,%xmm7
  4420. vmovdqa %xmm4,32(%esp)
  4421. vmovdqa %xmm5,48(%esp)
  4422. vmovdqa %xmm6,64(%esp)
  4423. vmovdqa %xmm7,80(%esp)
  4424. jmp L013avx_00_47
  4425. .align 4,0x90
  4426. L013avx_00_47:
  4427. addl $64,%ebp
  4428. vpalignr $4,%xmm0,%xmm1,%xmm4
  4429. movl %edx,%ecx
  4430. shrdl $14,%edx,%edx
  4431. movl 20(%esp),%esi
  4432. vpalignr $4,%xmm2,%xmm3,%xmm7
  4433. xorl %ecx,%edx
  4434. movl 24(%esp),%edi
  4435. xorl %edi,%esi
  4436. vpsrld $7,%xmm4,%xmm6
  4437. shrdl $5,%edx,%edx
  4438. andl %ecx,%esi
  4439. movl %ecx,16(%esp)
  4440. vpaddd %xmm7,%xmm0,%xmm0
  4441. xorl %ecx,%edx
  4442. xorl %esi,%edi
  4443. shrdl $6,%edx,%edx
  4444. vpsrld $3,%xmm4,%xmm7
  4445. movl %eax,%ecx
  4446. addl %edi,%edx
  4447. movl 4(%esp),%edi
  4448. vpslld $14,%xmm4,%xmm5
  4449. movl %eax,%esi
  4450. shrdl $9,%ecx,%ecx
  4451. movl %eax,(%esp)
  4452. vpxor %xmm6,%xmm7,%xmm4
  4453. xorl %eax,%ecx
  4454. xorl %edi,%eax
  4455. addl 28(%esp),%edx
  4456. vpshufd $250,%xmm3,%xmm7
  4457. shrdl $11,%ecx,%ecx
  4458. andl %eax,%ebx
  4459. xorl %esi,%ecx
  4460. vpsrld $11,%xmm6,%xmm6
  4461. addl 32(%esp),%edx
  4462. xorl %edi,%ebx
  4463. shrdl $2,%ecx,%ecx
  4464. vpxor %xmm5,%xmm4,%xmm4
  4465. addl %edx,%ebx
  4466. addl 12(%esp),%edx
  4467. addl %ecx,%ebx
  4468. vpslld $11,%xmm5,%xmm5
  4469. movl %edx,%ecx
  4470. shrdl $14,%edx,%edx
  4471. movl 16(%esp),%esi
  4472. vpxor %xmm6,%xmm4,%xmm4
  4473. xorl %ecx,%edx
  4474. movl 20(%esp),%edi
  4475. xorl %edi,%esi
  4476. vpsrld $10,%xmm7,%xmm6
  4477. shrdl $5,%edx,%edx
  4478. andl %ecx,%esi
  4479. movl %ecx,12(%esp)
  4480. vpxor %xmm5,%xmm4,%xmm4
  4481. xorl %ecx,%edx
  4482. xorl %esi,%edi
  4483. shrdl $6,%edx,%edx
  4484. vpsrlq $17,%xmm7,%xmm5
  4485. movl %ebx,%ecx
  4486. addl %edi,%edx
  4487. movl (%esp),%edi
  4488. vpaddd %xmm4,%xmm0,%xmm0
  4489. movl %ebx,%esi
  4490. shrdl $9,%ecx,%ecx
  4491. movl %ebx,28(%esp)
  4492. vpxor %xmm5,%xmm6,%xmm6
  4493. xorl %ebx,%ecx
  4494. xorl %edi,%ebx
  4495. addl 24(%esp),%edx
  4496. vpsrlq $19,%xmm7,%xmm7
  4497. shrdl $11,%ecx,%ecx
  4498. andl %ebx,%eax
  4499. xorl %esi,%ecx
  4500. vpxor %xmm7,%xmm6,%xmm6
  4501. addl 36(%esp),%edx
  4502. xorl %edi,%eax
  4503. shrdl $2,%ecx,%ecx
  4504. vpshufd $132,%xmm6,%xmm7
  4505. addl %edx,%eax
  4506. addl 8(%esp),%edx
  4507. addl %ecx,%eax
  4508. vpsrldq $8,%xmm7,%xmm7
  4509. movl %edx,%ecx
  4510. shrdl $14,%edx,%edx
  4511. movl 12(%esp),%esi
  4512. vpaddd %xmm7,%xmm0,%xmm0
  4513. xorl %ecx,%edx
  4514. movl 16(%esp),%edi
  4515. xorl %edi,%esi
  4516. vpshufd $80,%xmm0,%xmm7
  4517. shrdl $5,%edx,%edx
  4518. andl %ecx,%esi
  4519. movl %ecx,8(%esp)
  4520. vpsrld $10,%xmm7,%xmm6
  4521. xorl %ecx,%edx
  4522. xorl %esi,%edi
  4523. shrdl $6,%edx,%edx
  4524. vpsrlq $17,%xmm7,%xmm5
  4525. movl %eax,%ecx
  4526. addl %edi,%edx
  4527. movl 28(%esp),%edi
  4528. vpxor %xmm5,%xmm6,%xmm6
  4529. movl %eax,%esi
  4530. shrdl $9,%ecx,%ecx
  4531. movl %eax,24(%esp)
  4532. vpsrlq $19,%xmm7,%xmm7
  4533. xorl %eax,%ecx
  4534. xorl %edi,%eax
  4535. addl 20(%esp),%edx
  4536. vpxor %xmm7,%xmm6,%xmm6
  4537. shrdl $11,%ecx,%ecx
  4538. andl %eax,%ebx
  4539. xorl %esi,%ecx
  4540. vpshufd $232,%xmm6,%xmm7
  4541. addl 40(%esp),%edx
  4542. xorl %edi,%ebx
  4543. shrdl $2,%ecx,%ecx
  4544. vpslldq $8,%xmm7,%xmm7
  4545. addl %edx,%ebx
  4546. addl 4(%esp),%edx
  4547. addl %ecx,%ebx
  4548. vpaddd %xmm7,%xmm0,%xmm0
  4549. movl %edx,%ecx
  4550. shrdl $14,%edx,%edx
  4551. movl 8(%esp),%esi
  4552. vpaddd (%ebp),%xmm0,%xmm6
  4553. xorl %ecx,%edx
  4554. movl 12(%esp),%edi
  4555. xorl %edi,%esi
  4556. shrdl $5,%edx,%edx
  4557. andl %ecx,%esi
  4558. movl %ecx,4(%esp)
  4559. xorl %ecx,%edx
  4560. xorl %esi,%edi
  4561. shrdl $6,%edx,%edx
  4562. movl %ebx,%ecx
  4563. addl %edi,%edx
  4564. movl 24(%esp),%edi
  4565. movl %ebx,%esi
  4566. shrdl $9,%ecx,%ecx
  4567. movl %ebx,20(%esp)
  4568. xorl %ebx,%ecx
  4569. xorl %edi,%ebx
  4570. addl 16(%esp),%edx
  4571. shrdl $11,%ecx,%ecx
  4572. andl %ebx,%eax
  4573. xorl %esi,%ecx
  4574. addl 44(%esp),%edx
  4575. xorl %edi,%eax
  4576. shrdl $2,%ecx,%ecx
  4577. addl %edx,%eax
  4578. addl (%esp),%edx
  4579. addl %ecx,%eax
  4580. vmovdqa %xmm6,32(%esp)
  4581. vpalignr $4,%xmm1,%xmm2,%xmm4
  4582. movl %edx,%ecx
  4583. shrdl $14,%edx,%edx
  4584. movl 4(%esp),%esi
  4585. vpalignr $4,%xmm3,%xmm0,%xmm7
  4586. xorl %ecx,%edx
  4587. movl 8(%esp),%edi
  4588. xorl %edi,%esi
  4589. vpsrld $7,%xmm4,%xmm6
  4590. shrdl $5,%edx,%edx
  4591. andl %ecx,%esi
  4592. movl %ecx,(%esp)
  4593. vpaddd %xmm7,%xmm1,%xmm1
  4594. xorl %ecx,%edx
  4595. xorl %esi,%edi
  4596. shrdl $6,%edx,%edx
  4597. vpsrld $3,%xmm4,%xmm7
  4598. movl %eax,%ecx
  4599. addl %edi,%edx
  4600. movl 20(%esp),%edi
  4601. vpslld $14,%xmm4,%xmm5
  4602. movl %eax,%esi
  4603. shrdl $9,%ecx,%ecx
  4604. movl %eax,16(%esp)
  4605. vpxor %xmm6,%xmm7,%xmm4
  4606. xorl %eax,%ecx
  4607. xorl %edi,%eax
  4608. addl 12(%esp),%edx
  4609. vpshufd $250,%xmm0,%xmm7
  4610. shrdl $11,%ecx,%ecx
  4611. andl %eax,%ebx
  4612. xorl %esi,%ecx
  4613. vpsrld $11,%xmm6,%xmm6
  4614. addl 48(%esp),%edx
  4615. xorl %edi,%ebx
  4616. shrdl $2,%ecx,%ecx
  4617. vpxor %xmm5,%xmm4,%xmm4
  4618. addl %edx,%ebx
  4619. addl 28(%esp),%edx
  4620. addl %ecx,%ebx
  4621. vpslld $11,%xmm5,%xmm5
  4622. movl %edx,%ecx
  4623. shrdl $14,%edx,%edx
  4624. movl (%esp),%esi
  4625. vpxor %xmm6,%xmm4,%xmm4
  4626. xorl %ecx,%edx
  4627. movl 4(%esp),%edi
  4628. xorl %edi,%esi
  4629. vpsrld $10,%xmm7,%xmm6
  4630. shrdl $5,%edx,%edx
  4631. andl %ecx,%esi
  4632. movl %ecx,28(%esp)
  4633. vpxor %xmm5,%xmm4,%xmm4
  4634. xorl %ecx,%edx
  4635. xorl %esi,%edi
  4636. shrdl $6,%edx,%edx
  4637. vpsrlq $17,%xmm7,%xmm5
  4638. movl %ebx,%ecx
  4639. addl %edi,%edx
  4640. movl 16(%esp),%edi
  4641. vpaddd %xmm4,%xmm1,%xmm1
  4642. movl %ebx,%esi
  4643. shrdl $9,%ecx,%ecx
  4644. movl %ebx,12(%esp)
  4645. vpxor %xmm5,%xmm6,%xmm6
  4646. xorl %ebx,%ecx
  4647. xorl %edi,%ebx
  4648. addl 8(%esp),%edx
  4649. vpsrlq $19,%xmm7,%xmm7
  4650. shrdl $11,%ecx,%ecx
  4651. andl %ebx,%eax
  4652. xorl %esi,%ecx
  4653. vpxor %xmm7,%xmm6,%xmm6
  4654. addl 52(%esp),%edx
  4655. xorl %edi,%eax
  4656. shrdl $2,%ecx,%ecx
  4657. vpshufd $132,%xmm6,%xmm7
  4658. addl %edx,%eax
  4659. addl 24(%esp),%edx
  4660. addl %ecx,%eax
  4661. vpsrldq $8,%xmm7,%xmm7
  4662. movl %edx,%ecx
  4663. shrdl $14,%edx,%edx
  4664. movl 28(%esp),%esi
  4665. vpaddd %xmm7,%xmm1,%xmm1
  4666. xorl %ecx,%edx
  4667. movl (%esp),%edi
  4668. xorl %edi,%esi
  4669. vpshufd $80,%xmm1,%xmm7
  4670. shrdl $5,%edx,%edx
  4671. andl %ecx,%esi
  4672. movl %ecx,24(%esp)
  4673. vpsrld $10,%xmm7,%xmm6
  4674. xorl %ecx,%edx
  4675. xorl %esi,%edi
  4676. shrdl $6,%edx,%edx
  4677. vpsrlq $17,%xmm7,%xmm5
  4678. movl %eax,%ecx
  4679. addl %edi,%edx
  4680. movl 12(%esp),%edi
  4681. vpxor %xmm5,%xmm6,%xmm6
  4682. movl %eax,%esi
  4683. shrdl $9,%ecx,%ecx
  4684. movl %eax,8(%esp)
  4685. vpsrlq $19,%xmm7,%xmm7
  4686. xorl %eax,%ecx
  4687. xorl %edi,%eax
  4688. addl 4(%esp),%edx
  4689. vpxor %xmm7,%xmm6,%xmm6
  4690. shrdl $11,%ecx,%ecx
  4691. andl %eax,%ebx
  4692. xorl %esi,%ecx
  4693. vpshufd $232,%xmm6,%xmm7
  4694. addl 56(%esp),%edx
  4695. xorl %edi,%ebx
  4696. shrdl $2,%ecx,%ecx
  4697. vpslldq $8,%xmm7,%xmm7
  4698. addl %edx,%ebx
  4699. addl 20(%esp),%edx
  4700. addl %ecx,%ebx
  4701. vpaddd %xmm7,%xmm1,%xmm1
  4702. movl %edx,%ecx
  4703. shrdl $14,%edx,%edx
  4704. movl 24(%esp),%esi
  4705. vpaddd 16(%ebp),%xmm1,%xmm6
  4706. xorl %ecx,%edx
  4707. movl 28(%esp),%edi
  4708. xorl %edi,%esi
  4709. shrdl $5,%edx,%edx
  4710. andl %ecx,%esi
  4711. movl %ecx,20(%esp)
  4712. xorl %ecx,%edx
  4713. xorl %esi,%edi
  4714. shrdl $6,%edx,%edx
  4715. movl %ebx,%ecx
  4716. addl %edi,%edx
  4717. movl 8(%esp),%edi
  4718. movl %ebx,%esi
  4719. shrdl $9,%ecx,%ecx
  4720. movl %ebx,4(%esp)
  4721. xorl %ebx,%ecx
  4722. xorl %edi,%ebx
  4723. addl (%esp),%edx
  4724. shrdl $11,%ecx,%ecx
  4725. andl %ebx,%eax
  4726. xorl %esi,%ecx
  4727. addl 60(%esp),%edx
  4728. xorl %edi,%eax
  4729. shrdl $2,%ecx,%ecx
  4730. addl %edx,%eax
  4731. addl 16(%esp),%edx
  4732. addl %ecx,%eax
  4733. vmovdqa %xmm6,48(%esp)
  4734. vpalignr $4,%xmm2,%xmm3,%xmm4
  4735. movl %edx,%ecx
  4736. shrdl $14,%edx,%edx
  4737. movl 20(%esp),%esi
  4738. vpalignr $4,%xmm0,%xmm1,%xmm7
  4739. xorl %ecx,%edx
  4740. movl 24(%esp),%edi
  4741. xorl %edi,%esi
  4742. vpsrld $7,%xmm4,%xmm6
  4743. shrdl $5,%edx,%edx
  4744. andl %ecx,%esi
  4745. movl %ecx,16(%esp)
  4746. vpaddd %xmm7,%xmm2,%xmm2
  4747. xorl %ecx,%edx
  4748. xorl %esi,%edi
  4749. shrdl $6,%edx,%edx
  4750. vpsrld $3,%xmm4,%xmm7
  4751. movl %eax,%ecx
  4752. addl %edi,%edx
  4753. movl 4(%esp),%edi
  4754. vpslld $14,%xmm4,%xmm5
  4755. movl %eax,%esi
  4756. shrdl $9,%ecx,%ecx
  4757. movl %eax,(%esp)
  4758. vpxor %xmm6,%xmm7,%xmm4
  4759. xorl %eax,%ecx
  4760. xorl %edi,%eax
  4761. addl 28(%esp),%edx
  4762. vpshufd $250,%xmm1,%xmm7
  4763. shrdl $11,%ecx,%ecx
  4764. andl %eax,%ebx
  4765. xorl %esi,%ecx
  4766. vpsrld $11,%xmm6,%xmm6
  4767. addl 64(%esp),%edx
  4768. xorl %edi,%ebx
  4769. shrdl $2,%ecx,%ecx
  4770. vpxor %xmm5,%xmm4,%xmm4
  4771. addl %edx,%ebx
  4772. addl 12(%esp),%edx
  4773. addl %ecx,%ebx
  4774. vpslld $11,%xmm5,%xmm5
  4775. movl %edx,%ecx
  4776. shrdl $14,%edx,%edx
  4777. movl 16(%esp),%esi
  4778. vpxor %xmm6,%xmm4,%xmm4
  4779. xorl %ecx,%edx
  4780. movl 20(%esp),%edi
  4781. xorl %edi,%esi
  4782. vpsrld $10,%xmm7,%xmm6
  4783. shrdl $5,%edx,%edx
  4784. andl %ecx,%esi
  4785. movl %ecx,12(%esp)
  4786. vpxor %xmm5,%xmm4,%xmm4
  4787. xorl %ecx,%edx
  4788. xorl %esi,%edi
  4789. shrdl $6,%edx,%edx
  4790. vpsrlq $17,%xmm7,%xmm5
  4791. movl %ebx,%ecx
  4792. addl %edi,%edx
  4793. movl (%esp),%edi
  4794. vpaddd %xmm4,%xmm2,%xmm2
  4795. movl %ebx,%esi
  4796. shrdl $9,%ecx,%ecx
  4797. movl %ebx,28(%esp)
  4798. vpxor %xmm5,%xmm6,%xmm6
  4799. xorl %ebx,%ecx
  4800. xorl %edi,%ebx
  4801. addl 24(%esp),%edx
  4802. vpsrlq $19,%xmm7,%xmm7
  4803. shrdl $11,%ecx,%ecx
  4804. andl %ebx,%eax
  4805. xorl %esi,%ecx
  4806. vpxor %xmm7,%xmm6,%xmm6
  4807. addl 68(%esp),%edx
  4808. xorl %edi,%eax
  4809. shrdl $2,%ecx,%ecx
  4810. vpshufd $132,%xmm6,%xmm7
  4811. addl %edx,%eax
  4812. addl 8(%esp),%edx
  4813. addl %ecx,%eax
  4814. vpsrldq $8,%xmm7,%xmm7
  4815. movl %edx,%ecx
  4816. shrdl $14,%edx,%edx
  4817. movl 12(%esp),%esi
  4818. vpaddd %xmm7,%xmm2,%xmm2
  4819. xorl %ecx,%edx
  4820. movl 16(%esp),%edi
  4821. xorl %edi,%esi
  4822. vpshufd $80,%xmm2,%xmm7
  4823. shrdl $5,%edx,%edx
  4824. andl %ecx,%esi
  4825. movl %ecx,8(%esp)
  4826. vpsrld $10,%xmm7,%xmm6
  4827. xorl %ecx,%edx
  4828. xorl %esi,%edi
  4829. shrdl $6,%edx,%edx
  4830. vpsrlq $17,%xmm7,%xmm5
  4831. movl %eax,%ecx
  4832. addl %edi,%edx
  4833. movl 28(%esp),%edi
  4834. vpxor %xmm5,%xmm6,%xmm6
  4835. movl %eax,%esi
  4836. shrdl $9,%ecx,%ecx
  4837. movl %eax,24(%esp)
  4838. vpsrlq $19,%xmm7,%xmm7
  4839. xorl %eax,%ecx
  4840. xorl %edi,%eax
  4841. addl 20(%esp),%edx
  4842. vpxor %xmm7,%xmm6,%xmm6
  4843. shrdl $11,%ecx,%ecx
  4844. andl %eax,%ebx
  4845. xorl %esi,%ecx
  4846. vpshufd $232,%xmm6,%xmm7
  4847. addl 72(%esp),%edx
  4848. xorl %edi,%ebx
  4849. shrdl $2,%ecx,%ecx
  4850. vpslldq $8,%xmm7,%xmm7
  4851. addl %edx,%ebx
  4852. addl 4(%esp),%edx
  4853. addl %ecx,%ebx
  4854. vpaddd %xmm7,%xmm2,%xmm2
  4855. movl %edx,%ecx
  4856. shrdl $14,%edx,%edx
  4857. movl 8(%esp),%esi
  4858. vpaddd 32(%ebp),%xmm2,%xmm6
  4859. xorl %ecx,%edx
  4860. movl 12(%esp),%edi
  4861. xorl %edi,%esi
  4862. shrdl $5,%edx,%edx
  4863. andl %ecx,%esi
  4864. movl %ecx,4(%esp)
  4865. xorl %ecx,%edx
  4866. xorl %esi,%edi
  4867. shrdl $6,%edx,%edx
  4868. movl %ebx,%ecx
  4869. addl %edi,%edx
  4870. movl 24(%esp),%edi
  4871. movl %ebx,%esi
  4872. shrdl $9,%ecx,%ecx
  4873. movl %ebx,20(%esp)
  4874. xorl %ebx,%ecx
  4875. xorl %edi,%ebx
  4876. addl 16(%esp),%edx
  4877. shrdl $11,%ecx,%ecx
  4878. andl %ebx,%eax
  4879. xorl %esi,%ecx
  4880. addl 76(%esp),%edx
  4881. xorl %edi,%eax
  4882. shrdl $2,%ecx,%ecx
  4883. addl %edx,%eax
  4884. addl (%esp),%edx
  4885. addl %ecx,%eax
  4886. vmovdqa %xmm6,64(%esp)
  4887. vpalignr $4,%xmm3,%xmm0,%xmm4
  4888. movl %edx,%ecx
  4889. shrdl $14,%edx,%edx
  4890. movl 4(%esp),%esi
  4891. vpalignr $4,%xmm1,%xmm2,%xmm7
  4892. xorl %ecx,%edx
  4893. movl 8(%esp),%edi
  4894. xorl %edi,%esi
  4895. vpsrld $7,%xmm4,%xmm6
  4896. shrdl $5,%edx,%edx
  4897. andl %ecx,%esi
  4898. movl %ecx,(%esp)
  4899. vpaddd %xmm7,%xmm3,%xmm3
  4900. xorl %ecx,%edx
  4901. xorl %esi,%edi
  4902. shrdl $6,%edx,%edx
  4903. vpsrld $3,%xmm4,%xmm7
  4904. movl %eax,%ecx
  4905. addl %edi,%edx
  4906. movl 20(%esp),%edi
  4907. vpslld $14,%xmm4,%xmm5
  4908. movl %eax,%esi
  4909. shrdl $9,%ecx,%ecx
  4910. movl %eax,16(%esp)
  4911. vpxor %xmm6,%xmm7,%xmm4
  4912. xorl %eax,%ecx
  4913. xorl %edi,%eax
  4914. addl 12(%esp),%edx
  4915. vpshufd $250,%xmm2,%xmm7
  4916. shrdl $11,%ecx,%ecx
  4917. andl %eax,%ebx
  4918. xorl %esi,%ecx
  4919. vpsrld $11,%xmm6,%xmm6
  4920. addl 80(%esp),%edx
  4921. xorl %edi,%ebx
  4922. shrdl $2,%ecx,%ecx
  4923. vpxor %xmm5,%xmm4,%xmm4
  4924. addl %edx,%ebx
  4925. addl 28(%esp),%edx
  4926. addl %ecx,%ebx
  4927. vpslld $11,%xmm5,%xmm5
  4928. movl %edx,%ecx
  4929. shrdl $14,%edx,%edx
  4930. movl (%esp),%esi
  4931. vpxor %xmm6,%xmm4,%xmm4
  4932. xorl %ecx,%edx
  4933. movl 4(%esp),%edi
  4934. xorl %edi,%esi
  4935. vpsrld $10,%xmm7,%xmm6
  4936. shrdl $5,%edx,%edx
  4937. andl %ecx,%esi
  4938. movl %ecx,28(%esp)
  4939. vpxor %xmm5,%xmm4,%xmm4
  4940. xorl %ecx,%edx
  4941. xorl %esi,%edi
  4942. shrdl $6,%edx,%edx
  4943. vpsrlq $17,%xmm7,%xmm5
  4944. movl %ebx,%ecx
  4945. addl %edi,%edx
  4946. movl 16(%esp),%edi
  4947. vpaddd %xmm4,%xmm3,%xmm3
  4948. movl %ebx,%esi
  4949. shrdl $9,%ecx,%ecx
  4950. movl %ebx,12(%esp)
  4951. vpxor %xmm5,%xmm6,%xmm6
  4952. xorl %ebx,%ecx
  4953. xorl %edi,%ebx
  4954. addl 8(%esp),%edx
  4955. vpsrlq $19,%xmm7,%xmm7
  4956. shrdl $11,%ecx,%ecx
  4957. andl %ebx,%eax
  4958. xorl %esi,%ecx
  4959. vpxor %xmm7,%xmm6,%xmm6
  4960. addl 84(%esp),%edx
  4961. xorl %edi,%eax
  4962. shrdl $2,%ecx,%ecx
  4963. vpshufd $132,%xmm6,%xmm7
  4964. addl %edx,%eax
  4965. addl 24(%esp),%edx
  4966. addl %ecx,%eax
  4967. vpsrldq $8,%xmm7,%xmm7
  4968. movl %edx,%ecx
  4969. shrdl $14,%edx,%edx
  4970. movl 28(%esp),%esi
  4971. vpaddd %xmm7,%xmm3,%xmm3
  4972. xorl %ecx,%edx
  4973. movl (%esp),%edi
  4974. xorl %edi,%esi
  4975. vpshufd $80,%xmm3,%xmm7
  4976. shrdl $5,%edx,%edx
  4977. andl %ecx,%esi
  4978. movl %ecx,24(%esp)
  4979. vpsrld $10,%xmm7,%xmm6
  4980. xorl %ecx,%edx
  4981. xorl %esi,%edi
  4982. shrdl $6,%edx,%edx
  4983. vpsrlq $17,%xmm7,%xmm5
  4984. movl %eax,%ecx
  4985. addl %edi,%edx
  4986. movl 12(%esp),%edi
  4987. vpxor %xmm5,%xmm6,%xmm6
  4988. movl %eax,%esi
  4989. shrdl $9,%ecx,%ecx
  4990. movl %eax,8(%esp)
  4991. vpsrlq $19,%xmm7,%xmm7
  4992. xorl %eax,%ecx
  4993. xorl %edi,%eax
  4994. addl 4(%esp),%edx
  4995. vpxor %xmm7,%xmm6,%xmm6
  4996. shrdl $11,%ecx,%ecx
  4997. andl %eax,%ebx
  4998. xorl %esi,%ecx
  4999. vpshufd $232,%xmm6,%xmm7
  5000. addl 88(%esp),%edx
  5001. xorl %edi,%ebx
  5002. shrdl $2,%ecx,%ecx
  5003. vpslldq $8,%xmm7,%xmm7
  5004. addl %edx,%ebx
  5005. addl 20(%esp),%edx
  5006. addl %ecx,%ebx
  5007. vpaddd %xmm7,%xmm3,%xmm3
  5008. movl %edx,%ecx
  5009. shrdl $14,%edx,%edx
  5010. movl 24(%esp),%esi
  5011. vpaddd 48(%ebp),%xmm3,%xmm6
  5012. xorl %ecx,%edx
  5013. movl 28(%esp),%edi
  5014. xorl %edi,%esi
  5015. shrdl $5,%edx,%edx
  5016. andl %ecx,%esi
  5017. movl %ecx,20(%esp)
  5018. xorl %ecx,%edx
  5019. xorl %esi,%edi
  5020. shrdl $6,%edx,%edx
  5021. movl %ebx,%ecx
  5022. addl %edi,%edx
  5023. movl 8(%esp),%edi
  5024. movl %ebx,%esi
  5025. shrdl $9,%ecx,%ecx
  5026. movl %ebx,4(%esp)
  5027. xorl %ebx,%ecx
  5028. xorl %edi,%ebx
  5029. addl (%esp),%edx
  5030. shrdl $11,%ecx,%ecx
  5031. andl %ebx,%eax
  5032. xorl %esi,%ecx
  5033. addl 92(%esp),%edx
  5034. xorl %edi,%eax
  5035. shrdl $2,%ecx,%ecx
  5036. addl %edx,%eax
  5037. addl 16(%esp),%edx
  5038. addl %ecx,%eax
  5039. vmovdqa %xmm6,80(%esp)
  5040. cmpl $66051,64(%ebp)
  5041. jne L013avx_00_47
  5042. movl %edx,%ecx
  5043. shrdl $14,%edx,%edx
  5044. movl 20(%esp),%esi
  5045. xorl %ecx,%edx
  5046. movl 24(%esp),%edi
  5047. xorl %edi,%esi
  5048. shrdl $5,%edx,%edx
  5049. andl %ecx,%esi
  5050. movl %ecx,16(%esp)
  5051. xorl %ecx,%edx
  5052. xorl %esi,%edi
  5053. shrdl $6,%edx,%edx
  5054. movl %eax,%ecx
  5055. addl %edi,%edx
  5056. movl 4(%esp),%edi
  5057. movl %eax,%esi
  5058. shrdl $9,%ecx,%ecx
  5059. movl %eax,(%esp)
  5060. xorl %eax,%ecx
  5061. xorl %edi,%eax
  5062. addl 28(%esp),%edx
  5063. shrdl $11,%ecx,%ecx
  5064. andl %eax,%ebx
  5065. xorl %esi,%ecx
  5066. addl 32(%esp),%edx
  5067. xorl %edi,%ebx
  5068. shrdl $2,%ecx,%ecx
  5069. addl %edx,%ebx
  5070. addl 12(%esp),%edx
  5071. addl %ecx,%ebx
  5072. movl %edx,%ecx
  5073. shrdl $14,%edx,%edx
  5074. movl 16(%esp),%esi
  5075. xorl %ecx,%edx
  5076. movl 20(%esp),%edi
  5077. xorl %edi,%esi
  5078. shrdl $5,%edx,%edx
  5079. andl %ecx,%esi
  5080. movl %ecx,12(%esp)
  5081. xorl %ecx,%edx
  5082. xorl %esi,%edi
  5083. shrdl $6,%edx,%edx
  5084. movl %ebx,%ecx
  5085. addl %edi,%edx
  5086. movl (%esp),%edi
  5087. movl %ebx,%esi
  5088. shrdl $9,%ecx,%ecx
  5089. movl %ebx,28(%esp)
  5090. xorl %ebx,%ecx
  5091. xorl %edi,%ebx
  5092. addl 24(%esp),%edx
  5093. shrdl $11,%ecx,%ecx
  5094. andl %ebx,%eax
  5095. xorl %esi,%ecx
  5096. addl 36(%esp),%edx
  5097. xorl %edi,%eax
  5098. shrdl $2,%ecx,%ecx
  5099. addl %edx,%eax
  5100. addl 8(%esp),%edx
  5101. addl %ecx,%eax
  5102. movl %edx,%ecx
  5103. shrdl $14,%edx,%edx
  5104. movl 12(%esp),%esi
  5105. xorl %ecx,%edx
  5106. movl 16(%esp),%edi
  5107. xorl %edi,%esi
  5108. shrdl $5,%edx,%edx
  5109. andl %ecx,%esi
  5110. movl %ecx,8(%esp)
  5111. xorl %ecx,%edx
  5112. xorl %esi,%edi
  5113. shrdl $6,%edx,%edx
  5114. movl %eax,%ecx
  5115. addl %edi,%edx
  5116. movl 28(%esp),%edi
  5117. movl %eax,%esi
  5118. shrdl $9,%ecx,%ecx
  5119. movl %eax,24(%esp)
  5120. xorl %eax,%ecx
  5121. xorl %edi,%eax
  5122. addl 20(%esp),%edx
  5123. shrdl $11,%ecx,%ecx
  5124. andl %eax,%ebx
  5125. xorl %esi,%ecx
  5126. addl 40(%esp),%edx
  5127. xorl %edi,%ebx
  5128. shrdl $2,%ecx,%ecx
  5129. addl %edx,%ebx
  5130. addl 4(%esp),%edx
  5131. addl %ecx,%ebx
  5132. movl %edx,%ecx
  5133. shrdl $14,%edx,%edx
  5134. movl 8(%esp),%esi
  5135. xorl %ecx,%edx
  5136. movl 12(%esp),%edi
  5137. xorl %edi,%esi
  5138. shrdl $5,%edx,%edx
  5139. andl %ecx,%esi
  5140. movl %ecx,4(%esp)
  5141. xorl %ecx,%edx
  5142. xorl %esi,%edi
  5143. shrdl $6,%edx,%edx
  5144. movl %ebx,%ecx
  5145. addl %edi,%edx
  5146. movl 24(%esp),%edi
  5147. movl %ebx,%esi
  5148. shrdl $9,%ecx,%ecx
  5149. movl %ebx,20(%esp)
  5150. xorl %ebx,%ecx
  5151. xorl %edi,%ebx
  5152. addl 16(%esp),%edx
  5153. shrdl $11,%ecx,%ecx
  5154. andl %ebx,%eax
  5155. xorl %esi,%ecx
  5156. addl 44(%esp),%edx
  5157. xorl %edi,%eax
  5158. shrdl $2,%ecx,%ecx
  5159. addl %edx,%eax
  5160. addl (%esp),%edx
  5161. addl %ecx,%eax
  5162. movl %edx,%ecx
  5163. shrdl $14,%edx,%edx
  5164. movl 4(%esp),%esi
  5165. xorl %ecx,%edx
  5166. movl 8(%esp),%edi
  5167. xorl %edi,%esi
  5168. shrdl $5,%edx,%edx
  5169. andl %ecx,%esi
  5170. movl %ecx,(%esp)
  5171. xorl %ecx,%edx
  5172. xorl %esi,%edi
  5173. shrdl $6,%edx,%edx
  5174. movl %eax,%ecx
  5175. addl %edi,%edx
  5176. movl 20(%esp),%edi
  5177. movl %eax,%esi
  5178. shrdl $9,%ecx,%ecx
  5179. movl %eax,16(%esp)
  5180. xorl %eax,%ecx
  5181. xorl %edi,%eax
  5182. addl 12(%esp),%edx
  5183. shrdl $11,%ecx,%ecx
  5184. andl %eax,%ebx
  5185. xorl %esi,%ecx
  5186. addl 48(%esp),%edx
  5187. xorl %edi,%ebx
  5188. shrdl $2,%ecx,%ecx
  5189. addl %edx,%ebx
  5190. addl 28(%esp),%edx
  5191. addl %ecx,%ebx
  5192. movl %edx,%ecx
  5193. shrdl $14,%edx,%edx
  5194. movl (%esp),%esi
  5195. xorl %ecx,%edx
  5196. movl 4(%esp),%edi
  5197. xorl %edi,%esi
  5198. shrdl $5,%edx,%edx
  5199. andl %ecx,%esi
  5200. movl %ecx,28(%esp)
  5201. xorl %ecx,%edx
  5202. xorl %esi,%edi
  5203. shrdl $6,%edx,%edx
  5204. movl %ebx,%ecx
  5205. addl %edi,%edx
  5206. movl 16(%esp),%edi
  5207. movl %ebx,%esi
  5208. shrdl $9,%ecx,%ecx
  5209. movl %ebx,12(%esp)
  5210. xorl %ebx,%ecx
  5211. xorl %edi,%ebx
  5212. addl 8(%esp),%edx
  5213. shrdl $11,%ecx,%ecx
  5214. andl %ebx,%eax
  5215. xorl %esi,%ecx
  5216. addl 52(%esp),%edx
  5217. xorl %edi,%eax
  5218. shrdl $2,%ecx,%ecx
  5219. addl %edx,%eax
  5220. addl 24(%esp),%edx
  5221. addl %ecx,%eax
  5222. movl %edx,%ecx
  5223. shrdl $14,%edx,%edx
  5224. movl 28(%esp),%esi
  5225. xorl %ecx,%edx
  5226. movl (%esp),%edi
  5227. xorl %edi,%esi
  5228. shrdl $5,%edx,%edx
  5229. andl %ecx,%esi
  5230. movl %ecx,24(%esp)
  5231. xorl %ecx,%edx
  5232. xorl %esi,%edi
  5233. shrdl $6,%edx,%edx
  5234. movl %eax,%ecx
  5235. addl %edi,%edx
  5236. movl 12(%esp),%edi
  5237. movl %eax,%esi
  5238. shrdl $9,%ecx,%ecx
  5239. movl %eax,8(%esp)
  5240. xorl %eax,%ecx
  5241. xorl %edi,%eax
  5242. addl 4(%esp),%edx
  5243. shrdl $11,%ecx,%ecx
  5244. andl %eax,%ebx
  5245. xorl %esi,%ecx
  5246. addl 56(%esp),%edx
  5247. xorl %edi,%ebx
  5248. shrdl $2,%ecx,%ecx
  5249. addl %edx,%ebx
  5250. addl 20(%esp),%edx
  5251. addl %ecx,%ebx
  5252. movl %edx,%ecx
  5253. shrdl $14,%edx,%edx
  5254. movl 24(%esp),%esi
  5255. xorl %ecx,%edx
  5256. movl 28(%esp),%edi
  5257. xorl %edi,%esi
  5258. shrdl $5,%edx,%edx
  5259. andl %ecx,%esi
  5260. movl %ecx,20(%esp)
  5261. xorl %ecx,%edx
  5262. xorl %esi,%edi
  5263. shrdl $6,%edx,%edx
  5264. movl %ebx,%ecx
  5265. addl %edi,%edx
  5266. movl 8(%esp),%edi
  5267. movl %ebx,%esi
  5268. shrdl $9,%ecx,%ecx
  5269. movl %ebx,4(%esp)
  5270. xorl %ebx,%ecx
  5271. xorl %edi,%ebx
  5272. addl (%esp),%edx
  5273. shrdl $11,%ecx,%ecx
  5274. andl %ebx,%eax
  5275. xorl %esi,%ecx
  5276. addl 60(%esp),%edx
  5277. xorl %edi,%eax
  5278. shrdl $2,%ecx,%ecx
  5279. addl %edx,%eax
  5280. addl 16(%esp),%edx
  5281. addl %ecx,%eax
  5282. movl %edx,%ecx
  5283. shrdl $14,%edx,%edx
  5284. movl 20(%esp),%esi
  5285. xorl %ecx,%edx
  5286. movl 24(%esp),%edi
  5287. xorl %edi,%esi
  5288. shrdl $5,%edx,%edx
  5289. andl %ecx,%esi
  5290. movl %ecx,16(%esp)
  5291. xorl %ecx,%edx
  5292. xorl %esi,%edi
  5293. shrdl $6,%edx,%edx
  5294. movl %eax,%ecx
  5295. addl %edi,%edx
  5296. movl 4(%esp),%edi
  5297. movl %eax,%esi
  5298. shrdl $9,%ecx,%ecx
  5299. movl %eax,(%esp)
  5300. xorl %eax,%ecx
  5301. xorl %edi,%eax
  5302. addl 28(%esp),%edx
  5303. shrdl $11,%ecx,%ecx
  5304. andl %eax,%ebx
  5305. xorl %esi,%ecx
  5306. addl 64(%esp),%edx
  5307. xorl %edi,%ebx
  5308. shrdl $2,%ecx,%ecx
  5309. addl %edx,%ebx
  5310. addl 12(%esp),%edx
  5311. addl %ecx,%ebx
  5312. movl %edx,%ecx
  5313. shrdl $14,%edx,%edx
  5314. movl 16(%esp),%esi
  5315. xorl %ecx,%edx
  5316. movl 20(%esp),%edi
  5317. xorl %edi,%esi
  5318. shrdl $5,%edx,%edx
  5319. andl %ecx,%esi
  5320. movl %ecx,12(%esp)
  5321. xorl %ecx,%edx
  5322. xorl %esi,%edi
  5323. shrdl $6,%edx,%edx
  5324. movl %ebx,%ecx
  5325. addl %edi,%edx
  5326. movl (%esp),%edi
  5327. movl %ebx,%esi
  5328. shrdl $9,%ecx,%ecx
  5329. movl %ebx,28(%esp)
  5330. xorl %ebx,%ecx
  5331. xorl %edi,%ebx
  5332. addl 24(%esp),%edx
  5333. shrdl $11,%ecx,%ecx
  5334. andl %ebx,%eax
  5335. xorl %esi,%ecx
  5336. addl 68(%esp),%edx
  5337. xorl %edi,%eax
  5338. shrdl $2,%ecx,%ecx
  5339. addl %edx,%eax
  5340. addl 8(%esp),%edx
  5341. addl %ecx,%eax
  5342. movl %edx,%ecx
  5343. shrdl $14,%edx,%edx
  5344. movl 12(%esp),%esi
  5345. xorl %ecx,%edx
  5346. movl 16(%esp),%edi
  5347. xorl %edi,%esi
  5348. shrdl $5,%edx,%edx
  5349. andl %ecx,%esi
  5350. movl %ecx,8(%esp)
  5351. xorl %ecx,%edx
  5352. xorl %esi,%edi
  5353. shrdl $6,%edx,%edx
  5354. movl %eax,%ecx
  5355. addl %edi,%edx
  5356. movl 28(%esp),%edi
  5357. movl %eax,%esi
  5358. shrdl $9,%ecx,%ecx
  5359. movl %eax,24(%esp)
  5360. xorl %eax,%ecx
  5361. xorl %edi,%eax
  5362. addl 20(%esp),%edx
  5363. shrdl $11,%ecx,%ecx
  5364. andl %eax,%ebx
  5365. xorl %esi,%ecx
  5366. addl 72(%esp),%edx
  5367. xorl %edi,%ebx
  5368. shrdl $2,%ecx,%ecx
  5369. addl %edx,%ebx
  5370. addl 4(%esp),%edx
  5371. addl %ecx,%ebx
  5372. movl %edx,%ecx
  5373. shrdl $14,%edx,%edx
  5374. movl 8(%esp),%esi
  5375. xorl %ecx,%edx
  5376. movl 12(%esp),%edi
  5377. xorl %edi,%esi
  5378. shrdl $5,%edx,%edx
  5379. andl %ecx,%esi
  5380. movl %ecx,4(%esp)
  5381. xorl %ecx,%edx
  5382. xorl %esi,%edi
  5383. shrdl $6,%edx,%edx
  5384. movl %ebx,%ecx
  5385. addl %edi,%edx
  5386. movl 24(%esp),%edi
  5387. movl %ebx,%esi
  5388. shrdl $9,%ecx,%ecx
  5389. movl %ebx,20(%esp)
  5390. xorl %ebx,%ecx
  5391. xorl %edi,%ebx
  5392. addl 16(%esp),%edx
  5393. shrdl $11,%ecx,%ecx
  5394. andl %ebx,%eax
  5395. xorl %esi,%ecx
  5396. addl 76(%esp),%edx
  5397. xorl %edi,%eax
  5398. shrdl $2,%ecx,%ecx
  5399. addl %edx,%eax
  5400. addl (%esp),%edx
  5401. addl %ecx,%eax
  5402. movl %edx,%ecx
  5403. shrdl $14,%edx,%edx
  5404. movl 4(%esp),%esi
  5405. xorl %ecx,%edx
  5406. movl 8(%esp),%edi
  5407. xorl %edi,%esi
  5408. shrdl $5,%edx,%edx
  5409. andl %ecx,%esi
  5410. movl %ecx,(%esp)
  5411. xorl %ecx,%edx
  5412. xorl %esi,%edi
  5413. shrdl $6,%edx,%edx
  5414. movl %eax,%ecx
  5415. addl %edi,%edx
  5416. movl 20(%esp),%edi
  5417. movl %eax,%esi
  5418. shrdl $9,%ecx,%ecx
  5419. movl %eax,16(%esp)
  5420. xorl %eax,%ecx
  5421. xorl %edi,%eax
  5422. addl 12(%esp),%edx
  5423. shrdl $11,%ecx,%ecx
  5424. andl %eax,%ebx
  5425. xorl %esi,%ecx
  5426. addl 80(%esp),%edx
  5427. xorl %edi,%ebx
  5428. shrdl $2,%ecx,%ecx
  5429. addl %edx,%ebx
  5430. addl 28(%esp),%edx
  5431. addl %ecx,%ebx
  5432. movl %edx,%ecx
  5433. shrdl $14,%edx,%edx
  5434. movl (%esp),%esi
  5435. xorl %ecx,%edx
  5436. movl 4(%esp),%edi
  5437. xorl %edi,%esi
  5438. shrdl $5,%edx,%edx
  5439. andl %ecx,%esi
  5440. movl %ecx,28(%esp)
  5441. xorl %ecx,%edx
  5442. xorl %esi,%edi
  5443. shrdl $6,%edx,%edx
  5444. movl %ebx,%ecx
  5445. addl %edi,%edx
  5446. movl 16(%esp),%edi
  5447. movl %ebx,%esi
  5448. shrdl $9,%ecx,%ecx
  5449. movl %ebx,12(%esp)
  5450. xorl %ebx,%ecx
  5451. xorl %edi,%ebx
  5452. addl 8(%esp),%edx
  5453. shrdl $11,%ecx,%ecx
  5454. andl %ebx,%eax
  5455. xorl %esi,%ecx
  5456. addl 84(%esp),%edx
  5457. xorl %edi,%eax
  5458. shrdl $2,%ecx,%ecx
  5459. addl %edx,%eax
  5460. addl 24(%esp),%edx
  5461. addl %ecx,%eax
  5462. movl %edx,%ecx
  5463. shrdl $14,%edx,%edx
  5464. movl 28(%esp),%esi
  5465. xorl %ecx,%edx
  5466. movl (%esp),%edi
  5467. xorl %edi,%esi
  5468. shrdl $5,%edx,%edx
  5469. andl %ecx,%esi
  5470. movl %ecx,24(%esp)
  5471. xorl %ecx,%edx
  5472. xorl %esi,%edi
  5473. shrdl $6,%edx,%edx
  5474. movl %eax,%ecx
  5475. addl %edi,%edx
  5476. movl 12(%esp),%edi
  5477. movl %eax,%esi
  5478. shrdl $9,%ecx,%ecx
  5479. movl %eax,8(%esp)
  5480. xorl %eax,%ecx
  5481. xorl %edi,%eax
  5482. addl 4(%esp),%edx
  5483. shrdl $11,%ecx,%ecx
  5484. andl %eax,%ebx
  5485. xorl %esi,%ecx
  5486. addl 88(%esp),%edx
  5487. xorl %edi,%ebx
  5488. shrdl $2,%ecx,%ecx
  5489. addl %edx,%ebx
  5490. addl 20(%esp),%edx
  5491. addl %ecx,%ebx
  5492. movl %edx,%ecx
  5493. shrdl $14,%edx,%edx
  5494. movl 24(%esp),%esi
  5495. xorl %ecx,%edx
  5496. movl 28(%esp),%edi
  5497. xorl %edi,%esi
  5498. shrdl $5,%edx,%edx
  5499. andl %ecx,%esi
  5500. movl %ecx,20(%esp)
  5501. xorl %ecx,%edx
  5502. xorl %esi,%edi
  5503. shrdl $6,%edx,%edx
  5504. movl %ebx,%ecx
  5505. addl %edi,%edx
  5506. movl 8(%esp),%edi
  5507. movl %ebx,%esi
  5508. shrdl $9,%ecx,%ecx
  5509. movl %ebx,4(%esp)
  5510. xorl %ebx,%ecx
  5511. xorl %edi,%ebx
  5512. addl (%esp),%edx
  5513. shrdl $11,%ecx,%ecx
  5514. andl %ebx,%eax
  5515. xorl %esi,%ecx
  5516. addl 92(%esp),%edx
  5517. xorl %edi,%eax
  5518. shrdl $2,%ecx,%ecx
  5519. addl %edx,%eax
  5520. addl 16(%esp),%edx
  5521. addl %ecx,%eax
  5522. movl 96(%esp),%esi
  5523. xorl %edi,%ebx
  5524. movl 12(%esp),%ecx
  5525. addl (%esi),%eax
  5526. addl 4(%esi),%ebx
  5527. addl 8(%esi),%edi
  5528. addl 12(%esi),%ecx
  5529. movl %eax,(%esi)
  5530. movl %ebx,4(%esi)
  5531. movl %edi,8(%esi)
  5532. movl %ecx,12(%esi)
  5533. movl %ebx,4(%esp)
  5534. xorl %edi,%ebx
  5535. movl %edi,8(%esp)
  5536. movl %ecx,12(%esp)
  5537. movl 20(%esp),%edi
  5538. movl 24(%esp),%ecx
  5539. addl 16(%esi),%edx
  5540. addl 20(%esi),%edi
  5541. addl 24(%esi),%ecx
  5542. movl %edx,16(%esi)
  5543. movl %edi,20(%esi)
  5544. movl %edi,20(%esp)
  5545. movl 28(%esp),%edi
  5546. movl %ecx,24(%esi)
  5547. addl 28(%esi),%edi
  5548. movl %ecx,24(%esp)
  5549. movl %edi,28(%esi)
  5550. movl %edi,28(%esp)
  5551. movl 100(%esp),%edi
  5552. vmovdqa 64(%ebp),%xmm7
  5553. subl $192,%ebp
  5554. cmpl 104(%esp),%edi
  5555. jb L012grand_avx
  5556. movl 108(%esp),%esp
  5557. vzeroall
  5558. popl %edi
  5559. popl %esi
  5560. popl %ebx
  5561. popl %ebp
  5562. ret
  5563. .section __IMPORT,__pointers,non_lazy_symbol_pointers
  5564. L_OPENSSL_ia32cap_P$non_lazy_ptr:
  5565. .indirect_symbol _OPENSSL_ia32cap_P
  5566. .long 0
  5567. #endif