Path: blob/main/sys/crypto/openssl/i386/cast-586.S
39482 views
/* Do not modify. This file is auto-generated from cast-586.pl. */1#ifdef PIC2.text3.globl CAST_encrypt4.type CAST_encrypt,@function5.align 166CAST_encrypt:7.L_CAST_encrypt_begin:8#ifdef __CET__910.byte 243,15,30,25111#endif121314pushl %ebp15pushl %ebx16movl 12(%esp),%ebx17movl 16(%esp),%ebp18pushl %esi19pushl %edi2021movl (%ebx),%edi22movl 4(%ebx),%esi2324movl 128(%ebp),%eax25pushl %eax26xorl %eax,%eax2728movl (%ebp),%edx29movl 4(%ebp),%ecx30addl %esi,%edx31roll %cl,%edx32xorl %ecx,%ecx33movl $255,%ebx34movb %dh,%cl35andl %edx,%ebx36shrl $16,%edx37xorl %eax,%eax38movb %dh,%al39andl $255,%edx40movl CAST_S_table0(,%ecx,4),%ecx41movl CAST_S_table1(,%ebx,4),%ebx42xorl %ebx,%ecx43movl CAST_S_table2(,%eax,4),%ebx44subl %ebx,%ecx45movl CAST_S_table3(,%edx,4),%ebx46addl %ebx,%ecx47xorl %ecx,%edi4849movl 8(%ebp),%edx50movl 12(%ebp),%ecx51xorl %edi,%edx52roll %cl,%edx53xorl %ecx,%ecx54movl $255,%ebx55movb %dh,%cl56andl %edx,%ebx57shrl $16,%edx58xorl %eax,%eax59movb %dh,%al60andl $255,%edx61movl CAST_S_table0(,%ecx,4),%ecx62movl CAST_S_table1(,%ebx,4),%ebx63subl %ebx,%ecx64movl CAST_S_table2(,%eax,4),%ebx65addl %ebx,%ecx66movl CAST_S_table3(,%edx,4),%ebx67xorl %ebx,%ecx68xorl %ecx,%esi6970movl 16(%ebp),%edx71movl 20(%ebp),%ecx72subl %esi,%edx73roll %cl,%edx74xorl %ecx,%ecx75movl $255,%ebx76movb %dh,%cl77andl %edx,%ebx78shrl $16,%edx79xorl %eax,%eax80movb %dh,%al81andl $255,%edx82movl CAST_S_table0(,%ecx,4),%ecx83movl CAST_S_table1(,%ebx,4),%ebx84addl %ebx,%ecx85movl CAST_S_table2(,%eax,4),%ebx86xorl %ebx,%ecx87movl CAST_S_table3(,%edx,4),%ebx88subl %ebx,%ecx89xorl %ecx,%edi9091movl 24(%ebp),%edx92movl 28(%ebp),%ecx93addl %edi,%edx94roll %cl,%edx95xorl %ecx,%ecx96movl $255,%ebx97movb %dh,%cl98andl %edx,%ebx99shrl $16,%edx100xorl %eax,%eax101movb %dh,%al102andl $255,%edx103movl CAST_S_table0(,%ecx,4),%ecx104movl CAST_S_table1(,%ebx,4),%ebx105xorl %ebx,%ecx106movl CAST_S_table2(,%eax,4),%ebx107subl %ebx,%ecx108movl CAST_S_table3(,%edx,4),%ebx109addl %ebx,%ecx110xorl %ecx,%esi111112movl 32(%ebp),%edx113movl 36(%ebp),%ecx114xorl %esi,%edx115roll %cl,%edx116xorl %ecx,%ecx117movl $255,%ebx118movb %dh,%cl119andl %edx,%ebx120shrl $16,%edx121xorl %eax,%eax122movb %dh,%al123andl $255,%edx124movl CAST_S_table0(,%ecx,4),%ecx125movl CAST_S_table1(,%ebx,4),%ebx126subl %ebx,%ecx127movl CAST_S_table2(,%eax,4),%ebx128addl %ebx,%ecx129movl CAST_S_table3(,%edx,4),%ebx130xorl %ebx,%ecx131xorl %ecx,%edi132133movl 40(%ebp),%edx134movl 44(%ebp),%ecx135subl %edi,%edx136roll %cl,%edx137xorl %ecx,%ecx138movl $255,%ebx139movb %dh,%cl140andl %edx,%ebx141shrl $16,%edx142xorl %eax,%eax143movb %dh,%al144andl $255,%edx145movl CAST_S_table0(,%ecx,4),%ecx146movl CAST_S_table1(,%ebx,4),%ebx147addl %ebx,%ecx148movl CAST_S_table2(,%eax,4),%ebx149xorl %ebx,%ecx150movl CAST_S_table3(,%edx,4),%ebx151subl %ebx,%ecx152xorl %ecx,%esi153154movl 48(%ebp),%edx155movl 52(%ebp),%ecx156addl %esi,%edx157roll %cl,%edx158xorl %ecx,%ecx159movl $255,%ebx160movb %dh,%cl161andl %edx,%ebx162shrl $16,%edx163xorl %eax,%eax164movb %dh,%al165andl $255,%edx166movl CAST_S_table0(,%ecx,4),%ecx167movl CAST_S_table1(,%ebx,4),%ebx168xorl %ebx,%ecx169movl CAST_S_table2(,%eax,4),%ebx170subl %ebx,%ecx171movl CAST_S_table3(,%edx,4),%ebx172addl %ebx,%ecx173xorl %ecx,%edi174175movl 56(%ebp),%edx176movl 60(%ebp),%ecx177xorl %edi,%edx178roll %cl,%edx179xorl %ecx,%ecx180movl $255,%ebx181movb %dh,%cl182andl %edx,%ebx183shrl $16,%edx184xorl %eax,%eax185movb %dh,%al186andl $255,%edx187movl CAST_S_table0(,%ecx,4),%ecx188movl CAST_S_table1(,%ebx,4),%ebx189subl %ebx,%ecx190movl CAST_S_table2(,%eax,4),%ebx191addl %ebx,%ecx192movl CAST_S_table3(,%edx,4),%ebx193xorl %ebx,%ecx194xorl %ecx,%esi195196movl 64(%ebp),%edx197movl 68(%ebp),%ecx198subl %esi,%edx199roll %cl,%edx200xorl %ecx,%ecx201movl $255,%ebx202movb %dh,%cl203andl %edx,%ebx204shrl $16,%edx205xorl %eax,%eax206movb %dh,%al207andl $255,%edx208movl CAST_S_table0(,%ecx,4),%ecx209movl CAST_S_table1(,%ebx,4),%ebx210addl %ebx,%ecx211movl CAST_S_table2(,%eax,4),%ebx212xorl %ebx,%ecx213movl CAST_S_table3(,%edx,4),%ebx214subl %ebx,%ecx215xorl %ecx,%edi216217movl 72(%ebp),%edx218movl 76(%ebp),%ecx219addl %edi,%edx220roll %cl,%edx221xorl %ecx,%ecx222movl $255,%ebx223movb %dh,%cl224andl %edx,%ebx225shrl $16,%edx226xorl %eax,%eax227movb %dh,%al228andl $255,%edx229movl CAST_S_table0(,%ecx,4),%ecx230movl CAST_S_table1(,%ebx,4),%ebx231xorl %ebx,%ecx232movl CAST_S_table2(,%eax,4),%ebx233subl %ebx,%ecx234movl CAST_S_table3(,%edx,4),%ebx235addl %ebx,%ecx236xorl %ecx,%esi237238movl 80(%ebp),%edx239movl 84(%ebp),%ecx240xorl %esi,%edx241roll %cl,%edx242xorl %ecx,%ecx243movl $255,%ebx244movb %dh,%cl245andl %edx,%ebx246shrl $16,%edx247xorl %eax,%eax248movb %dh,%al249andl $255,%edx250movl CAST_S_table0(,%ecx,4),%ecx251movl CAST_S_table1(,%ebx,4),%ebx252subl %ebx,%ecx253movl CAST_S_table2(,%eax,4),%ebx254addl %ebx,%ecx255movl CAST_S_table3(,%edx,4),%ebx256xorl %ebx,%ecx257xorl %ecx,%edi258259movl 88(%ebp),%edx260movl 92(%ebp),%ecx261subl %edi,%edx262roll %cl,%edx263xorl %ecx,%ecx264movl $255,%ebx265movb %dh,%cl266andl %edx,%ebx267shrl $16,%edx268xorl %eax,%eax269movb %dh,%al270andl $255,%edx271movl CAST_S_table0(,%ecx,4),%ecx272movl CAST_S_table1(,%ebx,4),%ebx273addl %ebx,%ecx274movl CAST_S_table2(,%eax,4),%ebx275xorl %ebx,%ecx276movl CAST_S_table3(,%edx,4),%ebx277subl %ebx,%ecx278xorl %ecx,%esi279280popl %edx281orl %edx,%edx282jnz .L000cast_enc_done283284movl 96(%ebp),%edx285movl 100(%ebp),%ecx286addl %esi,%edx287roll %cl,%edx288xorl %ecx,%ecx289movl $255,%ebx290movb %dh,%cl291andl %edx,%ebx292shrl $16,%edx293xorl %eax,%eax294movb %dh,%al295andl $255,%edx296movl CAST_S_table0(,%ecx,4),%ecx297movl CAST_S_table1(,%ebx,4),%ebx298xorl %ebx,%ecx299movl CAST_S_table2(,%eax,4),%ebx300subl %ebx,%ecx301movl CAST_S_table3(,%edx,4),%ebx302addl %ebx,%ecx303xorl %ecx,%edi304305movl 104(%ebp),%edx306movl 108(%ebp),%ecx307xorl %edi,%edx308roll %cl,%edx309xorl %ecx,%ecx310movl $255,%ebx311movb %dh,%cl312andl %edx,%ebx313shrl $16,%edx314xorl %eax,%eax315movb %dh,%al316andl $255,%edx317movl CAST_S_table0(,%ecx,4),%ecx318movl CAST_S_table1(,%ebx,4),%ebx319subl %ebx,%ecx320movl CAST_S_table2(,%eax,4),%ebx321addl %ebx,%ecx322movl CAST_S_table3(,%edx,4),%ebx323xorl %ebx,%ecx324xorl %ecx,%esi325326movl 112(%ebp),%edx327movl 116(%ebp),%ecx328subl %esi,%edx329roll %cl,%edx330xorl %ecx,%ecx331movl $255,%ebx332movb %dh,%cl333andl %edx,%ebx334shrl $16,%edx335xorl %eax,%eax336movb %dh,%al337andl $255,%edx338movl CAST_S_table0(,%ecx,4),%ecx339movl CAST_S_table1(,%ebx,4),%ebx340addl %ebx,%ecx341movl CAST_S_table2(,%eax,4),%ebx342xorl %ebx,%ecx343movl CAST_S_table3(,%edx,4),%ebx344subl %ebx,%ecx345xorl %ecx,%edi346347movl 120(%ebp),%edx348movl 124(%ebp),%ecx349addl %edi,%edx350roll %cl,%edx351xorl %ecx,%ecx352movl $255,%ebx353movb %dh,%cl354andl %edx,%ebx355shrl $16,%edx356xorl %eax,%eax357movb %dh,%al358andl $255,%edx359movl CAST_S_table0(,%ecx,4),%ecx360movl CAST_S_table1(,%ebx,4),%ebx361xorl %ebx,%ecx362movl CAST_S_table2(,%eax,4),%ebx363subl %ebx,%ecx364movl CAST_S_table3(,%edx,4),%ebx365addl %ebx,%ecx366xorl %ecx,%esi367.L000cast_enc_done:368nop369movl 20(%esp),%eax370movl %edi,4(%eax)371movl %esi,(%eax)372popl %edi373popl %esi374popl %ebx375popl %ebp376ret377.size CAST_encrypt,.-.L_CAST_encrypt_begin378.globl CAST_decrypt379.type CAST_decrypt,@function380.align 16381CAST_decrypt:382.L_CAST_decrypt_begin:383#ifdef __CET__384385.byte 243,15,30,251386#endif387388389pushl %ebp390pushl %ebx391movl 12(%esp),%ebx392movl 16(%esp),%ebp393pushl %esi394pushl %edi395396movl (%ebx),%edi397movl 4(%ebx),%esi398399movl 128(%ebp),%eax400orl %eax,%eax401jnz .L001cast_dec_skip402xorl %eax,%eax403404movl 120(%ebp),%edx405movl 124(%ebp),%ecx406addl %esi,%edx407roll %cl,%edx408xorl %ecx,%ecx409movl $255,%ebx410movb %dh,%cl411andl %edx,%ebx412shrl $16,%edx413xorl %eax,%eax414movb %dh,%al415andl $255,%edx416movl CAST_S_table0(,%ecx,4),%ecx417movl CAST_S_table1(,%ebx,4),%ebx418xorl %ebx,%ecx419movl CAST_S_table2(,%eax,4),%ebx420subl %ebx,%ecx421movl CAST_S_table3(,%edx,4),%ebx422addl %ebx,%ecx423xorl %ecx,%edi424425movl 112(%ebp),%edx426movl 116(%ebp),%ecx427subl %edi,%edx428roll %cl,%edx429xorl %ecx,%ecx430movl $255,%ebx431movb %dh,%cl432andl %edx,%ebx433shrl $16,%edx434xorl %eax,%eax435movb %dh,%al436andl $255,%edx437movl CAST_S_table0(,%ecx,4),%ecx438movl CAST_S_table1(,%ebx,4),%ebx439addl %ebx,%ecx440movl CAST_S_table2(,%eax,4),%ebx441xorl %ebx,%ecx442movl CAST_S_table3(,%edx,4),%ebx443subl %ebx,%ecx444xorl %ecx,%esi445446movl 104(%ebp),%edx447movl 108(%ebp),%ecx448xorl %esi,%edx449roll %cl,%edx450xorl %ecx,%ecx451movl $255,%ebx452movb %dh,%cl453andl %edx,%ebx454shrl $16,%edx455xorl %eax,%eax456movb %dh,%al457andl $255,%edx458movl CAST_S_table0(,%ecx,4),%ecx459movl CAST_S_table1(,%ebx,4),%ebx460subl %ebx,%ecx461movl CAST_S_table2(,%eax,4),%ebx462addl %ebx,%ecx463movl CAST_S_table3(,%edx,4),%ebx464xorl %ebx,%ecx465xorl %ecx,%edi466467movl 96(%ebp),%edx468movl 100(%ebp),%ecx469addl %edi,%edx470roll %cl,%edx471xorl %ecx,%ecx472movl $255,%ebx473movb %dh,%cl474andl %edx,%ebx475shrl $16,%edx476xorl %eax,%eax477movb %dh,%al478andl $255,%edx479movl CAST_S_table0(,%ecx,4),%ecx480movl CAST_S_table1(,%ebx,4),%ebx481xorl %ebx,%ecx482movl CAST_S_table2(,%eax,4),%ebx483subl %ebx,%ecx484movl CAST_S_table3(,%edx,4),%ebx485addl %ebx,%ecx486xorl %ecx,%esi487.L001cast_dec_skip:488489movl 88(%ebp),%edx490movl 92(%ebp),%ecx491subl %esi,%edx492roll %cl,%edx493xorl %ecx,%ecx494movl $255,%ebx495movb %dh,%cl496andl %edx,%ebx497shrl $16,%edx498xorl %eax,%eax499movb %dh,%al500andl $255,%edx501movl CAST_S_table0(,%ecx,4),%ecx502movl CAST_S_table1(,%ebx,4),%ebx503addl %ebx,%ecx504movl CAST_S_table2(,%eax,4),%ebx505xorl %ebx,%ecx506movl CAST_S_table3(,%edx,4),%ebx507subl %ebx,%ecx508xorl %ecx,%edi509510movl 80(%ebp),%edx511movl 84(%ebp),%ecx512xorl %edi,%edx513roll %cl,%edx514xorl %ecx,%ecx515movl $255,%ebx516movb %dh,%cl517andl %edx,%ebx518shrl $16,%edx519xorl %eax,%eax520movb %dh,%al521andl $255,%edx522movl CAST_S_table0(,%ecx,4),%ecx523movl CAST_S_table1(,%ebx,4),%ebx524subl %ebx,%ecx525movl CAST_S_table2(,%eax,4),%ebx526addl %ebx,%ecx527movl CAST_S_table3(,%edx,4),%ebx528xorl %ebx,%ecx529xorl %ecx,%esi530531movl 72(%ebp),%edx532movl 76(%ebp),%ecx533addl %esi,%edx534roll %cl,%edx535xorl %ecx,%ecx536movl $255,%ebx537movb %dh,%cl538andl %edx,%ebx539shrl $16,%edx540xorl %eax,%eax541movb %dh,%al542andl $255,%edx543movl CAST_S_table0(,%ecx,4),%ecx544movl CAST_S_table1(,%ebx,4),%ebx545xorl %ebx,%ecx546movl CAST_S_table2(,%eax,4),%ebx547subl %ebx,%ecx548movl CAST_S_table3(,%edx,4),%ebx549addl %ebx,%ecx550xorl %ecx,%edi551552movl 64(%ebp),%edx553movl 68(%ebp),%ecx554subl %edi,%edx555roll %cl,%edx556xorl %ecx,%ecx557movl $255,%ebx558movb %dh,%cl559andl %edx,%ebx560shrl $16,%edx561xorl %eax,%eax562movb %dh,%al563andl $255,%edx564movl CAST_S_table0(,%ecx,4),%ecx565movl CAST_S_table1(,%ebx,4),%ebx566addl %ebx,%ecx567movl CAST_S_table2(,%eax,4),%ebx568xorl %ebx,%ecx569movl CAST_S_table3(,%edx,4),%ebx570subl %ebx,%ecx571xorl %ecx,%esi572573movl 56(%ebp),%edx574movl 60(%ebp),%ecx575xorl %esi,%edx576roll %cl,%edx577xorl %ecx,%ecx578movl $255,%ebx579movb %dh,%cl580andl %edx,%ebx581shrl $16,%edx582xorl %eax,%eax583movb %dh,%al584andl $255,%edx585movl CAST_S_table0(,%ecx,4),%ecx586movl CAST_S_table1(,%ebx,4),%ebx587subl %ebx,%ecx588movl CAST_S_table2(,%eax,4),%ebx589addl %ebx,%ecx590movl CAST_S_table3(,%edx,4),%ebx591xorl %ebx,%ecx592xorl %ecx,%edi593594movl 48(%ebp),%edx595movl 52(%ebp),%ecx596addl %edi,%edx597roll %cl,%edx598xorl %ecx,%ecx599movl $255,%ebx600movb %dh,%cl601andl %edx,%ebx602shrl $16,%edx603xorl %eax,%eax604movb %dh,%al605andl $255,%edx606movl CAST_S_table0(,%ecx,4),%ecx607movl CAST_S_table1(,%ebx,4),%ebx608xorl %ebx,%ecx609movl CAST_S_table2(,%eax,4),%ebx610subl %ebx,%ecx611movl CAST_S_table3(,%edx,4),%ebx612addl %ebx,%ecx613xorl %ecx,%esi614615movl 40(%ebp),%edx616movl 44(%ebp),%ecx617subl %esi,%edx618roll %cl,%edx619xorl %ecx,%ecx620movl $255,%ebx621movb %dh,%cl622andl %edx,%ebx623shrl $16,%edx624xorl %eax,%eax625movb %dh,%al626andl $255,%edx627movl CAST_S_table0(,%ecx,4),%ecx628movl CAST_S_table1(,%ebx,4),%ebx629addl %ebx,%ecx630movl CAST_S_table2(,%eax,4),%ebx631xorl %ebx,%ecx632movl CAST_S_table3(,%edx,4),%ebx633subl %ebx,%ecx634xorl %ecx,%edi635636movl 32(%ebp),%edx637movl 36(%ebp),%ecx638xorl %edi,%edx639roll %cl,%edx640xorl %ecx,%ecx641movl $255,%ebx642movb %dh,%cl643andl %edx,%ebx644shrl $16,%edx645xorl %eax,%eax646movb %dh,%al647andl $255,%edx648movl CAST_S_table0(,%ecx,4),%ecx649movl CAST_S_table1(,%ebx,4),%ebx650subl %ebx,%ecx651movl CAST_S_table2(,%eax,4),%ebx652addl %ebx,%ecx653movl CAST_S_table3(,%edx,4),%ebx654xorl %ebx,%ecx655xorl %ecx,%esi656657movl 24(%ebp),%edx658movl 28(%ebp),%ecx659addl %esi,%edx660roll %cl,%edx661xorl %ecx,%ecx662movl $255,%ebx663movb %dh,%cl664andl %edx,%ebx665shrl $16,%edx666xorl %eax,%eax667movb %dh,%al668andl $255,%edx669movl CAST_S_table0(,%ecx,4),%ecx670movl CAST_S_table1(,%ebx,4),%ebx671xorl %ebx,%ecx672movl CAST_S_table2(,%eax,4),%ebx673subl %ebx,%ecx674movl CAST_S_table3(,%edx,4),%ebx675addl %ebx,%ecx676xorl %ecx,%edi677678movl 16(%ebp),%edx679movl 20(%ebp),%ecx680subl %edi,%edx681roll %cl,%edx682xorl %ecx,%ecx683movl $255,%ebx684movb %dh,%cl685andl %edx,%ebx686shrl $16,%edx687xorl %eax,%eax688movb %dh,%al689andl $255,%edx690movl CAST_S_table0(,%ecx,4),%ecx691movl CAST_S_table1(,%ebx,4),%ebx692addl %ebx,%ecx693movl CAST_S_table2(,%eax,4),%ebx694xorl %ebx,%ecx695movl CAST_S_table3(,%edx,4),%ebx696subl %ebx,%ecx697xorl %ecx,%esi698699movl 8(%ebp),%edx700movl 12(%ebp),%ecx701xorl %esi,%edx702roll %cl,%edx703xorl %ecx,%ecx704movl $255,%ebx705movb %dh,%cl706andl %edx,%ebx707shrl $16,%edx708xorl %eax,%eax709movb %dh,%al710andl $255,%edx711movl CAST_S_table0(,%ecx,4),%ecx712movl CAST_S_table1(,%ebx,4),%ebx713subl %ebx,%ecx714movl CAST_S_table2(,%eax,4),%ebx715addl %ebx,%ecx716movl CAST_S_table3(,%edx,4),%ebx717xorl %ebx,%ecx718xorl %ecx,%edi719720movl (%ebp),%edx721movl 4(%ebp),%ecx722addl %edi,%edx723roll %cl,%edx724xorl %ecx,%ecx725movl $255,%ebx726movb %dh,%cl727andl %edx,%ebx728shrl $16,%edx729xorl %eax,%eax730movb %dh,%al731andl $255,%edx732movl CAST_S_table0(,%ecx,4),%ecx733movl CAST_S_table1(,%ebx,4),%ebx734xorl %ebx,%ecx735movl CAST_S_table2(,%eax,4),%ebx736subl %ebx,%ecx737movl CAST_S_table3(,%edx,4),%ebx738addl %ebx,%ecx739xorl %ecx,%esi740nop741movl 20(%esp),%eax742movl %edi,4(%eax)743movl %esi,(%eax)744popl %edi745popl %esi746popl %ebx747popl %ebp748ret749.size CAST_decrypt,.-.L_CAST_decrypt_begin750.globl CAST_cbc_encrypt751.type CAST_cbc_encrypt,@function752.align 16753CAST_cbc_encrypt:754.L_CAST_cbc_encrypt_begin:755#ifdef __CET__756757.byte 243,15,30,251758#endif759760761pushl %ebp762pushl %ebx763pushl %esi764pushl %edi765movl 28(%esp),%ebp766767movl 36(%esp),%ebx768movl (%ebx),%esi769movl 4(%ebx),%edi770pushl %edi771pushl %esi772pushl %edi773pushl %esi774movl %esp,%ebx775movl 36(%esp),%esi776movl 40(%esp),%edi777778movl 56(%esp),%ecx779780movl 48(%esp),%eax781pushl %eax782pushl %ebx783cmpl $0,%ecx784jz .L002decrypt785andl $4294967288,%ebp786movl 8(%esp),%eax787movl 12(%esp),%ebx788jz .L003encrypt_finish789.L004encrypt_loop:790movl (%esi),%ecx791movl 4(%esi),%edx792xorl %ecx,%eax793xorl %edx,%ebx794bswap %eax795bswap %ebx796movl %eax,8(%esp)797movl %ebx,12(%esp)798call .L_CAST_encrypt_begin799movl 8(%esp),%eax800movl 12(%esp),%ebx801bswap %eax802bswap %ebx803movl %eax,(%edi)804movl %ebx,4(%edi)805addl $8,%esi806addl $8,%edi807subl $8,%ebp808jnz .L004encrypt_loop809.L003encrypt_finish:810movl 52(%esp),%ebp811andl $7,%ebp812jz .L005finish813call .L006PIC_point814.L006PIC_point:815popl %edx816leal .L007cbc_enc_jmp_table-.L006PIC_point(%edx),%ecx817movl (%ecx,%ebp,4),%ebp818addl %edx,%ebp819xorl %ecx,%ecx820xorl %edx,%edx821jmp *%ebp822.L008ej7:823#ifdef __CET__824825.byte 243,15,30,251826#endif827828movb 6(%esi),%dh829shll $8,%edx830.L009ej6:831#ifdef __CET__832833.byte 243,15,30,251834#endif835836movb 5(%esi),%dh837.L010ej5:838#ifdef __CET__839840.byte 243,15,30,251841#endif842843movb 4(%esi),%dl844.L011ej4:845#ifdef __CET__846847.byte 243,15,30,251848#endif849850movl (%esi),%ecx851jmp .L012ejend852.L013ej3:853#ifdef __CET__854855.byte 243,15,30,251856#endif857858movb 2(%esi),%ch859shll $8,%ecx860.L014ej2:861#ifdef __CET__862863.byte 243,15,30,251864#endif865866movb 1(%esi),%ch867.L015ej1:868#ifdef __CET__869870.byte 243,15,30,251871#endif872873movb (%esi),%cl874.L012ejend:875xorl %ecx,%eax876xorl %edx,%ebx877bswap %eax878bswap %ebx879movl %eax,8(%esp)880movl %ebx,12(%esp)881call .L_CAST_encrypt_begin882movl 8(%esp),%eax883movl 12(%esp),%ebx884bswap %eax885bswap %ebx886movl %eax,(%edi)887movl %ebx,4(%edi)888jmp .L005finish889.L002decrypt:890andl $4294967288,%ebp891movl 16(%esp),%eax892movl 20(%esp),%ebx893jz .L016decrypt_finish894.L017decrypt_loop:895movl (%esi),%eax896movl 4(%esi),%ebx897bswap %eax898bswap %ebx899movl %eax,8(%esp)900movl %ebx,12(%esp)901call .L_CAST_decrypt_begin902movl 8(%esp),%eax903movl 12(%esp),%ebx904bswap %eax905bswap %ebx906movl 16(%esp),%ecx907movl 20(%esp),%edx908xorl %eax,%ecx909xorl %ebx,%edx910movl (%esi),%eax911movl 4(%esi),%ebx912movl %ecx,(%edi)913movl %edx,4(%edi)914movl %eax,16(%esp)915movl %ebx,20(%esp)916addl $8,%esi917addl $8,%edi918subl $8,%ebp919jnz .L017decrypt_loop920.L016decrypt_finish:921movl 52(%esp),%ebp922andl $7,%ebp923jz .L005finish924movl (%esi),%eax925movl 4(%esi),%ebx926bswap %eax927bswap %ebx928movl %eax,8(%esp)929movl %ebx,12(%esp)930call .L_CAST_decrypt_begin931movl 8(%esp),%eax932movl 12(%esp),%ebx933bswap %eax934bswap %ebx935movl 16(%esp),%ecx936movl 20(%esp),%edx937xorl %eax,%ecx938xorl %ebx,%edx939movl (%esi),%eax940movl 4(%esi),%ebx941.L018dj7:942rorl $16,%edx943movb %dl,6(%edi)944shrl $16,%edx945.L019dj6:946movb %dh,5(%edi)947.L020dj5:948movb %dl,4(%edi)949.L021dj4:950movl %ecx,(%edi)951jmp .L022djend952.L023dj3:953rorl $16,%ecx954movb %cl,2(%edi)955shll $16,%ecx956.L024dj2:957movb %ch,1(%esi)958.L025dj1:959movb %cl,(%esi)960.L022djend:961jmp .L005finish962.L005finish:963movl 60(%esp),%ecx964addl $24,%esp965movl %eax,(%ecx)966movl %ebx,4(%ecx)967popl %edi968popl %esi969popl %ebx970popl %ebp971ret972.align 64973.L007cbc_enc_jmp_table:974.long 0975.long .L015ej1-.L006PIC_point976.long .L014ej2-.L006PIC_point977.long .L013ej3-.L006PIC_point978.long .L011ej4-.L006PIC_point979.long .L010ej5-.L006PIC_point980.long .L009ej6-.L006PIC_point981.long .L008ej7-.L006PIC_point982.align 64983.size CAST_cbc_encrypt,.-.L_CAST_cbc_encrypt_begin984985.section ".note.gnu.property", "a"986.p2align 2987.long 1f - 0f988.long 4f - 1f989.long 59900:991.asciz "GNU"9921:993.p2align 2994.long 0xc0000002995.long 3f - 2f9962:997.long 39983:999.p2align 210004:1001#else1002.text1003.globl CAST_encrypt1004.type CAST_encrypt,@function1005.align 161006CAST_encrypt:1007.L_CAST_encrypt_begin:1008#ifdef __CET__10091010.byte 243,15,30,2511011#endif101210131014pushl %ebp1015pushl %ebx1016movl 12(%esp),%ebx1017movl 16(%esp),%ebp1018pushl %esi1019pushl %edi10201021movl (%ebx),%edi1022movl 4(%ebx),%esi10231024movl 128(%ebp),%eax1025pushl %eax1026xorl %eax,%eax10271028movl (%ebp),%edx1029movl 4(%ebp),%ecx1030addl %esi,%edx1031roll %cl,%edx1032xorl %ecx,%ecx1033movl $255,%ebx1034movb %dh,%cl1035andl %edx,%ebx1036shrl $16,%edx1037xorl %eax,%eax1038movb %dh,%al1039andl $255,%edx1040movl CAST_S_table0(,%ecx,4),%ecx1041movl CAST_S_table1(,%ebx,4),%ebx1042xorl %ebx,%ecx1043movl CAST_S_table2(,%eax,4),%ebx1044subl %ebx,%ecx1045movl CAST_S_table3(,%edx,4),%ebx1046addl %ebx,%ecx1047xorl %ecx,%edi10481049movl 8(%ebp),%edx1050movl 12(%ebp),%ecx1051xorl %edi,%edx1052roll %cl,%edx1053xorl %ecx,%ecx1054movl $255,%ebx1055movb %dh,%cl1056andl %edx,%ebx1057shrl $16,%edx1058xorl %eax,%eax1059movb %dh,%al1060andl $255,%edx1061movl CAST_S_table0(,%ecx,4),%ecx1062movl CAST_S_table1(,%ebx,4),%ebx1063subl %ebx,%ecx1064movl CAST_S_table2(,%eax,4),%ebx1065addl %ebx,%ecx1066movl CAST_S_table3(,%edx,4),%ebx1067xorl %ebx,%ecx1068xorl %ecx,%esi10691070movl 16(%ebp),%edx1071movl 20(%ebp),%ecx1072subl %esi,%edx1073roll %cl,%edx1074xorl %ecx,%ecx1075movl $255,%ebx1076movb %dh,%cl1077andl %edx,%ebx1078shrl $16,%edx1079xorl %eax,%eax1080movb %dh,%al1081andl $255,%edx1082movl CAST_S_table0(,%ecx,4),%ecx1083movl CAST_S_table1(,%ebx,4),%ebx1084addl %ebx,%ecx1085movl CAST_S_table2(,%eax,4),%ebx1086xorl %ebx,%ecx1087movl CAST_S_table3(,%edx,4),%ebx1088subl %ebx,%ecx1089xorl %ecx,%edi10901091movl 24(%ebp),%edx1092movl 28(%ebp),%ecx1093addl %edi,%edx1094roll %cl,%edx1095xorl %ecx,%ecx1096movl $255,%ebx1097movb %dh,%cl1098andl %edx,%ebx1099shrl $16,%edx1100xorl %eax,%eax1101movb %dh,%al1102andl $255,%edx1103movl CAST_S_table0(,%ecx,4),%ecx1104movl CAST_S_table1(,%ebx,4),%ebx1105xorl %ebx,%ecx1106movl CAST_S_table2(,%eax,4),%ebx1107subl %ebx,%ecx1108movl CAST_S_table3(,%edx,4),%ebx1109addl %ebx,%ecx1110xorl %ecx,%esi11111112movl 32(%ebp),%edx1113movl 36(%ebp),%ecx1114xorl %esi,%edx1115roll %cl,%edx1116xorl %ecx,%ecx1117movl $255,%ebx1118movb %dh,%cl1119andl %edx,%ebx1120shrl $16,%edx1121xorl %eax,%eax1122movb %dh,%al1123andl $255,%edx1124movl CAST_S_table0(,%ecx,4),%ecx1125movl CAST_S_table1(,%ebx,4),%ebx1126subl %ebx,%ecx1127movl CAST_S_table2(,%eax,4),%ebx1128addl %ebx,%ecx1129movl CAST_S_table3(,%edx,4),%ebx1130xorl %ebx,%ecx1131xorl %ecx,%edi11321133movl 40(%ebp),%edx1134movl 44(%ebp),%ecx1135subl %edi,%edx1136roll %cl,%edx1137xorl %ecx,%ecx1138movl $255,%ebx1139movb %dh,%cl1140andl %edx,%ebx1141shrl $16,%edx1142xorl %eax,%eax1143movb %dh,%al1144andl $255,%edx1145movl CAST_S_table0(,%ecx,4),%ecx1146movl CAST_S_table1(,%ebx,4),%ebx1147addl %ebx,%ecx1148movl CAST_S_table2(,%eax,4),%ebx1149xorl %ebx,%ecx1150movl CAST_S_table3(,%edx,4),%ebx1151subl %ebx,%ecx1152xorl %ecx,%esi11531154movl 48(%ebp),%edx1155movl 52(%ebp),%ecx1156addl %esi,%edx1157roll %cl,%edx1158xorl %ecx,%ecx1159movl $255,%ebx1160movb %dh,%cl1161andl %edx,%ebx1162shrl $16,%edx1163xorl %eax,%eax1164movb %dh,%al1165andl $255,%edx1166movl CAST_S_table0(,%ecx,4),%ecx1167movl CAST_S_table1(,%ebx,4),%ebx1168xorl %ebx,%ecx1169movl CAST_S_table2(,%eax,4),%ebx1170subl %ebx,%ecx1171movl CAST_S_table3(,%edx,4),%ebx1172addl %ebx,%ecx1173xorl %ecx,%edi11741175movl 56(%ebp),%edx1176movl 60(%ebp),%ecx1177xorl %edi,%edx1178roll %cl,%edx1179xorl %ecx,%ecx1180movl $255,%ebx1181movb %dh,%cl1182andl %edx,%ebx1183shrl $16,%edx1184xorl %eax,%eax1185movb %dh,%al1186andl $255,%edx1187movl CAST_S_table0(,%ecx,4),%ecx1188movl CAST_S_table1(,%ebx,4),%ebx1189subl %ebx,%ecx1190movl CAST_S_table2(,%eax,4),%ebx1191addl %ebx,%ecx1192movl CAST_S_table3(,%edx,4),%ebx1193xorl %ebx,%ecx1194xorl %ecx,%esi11951196movl 64(%ebp),%edx1197movl 68(%ebp),%ecx1198subl %esi,%edx1199roll %cl,%edx1200xorl %ecx,%ecx1201movl $255,%ebx1202movb %dh,%cl1203andl %edx,%ebx1204shrl $16,%edx1205xorl %eax,%eax1206movb %dh,%al1207andl $255,%edx1208movl CAST_S_table0(,%ecx,4),%ecx1209movl CAST_S_table1(,%ebx,4),%ebx1210addl %ebx,%ecx1211movl CAST_S_table2(,%eax,4),%ebx1212xorl %ebx,%ecx1213movl CAST_S_table3(,%edx,4),%ebx1214subl %ebx,%ecx1215xorl %ecx,%edi12161217movl 72(%ebp),%edx1218movl 76(%ebp),%ecx1219addl %edi,%edx1220roll %cl,%edx1221xorl %ecx,%ecx1222movl $255,%ebx1223movb %dh,%cl1224andl %edx,%ebx1225shrl $16,%edx1226xorl %eax,%eax1227movb %dh,%al1228andl $255,%edx1229movl CAST_S_table0(,%ecx,4),%ecx1230movl CAST_S_table1(,%ebx,4),%ebx1231xorl %ebx,%ecx1232movl CAST_S_table2(,%eax,4),%ebx1233subl %ebx,%ecx1234movl CAST_S_table3(,%edx,4),%ebx1235addl %ebx,%ecx1236xorl %ecx,%esi12371238movl 80(%ebp),%edx1239movl 84(%ebp),%ecx1240xorl %esi,%edx1241roll %cl,%edx1242xorl %ecx,%ecx1243movl $255,%ebx1244movb %dh,%cl1245andl %edx,%ebx1246shrl $16,%edx1247xorl %eax,%eax1248movb %dh,%al1249andl $255,%edx1250movl CAST_S_table0(,%ecx,4),%ecx1251movl CAST_S_table1(,%ebx,4),%ebx1252subl %ebx,%ecx1253movl CAST_S_table2(,%eax,4),%ebx1254addl %ebx,%ecx1255movl CAST_S_table3(,%edx,4),%ebx1256xorl %ebx,%ecx1257xorl %ecx,%edi12581259movl 88(%ebp),%edx1260movl 92(%ebp),%ecx1261subl %edi,%edx1262roll %cl,%edx1263xorl %ecx,%ecx1264movl $255,%ebx1265movb %dh,%cl1266andl %edx,%ebx1267shrl $16,%edx1268xorl %eax,%eax1269movb %dh,%al1270andl $255,%edx1271movl CAST_S_table0(,%ecx,4),%ecx1272movl CAST_S_table1(,%ebx,4),%ebx1273addl %ebx,%ecx1274movl CAST_S_table2(,%eax,4),%ebx1275xorl %ebx,%ecx1276movl CAST_S_table3(,%edx,4),%ebx1277subl %ebx,%ecx1278xorl %ecx,%esi12791280popl %edx1281orl %edx,%edx1282jnz .L000cast_enc_done12831284movl 96(%ebp),%edx1285movl 100(%ebp),%ecx1286addl %esi,%edx1287roll %cl,%edx1288xorl %ecx,%ecx1289movl $255,%ebx1290movb %dh,%cl1291andl %edx,%ebx1292shrl $16,%edx1293xorl %eax,%eax1294movb %dh,%al1295andl $255,%edx1296movl CAST_S_table0(,%ecx,4),%ecx1297movl CAST_S_table1(,%ebx,4),%ebx1298xorl %ebx,%ecx1299movl CAST_S_table2(,%eax,4),%ebx1300subl %ebx,%ecx1301movl CAST_S_table3(,%edx,4),%ebx1302addl %ebx,%ecx1303xorl %ecx,%edi13041305movl 104(%ebp),%edx1306movl 108(%ebp),%ecx1307xorl %edi,%edx1308roll %cl,%edx1309xorl %ecx,%ecx1310movl $255,%ebx1311movb %dh,%cl1312andl %edx,%ebx1313shrl $16,%edx1314xorl %eax,%eax1315movb %dh,%al1316andl $255,%edx1317movl CAST_S_table0(,%ecx,4),%ecx1318movl CAST_S_table1(,%ebx,4),%ebx1319subl %ebx,%ecx1320movl CAST_S_table2(,%eax,4),%ebx1321addl %ebx,%ecx1322movl CAST_S_table3(,%edx,4),%ebx1323xorl %ebx,%ecx1324xorl %ecx,%esi13251326movl 112(%ebp),%edx1327movl 116(%ebp),%ecx1328subl %esi,%edx1329roll %cl,%edx1330xorl %ecx,%ecx1331movl $255,%ebx1332movb %dh,%cl1333andl %edx,%ebx1334shrl $16,%edx1335xorl %eax,%eax1336movb %dh,%al1337andl $255,%edx1338movl CAST_S_table0(,%ecx,4),%ecx1339movl CAST_S_table1(,%ebx,4),%ebx1340addl %ebx,%ecx1341movl CAST_S_table2(,%eax,4),%ebx1342xorl %ebx,%ecx1343movl CAST_S_table3(,%edx,4),%ebx1344subl %ebx,%ecx1345xorl %ecx,%edi13461347movl 120(%ebp),%edx1348movl 124(%ebp),%ecx1349addl %edi,%edx1350roll %cl,%edx1351xorl %ecx,%ecx1352movl $255,%ebx1353movb %dh,%cl1354andl %edx,%ebx1355shrl $16,%edx1356xorl %eax,%eax1357movb %dh,%al1358andl $255,%edx1359movl CAST_S_table0(,%ecx,4),%ecx1360movl CAST_S_table1(,%ebx,4),%ebx1361xorl %ebx,%ecx1362movl CAST_S_table2(,%eax,4),%ebx1363subl %ebx,%ecx1364movl CAST_S_table3(,%edx,4),%ebx1365addl %ebx,%ecx1366xorl %ecx,%esi1367.L000cast_enc_done:1368nop1369movl 20(%esp),%eax1370movl %edi,4(%eax)1371movl %esi,(%eax)1372popl %edi1373popl %esi1374popl %ebx1375popl %ebp1376ret1377.size CAST_encrypt,.-.L_CAST_encrypt_begin1378.globl CAST_decrypt1379.type CAST_decrypt,@function1380.align 161381CAST_decrypt:1382.L_CAST_decrypt_begin:1383#ifdef __CET__13841385.byte 243,15,30,2511386#endif138713881389pushl %ebp1390pushl %ebx1391movl 12(%esp),%ebx1392movl 16(%esp),%ebp1393pushl %esi1394pushl %edi13951396movl (%ebx),%edi1397movl 4(%ebx),%esi13981399movl 128(%ebp),%eax1400orl %eax,%eax1401jnz .L001cast_dec_skip1402xorl %eax,%eax14031404movl 120(%ebp),%edx1405movl 124(%ebp),%ecx1406addl %esi,%edx1407roll %cl,%edx1408xorl %ecx,%ecx1409movl $255,%ebx1410movb %dh,%cl1411andl %edx,%ebx1412shrl $16,%edx1413xorl %eax,%eax1414movb %dh,%al1415andl $255,%edx1416movl CAST_S_table0(,%ecx,4),%ecx1417movl CAST_S_table1(,%ebx,4),%ebx1418xorl %ebx,%ecx1419movl CAST_S_table2(,%eax,4),%ebx1420subl %ebx,%ecx1421movl CAST_S_table3(,%edx,4),%ebx1422addl %ebx,%ecx1423xorl %ecx,%edi14241425movl 112(%ebp),%edx1426movl 116(%ebp),%ecx1427subl %edi,%edx1428roll %cl,%edx1429xorl %ecx,%ecx1430movl $255,%ebx1431movb %dh,%cl1432andl %edx,%ebx1433shrl $16,%edx1434xorl %eax,%eax1435movb %dh,%al1436andl $255,%edx1437movl CAST_S_table0(,%ecx,4),%ecx1438movl CAST_S_table1(,%ebx,4),%ebx1439addl %ebx,%ecx1440movl CAST_S_table2(,%eax,4),%ebx1441xorl %ebx,%ecx1442movl CAST_S_table3(,%edx,4),%ebx1443subl %ebx,%ecx1444xorl %ecx,%esi14451446movl 104(%ebp),%edx1447movl 108(%ebp),%ecx1448xorl %esi,%edx1449roll %cl,%edx1450xorl %ecx,%ecx1451movl $255,%ebx1452movb %dh,%cl1453andl %edx,%ebx1454shrl $16,%edx1455xorl %eax,%eax1456movb %dh,%al1457andl $255,%edx1458movl CAST_S_table0(,%ecx,4),%ecx1459movl CAST_S_table1(,%ebx,4),%ebx1460subl %ebx,%ecx1461movl CAST_S_table2(,%eax,4),%ebx1462addl %ebx,%ecx1463movl CAST_S_table3(,%edx,4),%ebx1464xorl %ebx,%ecx1465xorl %ecx,%edi14661467movl 96(%ebp),%edx1468movl 100(%ebp),%ecx1469addl %edi,%edx1470roll %cl,%edx1471xorl %ecx,%ecx1472movl $255,%ebx1473movb %dh,%cl1474andl %edx,%ebx1475shrl $16,%edx1476xorl %eax,%eax1477movb %dh,%al1478andl $255,%edx1479movl CAST_S_table0(,%ecx,4),%ecx1480movl CAST_S_table1(,%ebx,4),%ebx1481xorl %ebx,%ecx1482movl CAST_S_table2(,%eax,4),%ebx1483subl %ebx,%ecx1484movl CAST_S_table3(,%edx,4),%ebx1485addl %ebx,%ecx1486xorl %ecx,%esi1487.L001cast_dec_skip:14881489movl 88(%ebp),%edx1490movl 92(%ebp),%ecx1491subl %esi,%edx1492roll %cl,%edx1493xorl %ecx,%ecx1494movl $255,%ebx1495movb %dh,%cl1496andl %edx,%ebx1497shrl $16,%edx1498xorl %eax,%eax1499movb %dh,%al1500andl $255,%edx1501movl CAST_S_table0(,%ecx,4),%ecx1502movl CAST_S_table1(,%ebx,4),%ebx1503addl %ebx,%ecx1504movl CAST_S_table2(,%eax,4),%ebx1505xorl %ebx,%ecx1506movl CAST_S_table3(,%edx,4),%ebx1507subl %ebx,%ecx1508xorl %ecx,%edi15091510movl 80(%ebp),%edx1511movl 84(%ebp),%ecx1512xorl %edi,%edx1513roll %cl,%edx1514xorl %ecx,%ecx1515movl $255,%ebx1516movb %dh,%cl1517andl %edx,%ebx1518shrl $16,%edx1519xorl %eax,%eax1520movb %dh,%al1521andl $255,%edx1522movl CAST_S_table0(,%ecx,4),%ecx1523movl CAST_S_table1(,%ebx,4),%ebx1524subl %ebx,%ecx1525movl CAST_S_table2(,%eax,4),%ebx1526addl %ebx,%ecx1527movl CAST_S_table3(,%edx,4),%ebx1528xorl %ebx,%ecx1529xorl %ecx,%esi15301531movl 72(%ebp),%edx1532movl 76(%ebp),%ecx1533addl %esi,%edx1534roll %cl,%edx1535xorl %ecx,%ecx1536movl $255,%ebx1537movb %dh,%cl1538andl %edx,%ebx1539shrl $16,%edx1540xorl %eax,%eax1541movb %dh,%al1542andl $255,%edx1543movl CAST_S_table0(,%ecx,4),%ecx1544movl CAST_S_table1(,%ebx,4),%ebx1545xorl %ebx,%ecx1546movl CAST_S_table2(,%eax,4),%ebx1547subl %ebx,%ecx1548movl CAST_S_table3(,%edx,4),%ebx1549addl %ebx,%ecx1550xorl %ecx,%edi15511552movl 64(%ebp),%edx1553movl 68(%ebp),%ecx1554subl %edi,%edx1555roll %cl,%edx1556xorl %ecx,%ecx1557movl $255,%ebx1558movb %dh,%cl1559andl %edx,%ebx1560shrl $16,%edx1561xorl %eax,%eax1562movb %dh,%al1563andl $255,%edx1564movl CAST_S_table0(,%ecx,4),%ecx1565movl CAST_S_table1(,%ebx,4),%ebx1566addl %ebx,%ecx1567movl CAST_S_table2(,%eax,4),%ebx1568xorl %ebx,%ecx1569movl CAST_S_table3(,%edx,4),%ebx1570subl %ebx,%ecx1571xorl %ecx,%esi15721573movl 56(%ebp),%edx1574movl 60(%ebp),%ecx1575xorl %esi,%edx1576roll %cl,%edx1577xorl %ecx,%ecx1578movl $255,%ebx1579movb %dh,%cl1580andl %edx,%ebx1581shrl $16,%edx1582xorl %eax,%eax1583movb %dh,%al1584andl $255,%edx1585movl CAST_S_table0(,%ecx,4),%ecx1586movl CAST_S_table1(,%ebx,4),%ebx1587subl %ebx,%ecx1588movl CAST_S_table2(,%eax,4),%ebx1589addl %ebx,%ecx1590movl CAST_S_table3(,%edx,4),%ebx1591xorl %ebx,%ecx1592xorl %ecx,%edi15931594movl 48(%ebp),%edx1595movl 52(%ebp),%ecx1596addl %edi,%edx1597roll %cl,%edx1598xorl %ecx,%ecx1599movl $255,%ebx1600movb %dh,%cl1601andl %edx,%ebx1602shrl $16,%edx1603xorl %eax,%eax1604movb %dh,%al1605andl $255,%edx1606movl CAST_S_table0(,%ecx,4),%ecx1607movl CAST_S_table1(,%ebx,4),%ebx1608xorl %ebx,%ecx1609movl CAST_S_table2(,%eax,4),%ebx1610subl %ebx,%ecx1611movl CAST_S_table3(,%edx,4),%ebx1612addl %ebx,%ecx1613xorl %ecx,%esi16141615movl 40(%ebp),%edx1616movl 44(%ebp),%ecx1617subl %esi,%edx1618roll %cl,%edx1619xorl %ecx,%ecx1620movl $255,%ebx1621movb %dh,%cl1622andl %edx,%ebx1623shrl $16,%edx1624xorl %eax,%eax1625movb %dh,%al1626andl $255,%edx1627movl CAST_S_table0(,%ecx,4),%ecx1628movl CAST_S_table1(,%ebx,4),%ebx1629addl %ebx,%ecx1630movl CAST_S_table2(,%eax,4),%ebx1631xorl %ebx,%ecx1632movl CAST_S_table3(,%edx,4),%ebx1633subl %ebx,%ecx1634xorl %ecx,%edi16351636movl 32(%ebp),%edx1637movl 36(%ebp),%ecx1638xorl %edi,%edx1639roll %cl,%edx1640xorl %ecx,%ecx1641movl $255,%ebx1642movb %dh,%cl1643andl %edx,%ebx1644shrl $16,%edx1645xorl %eax,%eax1646movb %dh,%al1647andl $255,%edx1648movl CAST_S_table0(,%ecx,4),%ecx1649movl CAST_S_table1(,%ebx,4),%ebx1650subl %ebx,%ecx1651movl CAST_S_table2(,%eax,4),%ebx1652addl %ebx,%ecx1653movl CAST_S_table3(,%edx,4),%ebx1654xorl %ebx,%ecx1655xorl %ecx,%esi16561657movl 24(%ebp),%edx1658movl 28(%ebp),%ecx1659addl %esi,%edx1660roll %cl,%edx1661xorl %ecx,%ecx1662movl $255,%ebx1663movb %dh,%cl1664andl %edx,%ebx1665shrl $16,%edx1666xorl %eax,%eax1667movb %dh,%al1668andl $255,%edx1669movl CAST_S_table0(,%ecx,4),%ecx1670movl CAST_S_table1(,%ebx,4),%ebx1671xorl %ebx,%ecx1672movl CAST_S_table2(,%eax,4),%ebx1673subl %ebx,%ecx1674movl CAST_S_table3(,%edx,4),%ebx1675addl %ebx,%ecx1676xorl %ecx,%edi16771678movl 16(%ebp),%edx1679movl 20(%ebp),%ecx1680subl %edi,%edx1681roll %cl,%edx1682xorl %ecx,%ecx1683movl $255,%ebx1684movb %dh,%cl1685andl %edx,%ebx1686shrl $16,%edx1687xorl %eax,%eax1688movb %dh,%al1689andl $255,%edx1690movl CAST_S_table0(,%ecx,4),%ecx1691movl CAST_S_table1(,%ebx,4),%ebx1692addl %ebx,%ecx1693movl CAST_S_table2(,%eax,4),%ebx1694xorl %ebx,%ecx1695movl CAST_S_table3(,%edx,4),%ebx1696subl %ebx,%ecx1697xorl %ecx,%esi16981699movl 8(%ebp),%edx1700movl 12(%ebp),%ecx1701xorl %esi,%edx1702roll %cl,%edx1703xorl %ecx,%ecx1704movl $255,%ebx1705movb %dh,%cl1706andl %edx,%ebx1707shrl $16,%edx1708xorl %eax,%eax1709movb %dh,%al1710andl $255,%edx1711movl CAST_S_table0(,%ecx,4),%ecx1712movl CAST_S_table1(,%ebx,4),%ebx1713subl %ebx,%ecx1714movl CAST_S_table2(,%eax,4),%ebx1715addl %ebx,%ecx1716movl CAST_S_table3(,%edx,4),%ebx1717xorl %ebx,%ecx1718xorl %ecx,%edi17191720movl (%ebp),%edx1721movl 4(%ebp),%ecx1722addl %edi,%edx1723roll %cl,%edx1724xorl %ecx,%ecx1725movl $255,%ebx1726movb %dh,%cl1727andl %edx,%ebx1728shrl $16,%edx1729xorl %eax,%eax1730movb %dh,%al1731andl $255,%edx1732movl CAST_S_table0(,%ecx,4),%ecx1733movl CAST_S_table1(,%ebx,4),%ebx1734xorl %ebx,%ecx1735movl CAST_S_table2(,%eax,4),%ebx1736subl %ebx,%ecx1737movl CAST_S_table3(,%edx,4),%ebx1738addl %ebx,%ecx1739xorl %ecx,%esi1740nop1741movl 20(%esp),%eax1742movl %edi,4(%eax)1743movl %esi,(%eax)1744popl %edi1745popl %esi1746popl %ebx1747popl %ebp1748ret1749.size CAST_decrypt,.-.L_CAST_decrypt_begin1750.globl CAST_cbc_encrypt1751.type CAST_cbc_encrypt,@function1752.align 161753CAST_cbc_encrypt:1754.L_CAST_cbc_encrypt_begin:1755#ifdef __CET__17561757.byte 243,15,30,2511758#endif175917601761pushl %ebp1762pushl %ebx1763pushl %esi1764pushl %edi1765movl 28(%esp),%ebp17661767movl 36(%esp),%ebx1768movl (%ebx),%esi1769movl 4(%ebx),%edi1770pushl %edi1771pushl %esi1772pushl %edi1773pushl %esi1774movl %esp,%ebx1775movl 36(%esp),%esi1776movl 40(%esp),%edi17771778movl 56(%esp),%ecx17791780movl 48(%esp),%eax1781pushl %eax1782pushl %ebx1783cmpl $0,%ecx1784jz .L002decrypt1785andl $4294967288,%ebp1786movl 8(%esp),%eax1787movl 12(%esp),%ebx1788jz .L003encrypt_finish1789.L004encrypt_loop:1790movl (%esi),%ecx1791movl 4(%esi),%edx1792xorl %ecx,%eax1793xorl %edx,%ebx1794bswap %eax1795bswap %ebx1796movl %eax,8(%esp)1797movl %ebx,12(%esp)1798call .L_CAST_encrypt_begin1799movl 8(%esp),%eax1800movl 12(%esp),%ebx1801bswap %eax1802bswap %ebx1803movl %eax,(%edi)1804movl %ebx,4(%edi)1805addl $8,%esi1806addl $8,%edi1807subl $8,%ebp1808jnz .L004encrypt_loop1809.L003encrypt_finish:1810movl 52(%esp),%ebp1811andl $7,%ebp1812jz .L005finish1813call .L006PIC_point1814.L006PIC_point:1815popl %edx1816leal .L007cbc_enc_jmp_table-.L006PIC_point(%edx),%ecx1817movl (%ecx,%ebp,4),%ebp1818addl %edx,%ebp1819xorl %ecx,%ecx1820xorl %edx,%edx1821jmp *%ebp1822.L008ej7:1823#ifdef __CET__18241825.byte 243,15,30,2511826#endif18271828movb 6(%esi),%dh1829shll $8,%edx1830.L009ej6:1831#ifdef __CET__18321833.byte 243,15,30,2511834#endif18351836movb 5(%esi),%dh1837.L010ej5:1838#ifdef __CET__18391840.byte 243,15,30,2511841#endif18421843movb 4(%esi),%dl1844.L011ej4:1845#ifdef __CET__18461847.byte 243,15,30,2511848#endif18491850movl (%esi),%ecx1851jmp .L012ejend1852.L013ej3:1853#ifdef __CET__18541855.byte 243,15,30,2511856#endif18571858movb 2(%esi),%ch1859shll $8,%ecx1860.L014ej2:1861#ifdef __CET__18621863.byte 243,15,30,2511864#endif18651866movb 1(%esi),%ch1867.L015ej1:1868#ifdef __CET__18691870.byte 243,15,30,2511871#endif18721873movb (%esi),%cl1874.L012ejend:1875xorl %ecx,%eax1876xorl %edx,%ebx1877bswap %eax1878bswap %ebx1879movl %eax,8(%esp)1880movl %ebx,12(%esp)1881call .L_CAST_encrypt_begin1882movl 8(%esp),%eax1883movl 12(%esp),%ebx1884bswap %eax1885bswap %ebx1886movl %eax,(%edi)1887movl %ebx,4(%edi)1888jmp .L005finish1889.L002decrypt:1890andl $4294967288,%ebp1891movl 16(%esp),%eax1892movl 20(%esp),%ebx1893jz .L016decrypt_finish1894.L017decrypt_loop:1895movl (%esi),%eax1896movl 4(%esi),%ebx1897bswap %eax1898bswap %ebx1899movl %eax,8(%esp)1900movl %ebx,12(%esp)1901call .L_CAST_decrypt_begin1902movl 8(%esp),%eax1903movl 12(%esp),%ebx1904bswap %eax1905bswap %ebx1906movl 16(%esp),%ecx1907movl 20(%esp),%edx1908xorl %eax,%ecx1909xorl %ebx,%edx1910movl (%esi),%eax1911movl 4(%esi),%ebx1912movl %ecx,(%edi)1913movl %edx,4(%edi)1914movl %eax,16(%esp)1915movl %ebx,20(%esp)1916addl $8,%esi1917addl $8,%edi1918subl $8,%ebp1919jnz .L017decrypt_loop1920.L016decrypt_finish:1921movl 52(%esp),%ebp1922andl $7,%ebp1923jz .L005finish1924movl (%esi),%eax1925movl 4(%esi),%ebx1926bswap %eax1927bswap %ebx1928movl %eax,8(%esp)1929movl %ebx,12(%esp)1930call .L_CAST_decrypt_begin1931movl 8(%esp),%eax1932movl 12(%esp),%ebx1933bswap %eax1934bswap %ebx1935movl 16(%esp),%ecx1936movl 20(%esp),%edx1937xorl %eax,%ecx1938xorl %ebx,%edx1939movl (%esi),%eax1940movl 4(%esi),%ebx1941.L018dj7:1942rorl $16,%edx1943movb %dl,6(%edi)1944shrl $16,%edx1945.L019dj6:1946movb %dh,5(%edi)1947.L020dj5:1948movb %dl,4(%edi)1949.L021dj4:1950movl %ecx,(%edi)1951jmp .L022djend1952.L023dj3:1953rorl $16,%ecx1954movb %cl,2(%edi)1955shll $16,%ecx1956.L024dj2:1957movb %ch,1(%esi)1958.L025dj1:1959movb %cl,(%esi)1960.L022djend:1961jmp .L005finish1962.L005finish:1963movl 60(%esp),%ecx1964addl $24,%esp1965movl %eax,(%ecx)1966movl %ebx,4(%ecx)1967popl %edi1968popl %esi1969popl %ebx1970popl %ebp1971ret1972.align 641973.L007cbc_enc_jmp_table:1974.long 01975.long .L015ej1-.L006PIC_point1976.long .L014ej2-.L006PIC_point1977.long .L013ej3-.L006PIC_point1978.long .L011ej4-.L006PIC_point1979.long .L010ej5-.L006PIC_point1980.long .L009ej6-.L006PIC_point1981.long .L008ej7-.L006PIC_point1982.align 641983.size CAST_cbc_encrypt,.-.L_CAST_cbc_encrypt_begin19841985.section ".note.gnu.property", "a"1986.p2align 21987.long 1f - 0f1988.long 4f - 1f1989.long 519900:1991.asciz "GNU"19921:1993.p2align 21994.long 0xc00000021995.long 3f - 2f19962:1997.long 319983:1999.p2align 220004:2001#endif200220032004