195967Speter # $FreeBSD$ 2238405Sjkim.file "cast-586.s" 395967Speter.text 4238405Sjkim.globl CAST_encrypt 5238405Sjkim.type CAST_encrypt,@function 6238405Sjkim.align 16 795967SpeterCAST_encrypt: 8238405Sjkim.L_CAST_encrypt_begin: 995967Speter 1095967Speter pushl %ebp 1195967Speter pushl %ebx 12238405Sjkim movl 12(%esp),%ebx 13238405Sjkim movl 16(%esp),%ebp 1495967Speter pushl %esi 1595967Speter pushl %edi 16127326Smarkm 17238405Sjkim movl (%ebx),%edi 18238405Sjkim movl 4(%ebx),%esi 19127326Smarkm 20238405Sjkim movl 128(%ebp),%eax 2195967Speter pushl %eax 22238405Sjkim xorl %eax,%eax 23127326Smarkm 24238405Sjkim movl (%ebp),%edx 25238405Sjkim movl 4(%ebp),%ecx 26238405Sjkim addl %esi,%edx 27238405Sjkim roll %cl,%edx 28238405Sjkim movl %edx,%ebx 29238405Sjkim xorl %ecx,%ecx 30238405Sjkim movb %dh,%cl 31238405Sjkim andl $255,%ebx 32238405Sjkim shrl $16,%edx 33238405Sjkim xorl %eax,%eax 34238405Sjkim movb %dh,%al 35238405Sjkim andl $255,%edx 3695967Speter movl CAST_S_table0(,%ecx,4),%ecx 3795967Speter movl CAST_S_table1(,%ebx,4),%ebx 38238405Sjkim xorl %ebx,%ecx 3995967Speter movl CAST_S_table2(,%eax,4),%ebx 40238405Sjkim subl %ebx,%ecx 4195967Speter movl CAST_S_table3(,%edx,4),%ebx 42238405Sjkim addl %ebx,%ecx 43238405Sjkim xorl %ecx,%edi 44127326Smarkm 45238405Sjkim movl 8(%ebp),%edx 46238405Sjkim movl 12(%ebp),%ecx 47238405Sjkim xorl %edi,%edx 48238405Sjkim roll %cl,%edx 49238405Sjkim movl %edx,%ebx 50238405Sjkim xorl %ecx,%ecx 51238405Sjkim movb %dh,%cl 52238405Sjkim andl $255,%ebx 53238405Sjkim shrl $16,%edx 54238405Sjkim xorl %eax,%eax 55238405Sjkim movb %dh,%al 56238405Sjkim andl $255,%edx 5795967Speter movl CAST_S_table0(,%ecx,4),%ecx 5895967Speter movl CAST_S_table1(,%ebx,4),%ebx 59238405Sjkim subl %ebx,%ecx 6095967Speter movl CAST_S_table2(,%eax,4),%ebx 61238405Sjkim addl %ebx,%ecx 6295967Speter movl CAST_S_table3(,%edx,4),%ebx 63238405Sjkim xorl %ebx,%ecx 64238405Sjkim xorl %ecx,%esi 65127326Smarkm 66238405Sjkim movl 16(%ebp),%edx 67238405Sjkim movl 20(%ebp),%ecx 68238405Sjkim subl %esi,%edx 69238405Sjkim roll %cl,%edx 70238405Sjkim movl %edx,%ebx 71238405Sjkim xorl %ecx,%ecx 72238405Sjkim movb %dh,%cl 73238405Sjkim andl $255,%ebx 74238405Sjkim shrl $16,%edx 75238405Sjkim xorl %eax,%eax 76238405Sjkim movb %dh,%al 77238405Sjkim andl $255,%edx 7895967Speter movl CAST_S_table0(,%ecx,4),%ecx 7995967Speter movl CAST_S_table1(,%ebx,4),%ebx 80238405Sjkim addl %ebx,%ecx 8195967Speter movl CAST_S_table2(,%eax,4),%ebx 82238405Sjkim xorl %ebx,%ecx 8395967Speter movl CAST_S_table3(,%edx,4),%ebx 84238405Sjkim subl %ebx,%ecx 85238405Sjkim xorl %ecx,%edi 86127326Smarkm 87238405Sjkim movl 24(%ebp),%edx 88238405Sjkim movl 28(%ebp),%ecx 89238405Sjkim addl %edi,%edx 90238405Sjkim roll %cl,%edx 91238405Sjkim movl %edx,%ebx 92238405Sjkim xorl %ecx,%ecx 93238405Sjkim movb %dh,%cl 94238405Sjkim andl $255,%ebx 95238405Sjkim shrl $16,%edx 96238405Sjkim xorl %eax,%eax 97238405Sjkim movb %dh,%al 98238405Sjkim andl $255,%edx 9995967Speter movl CAST_S_table0(,%ecx,4),%ecx 10095967Speter movl CAST_S_table1(,%ebx,4),%ebx 101238405Sjkim xorl %ebx,%ecx 10295967Speter movl CAST_S_table2(,%eax,4),%ebx 103238405Sjkim subl %ebx,%ecx 10495967Speter movl CAST_S_table3(,%edx,4),%ebx 105238405Sjkim addl %ebx,%ecx 106238405Sjkim xorl %ecx,%esi 107127326Smarkm 108238405Sjkim movl 32(%ebp),%edx 109238405Sjkim movl 36(%ebp),%ecx 110238405Sjkim xorl %esi,%edx 111238405Sjkim roll %cl,%edx 112238405Sjkim movl %edx,%ebx 113238405Sjkim xorl %ecx,%ecx 114238405Sjkim movb %dh,%cl 115238405Sjkim andl $255,%ebx 116238405Sjkim shrl $16,%edx 117238405Sjkim xorl %eax,%eax 118238405Sjkim movb %dh,%al 119238405Sjkim andl $255,%edx 12095967Speter movl CAST_S_table0(,%ecx,4),%ecx 12195967Speter movl CAST_S_table1(,%ebx,4),%ebx 122238405Sjkim subl %ebx,%ecx 12395967Speter movl CAST_S_table2(,%eax,4),%ebx 124238405Sjkim addl %ebx,%ecx 12595967Speter movl CAST_S_table3(,%edx,4),%ebx 126238405Sjkim xorl %ebx,%ecx 127238405Sjkim xorl %ecx,%edi 128127326Smarkm 129238405Sjkim movl 40(%ebp),%edx 130238405Sjkim movl 44(%ebp),%ecx 131238405Sjkim subl %edi,%edx 132238405Sjkim roll %cl,%edx 133238405Sjkim movl %edx,%ebx 134238405Sjkim xorl %ecx,%ecx 135238405Sjkim movb %dh,%cl 136238405Sjkim andl $255,%ebx 137238405Sjkim shrl $16,%edx 138238405Sjkim xorl %eax,%eax 139238405Sjkim movb %dh,%al 140238405Sjkim andl $255,%edx 14195967Speter movl CAST_S_table0(,%ecx,4),%ecx 14295967Speter movl CAST_S_table1(,%ebx,4),%ebx 143238405Sjkim addl %ebx,%ecx 14495967Speter movl CAST_S_table2(,%eax,4),%ebx 145238405Sjkim xorl %ebx,%ecx 14695967Speter movl CAST_S_table3(,%edx,4),%ebx 147238405Sjkim subl %ebx,%ecx 148238405Sjkim xorl %ecx,%esi 149127326Smarkm 150238405Sjkim movl 48(%ebp),%edx 151238405Sjkim movl 52(%ebp),%ecx 152238405Sjkim addl %esi,%edx 153238405Sjkim roll %cl,%edx 154238405Sjkim movl %edx,%ebx 155238405Sjkim xorl %ecx,%ecx 156238405Sjkim movb %dh,%cl 157238405Sjkim andl $255,%ebx 158238405Sjkim shrl $16,%edx 159238405Sjkim xorl %eax,%eax 160238405Sjkim movb %dh,%al 161238405Sjkim andl $255,%edx 16295967Speter movl CAST_S_table0(,%ecx,4),%ecx 16395967Speter movl CAST_S_table1(,%ebx,4),%ebx 164238405Sjkim xorl %ebx,%ecx 16595967Speter movl CAST_S_table2(,%eax,4),%ebx 166238405Sjkim subl %ebx,%ecx 16795967Speter movl CAST_S_table3(,%edx,4),%ebx 168238405Sjkim addl %ebx,%ecx 169238405Sjkim xorl %ecx,%edi 170127326Smarkm 171238405Sjkim movl 56(%ebp),%edx 172238405Sjkim movl 60(%ebp),%ecx 173238405Sjkim xorl %edi,%edx 174238405Sjkim roll %cl,%edx 175238405Sjkim movl %edx,%ebx 176238405Sjkim xorl %ecx,%ecx 177238405Sjkim movb %dh,%cl 178238405Sjkim andl $255,%ebx 179238405Sjkim shrl $16,%edx 180238405Sjkim xorl %eax,%eax 181238405Sjkim movb %dh,%al 182238405Sjkim andl $255,%edx 18395967Speter movl CAST_S_table0(,%ecx,4),%ecx 18495967Speter movl CAST_S_table1(,%ebx,4),%ebx 185238405Sjkim subl %ebx,%ecx 18695967Speter movl CAST_S_table2(,%eax,4),%ebx 187238405Sjkim addl %ebx,%ecx 18895967Speter movl CAST_S_table3(,%edx,4),%ebx 189238405Sjkim xorl %ebx,%ecx 190238405Sjkim xorl %ecx,%esi 191127326Smarkm 192238405Sjkim movl 64(%ebp),%edx 193238405Sjkim movl 68(%ebp),%ecx 194238405Sjkim subl %esi,%edx 195238405Sjkim roll %cl,%edx 196238405Sjkim movl %edx,%ebx 197238405Sjkim xorl %ecx,%ecx 198238405Sjkim movb %dh,%cl 199238405Sjkim andl $255,%ebx 200238405Sjkim shrl $16,%edx 201238405Sjkim xorl %eax,%eax 202238405Sjkim movb %dh,%al 203238405Sjkim andl $255,%edx 20495967Speter movl CAST_S_table0(,%ecx,4),%ecx 20595967Speter movl CAST_S_table1(,%ebx,4),%ebx 206238405Sjkim addl %ebx,%ecx 20795967Speter movl CAST_S_table2(,%eax,4),%ebx 208238405Sjkim xorl %ebx,%ecx 20995967Speter movl CAST_S_table3(,%edx,4),%ebx 210238405Sjkim subl %ebx,%ecx 211238405Sjkim xorl %ecx,%edi 212127326Smarkm 213238405Sjkim movl 72(%ebp),%edx 214238405Sjkim movl 76(%ebp),%ecx 215238405Sjkim addl %edi,%edx 216238405Sjkim roll %cl,%edx 217238405Sjkim movl %edx,%ebx 218238405Sjkim xorl %ecx,%ecx 219238405Sjkim movb %dh,%cl 220238405Sjkim andl $255,%ebx 221238405Sjkim shrl $16,%edx 222238405Sjkim xorl %eax,%eax 223238405Sjkim movb %dh,%al 224238405Sjkim andl $255,%edx 22595967Speter movl CAST_S_table0(,%ecx,4),%ecx 22695967Speter movl CAST_S_table1(,%ebx,4),%ebx 227238405Sjkim xorl %ebx,%ecx 22895967Speter movl CAST_S_table2(,%eax,4),%ebx 229238405Sjkim subl %ebx,%ecx 23095967Speter movl CAST_S_table3(,%edx,4),%ebx 231238405Sjkim addl %ebx,%ecx 232238405Sjkim xorl %ecx,%esi 233127326Smarkm 234238405Sjkim movl 80(%ebp),%edx 235238405Sjkim movl 84(%ebp),%ecx 236238405Sjkim xorl %esi,%edx 237238405Sjkim roll %cl,%edx 238238405Sjkim movl %edx,%ebx 239238405Sjkim xorl %ecx,%ecx 240238405Sjkim movb %dh,%cl 241238405Sjkim andl $255,%ebx 242238405Sjkim shrl $16,%edx 243238405Sjkim xorl %eax,%eax 244238405Sjkim movb %dh,%al 245238405Sjkim andl $255,%edx 24695967Speter movl CAST_S_table0(,%ecx,4),%ecx 24795967Speter movl CAST_S_table1(,%ebx,4),%ebx 248238405Sjkim subl %ebx,%ecx 24995967Speter movl CAST_S_table2(,%eax,4),%ebx 250238405Sjkim addl %ebx,%ecx 25195967Speter movl CAST_S_table3(,%edx,4),%ebx 252238405Sjkim xorl %ebx,%ecx 253238405Sjkim xorl %ecx,%edi 254127326Smarkm 255238405Sjkim movl 88(%ebp),%edx 256238405Sjkim movl 92(%ebp),%ecx 257238405Sjkim subl %edi,%edx 258238405Sjkim roll %cl,%edx 259238405Sjkim movl %edx,%ebx 260238405Sjkim xorl %ecx,%ecx 261238405Sjkim movb %dh,%cl 262238405Sjkim andl $255,%ebx 263238405Sjkim shrl $16,%edx 264238405Sjkim xorl %eax,%eax 265238405Sjkim movb %dh,%al 266238405Sjkim andl $255,%edx 26795967Speter movl CAST_S_table0(,%ecx,4),%ecx 26895967Speter movl CAST_S_table1(,%ebx,4),%ebx 269238405Sjkim addl %ebx,%ecx 27095967Speter movl CAST_S_table2(,%eax,4),%ebx 271238405Sjkim xorl %ebx,%ecx 27295967Speter movl CAST_S_table3(,%edx,4),%ebx 273238405Sjkim subl %ebx,%ecx 274238405Sjkim xorl %ecx,%esi 275127326Smarkm 27695967Speter popl %edx 277238405Sjkim orl %edx,%edx 27895967Speter jnz .L000cast_enc_done 279127326Smarkm 280238405Sjkim movl 96(%ebp),%edx 281238405Sjkim movl 100(%ebp),%ecx 282238405Sjkim addl %esi,%edx 283238405Sjkim roll %cl,%edx 284238405Sjkim movl %edx,%ebx 285238405Sjkim xorl %ecx,%ecx 286238405Sjkim movb %dh,%cl 287238405Sjkim andl $255,%ebx 288238405Sjkim shrl $16,%edx 289238405Sjkim xorl %eax,%eax 290238405Sjkim movb %dh,%al 291238405Sjkim andl $255,%edx 29295967Speter movl CAST_S_table0(,%ecx,4),%ecx 29395967Speter movl CAST_S_table1(,%ebx,4),%ebx 294238405Sjkim xorl %ebx,%ecx 29595967Speter movl CAST_S_table2(,%eax,4),%ebx 296238405Sjkim subl %ebx,%ecx 29795967Speter movl CAST_S_table3(,%edx,4),%ebx 298238405Sjkim addl %ebx,%ecx 299238405Sjkim xorl %ecx,%edi 300127326Smarkm 301238405Sjkim movl 104(%ebp),%edx 302238405Sjkim movl 108(%ebp),%ecx 303238405Sjkim xorl %edi,%edx 304238405Sjkim roll %cl,%edx 305238405Sjkim movl %edx,%ebx 306238405Sjkim xorl %ecx,%ecx 307238405Sjkim movb %dh,%cl 308238405Sjkim andl $255,%ebx 309238405Sjkim shrl $16,%edx 310238405Sjkim xorl %eax,%eax 311238405Sjkim movb %dh,%al 312238405Sjkim andl $255,%edx 31395967Speter movl CAST_S_table0(,%ecx,4),%ecx 31495967Speter movl CAST_S_table1(,%ebx,4),%ebx 315238405Sjkim subl %ebx,%ecx 31695967Speter movl CAST_S_table2(,%eax,4),%ebx 317238405Sjkim addl %ebx,%ecx 31895967Speter movl CAST_S_table3(,%edx,4),%ebx 319238405Sjkim xorl %ebx,%ecx 320238405Sjkim xorl %ecx,%esi 321127326Smarkm 322238405Sjkim movl 112(%ebp),%edx 323238405Sjkim movl 116(%ebp),%ecx 324238405Sjkim subl %esi,%edx 325238405Sjkim roll %cl,%edx 326238405Sjkim movl %edx,%ebx 327238405Sjkim xorl %ecx,%ecx 328238405Sjkim movb %dh,%cl 329238405Sjkim andl $255,%ebx 330238405Sjkim shrl $16,%edx 331238405Sjkim xorl %eax,%eax 332238405Sjkim movb %dh,%al 333238405Sjkim andl $255,%edx 33495967Speter movl CAST_S_table0(,%ecx,4),%ecx 33595967Speter movl CAST_S_table1(,%ebx,4),%ebx 336238405Sjkim addl %ebx,%ecx 33795967Speter movl CAST_S_table2(,%eax,4),%ebx 338238405Sjkim xorl %ebx,%ecx 33995967Speter movl CAST_S_table3(,%edx,4),%ebx 340238405Sjkim subl %ebx,%ecx 341238405Sjkim xorl %ecx,%edi 342127326Smarkm 343238405Sjkim movl 120(%ebp),%edx 344238405Sjkim movl 124(%ebp),%ecx 345238405Sjkim addl %edi,%edx 346238405Sjkim roll %cl,%edx 347238405Sjkim movl %edx,%ebx 348238405Sjkim xorl %ecx,%ecx 349238405Sjkim movb %dh,%cl 350238405Sjkim andl $255,%ebx 351238405Sjkim shrl $16,%edx 352238405Sjkim xorl %eax,%eax 353238405Sjkim movb %dh,%al 354238405Sjkim andl $255,%edx 35595967Speter movl CAST_S_table0(,%ecx,4),%ecx 35695967Speter movl CAST_S_table1(,%ebx,4),%ebx 357238405Sjkim xorl %ebx,%ecx 35895967Speter movl CAST_S_table2(,%eax,4),%ebx 359238405Sjkim subl %ebx,%ecx 36095967Speter movl CAST_S_table3(,%edx,4),%ebx 361238405Sjkim addl %ebx,%ecx 362238405Sjkim xorl %ecx,%esi 36395967Speter.L000cast_enc_done: 36495967Speter nop 365238405Sjkim movl 20(%esp),%eax 366238405Sjkim movl %edi,4(%eax) 367238405Sjkim movl %esi,(%eax) 36895967Speter popl %edi 36995967Speter popl %esi 37095967Speter popl %ebx 37195967Speter popl %ebp 37295967Speter ret 373238405Sjkim.size CAST_encrypt,.-.L_CAST_encrypt_begin 374238405Sjkim.globl CAST_decrypt 375238405Sjkim.type CAST_decrypt,@function 376238405Sjkim.align 16 37795967SpeterCAST_decrypt: 378238405Sjkim.L_CAST_decrypt_begin: 37995967Speter 38095967Speter pushl %ebp 38195967Speter pushl %ebx 382238405Sjkim movl 12(%esp),%ebx 383238405Sjkim movl 16(%esp),%ebp 38495967Speter pushl %esi 38595967Speter pushl %edi 386127326Smarkm 387238405Sjkim movl (%ebx),%edi 388238405Sjkim movl 4(%ebx),%esi 389127326Smarkm 390238405Sjkim movl 128(%ebp),%eax 391238405Sjkim orl %eax,%eax 39295967Speter jnz .L001cast_dec_skip 393238405Sjkim xorl %eax,%eax 394127326Smarkm 395238405Sjkim movl 120(%ebp),%edx 396238405Sjkim movl 124(%ebp),%ecx 397238405Sjkim addl %esi,%edx 398238405Sjkim roll %cl,%edx 399238405Sjkim movl %edx,%ebx 400238405Sjkim xorl %ecx,%ecx 401238405Sjkim movb %dh,%cl 402238405Sjkim andl $255,%ebx 403238405Sjkim shrl $16,%edx 404238405Sjkim xorl %eax,%eax 405238405Sjkim movb %dh,%al 406238405Sjkim andl $255,%edx 40795967Speter movl CAST_S_table0(,%ecx,4),%ecx 40895967Speter movl CAST_S_table1(,%ebx,4),%ebx 409238405Sjkim xorl %ebx,%ecx 41095967Speter movl CAST_S_table2(,%eax,4),%ebx 411238405Sjkim subl %ebx,%ecx 41295967Speter movl CAST_S_table3(,%edx,4),%ebx 413238405Sjkim addl %ebx,%ecx 414238405Sjkim xorl %ecx,%edi 415127326Smarkm 416238405Sjkim movl 112(%ebp),%edx 417238405Sjkim movl 116(%ebp),%ecx 418238405Sjkim subl %edi,%edx 419238405Sjkim roll %cl,%edx 420238405Sjkim movl %edx,%ebx 421238405Sjkim xorl %ecx,%ecx 422238405Sjkim movb %dh,%cl 423238405Sjkim andl $255,%ebx 424238405Sjkim shrl $16,%edx 425238405Sjkim xorl %eax,%eax 426238405Sjkim movb %dh,%al 427238405Sjkim andl $255,%edx 42895967Speter movl CAST_S_table0(,%ecx,4),%ecx 42995967Speter movl CAST_S_table1(,%ebx,4),%ebx 430238405Sjkim addl %ebx,%ecx 43195967Speter movl CAST_S_table2(,%eax,4),%ebx 432238405Sjkim xorl %ebx,%ecx 43395967Speter movl CAST_S_table3(,%edx,4),%ebx 434238405Sjkim subl %ebx,%ecx 435238405Sjkim xorl %ecx,%esi 436127326Smarkm 437238405Sjkim movl 104(%ebp),%edx 438238405Sjkim movl 108(%ebp),%ecx 439238405Sjkim xorl %esi,%edx 440238405Sjkim roll %cl,%edx 441238405Sjkim movl %edx,%ebx 442238405Sjkim xorl %ecx,%ecx 443238405Sjkim movb %dh,%cl 444238405Sjkim andl $255,%ebx 445238405Sjkim shrl $16,%edx 446238405Sjkim xorl %eax,%eax 447238405Sjkim movb %dh,%al 448238405Sjkim andl $255,%edx 44995967Speter movl CAST_S_table0(,%ecx,4),%ecx 45095967Speter movl CAST_S_table1(,%ebx,4),%ebx 451238405Sjkim subl %ebx,%ecx 45295967Speter movl CAST_S_table2(,%eax,4),%ebx 453238405Sjkim addl %ebx,%ecx 45495967Speter movl CAST_S_table3(,%edx,4),%ebx 455238405Sjkim xorl %ebx,%ecx 456238405Sjkim xorl %ecx,%edi 457127326Smarkm 458238405Sjkim movl 96(%ebp),%edx 459238405Sjkim movl 100(%ebp),%ecx 460238405Sjkim addl %edi,%edx 461238405Sjkim roll %cl,%edx 462238405Sjkim movl %edx,%ebx 463238405Sjkim xorl %ecx,%ecx 464238405Sjkim movb %dh,%cl 465238405Sjkim andl $255,%ebx 466238405Sjkim shrl $16,%edx 467238405Sjkim xorl %eax,%eax 468238405Sjkim movb %dh,%al 469238405Sjkim andl $255,%edx 47095967Speter movl CAST_S_table0(,%ecx,4),%ecx 47195967Speter movl CAST_S_table1(,%ebx,4),%ebx 472238405Sjkim xorl %ebx,%ecx 47395967Speter movl CAST_S_table2(,%eax,4),%ebx 474238405Sjkim subl %ebx,%ecx 47595967Speter movl CAST_S_table3(,%edx,4),%ebx 476238405Sjkim addl %ebx,%ecx 477238405Sjkim xorl %ecx,%esi 47895967Speter.L001cast_dec_skip: 479127326Smarkm 480238405Sjkim movl 88(%ebp),%edx 481238405Sjkim movl 92(%ebp),%ecx 482238405Sjkim subl %esi,%edx 483238405Sjkim roll %cl,%edx 484238405Sjkim movl %edx,%ebx 485238405Sjkim xorl %ecx,%ecx 486238405Sjkim movb %dh,%cl 487238405Sjkim andl $255,%ebx 488238405Sjkim shrl $16,%edx 489238405Sjkim xorl %eax,%eax 490238405Sjkim movb %dh,%al 491238405Sjkim andl $255,%edx 49295967Speter movl CAST_S_table0(,%ecx,4),%ecx 49395967Speter movl CAST_S_table1(,%ebx,4),%ebx 494238405Sjkim addl %ebx,%ecx 49595967Speter movl CAST_S_table2(,%eax,4),%ebx 496238405Sjkim xorl %ebx,%ecx 49795967Speter movl CAST_S_table3(,%edx,4),%ebx 498238405Sjkim subl %ebx,%ecx 499238405Sjkim xorl %ecx,%edi 500127326Smarkm 501238405Sjkim movl 80(%ebp),%edx 502238405Sjkim movl 84(%ebp),%ecx 503238405Sjkim xorl %edi,%edx 504238405Sjkim roll %cl,%edx 505238405Sjkim movl %edx,%ebx 506238405Sjkim xorl %ecx,%ecx 507238405Sjkim movb %dh,%cl 508238405Sjkim andl $255,%ebx 509238405Sjkim shrl $16,%edx 510238405Sjkim xorl %eax,%eax 511238405Sjkim movb %dh,%al 512238405Sjkim andl $255,%edx 51395967Speter movl CAST_S_table0(,%ecx,4),%ecx 51495967Speter movl CAST_S_table1(,%ebx,4),%ebx 515238405Sjkim subl %ebx,%ecx 51695967Speter movl CAST_S_table2(,%eax,4),%ebx 517238405Sjkim addl %ebx,%ecx 51895967Speter movl CAST_S_table3(,%edx,4),%ebx 519238405Sjkim xorl %ebx,%ecx 520238405Sjkim xorl %ecx,%esi 521127326Smarkm 522238405Sjkim movl 72(%ebp),%edx 523238405Sjkim movl 76(%ebp),%ecx 524238405Sjkim addl %esi,%edx 525238405Sjkim roll %cl,%edx 526238405Sjkim movl %edx,%ebx 527238405Sjkim xorl %ecx,%ecx 528238405Sjkim movb %dh,%cl 529238405Sjkim andl $255,%ebx 530238405Sjkim shrl $16,%edx 531238405Sjkim xorl %eax,%eax 532238405Sjkim movb %dh,%al 533238405Sjkim andl $255,%edx 53495967Speter movl CAST_S_table0(,%ecx,4),%ecx 53595967Speter movl CAST_S_table1(,%ebx,4),%ebx 536238405Sjkim xorl %ebx,%ecx 53795967Speter movl CAST_S_table2(,%eax,4),%ebx 538238405Sjkim subl %ebx,%ecx 53995967Speter movl CAST_S_table3(,%edx,4),%ebx 540238405Sjkim addl %ebx,%ecx 541238405Sjkim xorl %ecx,%edi 542127326Smarkm 543238405Sjkim movl 64(%ebp),%edx 544238405Sjkim movl 68(%ebp),%ecx 545238405Sjkim subl %edi,%edx 546238405Sjkim roll %cl,%edx 547238405Sjkim movl %edx,%ebx 548238405Sjkim xorl %ecx,%ecx 549238405Sjkim movb %dh,%cl 550238405Sjkim andl $255,%ebx 551238405Sjkim shrl $16,%edx 552238405Sjkim xorl %eax,%eax 553238405Sjkim movb %dh,%al 554238405Sjkim andl $255,%edx 55595967Speter movl CAST_S_table0(,%ecx,4),%ecx 55695967Speter movl CAST_S_table1(,%ebx,4),%ebx 557238405Sjkim addl %ebx,%ecx 55895967Speter movl CAST_S_table2(,%eax,4),%ebx 559238405Sjkim xorl %ebx,%ecx 56095967Speter movl CAST_S_table3(,%edx,4),%ebx 561238405Sjkim subl %ebx,%ecx 562238405Sjkim xorl %ecx,%esi 563127326Smarkm 564238405Sjkim movl 56(%ebp),%edx 565238405Sjkim movl 60(%ebp),%ecx 566238405Sjkim xorl %esi,%edx 567238405Sjkim roll %cl,%edx 568238405Sjkim movl %edx,%ebx 569238405Sjkim xorl %ecx,%ecx 570238405Sjkim movb %dh,%cl 571238405Sjkim andl $255,%ebx 572238405Sjkim shrl $16,%edx 573238405Sjkim xorl %eax,%eax 574238405Sjkim movb %dh,%al 575238405Sjkim andl $255,%edx 57695967Speter movl CAST_S_table0(,%ecx,4),%ecx 57795967Speter movl CAST_S_table1(,%ebx,4),%ebx 578238405Sjkim subl %ebx,%ecx 57995967Speter movl CAST_S_table2(,%eax,4),%ebx 580238405Sjkim addl %ebx,%ecx 58195967Speter movl CAST_S_table3(,%edx,4),%ebx 582238405Sjkim xorl %ebx,%ecx 583238405Sjkim xorl %ecx,%edi 584127326Smarkm 585238405Sjkim movl 48(%ebp),%edx 586238405Sjkim movl 52(%ebp),%ecx 587238405Sjkim addl %edi,%edx 588238405Sjkim roll %cl,%edx 589238405Sjkim movl %edx,%ebx 590238405Sjkim xorl %ecx,%ecx 591238405Sjkim movb %dh,%cl 592238405Sjkim andl $255,%ebx 593238405Sjkim shrl $16,%edx 594238405Sjkim xorl %eax,%eax 595238405Sjkim movb %dh,%al 596238405Sjkim andl $255,%edx 59795967Speter movl CAST_S_table0(,%ecx,4),%ecx 59895967Speter movl CAST_S_table1(,%ebx,4),%ebx 599238405Sjkim xorl %ebx,%ecx 60095967Speter movl CAST_S_table2(,%eax,4),%ebx 601238405Sjkim subl %ebx,%ecx 60295967Speter movl CAST_S_table3(,%edx,4),%ebx 603238405Sjkim addl %ebx,%ecx 604238405Sjkim xorl %ecx,%esi 605127326Smarkm 606238405Sjkim movl 40(%ebp),%edx 607238405Sjkim movl 44(%ebp),%ecx 608238405Sjkim subl %esi,%edx 609238405Sjkim roll %cl,%edx 610238405Sjkim movl %edx,%ebx 611238405Sjkim xorl %ecx,%ecx 612238405Sjkim movb %dh,%cl 613238405Sjkim andl $255,%ebx 614238405Sjkim shrl $16,%edx 615238405Sjkim xorl %eax,%eax 616238405Sjkim movb %dh,%al 617238405Sjkim andl $255,%edx 61895967Speter movl CAST_S_table0(,%ecx,4),%ecx 61995967Speter movl CAST_S_table1(,%ebx,4),%ebx 620238405Sjkim addl %ebx,%ecx 62195967Speter movl CAST_S_table2(,%eax,4),%ebx 622238405Sjkim xorl %ebx,%ecx 62395967Speter movl CAST_S_table3(,%edx,4),%ebx 624238405Sjkim subl %ebx,%ecx 625238405Sjkim xorl %ecx,%edi 626127326Smarkm 627238405Sjkim movl 32(%ebp),%edx 628238405Sjkim movl 36(%ebp),%ecx 629238405Sjkim xorl %edi,%edx 630238405Sjkim roll %cl,%edx 631238405Sjkim movl %edx,%ebx 632238405Sjkim xorl %ecx,%ecx 633238405Sjkim movb %dh,%cl 634238405Sjkim andl $255,%ebx 635238405Sjkim shrl $16,%edx 636238405Sjkim xorl %eax,%eax 637238405Sjkim movb %dh,%al 638238405Sjkim andl $255,%edx 63995967Speter movl CAST_S_table0(,%ecx,4),%ecx 64095967Speter movl CAST_S_table1(,%ebx,4),%ebx 641238405Sjkim subl %ebx,%ecx 64295967Speter movl CAST_S_table2(,%eax,4),%ebx 643238405Sjkim addl %ebx,%ecx 64495967Speter movl CAST_S_table3(,%edx,4),%ebx 645238405Sjkim xorl %ebx,%ecx 646238405Sjkim xorl %ecx,%esi 647127326Smarkm 648238405Sjkim movl 24(%ebp),%edx 649238405Sjkim movl 28(%ebp),%ecx 650238405Sjkim addl %esi,%edx 651238405Sjkim roll %cl,%edx 652238405Sjkim movl %edx,%ebx 653238405Sjkim xorl %ecx,%ecx 654238405Sjkim movb %dh,%cl 655238405Sjkim andl $255,%ebx 656238405Sjkim shrl $16,%edx 657238405Sjkim xorl %eax,%eax 658238405Sjkim movb %dh,%al 659238405Sjkim andl $255,%edx 66095967Speter movl CAST_S_table0(,%ecx,4),%ecx 66195967Speter movl CAST_S_table1(,%ebx,4),%ebx 662238405Sjkim xorl %ebx,%ecx 66395967Speter movl CAST_S_table2(,%eax,4),%ebx 664238405Sjkim subl %ebx,%ecx 66595967Speter movl CAST_S_table3(,%edx,4),%ebx 666238405Sjkim addl %ebx,%ecx 667238405Sjkim xorl %ecx,%edi 668127326Smarkm 669238405Sjkim movl 16(%ebp),%edx 670238405Sjkim movl 20(%ebp),%ecx 671238405Sjkim subl %edi,%edx 672238405Sjkim roll %cl,%edx 673238405Sjkim movl %edx,%ebx 674238405Sjkim xorl %ecx,%ecx 675238405Sjkim movb %dh,%cl 676238405Sjkim andl $255,%ebx 677238405Sjkim shrl $16,%edx 678238405Sjkim xorl %eax,%eax 679238405Sjkim movb %dh,%al 680238405Sjkim andl $255,%edx 68195967Speter movl CAST_S_table0(,%ecx,4),%ecx 68295967Speter movl CAST_S_table1(,%ebx,4),%ebx 683238405Sjkim addl %ebx,%ecx 68495967Speter movl CAST_S_table2(,%eax,4),%ebx 685238405Sjkim xorl %ebx,%ecx 68695967Speter movl CAST_S_table3(,%edx,4),%ebx 687238405Sjkim subl %ebx,%ecx 688238405Sjkim xorl %ecx,%esi 689127326Smarkm 690238405Sjkim movl 8(%ebp),%edx 691238405Sjkim movl 12(%ebp),%ecx 692238405Sjkim xorl %esi,%edx 693238405Sjkim roll %cl,%edx 694238405Sjkim movl %edx,%ebx 695238405Sjkim xorl %ecx,%ecx 696238405Sjkim movb %dh,%cl 697238405Sjkim andl $255,%ebx 698238405Sjkim shrl $16,%edx 699238405Sjkim xorl %eax,%eax 700238405Sjkim movb %dh,%al 701238405Sjkim andl $255,%edx 70295967Speter movl CAST_S_table0(,%ecx,4),%ecx 70395967Speter movl CAST_S_table1(,%ebx,4),%ebx 704238405Sjkim subl %ebx,%ecx 70595967Speter movl CAST_S_table2(,%eax,4),%ebx 706238405Sjkim addl %ebx,%ecx 70795967Speter movl CAST_S_table3(,%edx,4),%ebx 708238405Sjkim xorl %ebx,%ecx 709238405Sjkim xorl %ecx,%edi 710127326Smarkm 711238405Sjkim movl (%ebp),%edx 712238405Sjkim movl 4(%ebp),%ecx 713238405Sjkim addl %edi,%edx 714238405Sjkim roll %cl,%edx 715238405Sjkim movl %edx,%ebx 716238405Sjkim xorl %ecx,%ecx 717238405Sjkim movb %dh,%cl 718238405Sjkim andl $255,%ebx 719238405Sjkim shrl $16,%edx 720238405Sjkim xorl %eax,%eax 721238405Sjkim movb %dh,%al 722238405Sjkim andl $255,%edx 72395967Speter movl CAST_S_table0(,%ecx,4),%ecx 72495967Speter movl CAST_S_table1(,%ebx,4),%ebx 725238405Sjkim xorl %ebx,%ecx 72695967Speter movl CAST_S_table2(,%eax,4),%ebx 727238405Sjkim subl %ebx,%ecx 72895967Speter movl CAST_S_table3(,%edx,4),%ebx 729238405Sjkim addl %ebx,%ecx 730238405Sjkim xorl %ecx,%esi 73195967Speter nop 732238405Sjkim movl 20(%esp),%eax 733238405Sjkim movl %edi,4(%eax) 734238405Sjkim movl %esi,(%eax) 73595967Speter popl %edi 73695967Speter popl %esi 73795967Speter popl %ebx 73895967Speter popl %ebp 73995967Speter ret 740238405Sjkim.size CAST_decrypt,.-.L_CAST_decrypt_begin 741238405Sjkim.globl CAST_cbc_encrypt 742238405Sjkim.type CAST_cbc_encrypt,@function 743238405Sjkim.align 16 74495967SpeterCAST_cbc_encrypt: 745238405Sjkim.L_CAST_cbc_encrypt_begin: 74695967Speter 74795967Speter pushl %ebp 74895967Speter pushl %ebx 74995967Speter pushl %esi 75095967Speter pushl %edi 751238405Sjkim movl 28(%esp),%ebp 752127326Smarkm 753238405Sjkim movl 36(%esp),%ebx 754238405Sjkim movl (%ebx),%esi 755238405Sjkim movl 4(%ebx),%edi 75695967Speter pushl %edi 75795967Speter pushl %esi 75895967Speter pushl %edi 75995967Speter pushl %esi 760238405Sjkim movl %esp,%ebx 761238405Sjkim movl 36(%esp),%esi 762238405Sjkim movl 40(%esp),%edi 763127326Smarkm 764238405Sjkim movl 56(%esp),%ecx 765127326Smarkm 766238405Sjkim movl 48(%esp),%eax 76795967Speter pushl %eax 76895967Speter pushl %ebx 769238405Sjkim cmpl $0,%ecx 77095967Speter jz .L002decrypt 771238405Sjkim andl $4294967288,%ebp 772238405Sjkim movl 8(%esp),%eax 773238405Sjkim movl 12(%esp),%ebx 77495967Speter jz .L003encrypt_finish 77595967Speter.L004encrypt_loop: 776238405Sjkim movl (%esi),%ecx 777238405Sjkim movl 4(%esi),%edx 778238405Sjkim xorl %ecx,%eax 779238405Sjkim xorl %edx,%ebx 780238405Sjkim bswap %eax 781238405Sjkim bswap %ebx 782238405Sjkim movl %eax,8(%esp) 783238405Sjkim movl %ebx,12(%esp) 784238405Sjkim call .L_CAST_encrypt_begin 785238405Sjkim movl 8(%esp),%eax 786238405Sjkim movl 12(%esp),%ebx 787238405Sjkim bswap %eax 788238405Sjkim bswap %ebx 789238405Sjkim movl %eax,(%edi) 790238405Sjkim movl %ebx,4(%edi) 791238405Sjkim addl $8,%esi 792238405Sjkim addl $8,%edi 793238405Sjkim subl $8,%ebp 79495967Speter jnz .L004encrypt_loop 79595967Speter.L003encrypt_finish: 796238405Sjkim movl 52(%esp),%ebp 797238405Sjkim andl $7,%ebp 79895967Speter jz .L005finish 799127326Smarkm call .L006PIC_point 800127326Smarkm.L006PIC_point: 801127326Smarkm popl %edx 802127326Smarkm leal .L007cbc_enc_jmp_table-.L006PIC_point(%edx),%ecx 803238405Sjkim movl (%ecx,%ebp,4),%ebp 804238405Sjkim addl %edx,%ebp 805238405Sjkim xorl %ecx,%ecx 806238405Sjkim xorl %edx,%edx 80795967Speter jmp *%ebp 808127326Smarkm.L008ej7: 809238405Sjkim movb 6(%esi),%dh 810238405Sjkim shll $8,%edx 811127326Smarkm.L009ej6: 812238405Sjkim movb 5(%esi),%dh 813127326Smarkm.L010ej5: 814238405Sjkim movb 4(%esi),%dl 815127326Smarkm.L011ej4: 816238405Sjkim movl (%esi),%ecx 817127326Smarkm jmp .L012ejend 818127326Smarkm.L013ej3: 819238405Sjkim movb 2(%esi),%ch 820238405Sjkim shll $8,%ecx 821127326Smarkm.L014ej2: 822238405Sjkim movb 1(%esi),%ch 823127326Smarkm.L015ej1: 824238405Sjkim movb (%esi),%cl 825127326Smarkm.L012ejend: 826238405Sjkim xorl %ecx,%eax 827238405Sjkim xorl %edx,%ebx 828238405Sjkim bswap %eax 829238405Sjkim bswap %ebx 830238405Sjkim movl %eax,8(%esp) 831238405Sjkim movl %ebx,12(%esp) 832238405Sjkim call .L_CAST_encrypt_begin 833238405Sjkim movl 8(%esp),%eax 834238405Sjkim movl 12(%esp),%ebx 835238405Sjkim bswap %eax 836238405Sjkim bswap %ebx 837238405Sjkim movl %eax,(%edi) 838238405Sjkim movl %ebx,4(%edi) 83995967Speter jmp .L005finish 84095967Speter.L002decrypt: 841238405Sjkim andl $4294967288,%ebp 842238405Sjkim movl 16(%esp),%eax 843238405Sjkim movl 20(%esp),%ebx 844127326Smarkm jz .L016decrypt_finish 845127326Smarkm.L017decrypt_loop: 846238405Sjkim movl (%esi),%eax 847238405Sjkim movl 4(%esi),%ebx 848238405Sjkim bswap %eax 849238405Sjkim bswap %ebx 850238405Sjkim movl %eax,8(%esp) 851238405Sjkim movl %ebx,12(%esp) 852238405Sjkim call .L_CAST_decrypt_begin 853238405Sjkim movl 8(%esp),%eax 854238405Sjkim movl 12(%esp),%ebx 855238405Sjkim bswap %eax 856238405Sjkim bswap %ebx 857238405Sjkim movl 16(%esp),%ecx 858238405Sjkim movl 20(%esp),%edx 859238405Sjkim xorl %eax,%ecx 860238405Sjkim xorl %ebx,%edx 861238405Sjkim movl (%esi),%eax 862238405Sjkim movl 4(%esi),%ebx 863238405Sjkim movl %ecx,(%edi) 864238405Sjkim movl %edx,4(%edi) 865238405Sjkim movl %eax,16(%esp) 866238405Sjkim movl %ebx,20(%esp) 867238405Sjkim addl $8,%esi 868238405Sjkim addl $8,%edi 869238405Sjkim subl $8,%ebp 870127326Smarkm jnz .L017decrypt_loop 871127326Smarkm.L016decrypt_finish: 872238405Sjkim movl 52(%esp),%ebp 873238405Sjkim andl $7,%ebp 87495967Speter jz .L005finish 875238405Sjkim movl (%esi),%eax 876238405Sjkim movl 4(%esi),%ebx 877238405Sjkim bswap %eax 878238405Sjkim bswap %ebx 879238405Sjkim movl %eax,8(%esp) 880238405Sjkim movl %ebx,12(%esp) 881238405Sjkim call .L_CAST_decrypt_begin 882238405Sjkim movl 8(%esp),%eax 883238405Sjkim movl 12(%esp),%ebx 884238405Sjkim bswap %eax 885238405Sjkim bswap %ebx 886238405Sjkim movl 16(%esp),%ecx 887238405Sjkim movl 20(%esp),%edx 888238405Sjkim xorl %eax,%ecx 889238405Sjkim xorl %ebx,%edx 890238405Sjkim movl (%esi),%eax 891238405Sjkim movl 4(%esi),%ebx 892127326Smarkm.L018dj7: 893238405Sjkim rorl $16,%edx 894238405Sjkim movb %dl,6(%edi) 895238405Sjkim shrl $16,%edx 896127326Smarkm.L019dj6: 897238405Sjkim movb %dh,5(%edi) 898127326Smarkm.L020dj5: 899238405Sjkim movb %dl,4(%edi) 900127326Smarkm.L021dj4: 901238405Sjkim movl %ecx,(%edi) 902127326Smarkm jmp .L022djend 903127326Smarkm.L023dj3: 904238405Sjkim rorl $16,%ecx 905238405Sjkim movb %cl,2(%edi) 906238405Sjkim shll $16,%ecx 907127326Smarkm.L024dj2: 908238405Sjkim movb %ch,1(%esi) 909127326Smarkm.L025dj1: 910238405Sjkim movb %cl,(%esi) 911127326Smarkm.L022djend: 91295967Speter jmp .L005finish 91395967Speter.L005finish: 914238405Sjkim movl 60(%esp),%ecx 915238405Sjkim addl $24,%esp 916238405Sjkim movl %eax,(%ecx) 917238405Sjkim movl %ebx,4(%ecx) 91895967Speter popl %edi 91995967Speter popl %esi 92095967Speter popl %ebx 92195967Speter popl %ebp 92295967Speter ret 923238405Sjkim.align 64 924127326Smarkm.L007cbc_enc_jmp_table: 925238405Sjkim.long 0 926238405Sjkim.long .L015ej1-.L006PIC_point 927238405Sjkim.long .L014ej2-.L006PIC_point 928238405Sjkim.long .L013ej3-.L006PIC_point 929238405Sjkim.long .L011ej4-.L006PIC_point 930238405Sjkim.long .L010ej5-.L006PIC_point 931238405Sjkim.long .L009ej6-.L006PIC_point 932238405Sjkim.long .L008ej7-.L006PIC_point 933238405Sjkim.align 64 934238405Sjkim.size CAST_cbc_encrypt,.-.L_CAST_cbc_encrypt_begin 935