1238405Sjkim # $FreeBSD$ 2238405Sjkim.file "aes-586.s" 3238405Sjkim.text 4238405Sjkim.type _x86_AES_encrypt_compact,@function 5238405Sjkim.align 16 6238405Sjkim_x86_AES_encrypt_compact: 7238405Sjkim movl %edi,20(%esp) 8238405Sjkim xorl (%edi),%eax 9238405Sjkim xorl 4(%edi),%ebx 10238405Sjkim xorl 8(%edi),%ecx 11238405Sjkim xorl 12(%edi),%edx 12238405Sjkim movl 240(%edi),%esi 13238405Sjkim leal -2(%esi,%esi,1),%esi 14238405Sjkim leal (%edi,%esi,8),%esi 15238405Sjkim movl %esi,24(%esp) 16238405Sjkim movl -128(%ebp),%edi 17238405Sjkim movl -96(%ebp),%esi 18238405Sjkim movl -64(%ebp),%edi 19238405Sjkim movl -32(%ebp),%esi 20238405Sjkim movl (%ebp),%edi 21238405Sjkim movl 32(%ebp),%esi 22238405Sjkim movl 64(%ebp),%edi 23238405Sjkim movl 96(%ebp),%esi 24238405Sjkim.align 16 25238405Sjkim.L000loop: 26238405Sjkim movl %eax,%esi 27238405Sjkim andl $255,%esi 28238405Sjkim movzbl -128(%ebp,%esi,1),%esi 29238405Sjkim movzbl %bh,%edi 30238405Sjkim movzbl -128(%ebp,%edi,1),%edi 31238405Sjkim shll $8,%edi 32238405Sjkim xorl %edi,%esi 33238405Sjkim movl %ecx,%edi 34238405Sjkim shrl $16,%edi 35238405Sjkim andl $255,%edi 36238405Sjkim movzbl -128(%ebp,%edi,1),%edi 37238405Sjkim shll $16,%edi 38238405Sjkim xorl %edi,%esi 39238405Sjkim movl %edx,%edi 40238405Sjkim shrl $24,%edi 41238405Sjkim movzbl -128(%ebp,%edi,1),%edi 42238405Sjkim shll $24,%edi 43238405Sjkim xorl %edi,%esi 44238405Sjkim movl %esi,4(%esp) 45238405Sjkim 46238405Sjkim movl %ebx,%esi 47238405Sjkim andl $255,%esi 48238405Sjkim shrl $16,%ebx 49238405Sjkim movzbl -128(%ebp,%esi,1),%esi 50238405Sjkim movzbl %ch,%edi 51238405Sjkim movzbl -128(%ebp,%edi,1),%edi 52238405Sjkim shll $8,%edi 53238405Sjkim xorl %edi,%esi 54238405Sjkim movl %edx,%edi 55238405Sjkim shrl $16,%edi 56238405Sjkim andl $255,%edi 57238405Sjkim movzbl -128(%ebp,%edi,1),%edi 58238405Sjkim shll $16,%edi 59238405Sjkim xorl %edi,%esi 60238405Sjkim movl %eax,%edi 61238405Sjkim shrl $24,%edi 62238405Sjkim movzbl -128(%ebp,%edi,1),%edi 63238405Sjkim shll $24,%edi 64238405Sjkim xorl %edi,%esi 65238405Sjkim movl %esi,8(%esp) 66238405Sjkim 67238405Sjkim movl %ecx,%esi 68238405Sjkim andl $255,%esi 69238405Sjkim shrl $24,%ecx 70238405Sjkim movzbl -128(%ebp,%esi,1),%esi 71238405Sjkim movzbl %dh,%edi 72238405Sjkim movzbl -128(%ebp,%edi,1),%edi 73238405Sjkim shll $8,%edi 74238405Sjkim xorl %edi,%esi 75238405Sjkim movl %eax,%edi 76238405Sjkim shrl $16,%edi 77238405Sjkim andl $255,%edx 78238405Sjkim andl $255,%edi 79238405Sjkim movzbl -128(%ebp,%edi,1),%edi 80238405Sjkim shll $16,%edi 81238405Sjkim xorl %edi,%esi 82238405Sjkim movzbl %bh,%edi 83238405Sjkim movzbl -128(%ebp,%edi,1),%edi 84238405Sjkim shll $24,%edi 85238405Sjkim xorl %edi,%esi 86238405Sjkim 87238405Sjkim andl $255,%edx 88238405Sjkim movzbl -128(%ebp,%edx,1),%edx 89238405Sjkim movzbl %ah,%eax 90238405Sjkim movzbl -128(%ebp,%eax,1),%eax 91238405Sjkim shll $8,%eax 92238405Sjkim xorl %eax,%edx 93238405Sjkim movl 4(%esp),%eax 94238405Sjkim andl $255,%ebx 95238405Sjkim movzbl -128(%ebp,%ebx,1),%ebx 96238405Sjkim shll $16,%ebx 97238405Sjkim xorl %ebx,%edx 98238405Sjkim movl 8(%esp),%ebx 99238405Sjkim movzbl -128(%ebp,%ecx,1),%ecx 100238405Sjkim shll $24,%ecx 101238405Sjkim xorl %ecx,%edx 102238405Sjkim movl %esi,%ecx 103238405Sjkim 104238405Sjkim movl %ecx,%esi 105238405Sjkim andl $2155905152,%esi 106238405Sjkim movl %esi,%ebp 107238405Sjkim shrl $7,%ebp 108238405Sjkim leal (%ecx,%ecx,1),%edi 109238405Sjkim subl %ebp,%esi 110238405Sjkim andl $4278124286,%edi 111238405Sjkim andl $454761243,%esi 112238405Sjkim movl %ecx,%ebp 113238405Sjkim xorl %edi,%esi 114238405Sjkim xorl %esi,%ecx 115238405Sjkim roll $24,%ecx 116238405Sjkim xorl %esi,%ecx 117238405Sjkim rorl $16,%ebp 118238405Sjkim xorl %ebp,%ecx 119238405Sjkim rorl $8,%ebp 120238405Sjkim xorl %ebp,%ecx 121238405Sjkim movl %edx,%esi 122238405Sjkim andl $2155905152,%esi 123238405Sjkim movl %esi,%ebp 124238405Sjkim shrl $7,%ebp 125238405Sjkim leal (%edx,%edx,1),%edi 126238405Sjkim subl %ebp,%esi 127238405Sjkim andl $4278124286,%edi 128238405Sjkim andl $454761243,%esi 129238405Sjkim movl %edx,%ebp 130238405Sjkim xorl %edi,%esi 131238405Sjkim xorl %esi,%edx 132238405Sjkim roll $24,%edx 133238405Sjkim xorl %esi,%edx 134238405Sjkim rorl $16,%ebp 135238405Sjkim xorl %ebp,%edx 136238405Sjkim rorl $8,%ebp 137238405Sjkim xorl %ebp,%edx 138238405Sjkim movl %eax,%esi 139238405Sjkim andl $2155905152,%esi 140238405Sjkim movl %esi,%ebp 141238405Sjkim shrl $7,%ebp 142238405Sjkim leal (%eax,%eax,1),%edi 143238405Sjkim subl %ebp,%esi 144238405Sjkim andl $4278124286,%edi 145238405Sjkim andl $454761243,%esi 146238405Sjkim movl %eax,%ebp 147238405Sjkim xorl %edi,%esi 148238405Sjkim xorl %esi,%eax 149238405Sjkim roll $24,%eax 150238405Sjkim xorl %esi,%eax 151238405Sjkim rorl $16,%ebp 152238405Sjkim xorl %ebp,%eax 153238405Sjkim rorl $8,%ebp 154238405Sjkim xorl %ebp,%eax 155238405Sjkim movl %ebx,%esi 156238405Sjkim andl $2155905152,%esi 157238405Sjkim movl %esi,%ebp 158238405Sjkim shrl $7,%ebp 159238405Sjkim leal (%ebx,%ebx,1),%edi 160238405Sjkim subl %ebp,%esi 161238405Sjkim andl $4278124286,%edi 162238405Sjkim andl $454761243,%esi 163238405Sjkim movl %ebx,%ebp 164238405Sjkim xorl %edi,%esi 165238405Sjkim xorl %esi,%ebx 166238405Sjkim roll $24,%ebx 167238405Sjkim xorl %esi,%ebx 168238405Sjkim rorl $16,%ebp 169238405Sjkim xorl %ebp,%ebx 170238405Sjkim rorl $8,%ebp 171238405Sjkim xorl %ebp,%ebx 172238405Sjkim movl 20(%esp),%edi 173238405Sjkim movl 28(%esp),%ebp 174238405Sjkim addl $16,%edi 175238405Sjkim xorl (%edi),%eax 176238405Sjkim xorl 4(%edi),%ebx 177238405Sjkim xorl 8(%edi),%ecx 178238405Sjkim xorl 12(%edi),%edx 179238405Sjkim cmpl 24(%esp),%edi 180238405Sjkim movl %edi,20(%esp) 181238405Sjkim jb .L000loop 182238405Sjkim movl %eax,%esi 183238405Sjkim andl $255,%esi 184238405Sjkim movzbl -128(%ebp,%esi,1),%esi 185238405Sjkim movzbl %bh,%edi 186238405Sjkim movzbl -128(%ebp,%edi,1),%edi 187238405Sjkim shll $8,%edi 188238405Sjkim xorl %edi,%esi 189238405Sjkim movl %ecx,%edi 190238405Sjkim shrl $16,%edi 191238405Sjkim andl $255,%edi 192238405Sjkim movzbl -128(%ebp,%edi,1),%edi 193238405Sjkim shll $16,%edi 194238405Sjkim xorl %edi,%esi 195238405Sjkim movl %edx,%edi 196238405Sjkim shrl $24,%edi 197238405Sjkim movzbl -128(%ebp,%edi,1),%edi 198238405Sjkim shll $24,%edi 199238405Sjkim xorl %edi,%esi 200238405Sjkim movl %esi,4(%esp) 201238405Sjkim 202238405Sjkim movl %ebx,%esi 203238405Sjkim andl $255,%esi 204238405Sjkim shrl $16,%ebx 205238405Sjkim movzbl -128(%ebp,%esi,1),%esi 206238405Sjkim movzbl %ch,%edi 207238405Sjkim movzbl -128(%ebp,%edi,1),%edi 208238405Sjkim shll $8,%edi 209238405Sjkim xorl %edi,%esi 210238405Sjkim movl %edx,%edi 211238405Sjkim shrl $16,%edi 212238405Sjkim andl $255,%edi 213238405Sjkim movzbl -128(%ebp,%edi,1),%edi 214238405Sjkim shll $16,%edi 215238405Sjkim xorl %edi,%esi 216238405Sjkim movl %eax,%edi 217238405Sjkim shrl $24,%edi 218238405Sjkim movzbl -128(%ebp,%edi,1),%edi 219238405Sjkim shll $24,%edi 220238405Sjkim xorl %edi,%esi 221238405Sjkim movl %esi,8(%esp) 222238405Sjkim 223238405Sjkim movl %ecx,%esi 224238405Sjkim andl $255,%esi 225238405Sjkim shrl $24,%ecx 226238405Sjkim movzbl -128(%ebp,%esi,1),%esi 227238405Sjkim movzbl %dh,%edi 228238405Sjkim movzbl -128(%ebp,%edi,1),%edi 229238405Sjkim shll $8,%edi 230238405Sjkim xorl %edi,%esi 231238405Sjkim movl %eax,%edi 232238405Sjkim shrl $16,%edi 233238405Sjkim andl $255,%edx 234238405Sjkim andl $255,%edi 235238405Sjkim movzbl -128(%ebp,%edi,1),%edi 236238405Sjkim shll $16,%edi 237238405Sjkim xorl %edi,%esi 238238405Sjkim movzbl %bh,%edi 239238405Sjkim movzbl -128(%ebp,%edi,1),%edi 240238405Sjkim shll $24,%edi 241238405Sjkim xorl %edi,%esi 242238405Sjkim 243238405Sjkim movl 20(%esp),%edi 244238405Sjkim andl $255,%edx 245238405Sjkim movzbl -128(%ebp,%edx,1),%edx 246238405Sjkim movzbl %ah,%eax 247238405Sjkim movzbl -128(%ebp,%eax,1),%eax 248238405Sjkim shll $8,%eax 249238405Sjkim xorl %eax,%edx 250238405Sjkim movl 4(%esp),%eax 251238405Sjkim andl $255,%ebx 252238405Sjkim movzbl -128(%ebp,%ebx,1),%ebx 253238405Sjkim shll $16,%ebx 254238405Sjkim xorl %ebx,%edx 255238405Sjkim movl 8(%esp),%ebx 256238405Sjkim movzbl -128(%ebp,%ecx,1),%ecx 257238405Sjkim shll $24,%ecx 258238405Sjkim xorl %ecx,%edx 259238405Sjkim movl %esi,%ecx 260238405Sjkim 261238405Sjkim xorl 16(%edi),%eax 262238405Sjkim xorl 20(%edi),%ebx 263238405Sjkim xorl 24(%edi),%ecx 264238405Sjkim xorl 28(%edi),%edx 265238405Sjkim ret 266238405Sjkim.size _x86_AES_encrypt_compact,.-_x86_AES_encrypt_compact 267238405Sjkim.type _sse_AES_encrypt_compact,@function 268238405Sjkim.align 16 269238405Sjkim_sse_AES_encrypt_compact: 270238405Sjkim pxor (%edi),%mm0 271238405Sjkim pxor 8(%edi),%mm4 272238405Sjkim movl 240(%edi),%esi 273238405Sjkim leal -2(%esi,%esi,1),%esi 274238405Sjkim leal (%edi,%esi,8),%esi 275238405Sjkim movl %esi,24(%esp) 276238405Sjkim movl $454761243,%eax 277238405Sjkim movl %eax,8(%esp) 278238405Sjkim movl %eax,12(%esp) 279238405Sjkim movl -128(%ebp),%eax 280238405Sjkim movl -96(%ebp),%ebx 281238405Sjkim movl -64(%ebp),%ecx 282238405Sjkim movl -32(%ebp),%edx 283238405Sjkim movl (%ebp),%eax 284238405Sjkim movl 32(%ebp),%ebx 285238405Sjkim movl 64(%ebp),%ecx 286238405Sjkim movl 96(%ebp),%edx 287238405Sjkim.align 16 288238405Sjkim.L001loop: 289238405Sjkim pshufw $8,%mm0,%mm1 290238405Sjkim pshufw $13,%mm4,%mm5 291238405Sjkim movd %mm1,%eax 292238405Sjkim movd %mm5,%ebx 293238405Sjkim movzbl %al,%esi 294238405Sjkim movzbl -128(%ebp,%esi,1),%ecx 295238405Sjkim pshufw $13,%mm0,%mm2 296238405Sjkim movzbl %ah,%edx 297238405Sjkim movzbl -128(%ebp,%edx,1),%edx 298238405Sjkim shll $8,%edx 299238405Sjkim shrl $16,%eax 300238405Sjkim movzbl %bl,%esi 301238405Sjkim movzbl -128(%ebp,%esi,1),%esi 302238405Sjkim shll $16,%esi 303238405Sjkim orl %esi,%ecx 304238405Sjkim pshufw $8,%mm4,%mm6 305238405Sjkim movzbl %bh,%esi 306238405Sjkim movzbl -128(%ebp,%esi,1),%esi 307238405Sjkim shll $24,%esi 308238405Sjkim orl %esi,%edx 309238405Sjkim shrl $16,%ebx 310238405Sjkim movzbl %ah,%esi 311238405Sjkim movzbl -128(%ebp,%esi,1),%esi 312238405Sjkim shll $8,%esi 313238405Sjkim orl %esi,%ecx 314238405Sjkim movzbl %bh,%esi 315238405Sjkim movzbl -128(%ebp,%esi,1),%esi 316238405Sjkim shll $24,%esi 317238405Sjkim orl %esi,%ecx 318238405Sjkim movd %ecx,%mm0 319238405Sjkim movzbl %al,%esi 320238405Sjkim movzbl -128(%ebp,%esi,1),%ecx 321238405Sjkim movd %mm2,%eax 322238405Sjkim movzbl %bl,%esi 323238405Sjkim movzbl -128(%ebp,%esi,1),%esi 324238405Sjkim shll $16,%esi 325238405Sjkim orl %esi,%ecx 326238405Sjkim movd %mm6,%ebx 327238405Sjkim movzbl %ah,%esi 328238405Sjkim movzbl -128(%ebp,%esi,1),%esi 329238405Sjkim shll $24,%esi 330238405Sjkim orl %esi,%ecx 331238405Sjkim movzbl %bh,%esi 332238405Sjkim movzbl -128(%ebp,%esi,1),%esi 333238405Sjkim shll $8,%esi 334238405Sjkim orl %esi,%ecx 335238405Sjkim movd %ecx,%mm1 336238405Sjkim movzbl %bl,%esi 337238405Sjkim movzbl -128(%ebp,%esi,1),%ecx 338238405Sjkim shrl $16,%ebx 339238405Sjkim movzbl %al,%esi 340238405Sjkim movzbl -128(%ebp,%esi,1),%esi 341238405Sjkim shll $16,%esi 342238405Sjkim orl %esi,%ecx 343238405Sjkim shrl $16,%eax 344238405Sjkim punpckldq %mm1,%mm0 345238405Sjkim movzbl %ah,%esi 346238405Sjkim movzbl -128(%ebp,%esi,1),%esi 347238405Sjkim shll $24,%esi 348238405Sjkim orl %esi,%ecx 349238405Sjkim andl $255,%eax 350238405Sjkim movzbl -128(%ebp,%eax,1),%eax 351238405Sjkim shll $16,%eax 352238405Sjkim orl %eax,%edx 353238405Sjkim movzbl %bh,%esi 354238405Sjkim movzbl -128(%ebp,%esi,1),%esi 355238405Sjkim shll $8,%esi 356238405Sjkim orl %esi,%ecx 357238405Sjkim movd %ecx,%mm4 358238405Sjkim andl $255,%ebx 359238405Sjkim movzbl -128(%ebp,%ebx,1),%ebx 360238405Sjkim orl %ebx,%edx 361238405Sjkim movd %edx,%mm5 362238405Sjkim punpckldq %mm5,%mm4 363238405Sjkim addl $16,%edi 364238405Sjkim cmpl 24(%esp),%edi 365238405Sjkim ja .L002out 366238405Sjkim movq 8(%esp),%mm2 367238405Sjkim pxor %mm3,%mm3 368238405Sjkim pxor %mm7,%mm7 369238405Sjkim movq %mm0,%mm1 370238405Sjkim movq %mm4,%mm5 371238405Sjkim pcmpgtb %mm0,%mm3 372238405Sjkim pcmpgtb %mm4,%mm7 373238405Sjkim pand %mm2,%mm3 374238405Sjkim pand %mm2,%mm7 375238405Sjkim pshufw $177,%mm0,%mm2 376238405Sjkim pshufw $177,%mm4,%mm6 377238405Sjkim paddb %mm0,%mm0 378238405Sjkim paddb %mm4,%mm4 379238405Sjkim pxor %mm3,%mm0 380238405Sjkim pxor %mm7,%mm4 381238405Sjkim pshufw $177,%mm2,%mm3 382238405Sjkim pshufw $177,%mm6,%mm7 383238405Sjkim pxor %mm0,%mm1 384238405Sjkim pxor %mm4,%mm5 385238405Sjkim pxor %mm2,%mm0 386238405Sjkim pxor %mm6,%mm4 387238405Sjkim movq %mm3,%mm2 388238405Sjkim movq %mm7,%mm6 389238405Sjkim pslld $8,%mm3 390238405Sjkim pslld $8,%mm7 391238405Sjkim psrld $24,%mm2 392238405Sjkim psrld $24,%mm6 393238405Sjkim pxor %mm3,%mm0 394238405Sjkim pxor %mm7,%mm4 395238405Sjkim pxor %mm2,%mm0 396238405Sjkim pxor %mm6,%mm4 397238405Sjkim movq %mm1,%mm3 398238405Sjkim movq %mm5,%mm7 399238405Sjkim movq (%edi),%mm2 400238405Sjkim movq 8(%edi),%mm6 401238405Sjkim psrld $8,%mm1 402238405Sjkim psrld $8,%mm5 403238405Sjkim movl -128(%ebp),%eax 404238405Sjkim pslld $24,%mm3 405238405Sjkim pslld $24,%mm7 406238405Sjkim movl -64(%ebp),%ebx 407238405Sjkim pxor %mm1,%mm0 408238405Sjkim pxor %mm5,%mm4 409238405Sjkim movl (%ebp),%ecx 410238405Sjkim pxor %mm3,%mm0 411238405Sjkim pxor %mm7,%mm4 412238405Sjkim movl 64(%ebp),%edx 413238405Sjkim pxor %mm2,%mm0 414238405Sjkim pxor %mm6,%mm4 415238405Sjkim jmp .L001loop 416238405Sjkim.align 16 417238405Sjkim.L002out: 418238405Sjkim pxor (%edi),%mm0 419238405Sjkim pxor 8(%edi),%mm4 420238405Sjkim ret 421238405Sjkim.size _sse_AES_encrypt_compact,.-_sse_AES_encrypt_compact 422238405Sjkim.type _x86_AES_encrypt,@function 423238405Sjkim.align 16 424238405Sjkim_x86_AES_encrypt: 425238405Sjkim movl %edi,20(%esp) 426238405Sjkim xorl (%edi),%eax 427238405Sjkim xorl 4(%edi),%ebx 428238405Sjkim xorl 8(%edi),%ecx 429238405Sjkim xorl 12(%edi),%edx 430238405Sjkim movl 240(%edi),%esi 431238405Sjkim leal -2(%esi,%esi,1),%esi 432238405Sjkim leal (%edi,%esi,8),%esi 433238405Sjkim movl %esi,24(%esp) 434238405Sjkim.align 16 435238405Sjkim.L003loop: 436238405Sjkim movl %eax,%esi 437238405Sjkim andl $255,%esi 438238405Sjkim movl (%ebp,%esi,8),%esi 439238405Sjkim movzbl %bh,%edi 440238405Sjkim xorl 3(%ebp,%edi,8),%esi 441238405Sjkim movl %ecx,%edi 442238405Sjkim shrl $16,%edi 443238405Sjkim andl $255,%edi 444238405Sjkim xorl 2(%ebp,%edi,8),%esi 445238405Sjkim movl %edx,%edi 446238405Sjkim shrl $24,%edi 447238405Sjkim xorl 1(%ebp,%edi,8),%esi 448238405Sjkim movl %esi,4(%esp) 449238405Sjkim 450238405Sjkim movl %ebx,%esi 451238405Sjkim andl $255,%esi 452238405Sjkim shrl $16,%ebx 453238405Sjkim movl (%ebp,%esi,8),%esi 454238405Sjkim movzbl %ch,%edi 455238405Sjkim xorl 3(%ebp,%edi,8),%esi 456238405Sjkim movl %edx,%edi 457238405Sjkim shrl $16,%edi 458238405Sjkim andl $255,%edi 459238405Sjkim xorl 2(%ebp,%edi,8),%esi 460238405Sjkim movl %eax,%edi 461238405Sjkim shrl $24,%edi 462238405Sjkim xorl 1(%ebp,%edi,8),%esi 463238405Sjkim movl %esi,8(%esp) 464238405Sjkim 465238405Sjkim movl %ecx,%esi 466238405Sjkim andl $255,%esi 467238405Sjkim shrl $24,%ecx 468238405Sjkim movl (%ebp,%esi,8),%esi 469238405Sjkim movzbl %dh,%edi 470238405Sjkim xorl 3(%ebp,%edi,8),%esi 471238405Sjkim movl %eax,%edi 472238405Sjkim shrl $16,%edi 473238405Sjkim andl $255,%edx 474238405Sjkim andl $255,%edi 475238405Sjkim xorl 2(%ebp,%edi,8),%esi 476238405Sjkim movzbl %bh,%edi 477238405Sjkim xorl 1(%ebp,%edi,8),%esi 478238405Sjkim 479238405Sjkim movl 20(%esp),%edi 480238405Sjkim movl (%ebp,%edx,8),%edx 481238405Sjkim movzbl %ah,%eax 482238405Sjkim xorl 3(%ebp,%eax,8),%edx 483238405Sjkim movl 4(%esp),%eax 484238405Sjkim andl $255,%ebx 485238405Sjkim xorl 2(%ebp,%ebx,8),%edx 486238405Sjkim movl 8(%esp),%ebx 487238405Sjkim xorl 1(%ebp,%ecx,8),%edx 488238405Sjkim movl %esi,%ecx 489238405Sjkim 490238405Sjkim addl $16,%edi 491238405Sjkim xorl (%edi),%eax 492238405Sjkim xorl 4(%edi),%ebx 493238405Sjkim xorl 8(%edi),%ecx 494238405Sjkim xorl 12(%edi),%edx 495238405Sjkim cmpl 24(%esp),%edi 496238405Sjkim movl %edi,20(%esp) 497238405Sjkim jb .L003loop 498238405Sjkim movl %eax,%esi 499238405Sjkim andl $255,%esi 500238405Sjkim movl 2(%ebp,%esi,8),%esi 501238405Sjkim andl $255,%esi 502238405Sjkim movzbl %bh,%edi 503238405Sjkim movl (%ebp,%edi,8),%edi 504238405Sjkim andl $65280,%edi 505238405Sjkim xorl %edi,%esi 506238405Sjkim movl %ecx,%edi 507238405Sjkim shrl $16,%edi 508238405Sjkim andl $255,%edi 509238405Sjkim movl (%ebp,%edi,8),%edi 510238405Sjkim andl $16711680,%edi 511238405Sjkim xorl %edi,%esi 512238405Sjkim movl %edx,%edi 513238405Sjkim shrl $24,%edi 514238405Sjkim movl 2(%ebp,%edi,8),%edi 515238405Sjkim andl $4278190080,%edi 516238405Sjkim xorl %edi,%esi 517238405Sjkim movl %esi,4(%esp) 518238405Sjkim movl %ebx,%esi 519238405Sjkim andl $255,%esi 520238405Sjkim shrl $16,%ebx 521238405Sjkim movl 2(%ebp,%esi,8),%esi 522238405Sjkim andl $255,%esi 523238405Sjkim movzbl %ch,%edi 524238405Sjkim movl (%ebp,%edi,8),%edi 525238405Sjkim andl $65280,%edi 526238405Sjkim xorl %edi,%esi 527238405Sjkim movl %edx,%edi 528238405Sjkim shrl $16,%edi 529238405Sjkim andl $255,%edi 530238405Sjkim movl (%ebp,%edi,8),%edi 531238405Sjkim andl $16711680,%edi 532238405Sjkim xorl %edi,%esi 533238405Sjkim movl %eax,%edi 534238405Sjkim shrl $24,%edi 535238405Sjkim movl 2(%ebp,%edi,8),%edi 536238405Sjkim andl $4278190080,%edi 537238405Sjkim xorl %edi,%esi 538238405Sjkim movl %esi,8(%esp) 539238405Sjkim movl %ecx,%esi 540238405Sjkim andl $255,%esi 541238405Sjkim shrl $24,%ecx 542238405Sjkim movl 2(%ebp,%esi,8),%esi 543238405Sjkim andl $255,%esi 544238405Sjkim movzbl %dh,%edi 545238405Sjkim movl (%ebp,%edi,8),%edi 546238405Sjkim andl $65280,%edi 547238405Sjkim xorl %edi,%esi 548238405Sjkim movl %eax,%edi 549238405Sjkim shrl $16,%edi 550238405Sjkim andl $255,%edx 551238405Sjkim andl $255,%edi 552238405Sjkim movl (%ebp,%edi,8),%edi 553238405Sjkim andl $16711680,%edi 554238405Sjkim xorl %edi,%esi 555238405Sjkim movzbl %bh,%edi 556238405Sjkim movl 2(%ebp,%edi,8),%edi 557238405Sjkim andl $4278190080,%edi 558238405Sjkim xorl %edi,%esi 559238405Sjkim movl 20(%esp),%edi 560238405Sjkim andl $255,%edx 561238405Sjkim movl 2(%ebp,%edx,8),%edx 562238405Sjkim andl $255,%edx 563238405Sjkim movzbl %ah,%eax 564238405Sjkim movl (%ebp,%eax,8),%eax 565238405Sjkim andl $65280,%eax 566238405Sjkim xorl %eax,%edx 567238405Sjkim movl 4(%esp),%eax 568238405Sjkim andl $255,%ebx 569238405Sjkim movl (%ebp,%ebx,8),%ebx 570238405Sjkim andl $16711680,%ebx 571238405Sjkim xorl %ebx,%edx 572238405Sjkim movl 8(%esp),%ebx 573238405Sjkim movl 2(%ebp,%ecx,8),%ecx 574238405Sjkim andl $4278190080,%ecx 575238405Sjkim xorl %ecx,%edx 576238405Sjkim movl %esi,%ecx 577238405Sjkim addl $16,%edi 578238405Sjkim xorl (%edi),%eax 579238405Sjkim xorl 4(%edi),%ebx 580238405Sjkim xorl 8(%edi),%ecx 581238405Sjkim xorl 12(%edi),%edx 582238405Sjkim ret 583238405Sjkim.align 64 584238405Sjkim.LAES_Te: 585238405Sjkim.long 2774754246,2774754246 586238405Sjkim.long 2222750968,2222750968 587238405Sjkim.long 2574743534,2574743534 588238405Sjkim.long 2373680118,2373680118 589238405Sjkim.long 234025727,234025727 590238405Sjkim.long 3177933782,3177933782 591238405Sjkim.long 2976870366,2976870366 592238405Sjkim.long 1422247313,1422247313 593238405Sjkim.long 1345335392,1345335392 594238405Sjkim.long 50397442,50397442 595238405Sjkim.long 2842126286,2842126286 596238405Sjkim.long 2099981142,2099981142 597238405Sjkim.long 436141799,436141799 598238405Sjkim.long 1658312629,1658312629 599238405Sjkim.long 3870010189,3870010189 600238405Sjkim.long 2591454956,2591454956 601238405Sjkim.long 1170918031,1170918031 602238405Sjkim.long 2642575903,2642575903 603238405Sjkim.long 1086966153,1086966153 604238405Sjkim.long 2273148410,2273148410 605238405Sjkim.long 368769775,368769775 606238405Sjkim.long 3948501426,3948501426 607238405Sjkim.long 3376891790,3376891790 608238405Sjkim.long 200339707,200339707 609238405Sjkim.long 3970805057,3970805057 610238405Sjkim.long 1742001331,1742001331 611238405Sjkim.long 4255294047,4255294047 612238405Sjkim.long 3937382213,3937382213 613238405Sjkim.long 3214711843,3214711843 614238405Sjkim.long 4154762323,4154762323 615238405Sjkim.long 2524082916,2524082916 616238405Sjkim.long 1539358875,1539358875 617238405Sjkim.long 3266819957,3266819957 618238405Sjkim.long 486407649,486407649 619238405Sjkim.long 2928907069,2928907069 620238405Sjkim.long 1780885068,1780885068 621238405Sjkim.long 1513502316,1513502316 622238405Sjkim.long 1094664062,1094664062 623238405Sjkim.long 49805301,49805301 624238405Sjkim.long 1338821763,1338821763 625238405Sjkim.long 1546925160,1546925160 626238405Sjkim.long 4104496465,4104496465 627238405Sjkim.long 887481809,887481809 628238405Sjkim.long 150073849,150073849 629238405Sjkim.long 2473685474,2473685474 630238405Sjkim.long 1943591083,1943591083 631238405Sjkim.long 1395732834,1395732834 632238405Sjkim.long 1058346282,1058346282 633238405Sjkim.long 201589768,201589768 634238405Sjkim.long 1388824469,1388824469 635238405Sjkim.long 1696801606,1696801606 636238405Sjkim.long 1589887901,1589887901 637238405Sjkim.long 672667696,672667696 638238405Sjkim.long 2711000631,2711000631 639238405Sjkim.long 251987210,251987210 640238405Sjkim.long 3046808111,3046808111 641238405Sjkim.long 151455502,151455502 642238405Sjkim.long 907153956,907153956 643238405Sjkim.long 2608889883,2608889883 644238405Sjkim.long 1038279391,1038279391 645238405Sjkim.long 652995533,652995533 646238405Sjkim.long 1764173646,1764173646 647238405Sjkim.long 3451040383,3451040383 648238405Sjkim.long 2675275242,2675275242 649238405Sjkim.long 453576978,453576978 650238405Sjkim.long 2659418909,2659418909 651238405Sjkim.long 1949051992,1949051992 652238405Sjkim.long 773462580,773462580 653238405Sjkim.long 756751158,756751158 654238405Sjkim.long 2993581788,2993581788 655238405Sjkim.long 3998898868,3998898868 656238405Sjkim.long 4221608027,4221608027 657238405Sjkim.long 4132590244,4132590244 658238405Sjkim.long 1295727478,1295727478 659238405Sjkim.long 1641469623,1641469623 660238405Sjkim.long 3467883389,3467883389 661238405Sjkim.long 2066295122,2066295122 662238405Sjkim.long 1055122397,1055122397 663238405Sjkim.long 1898917726,1898917726 664238405Sjkim.long 2542044179,2542044179 665238405Sjkim.long 4115878822,4115878822 666238405Sjkim.long 1758581177,1758581177 667238405Sjkim.long 0,0 668238405Sjkim.long 753790401,753790401 669238405Sjkim.long 1612718144,1612718144 670238405Sjkim.long 536673507,536673507 671238405Sjkim.long 3367088505,3367088505 672238405Sjkim.long 3982187446,3982187446 673238405Sjkim.long 3194645204,3194645204 674238405Sjkim.long 1187761037,1187761037 675238405Sjkim.long 3653156455,3653156455 676238405Sjkim.long 1262041458,1262041458 677238405Sjkim.long 3729410708,3729410708 678238405Sjkim.long 3561770136,3561770136 679238405Sjkim.long 3898103984,3898103984 680238405Sjkim.long 1255133061,1255133061 681238405Sjkim.long 1808847035,1808847035 682238405Sjkim.long 720367557,720367557 683238405Sjkim.long 3853167183,3853167183 684238405Sjkim.long 385612781,385612781 685238405Sjkim.long 3309519750,3309519750 686238405Sjkim.long 3612167578,3612167578 687238405Sjkim.long 1429418854,1429418854 688238405Sjkim.long 2491778321,2491778321 689238405Sjkim.long 3477423498,3477423498 690238405Sjkim.long 284817897,284817897 691238405Sjkim.long 100794884,100794884 692238405Sjkim.long 2172616702,2172616702 693238405Sjkim.long 4031795360,4031795360 694238405Sjkim.long 1144798328,1144798328 695238405Sjkim.long 3131023141,3131023141 696238405Sjkim.long 3819481163,3819481163 697238405Sjkim.long 4082192802,4082192802 698238405Sjkim.long 4272137053,4272137053 699238405Sjkim.long 3225436288,3225436288 700238405Sjkim.long 2324664069,2324664069 701238405Sjkim.long 2912064063,2912064063 702238405Sjkim.long 3164445985,3164445985 703238405Sjkim.long 1211644016,1211644016 704238405Sjkim.long 83228145,83228145 705238405Sjkim.long 3753688163,3753688163 706238405Sjkim.long 3249976951,3249976951 707238405Sjkim.long 1977277103,1977277103 708238405Sjkim.long 1663115586,1663115586 709238405Sjkim.long 806359072,806359072 710238405Sjkim.long 452984805,452984805 711238405Sjkim.long 250868733,250868733 712238405Sjkim.long 1842533055,1842533055 713238405Sjkim.long 1288555905,1288555905 714238405Sjkim.long 336333848,336333848 715238405Sjkim.long 890442534,890442534 716238405Sjkim.long 804056259,804056259 717238405Sjkim.long 3781124030,3781124030 718238405Sjkim.long 2727843637,2727843637 719238405Sjkim.long 3427026056,3427026056 720238405Sjkim.long 957814574,957814574 721238405Sjkim.long 1472513171,1472513171 722238405Sjkim.long 4071073621,4071073621 723238405Sjkim.long 2189328124,2189328124 724238405Sjkim.long 1195195770,1195195770 725238405Sjkim.long 2892260552,2892260552 726238405Sjkim.long 3881655738,3881655738 727238405Sjkim.long 723065138,723065138 728238405Sjkim.long 2507371494,2507371494 729238405Sjkim.long 2690670784,2690670784 730238405Sjkim.long 2558624025,2558624025 731238405Sjkim.long 3511635870,3511635870 732238405Sjkim.long 2145180835,2145180835 733238405Sjkim.long 1713513028,1713513028 734238405Sjkim.long 2116692564,2116692564 735238405Sjkim.long 2878378043,2878378043 736238405Sjkim.long 2206763019,2206763019 737238405Sjkim.long 3393603212,3393603212 738238405Sjkim.long 703524551,703524551 739238405Sjkim.long 3552098411,3552098411 740238405Sjkim.long 1007948840,1007948840 741238405Sjkim.long 2044649127,2044649127 742238405Sjkim.long 3797835452,3797835452 743238405Sjkim.long 487262998,487262998 744238405Sjkim.long 1994120109,1994120109 745238405Sjkim.long 1004593371,1004593371 746238405Sjkim.long 1446130276,1446130276 747238405Sjkim.long 1312438900,1312438900 748238405Sjkim.long 503974420,503974420 749238405Sjkim.long 3679013266,3679013266 750238405Sjkim.long 168166924,168166924 751238405Sjkim.long 1814307912,1814307912 752238405Sjkim.long 3831258296,3831258296 753238405Sjkim.long 1573044895,1573044895 754238405Sjkim.long 1859376061,1859376061 755238405Sjkim.long 4021070915,4021070915 756238405Sjkim.long 2791465668,2791465668 757238405Sjkim.long 2828112185,2828112185 758238405Sjkim.long 2761266481,2761266481 759238405Sjkim.long 937747667,937747667 760238405Sjkim.long 2339994098,2339994098 761238405Sjkim.long 854058965,854058965 762238405Sjkim.long 1137232011,1137232011 763238405Sjkim.long 1496790894,1496790894 764238405Sjkim.long 3077402074,3077402074 765238405Sjkim.long 2358086913,2358086913 766238405Sjkim.long 1691735473,1691735473 767238405Sjkim.long 3528347292,3528347292 768238405Sjkim.long 3769215305,3769215305 769238405Sjkim.long 3027004632,3027004632 770238405Sjkim.long 4199962284,4199962284 771238405Sjkim.long 133494003,133494003 772238405Sjkim.long 636152527,636152527 773238405Sjkim.long 2942657994,2942657994 774238405Sjkim.long 2390391540,2390391540 775238405Sjkim.long 3920539207,3920539207 776238405Sjkim.long 403179536,403179536 777238405Sjkim.long 3585784431,3585784431 778238405Sjkim.long 2289596656,2289596656 779238405Sjkim.long 1864705354,1864705354 780238405Sjkim.long 1915629148,1915629148 781238405Sjkim.long 605822008,605822008 782238405Sjkim.long 4054230615,4054230615 783238405Sjkim.long 3350508659,3350508659 784238405Sjkim.long 1371981463,1371981463 785238405Sjkim.long 602466507,602466507 786238405Sjkim.long 2094914977,2094914977 787238405Sjkim.long 2624877800,2624877800 788238405Sjkim.long 555687742,555687742 789238405Sjkim.long 3712699286,3712699286 790238405Sjkim.long 3703422305,3703422305 791238405Sjkim.long 2257292045,2257292045 792238405Sjkim.long 2240449039,2240449039 793238405Sjkim.long 2423288032,2423288032 794238405Sjkim.long 1111375484,1111375484 795238405Sjkim.long 3300242801,3300242801 796238405Sjkim.long 2858837708,2858837708 797238405Sjkim.long 3628615824,3628615824 798238405Sjkim.long 84083462,84083462 799238405Sjkim.long 32962295,32962295 800238405Sjkim.long 302911004,302911004 801238405Sjkim.long 2741068226,2741068226 802238405Sjkim.long 1597322602,1597322602 803238405Sjkim.long 4183250862,4183250862 804238405Sjkim.long 3501832553,3501832553 805238405Sjkim.long 2441512471,2441512471 806238405Sjkim.long 1489093017,1489093017 807238405Sjkim.long 656219450,656219450 808238405Sjkim.long 3114180135,3114180135 809238405Sjkim.long 954327513,954327513 810238405Sjkim.long 335083755,335083755 811238405Sjkim.long 3013122091,3013122091 812238405Sjkim.long 856756514,856756514 813238405Sjkim.long 3144247762,3144247762 814238405Sjkim.long 1893325225,1893325225 815238405Sjkim.long 2307821063,2307821063 816238405Sjkim.long 2811532339,2811532339 817238405Sjkim.long 3063651117,3063651117 818238405Sjkim.long 572399164,572399164 819238405Sjkim.long 2458355477,2458355477 820238405Sjkim.long 552200649,552200649 821238405Sjkim.long 1238290055,1238290055 822238405Sjkim.long 4283782570,4283782570 823238405Sjkim.long 2015897680,2015897680 824238405Sjkim.long 2061492133,2061492133 825238405Sjkim.long 2408352771,2408352771 826238405Sjkim.long 4171342169,4171342169 827238405Sjkim.long 2156497161,2156497161 828238405Sjkim.long 386731290,386731290 829238405Sjkim.long 3669999461,3669999461 830238405Sjkim.long 837215959,837215959 831238405Sjkim.long 3326231172,3326231172 832238405Sjkim.long 3093850320,3093850320 833238405Sjkim.long 3275833730,3275833730 834238405Sjkim.long 2962856233,2962856233 835238405Sjkim.long 1999449434,1999449434 836238405Sjkim.long 286199582,286199582 837238405Sjkim.long 3417354363,3417354363 838238405Sjkim.long 4233385128,4233385128 839238405Sjkim.long 3602627437,3602627437 840238405Sjkim.long 974525996,974525996 841238405Sjkim.byte 99,124,119,123,242,107,111,197 842238405Sjkim.byte 48,1,103,43,254,215,171,118 843238405Sjkim.byte 202,130,201,125,250,89,71,240 844238405Sjkim.byte 173,212,162,175,156,164,114,192 845238405Sjkim.byte 183,253,147,38,54,63,247,204 846238405Sjkim.byte 52,165,229,241,113,216,49,21 847238405Sjkim.byte 4,199,35,195,24,150,5,154 848238405Sjkim.byte 7,18,128,226,235,39,178,117 849238405Sjkim.byte 9,131,44,26,27,110,90,160 850238405Sjkim.byte 82,59,214,179,41,227,47,132 851238405Sjkim.byte 83,209,0,237,32,252,177,91 852238405Sjkim.byte 106,203,190,57,74,76,88,207 853238405Sjkim.byte 208,239,170,251,67,77,51,133 854238405Sjkim.byte 69,249,2,127,80,60,159,168 855238405Sjkim.byte 81,163,64,143,146,157,56,245 856238405Sjkim.byte 188,182,218,33,16,255,243,210 857238405Sjkim.byte 205,12,19,236,95,151,68,23 858238405Sjkim.byte 196,167,126,61,100,93,25,115 859238405Sjkim.byte 96,129,79,220,34,42,144,136 860238405Sjkim.byte 70,238,184,20,222,94,11,219 861238405Sjkim.byte 224,50,58,10,73,6,36,92 862238405Sjkim.byte 194,211,172,98,145,149,228,121 863238405Sjkim.byte 231,200,55,109,141,213,78,169 864238405Sjkim.byte 108,86,244,234,101,122,174,8 865238405Sjkim.byte 186,120,37,46,28,166,180,198 866238405Sjkim.byte 232,221,116,31,75,189,139,138 867238405Sjkim.byte 112,62,181,102,72,3,246,14 868238405Sjkim.byte 97,53,87,185,134,193,29,158 869238405Sjkim.byte 225,248,152,17,105,217,142,148 870238405Sjkim.byte 155,30,135,233,206,85,40,223 871238405Sjkim.byte 140,161,137,13,191,230,66,104 872238405Sjkim.byte 65,153,45,15,176,84,187,22 873238405Sjkim.byte 99,124,119,123,242,107,111,197 874238405Sjkim.byte 48,1,103,43,254,215,171,118 875238405Sjkim.byte 202,130,201,125,250,89,71,240 876238405Sjkim.byte 173,212,162,175,156,164,114,192 877238405Sjkim.byte 183,253,147,38,54,63,247,204 878238405Sjkim.byte 52,165,229,241,113,216,49,21 879238405Sjkim.byte 4,199,35,195,24,150,5,154 880238405Sjkim.byte 7,18,128,226,235,39,178,117 881238405Sjkim.byte 9,131,44,26,27,110,90,160 882238405Sjkim.byte 82,59,214,179,41,227,47,132 883238405Sjkim.byte 83,209,0,237,32,252,177,91 884238405Sjkim.byte 106,203,190,57,74,76,88,207 885238405Sjkim.byte 208,239,170,251,67,77,51,133 886238405Sjkim.byte 69,249,2,127,80,60,159,168 887238405Sjkim.byte 81,163,64,143,146,157,56,245 888238405Sjkim.byte 188,182,218,33,16,255,243,210 889238405Sjkim.byte 205,12,19,236,95,151,68,23 890238405Sjkim.byte 196,167,126,61,100,93,25,115 891238405Sjkim.byte 96,129,79,220,34,42,144,136 892238405Sjkim.byte 70,238,184,20,222,94,11,219 893238405Sjkim.byte 224,50,58,10,73,6,36,92 894238405Sjkim.byte 194,211,172,98,145,149,228,121 895238405Sjkim.byte 231,200,55,109,141,213,78,169 896238405Sjkim.byte 108,86,244,234,101,122,174,8 897238405Sjkim.byte 186,120,37,46,28,166,180,198 898238405Sjkim.byte 232,221,116,31,75,189,139,138 899238405Sjkim.byte 112,62,181,102,72,3,246,14 900238405Sjkim.byte 97,53,87,185,134,193,29,158 901238405Sjkim.byte 225,248,152,17,105,217,142,148 902238405Sjkim.byte 155,30,135,233,206,85,40,223 903238405Sjkim.byte 140,161,137,13,191,230,66,104 904238405Sjkim.byte 65,153,45,15,176,84,187,22 905238405Sjkim.byte 99,124,119,123,242,107,111,197 906238405Sjkim.byte 48,1,103,43,254,215,171,118 907238405Sjkim.byte 202,130,201,125,250,89,71,240 908238405Sjkim.byte 173,212,162,175,156,164,114,192 909238405Sjkim.byte 183,253,147,38,54,63,247,204 910238405Sjkim.byte 52,165,229,241,113,216,49,21 911238405Sjkim.byte 4,199,35,195,24,150,5,154 912238405Sjkim.byte 7,18,128,226,235,39,178,117 913238405Sjkim.byte 9,131,44,26,27,110,90,160 914238405Sjkim.byte 82,59,214,179,41,227,47,132 915238405Sjkim.byte 83,209,0,237,32,252,177,91 916238405Sjkim.byte 106,203,190,57,74,76,88,207 917238405Sjkim.byte 208,239,170,251,67,77,51,133 918238405Sjkim.byte 69,249,2,127,80,60,159,168 919238405Sjkim.byte 81,163,64,143,146,157,56,245 920238405Sjkim.byte 188,182,218,33,16,255,243,210 921238405Sjkim.byte 205,12,19,236,95,151,68,23 922238405Sjkim.byte 196,167,126,61,100,93,25,115 923238405Sjkim.byte 96,129,79,220,34,42,144,136 924238405Sjkim.byte 70,238,184,20,222,94,11,219 925238405Sjkim.byte 224,50,58,10,73,6,36,92 926238405Sjkim.byte 194,211,172,98,145,149,228,121 927238405Sjkim.byte 231,200,55,109,141,213,78,169 928238405Sjkim.byte 108,86,244,234,101,122,174,8 929238405Sjkim.byte 186,120,37,46,28,166,180,198 930238405Sjkim.byte 232,221,116,31,75,189,139,138 931238405Sjkim.byte 112,62,181,102,72,3,246,14 932238405Sjkim.byte 97,53,87,185,134,193,29,158 933238405Sjkim.byte 225,248,152,17,105,217,142,148 934238405Sjkim.byte 155,30,135,233,206,85,40,223 935238405Sjkim.byte 140,161,137,13,191,230,66,104 936238405Sjkim.byte 65,153,45,15,176,84,187,22 937238405Sjkim.byte 99,124,119,123,242,107,111,197 938238405Sjkim.byte 48,1,103,43,254,215,171,118 939238405Sjkim.byte 202,130,201,125,250,89,71,240 940238405Sjkim.byte 173,212,162,175,156,164,114,192 941238405Sjkim.byte 183,253,147,38,54,63,247,204 942238405Sjkim.byte 52,165,229,241,113,216,49,21 943238405Sjkim.byte 4,199,35,195,24,150,5,154 944238405Sjkim.byte 7,18,128,226,235,39,178,117 945238405Sjkim.byte 9,131,44,26,27,110,90,160 946238405Sjkim.byte 82,59,214,179,41,227,47,132 947238405Sjkim.byte 83,209,0,237,32,252,177,91 948238405Sjkim.byte 106,203,190,57,74,76,88,207 949238405Sjkim.byte 208,239,170,251,67,77,51,133 950238405Sjkim.byte 69,249,2,127,80,60,159,168 951238405Sjkim.byte 81,163,64,143,146,157,56,245 952238405Sjkim.byte 188,182,218,33,16,255,243,210 953238405Sjkim.byte 205,12,19,236,95,151,68,23 954238405Sjkim.byte 196,167,126,61,100,93,25,115 955238405Sjkim.byte 96,129,79,220,34,42,144,136 956238405Sjkim.byte 70,238,184,20,222,94,11,219 957238405Sjkim.byte 224,50,58,10,73,6,36,92 958238405Sjkim.byte 194,211,172,98,145,149,228,121 959238405Sjkim.byte 231,200,55,109,141,213,78,169 960238405Sjkim.byte 108,86,244,234,101,122,174,8 961238405Sjkim.byte 186,120,37,46,28,166,180,198 962238405Sjkim.byte 232,221,116,31,75,189,139,138 963238405Sjkim.byte 112,62,181,102,72,3,246,14 964238405Sjkim.byte 97,53,87,185,134,193,29,158 965238405Sjkim.byte 225,248,152,17,105,217,142,148 966238405Sjkim.byte 155,30,135,233,206,85,40,223 967238405Sjkim.byte 140,161,137,13,191,230,66,104 968238405Sjkim.byte 65,153,45,15,176,84,187,22 969238405Sjkim.long 1,2,4,8 970238405Sjkim.long 16,32,64,128 971238405Sjkim.long 27,54,0,0 972238405Sjkim.long 0,0,0,0 973238405Sjkim.size _x86_AES_encrypt,.-_x86_AES_encrypt 974238405Sjkim.globl AES_encrypt 975238405Sjkim.type AES_encrypt,@function 976238405Sjkim.align 16 977238405SjkimAES_encrypt: 978238405Sjkim.L_AES_encrypt_begin: 979238405Sjkim pushl %ebp 980238405Sjkim pushl %ebx 981238405Sjkim pushl %esi 982238405Sjkim pushl %edi 983238405Sjkim movl 20(%esp),%esi 984238405Sjkim movl 28(%esp),%edi 985238405Sjkim movl %esp,%eax 986238405Sjkim subl $36,%esp 987238405Sjkim andl $-64,%esp 988238405Sjkim leal -127(%edi),%ebx 989238405Sjkim subl %esp,%ebx 990238405Sjkim negl %ebx 991238405Sjkim andl $960,%ebx 992238405Sjkim subl %ebx,%esp 993238405Sjkim addl $4,%esp 994238405Sjkim movl %eax,28(%esp) 995238405Sjkim call .L004pic_point 996238405Sjkim.L004pic_point: 997238405Sjkim popl %ebp 998238405Sjkim leal OPENSSL_ia32cap_P,%eax 999238405Sjkim leal .LAES_Te-.L004pic_point(%ebp),%ebp 1000238405Sjkim leal 764(%esp),%ebx 1001238405Sjkim subl %ebp,%ebx 1002238405Sjkim andl $768,%ebx 1003238405Sjkim leal 2176(%ebp,%ebx,1),%ebp 1004238405Sjkim btl $25,(%eax) 1005238405Sjkim jnc .L005x86 1006238405Sjkim movq (%esi),%mm0 1007238405Sjkim movq 8(%esi),%mm4 1008238405Sjkim call _sse_AES_encrypt_compact 1009238405Sjkim movl 28(%esp),%esp 1010238405Sjkim movl 24(%esp),%esi 1011238405Sjkim movq %mm0,(%esi) 1012238405Sjkim movq %mm4,8(%esi) 1013238405Sjkim emms 1014238405Sjkim popl %edi 1015238405Sjkim popl %esi 1016238405Sjkim popl %ebx 1017238405Sjkim popl %ebp 1018238405Sjkim ret 1019238405Sjkim.align 16 1020238405Sjkim.L005x86: 1021238405Sjkim movl %ebp,24(%esp) 1022238405Sjkim movl (%esi),%eax 1023238405Sjkim movl 4(%esi),%ebx 1024238405Sjkim movl 8(%esi),%ecx 1025238405Sjkim movl 12(%esi),%edx 1026238405Sjkim call _x86_AES_encrypt_compact 1027238405Sjkim movl 28(%esp),%esp 1028238405Sjkim movl 24(%esp),%esi 1029238405Sjkim movl %eax,(%esi) 1030238405Sjkim movl %ebx,4(%esi) 1031238405Sjkim movl %ecx,8(%esi) 1032238405Sjkim movl %edx,12(%esi) 1033238405Sjkim popl %edi 1034238405Sjkim popl %esi 1035238405Sjkim popl %ebx 1036238405Sjkim popl %ebp 1037238405Sjkim ret 1038238405Sjkim.size AES_encrypt,.-.L_AES_encrypt_begin 1039238405Sjkim.type _x86_AES_decrypt_compact,@function 1040238405Sjkim.align 16 1041238405Sjkim_x86_AES_decrypt_compact: 1042238405Sjkim movl %edi,20(%esp) 1043238405Sjkim xorl (%edi),%eax 1044238405Sjkim xorl 4(%edi),%ebx 1045238405Sjkim xorl 8(%edi),%ecx 1046238405Sjkim xorl 12(%edi),%edx 1047238405Sjkim movl 240(%edi),%esi 1048238405Sjkim leal -2(%esi,%esi,1),%esi 1049238405Sjkim leal (%edi,%esi,8),%esi 1050238405Sjkim movl %esi,24(%esp) 1051238405Sjkim movl -128(%ebp),%edi 1052238405Sjkim movl -96(%ebp),%esi 1053238405Sjkim movl -64(%ebp),%edi 1054238405Sjkim movl -32(%ebp),%esi 1055238405Sjkim movl (%ebp),%edi 1056238405Sjkim movl 32(%ebp),%esi 1057238405Sjkim movl 64(%ebp),%edi 1058238405Sjkim movl 96(%ebp),%esi 1059238405Sjkim.align 16 1060238405Sjkim.L006loop: 1061238405Sjkim movl %eax,%esi 1062238405Sjkim andl $255,%esi 1063238405Sjkim movzbl -128(%ebp,%esi,1),%esi 1064238405Sjkim movzbl %dh,%edi 1065238405Sjkim movzbl -128(%ebp,%edi,1),%edi 1066238405Sjkim shll $8,%edi 1067238405Sjkim xorl %edi,%esi 1068238405Sjkim movl %ecx,%edi 1069238405Sjkim shrl $16,%edi 1070238405Sjkim andl $255,%edi 1071238405Sjkim movzbl -128(%ebp,%edi,1),%edi 1072238405Sjkim shll $16,%edi 1073238405Sjkim xorl %edi,%esi 1074238405Sjkim movl %ebx,%edi 1075238405Sjkim shrl $24,%edi 1076238405Sjkim movzbl -128(%ebp,%edi,1),%edi 1077238405Sjkim shll $24,%edi 1078238405Sjkim xorl %edi,%esi 1079238405Sjkim movl %esi,4(%esp) 1080238405Sjkim movl %ebx,%esi 1081238405Sjkim andl $255,%esi 1082238405Sjkim movzbl -128(%ebp,%esi,1),%esi 1083238405Sjkim movzbl %ah,%edi 1084238405Sjkim movzbl -128(%ebp,%edi,1),%edi 1085238405Sjkim shll $8,%edi 1086238405Sjkim xorl %edi,%esi 1087238405Sjkim movl %edx,%edi 1088238405Sjkim shrl $16,%edi 1089238405Sjkim andl $255,%edi 1090238405Sjkim movzbl -128(%ebp,%edi,1),%edi 1091238405Sjkim shll $16,%edi 1092238405Sjkim xorl %edi,%esi 1093238405Sjkim movl %ecx,%edi 1094238405Sjkim shrl $24,%edi 1095238405Sjkim movzbl -128(%ebp,%edi,1),%edi 1096238405Sjkim shll $24,%edi 1097238405Sjkim xorl %edi,%esi 1098238405Sjkim movl %esi,8(%esp) 1099238405Sjkim movl %ecx,%esi 1100238405Sjkim andl $255,%esi 1101238405Sjkim movzbl -128(%ebp,%esi,1),%esi 1102238405Sjkim movzbl %bh,%edi 1103238405Sjkim movzbl -128(%ebp,%edi,1),%edi 1104238405Sjkim shll $8,%edi 1105238405Sjkim xorl %edi,%esi 1106238405Sjkim movl %eax,%edi 1107238405Sjkim shrl $16,%edi 1108238405Sjkim andl $255,%edi 1109238405Sjkim movzbl -128(%ebp,%edi,1),%edi 1110238405Sjkim shll $16,%edi 1111238405Sjkim xorl %edi,%esi 1112238405Sjkim movl %edx,%edi 1113238405Sjkim shrl $24,%edi 1114238405Sjkim movzbl -128(%ebp,%edi,1),%edi 1115238405Sjkim shll $24,%edi 1116238405Sjkim xorl %edi,%esi 1117238405Sjkim andl $255,%edx 1118238405Sjkim movzbl -128(%ebp,%edx,1),%edx 1119238405Sjkim movzbl %ch,%ecx 1120238405Sjkim movzbl -128(%ebp,%ecx,1),%ecx 1121238405Sjkim shll $8,%ecx 1122238405Sjkim xorl %ecx,%edx 1123238405Sjkim movl %esi,%ecx 1124238405Sjkim shrl $16,%ebx 1125238405Sjkim andl $255,%ebx 1126238405Sjkim movzbl -128(%ebp,%ebx,1),%ebx 1127238405Sjkim shll $16,%ebx 1128238405Sjkim xorl %ebx,%edx 1129238405Sjkim shrl $24,%eax 1130238405Sjkim movzbl -128(%ebp,%eax,1),%eax 1131238405Sjkim shll $24,%eax 1132238405Sjkim xorl %eax,%edx 1133238405Sjkim movl %ecx,%esi 1134238405Sjkim andl $2155905152,%esi 1135238405Sjkim movl %esi,%edi 1136238405Sjkim shrl $7,%edi 1137238405Sjkim leal (%ecx,%ecx,1),%eax 1138238405Sjkim subl %edi,%esi 1139238405Sjkim andl $4278124286,%eax 1140238405Sjkim andl $454761243,%esi 1141238405Sjkim xorl %eax,%esi 1142238405Sjkim movl %esi,%eax 1143238405Sjkim andl $2155905152,%esi 1144238405Sjkim movl %esi,%edi 1145238405Sjkim shrl $7,%edi 1146238405Sjkim leal (%eax,%eax,1),%ebx 1147238405Sjkim subl %edi,%esi 1148238405Sjkim andl $4278124286,%ebx 1149238405Sjkim andl $454761243,%esi 1150238405Sjkim xorl %ecx,%eax 1151238405Sjkim xorl %ebx,%esi 1152238405Sjkim movl %esi,%ebx 1153238405Sjkim andl $2155905152,%esi 1154238405Sjkim movl %esi,%edi 1155238405Sjkim shrl $7,%edi 1156238405Sjkim leal (%ebx,%ebx,1),%ebp 1157238405Sjkim subl %edi,%esi 1158238405Sjkim andl $4278124286,%ebp 1159238405Sjkim andl $454761243,%esi 1160238405Sjkim xorl %ecx,%ebx 1161238405Sjkim roll $8,%ecx 1162238405Sjkim xorl %esi,%ebp 1163238405Sjkim xorl %eax,%ecx 1164238405Sjkim xorl %ebp,%eax 1165238405Sjkim roll $24,%eax 1166238405Sjkim xorl %ebx,%ecx 1167238405Sjkim xorl %ebp,%ebx 1168238405Sjkim roll $16,%ebx 1169238405Sjkim xorl %ebp,%ecx 1170238405Sjkim roll $8,%ebp 1171238405Sjkim xorl %eax,%ecx 1172238405Sjkim xorl %ebx,%ecx 1173238405Sjkim movl 4(%esp),%eax 1174238405Sjkim xorl %ebp,%ecx 1175238405Sjkim movl %ecx,12(%esp) 1176238405Sjkim movl %edx,%esi 1177238405Sjkim andl $2155905152,%esi 1178238405Sjkim movl %esi,%edi 1179238405Sjkim shrl $7,%edi 1180238405Sjkim leal (%edx,%edx,1),%ebx 1181238405Sjkim subl %edi,%esi 1182238405Sjkim andl $4278124286,%ebx 1183238405Sjkim andl $454761243,%esi 1184238405Sjkim xorl %ebx,%esi 1185238405Sjkim movl %esi,%ebx 1186238405Sjkim andl $2155905152,%esi 1187238405Sjkim movl %esi,%edi 1188238405Sjkim shrl $7,%edi 1189238405Sjkim leal (%ebx,%ebx,1),%ecx 1190238405Sjkim subl %edi,%esi 1191238405Sjkim andl $4278124286,%ecx 1192238405Sjkim andl $454761243,%esi 1193238405Sjkim xorl %edx,%ebx 1194238405Sjkim xorl %ecx,%esi 1195238405Sjkim movl %esi,%ecx 1196238405Sjkim andl $2155905152,%esi 1197238405Sjkim movl %esi,%edi 1198238405Sjkim shrl $7,%edi 1199238405Sjkim leal (%ecx,%ecx,1),%ebp 1200238405Sjkim subl %edi,%esi 1201238405Sjkim andl $4278124286,%ebp 1202238405Sjkim andl $454761243,%esi 1203238405Sjkim xorl %edx,%ecx 1204238405Sjkim roll $8,%edx 1205238405Sjkim xorl %esi,%ebp 1206238405Sjkim xorl %ebx,%edx 1207238405Sjkim xorl %ebp,%ebx 1208238405Sjkim roll $24,%ebx 1209238405Sjkim xorl %ecx,%edx 1210238405Sjkim xorl %ebp,%ecx 1211238405Sjkim roll $16,%ecx 1212238405Sjkim xorl %ebp,%edx 1213238405Sjkim roll $8,%ebp 1214238405Sjkim xorl %ebx,%edx 1215238405Sjkim xorl %ecx,%edx 1216238405Sjkim movl 8(%esp),%ebx 1217238405Sjkim xorl %ebp,%edx 1218238405Sjkim movl %edx,16(%esp) 1219238405Sjkim movl %eax,%esi 1220238405Sjkim andl $2155905152,%esi 1221238405Sjkim movl %esi,%edi 1222238405Sjkim shrl $7,%edi 1223238405Sjkim leal (%eax,%eax,1),%ecx 1224238405Sjkim subl %edi,%esi 1225238405Sjkim andl $4278124286,%ecx 1226238405Sjkim andl $454761243,%esi 1227238405Sjkim xorl %ecx,%esi 1228238405Sjkim movl %esi,%ecx 1229238405Sjkim andl $2155905152,%esi 1230238405Sjkim movl %esi,%edi 1231238405Sjkim shrl $7,%edi 1232238405Sjkim leal (%ecx,%ecx,1),%edx 1233238405Sjkim subl %edi,%esi 1234238405Sjkim andl $4278124286,%edx 1235238405Sjkim andl $454761243,%esi 1236238405Sjkim xorl %eax,%ecx 1237238405Sjkim xorl %edx,%esi 1238238405Sjkim movl %esi,%edx 1239238405Sjkim andl $2155905152,%esi 1240238405Sjkim movl %esi,%edi 1241238405Sjkim shrl $7,%edi 1242238405Sjkim leal (%edx,%edx,1),%ebp 1243238405Sjkim subl %edi,%esi 1244238405Sjkim andl $4278124286,%ebp 1245238405Sjkim andl $454761243,%esi 1246238405Sjkim xorl %eax,%edx 1247238405Sjkim roll $8,%eax 1248238405Sjkim xorl %esi,%ebp 1249238405Sjkim xorl %ecx,%eax 1250238405Sjkim xorl %ebp,%ecx 1251238405Sjkim roll $24,%ecx 1252238405Sjkim xorl %edx,%eax 1253238405Sjkim xorl %ebp,%edx 1254238405Sjkim roll $16,%edx 1255238405Sjkim xorl %ebp,%eax 1256238405Sjkim roll $8,%ebp 1257238405Sjkim xorl %ecx,%eax 1258238405Sjkim xorl %edx,%eax 1259238405Sjkim xorl %ebp,%eax 1260238405Sjkim movl %ebx,%esi 1261238405Sjkim andl $2155905152,%esi 1262238405Sjkim movl %esi,%edi 1263238405Sjkim shrl $7,%edi 1264238405Sjkim leal (%ebx,%ebx,1),%ecx 1265238405Sjkim subl %edi,%esi 1266238405Sjkim andl $4278124286,%ecx 1267238405Sjkim andl $454761243,%esi 1268238405Sjkim xorl %ecx,%esi 1269238405Sjkim movl %esi,%ecx 1270238405Sjkim andl $2155905152,%esi 1271238405Sjkim movl %esi,%edi 1272238405Sjkim shrl $7,%edi 1273238405Sjkim leal (%ecx,%ecx,1),%edx 1274238405Sjkim subl %edi,%esi 1275238405Sjkim andl $4278124286,%edx 1276238405Sjkim andl $454761243,%esi 1277238405Sjkim xorl %ebx,%ecx 1278238405Sjkim xorl %edx,%esi 1279238405Sjkim movl %esi,%edx 1280238405Sjkim andl $2155905152,%esi 1281238405Sjkim movl %esi,%edi 1282238405Sjkim shrl $7,%edi 1283238405Sjkim leal (%edx,%edx,1),%ebp 1284238405Sjkim subl %edi,%esi 1285238405Sjkim andl $4278124286,%ebp 1286238405Sjkim andl $454761243,%esi 1287238405Sjkim xorl %ebx,%edx 1288238405Sjkim roll $8,%ebx 1289238405Sjkim xorl %esi,%ebp 1290238405Sjkim xorl %ecx,%ebx 1291238405Sjkim xorl %ebp,%ecx 1292238405Sjkim roll $24,%ecx 1293238405Sjkim xorl %edx,%ebx 1294238405Sjkim xorl %ebp,%edx 1295238405Sjkim roll $16,%edx 1296238405Sjkim xorl %ebp,%ebx 1297238405Sjkim roll $8,%ebp 1298238405Sjkim xorl %ecx,%ebx 1299238405Sjkim xorl %edx,%ebx 1300238405Sjkim movl 12(%esp),%ecx 1301238405Sjkim xorl %ebp,%ebx 1302238405Sjkim movl 16(%esp),%edx 1303238405Sjkim movl 20(%esp),%edi 1304238405Sjkim movl 28(%esp),%ebp 1305238405Sjkim addl $16,%edi 1306238405Sjkim xorl (%edi),%eax 1307238405Sjkim xorl 4(%edi),%ebx 1308238405Sjkim xorl 8(%edi),%ecx 1309238405Sjkim xorl 12(%edi),%edx 1310238405Sjkim cmpl 24(%esp),%edi 1311238405Sjkim movl %edi,20(%esp) 1312238405Sjkim jb .L006loop 1313238405Sjkim movl %eax,%esi 1314238405Sjkim andl $255,%esi 1315238405Sjkim movzbl -128(%ebp,%esi,1),%esi 1316238405Sjkim movzbl %dh,%edi 1317238405Sjkim movzbl -128(%ebp,%edi,1),%edi 1318238405Sjkim shll $8,%edi 1319238405Sjkim xorl %edi,%esi 1320238405Sjkim movl %ecx,%edi 1321238405Sjkim shrl $16,%edi 1322238405Sjkim andl $255,%edi 1323238405Sjkim movzbl -128(%ebp,%edi,1),%edi 1324238405Sjkim shll $16,%edi 1325238405Sjkim xorl %edi,%esi 1326238405Sjkim movl %ebx,%edi 1327238405Sjkim shrl $24,%edi 1328238405Sjkim movzbl -128(%ebp,%edi,1),%edi 1329238405Sjkim shll $24,%edi 1330238405Sjkim xorl %edi,%esi 1331238405Sjkim movl %esi,4(%esp) 1332238405Sjkim movl %ebx,%esi 1333238405Sjkim andl $255,%esi 1334238405Sjkim movzbl -128(%ebp,%esi,1),%esi 1335238405Sjkim movzbl %ah,%edi 1336238405Sjkim movzbl -128(%ebp,%edi,1),%edi 1337238405Sjkim shll $8,%edi 1338238405Sjkim xorl %edi,%esi 1339238405Sjkim movl %edx,%edi 1340238405Sjkim shrl $16,%edi 1341238405Sjkim andl $255,%edi 1342238405Sjkim movzbl -128(%ebp,%edi,1),%edi 1343238405Sjkim shll $16,%edi 1344238405Sjkim xorl %edi,%esi 1345238405Sjkim movl %ecx,%edi 1346238405Sjkim shrl $24,%edi 1347238405Sjkim movzbl -128(%ebp,%edi,1),%edi 1348238405Sjkim shll $24,%edi 1349238405Sjkim xorl %edi,%esi 1350238405Sjkim movl %esi,8(%esp) 1351238405Sjkim movl %ecx,%esi 1352238405Sjkim andl $255,%esi 1353238405Sjkim movzbl -128(%ebp,%esi,1),%esi 1354238405Sjkim movzbl %bh,%edi 1355238405Sjkim movzbl -128(%ebp,%edi,1),%edi 1356238405Sjkim shll $8,%edi 1357238405Sjkim xorl %edi,%esi 1358238405Sjkim movl %eax,%edi 1359238405Sjkim shrl $16,%edi 1360238405Sjkim andl $255,%edi 1361238405Sjkim movzbl -128(%ebp,%edi,1),%edi 1362238405Sjkim shll $16,%edi 1363238405Sjkim xorl %edi,%esi 1364238405Sjkim movl %edx,%edi 1365238405Sjkim shrl $24,%edi 1366238405Sjkim movzbl -128(%ebp,%edi,1),%edi 1367238405Sjkim shll $24,%edi 1368238405Sjkim xorl %edi,%esi 1369238405Sjkim movl 20(%esp),%edi 1370238405Sjkim andl $255,%edx 1371238405Sjkim movzbl -128(%ebp,%edx,1),%edx 1372238405Sjkim movzbl %ch,%ecx 1373238405Sjkim movzbl -128(%ebp,%ecx,1),%ecx 1374238405Sjkim shll $8,%ecx 1375238405Sjkim xorl %ecx,%edx 1376238405Sjkim movl %esi,%ecx 1377238405Sjkim shrl $16,%ebx 1378238405Sjkim andl $255,%ebx 1379238405Sjkim movzbl -128(%ebp,%ebx,1),%ebx 1380238405Sjkim shll $16,%ebx 1381238405Sjkim xorl %ebx,%edx 1382238405Sjkim movl 8(%esp),%ebx 1383238405Sjkim shrl $24,%eax 1384238405Sjkim movzbl -128(%ebp,%eax,1),%eax 1385238405Sjkim shll $24,%eax 1386238405Sjkim xorl %eax,%edx 1387238405Sjkim movl 4(%esp),%eax 1388238405Sjkim xorl 16(%edi),%eax 1389238405Sjkim xorl 20(%edi),%ebx 1390238405Sjkim xorl 24(%edi),%ecx 1391238405Sjkim xorl 28(%edi),%edx 1392238405Sjkim ret 1393238405Sjkim.size _x86_AES_decrypt_compact,.-_x86_AES_decrypt_compact 1394238405Sjkim.type _sse_AES_decrypt_compact,@function 1395238405Sjkim.align 16 1396238405Sjkim_sse_AES_decrypt_compact: 1397238405Sjkim pxor (%edi),%mm0 1398238405Sjkim pxor 8(%edi),%mm4 1399238405Sjkim movl 240(%edi),%esi 1400238405Sjkim leal -2(%esi,%esi,1),%esi 1401238405Sjkim leal (%edi,%esi,8),%esi 1402238405Sjkim movl %esi,24(%esp) 1403238405Sjkim movl $454761243,%eax 1404238405Sjkim movl %eax,8(%esp) 1405238405Sjkim movl %eax,12(%esp) 1406238405Sjkim movl -128(%ebp),%eax 1407238405Sjkim movl -96(%ebp),%ebx 1408238405Sjkim movl -64(%ebp),%ecx 1409238405Sjkim movl -32(%ebp),%edx 1410238405Sjkim movl (%ebp),%eax 1411238405Sjkim movl 32(%ebp),%ebx 1412238405Sjkim movl 64(%ebp),%ecx 1413238405Sjkim movl 96(%ebp),%edx 1414238405Sjkim.align 16 1415238405Sjkim.L007loop: 1416238405Sjkim pshufw $12,%mm0,%mm1 1417238405Sjkim movd %mm1,%eax 1418238405Sjkim pshufw $9,%mm4,%mm5 1419238405Sjkim movzbl %al,%esi 1420238405Sjkim movzbl -128(%ebp,%esi,1),%ecx 1421238405Sjkim movd %mm5,%ebx 1422238405Sjkim movzbl %ah,%edx 1423238405Sjkim movzbl -128(%ebp,%edx,1),%edx 1424238405Sjkim shll $8,%edx 1425238405Sjkim pshufw $6,%mm0,%mm2 1426238405Sjkim movzbl %bl,%esi 1427238405Sjkim movzbl -128(%ebp,%esi,1),%esi 1428238405Sjkim shll $16,%esi 1429238405Sjkim orl %esi,%ecx 1430238405Sjkim shrl $16,%eax 1431238405Sjkim movzbl %bh,%esi 1432238405Sjkim movzbl -128(%ebp,%esi,1),%esi 1433238405Sjkim shll $24,%esi 1434238405Sjkim orl %esi,%edx 1435238405Sjkim shrl $16,%ebx 1436238405Sjkim pshufw $3,%mm4,%mm6 1437238405Sjkim movzbl %ah,%esi 1438238405Sjkim movzbl -128(%ebp,%esi,1),%esi 1439238405Sjkim shll $24,%esi 1440238405Sjkim orl %esi,%ecx 1441238405Sjkim movzbl %bh,%esi 1442238405Sjkim movzbl -128(%ebp,%esi,1),%esi 1443238405Sjkim shll $8,%esi 1444238405Sjkim orl %esi,%ecx 1445238405Sjkim movd %ecx,%mm0 1446238405Sjkim movzbl %al,%esi 1447238405Sjkim movd %mm2,%eax 1448238405Sjkim movzbl -128(%ebp,%esi,1),%ecx 1449238405Sjkim shll $16,%ecx 1450238405Sjkim movzbl %bl,%esi 1451238405Sjkim movd %mm6,%ebx 1452238405Sjkim movzbl -128(%ebp,%esi,1),%esi 1453238405Sjkim orl %esi,%ecx 1454238405Sjkim movzbl %al,%esi 1455238405Sjkim movzbl -128(%ebp,%esi,1),%esi 1456238405Sjkim orl %esi,%edx 1457238405Sjkim movzbl %bl,%esi 1458238405Sjkim movzbl -128(%ebp,%esi,1),%esi 1459238405Sjkim shll $16,%esi 1460238405Sjkim orl %esi,%edx 1461238405Sjkim movd %edx,%mm1 1462238405Sjkim movzbl %ah,%esi 1463238405Sjkim movzbl -128(%ebp,%esi,1),%edx 1464238405Sjkim shll $8,%edx 1465238405Sjkim movzbl %bh,%esi 1466238405Sjkim shrl $16,%eax 1467238405Sjkim movzbl -128(%ebp,%esi,1),%esi 1468238405Sjkim shll $24,%esi 1469238405Sjkim orl %esi,%edx 1470238405Sjkim shrl $16,%ebx 1471238405Sjkim punpckldq %mm1,%mm0 1472238405Sjkim movzbl %bh,%esi 1473238405Sjkim movzbl -128(%ebp,%esi,1),%esi 1474238405Sjkim shll $8,%esi 1475238405Sjkim orl %esi,%ecx 1476238405Sjkim andl $255,%ebx 1477238405Sjkim movzbl -128(%ebp,%ebx,1),%ebx 1478238405Sjkim orl %ebx,%edx 1479238405Sjkim movzbl %al,%esi 1480238405Sjkim movzbl -128(%ebp,%esi,1),%esi 1481238405Sjkim shll $16,%esi 1482238405Sjkim orl %esi,%edx 1483238405Sjkim movd %edx,%mm4 1484238405Sjkim movzbl %ah,%eax 1485238405Sjkim movzbl -128(%ebp,%eax,1),%eax 1486238405Sjkim shll $24,%eax 1487238405Sjkim orl %eax,%ecx 1488238405Sjkim movd %ecx,%mm5 1489238405Sjkim punpckldq %mm5,%mm4 1490238405Sjkim addl $16,%edi 1491238405Sjkim cmpl 24(%esp),%edi 1492238405Sjkim ja .L008out 1493238405Sjkim movq %mm0,%mm3 1494238405Sjkim movq %mm4,%mm7 1495238405Sjkim pshufw $228,%mm0,%mm2 1496238405Sjkim pshufw $228,%mm4,%mm6 1497238405Sjkim movq %mm0,%mm1 1498238405Sjkim movq %mm4,%mm5 1499238405Sjkim pshufw $177,%mm0,%mm0 1500238405Sjkim pshufw $177,%mm4,%mm4 1501238405Sjkim pslld $8,%mm2 1502238405Sjkim pslld $8,%mm6 1503238405Sjkim psrld $8,%mm3 1504238405Sjkim psrld $8,%mm7 1505238405Sjkim pxor %mm2,%mm0 1506238405Sjkim pxor %mm6,%mm4 1507238405Sjkim pxor %mm3,%mm0 1508238405Sjkim pxor %mm7,%mm4 1509238405Sjkim pslld $16,%mm2 1510238405Sjkim pslld $16,%mm6 1511238405Sjkim psrld $16,%mm3 1512238405Sjkim psrld $16,%mm7 1513238405Sjkim pxor %mm2,%mm0 1514238405Sjkim pxor %mm6,%mm4 1515238405Sjkim pxor %mm3,%mm0 1516238405Sjkim pxor %mm7,%mm4 1517238405Sjkim movq 8(%esp),%mm3 1518238405Sjkim pxor %mm2,%mm2 1519238405Sjkim pxor %mm6,%mm6 1520238405Sjkim pcmpgtb %mm1,%mm2 1521238405Sjkim pcmpgtb %mm5,%mm6 1522238405Sjkim pand %mm3,%mm2 1523238405Sjkim pand %mm3,%mm6 1524238405Sjkim paddb %mm1,%mm1 1525238405Sjkim paddb %mm5,%mm5 1526238405Sjkim pxor %mm2,%mm1 1527238405Sjkim pxor %mm6,%mm5 1528238405Sjkim movq %mm1,%mm3 1529238405Sjkim movq %mm5,%mm7 1530238405Sjkim movq %mm1,%mm2 1531238405Sjkim movq %mm5,%mm6 1532238405Sjkim pxor %mm1,%mm0 1533238405Sjkim pxor %mm5,%mm4 1534238405Sjkim pslld $24,%mm3 1535238405Sjkim pslld $24,%mm7 1536238405Sjkim psrld $8,%mm2 1537238405Sjkim psrld $8,%mm6 1538238405Sjkim pxor %mm3,%mm0 1539238405Sjkim pxor %mm7,%mm4 1540238405Sjkim pxor %mm2,%mm0 1541238405Sjkim pxor %mm6,%mm4 1542238405Sjkim movq 8(%esp),%mm2 1543238405Sjkim pxor %mm3,%mm3 1544238405Sjkim pxor %mm7,%mm7 1545238405Sjkim pcmpgtb %mm1,%mm3 1546238405Sjkim pcmpgtb %mm5,%mm7 1547238405Sjkim pand %mm2,%mm3 1548238405Sjkim pand %mm2,%mm7 1549238405Sjkim paddb %mm1,%mm1 1550238405Sjkim paddb %mm5,%mm5 1551238405Sjkim pxor %mm3,%mm1 1552238405Sjkim pxor %mm7,%mm5 1553238405Sjkim pshufw $177,%mm1,%mm3 1554238405Sjkim pshufw $177,%mm5,%mm7 1555238405Sjkim pxor %mm1,%mm0 1556238405Sjkim pxor %mm5,%mm4 1557238405Sjkim pxor %mm3,%mm0 1558238405Sjkim pxor %mm7,%mm4 1559238405Sjkim pxor %mm3,%mm3 1560238405Sjkim pxor %mm7,%mm7 1561238405Sjkim pcmpgtb %mm1,%mm3 1562238405Sjkim pcmpgtb %mm5,%mm7 1563238405Sjkim pand %mm2,%mm3 1564238405Sjkim pand %mm2,%mm7 1565238405Sjkim paddb %mm1,%mm1 1566238405Sjkim paddb %mm5,%mm5 1567238405Sjkim pxor %mm3,%mm1 1568238405Sjkim pxor %mm7,%mm5 1569238405Sjkim pxor %mm1,%mm0 1570238405Sjkim pxor %mm5,%mm4 1571238405Sjkim movq %mm1,%mm3 1572238405Sjkim movq %mm5,%mm7 1573238405Sjkim pshufw $177,%mm1,%mm2 1574238405Sjkim pshufw $177,%mm5,%mm6 1575238405Sjkim pxor %mm2,%mm0 1576238405Sjkim pxor %mm6,%mm4 1577238405Sjkim pslld $8,%mm1 1578238405Sjkim pslld $8,%mm5 1579238405Sjkim psrld $8,%mm3 1580238405Sjkim psrld $8,%mm7 1581238405Sjkim movq (%edi),%mm2 1582238405Sjkim movq 8(%edi),%mm6 1583238405Sjkim pxor %mm1,%mm0 1584238405Sjkim pxor %mm5,%mm4 1585238405Sjkim pxor %mm3,%mm0 1586238405Sjkim pxor %mm7,%mm4 1587238405Sjkim movl -128(%ebp),%eax 1588238405Sjkim pslld $16,%mm1 1589238405Sjkim pslld $16,%mm5 1590238405Sjkim movl -64(%ebp),%ebx 1591238405Sjkim psrld $16,%mm3 1592238405Sjkim psrld $16,%mm7 1593238405Sjkim movl (%ebp),%ecx 1594238405Sjkim pxor %mm1,%mm0 1595238405Sjkim pxor %mm5,%mm4 1596238405Sjkim movl 64(%ebp),%edx 1597238405Sjkim pxor %mm3,%mm0 1598238405Sjkim pxor %mm7,%mm4 1599238405Sjkim pxor %mm2,%mm0 1600238405Sjkim pxor %mm6,%mm4 1601238405Sjkim jmp .L007loop 1602238405Sjkim.align 16 1603238405Sjkim.L008out: 1604238405Sjkim pxor (%edi),%mm0 1605238405Sjkim pxor 8(%edi),%mm4 1606238405Sjkim ret 1607238405Sjkim.size _sse_AES_decrypt_compact,.-_sse_AES_decrypt_compact 1608238405Sjkim.type _x86_AES_decrypt,@function 1609238405Sjkim.align 16 1610238405Sjkim_x86_AES_decrypt: 1611238405Sjkim movl %edi,20(%esp) 1612238405Sjkim xorl (%edi),%eax 1613238405Sjkim xorl 4(%edi),%ebx 1614238405Sjkim xorl 8(%edi),%ecx 1615238405Sjkim xorl 12(%edi),%edx 1616238405Sjkim movl 240(%edi),%esi 1617238405Sjkim leal -2(%esi,%esi,1),%esi 1618238405Sjkim leal (%edi,%esi,8),%esi 1619238405Sjkim movl %esi,24(%esp) 1620238405Sjkim.align 16 1621238405Sjkim.L009loop: 1622238405Sjkim movl %eax,%esi 1623238405Sjkim andl $255,%esi 1624238405Sjkim movl (%ebp,%esi,8),%esi 1625238405Sjkim movzbl %dh,%edi 1626238405Sjkim xorl 3(%ebp,%edi,8),%esi 1627238405Sjkim movl %ecx,%edi 1628238405Sjkim shrl $16,%edi 1629238405Sjkim andl $255,%edi 1630238405Sjkim xorl 2(%ebp,%edi,8),%esi 1631238405Sjkim movl %ebx,%edi 1632238405Sjkim shrl $24,%edi 1633238405Sjkim xorl 1(%ebp,%edi,8),%esi 1634238405Sjkim movl %esi,4(%esp) 1635238405Sjkim 1636238405Sjkim movl %ebx,%esi 1637238405Sjkim andl $255,%esi 1638238405Sjkim movl (%ebp,%esi,8),%esi 1639238405Sjkim movzbl %ah,%edi 1640238405Sjkim xorl 3(%ebp,%edi,8),%esi 1641238405Sjkim movl %edx,%edi 1642238405Sjkim shrl $16,%edi 1643238405Sjkim andl $255,%edi 1644238405Sjkim xorl 2(%ebp,%edi,8),%esi 1645238405Sjkim movl %ecx,%edi 1646238405Sjkim shrl $24,%edi 1647238405Sjkim xorl 1(%ebp,%edi,8),%esi 1648238405Sjkim movl %esi,8(%esp) 1649238405Sjkim 1650238405Sjkim movl %ecx,%esi 1651238405Sjkim andl $255,%esi 1652238405Sjkim movl (%ebp,%esi,8),%esi 1653238405Sjkim movzbl %bh,%edi 1654238405Sjkim xorl 3(%ebp,%edi,8),%esi 1655238405Sjkim movl %eax,%edi 1656238405Sjkim shrl $16,%edi 1657238405Sjkim andl $255,%edi 1658238405Sjkim xorl 2(%ebp,%edi,8),%esi 1659238405Sjkim movl %edx,%edi 1660238405Sjkim shrl $24,%edi 1661238405Sjkim xorl 1(%ebp,%edi,8),%esi 1662238405Sjkim 1663238405Sjkim movl 20(%esp),%edi 1664238405Sjkim andl $255,%edx 1665238405Sjkim movl (%ebp,%edx,8),%edx 1666238405Sjkim movzbl %ch,%ecx 1667238405Sjkim xorl 3(%ebp,%ecx,8),%edx 1668238405Sjkim movl %esi,%ecx 1669238405Sjkim shrl $16,%ebx 1670238405Sjkim andl $255,%ebx 1671238405Sjkim xorl 2(%ebp,%ebx,8),%edx 1672238405Sjkim movl 8(%esp),%ebx 1673238405Sjkim shrl $24,%eax 1674238405Sjkim xorl 1(%ebp,%eax,8),%edx 1675238405Sjkim movl 4(%esp),%eax 1676238405Sjkim 1677238405Sjkim addl $16,%edi 1678238405Sjkim xorl (%edi),%eax 1679238405Sjkim xorl 4(%edi),%ebx 1680238405Sjkim xorl 8(%edi),%ecx 1681238405Sjkim xorl 12(%edi),%edx 1682238405Sjkim cmpl 24(%esp),%edi 1683238405Sjkim movl %edi,20(%esp) 1684238405Sjkim jb .L009loop 1685238405Sjkim leal 2176(%ebp),%ebp 1686238405Sjkim movl -128(%ebp),%edi 1687238405Sjkim movl -96(%ebp),%esi 1688238405Sjkim movl -64(%ebp),%edi 1689238405Sjkim movl -32(%ebp),%esi 1690238405Sjkim movl (%ebp),%edi 1691238405Sjkim movl 32(%ebp),%esi 1692238405Sjkim movl 64(%ebp),%edi 1693238405Sjkim movl 96(%ebp),%esi 1694238405Sjkim leal -128(%ebp),%ebp 1695238405Sjkim movl %eax,%esi 1696238405Sjkim andl $255,%esi 1697238405Sjkim movzbl (%ebp,%esi,1),%esi 1698238405Sjkim movzbl %dh,%edi 1699238405Sjkim movzbl (%ebp,%edi,1),%edi 1700238405Sjkim shll $8,%edi 1701238405Sjkim xorl %edi,%esi 1702238405Sjkim movl %ecx,%edi 1703238405Sjkim shrl $16,%edi 1704238405Sjkim andl $255,%edi 1705238405Sjkim movzbl (%ebp,%edi,1),%edi 1706238405Sjkim shll $16,%edi 1707238405Sjkim xorl %edi,%esi 1708238405Sjkim movl %ebx,%edi 1709238405Sjkim shrl $24,%edi 1710238405Sjkim movzbl (%ebp,%edi,1),%edi 1711238405Sjkim shll $24,%edi 1712238405Sjkim xorl %edi,%esi 1713238405Sjkim movl %esi,4(%esp) 1714238405Sjkim movl %ebx,%esi 1715238405Sjkim andl $255,%esi 1716238405Sjkim movzbl (%ebp,%esi,1),%esi 1717238405Sjkim movzbl %ah,%edi 1718238405Sjkim movzbl (%ebp,%edi,1),%edi 1719238405Sjkim shll $8,%edi 1720238405Sjkim xorl %edi,%esi 1721238405Sjkim movl %edx,%edi 1722238405Sjkim shrl $16,%edi 1723238405Sjkim andl $255,%edi 1724238405Sjkim movzbl (%ebp,%edi,1),%edi 1725238405Sjkim shll $16,%edi 1726238405Sjkim xorl %edi,%esi 1727238405Sjkim movl %ecx,%edi 1728238405Sjkim shrl $24,%edi 1729238405Sjkim movzbl (%ebp,%edi,1),%edi 1730238405Sjkim shll $24,%edi 1731238405Sjkim xorl %edi,%esi 1732238405Sjkim movl %esi,8(%esp) 1733238405Sjkim movl %ecx,%esi 1734238405Sjkim andl $255,%esi 1735238405Sjkim movzbl (%ebp,%esi,1),%esi 1736238405Sjkim movzbl %bh,%edi 1737238405Sjkim movzbl (%ebp,%edi,1),%edi 1738238405Sjkim shll $8,%edi 1739238405Sjkim xorl %edi,%esi 1740238405Sjkim movl %eax,%edi 1741238405Sjkim shrl $16,%edi 1742238405Sjkim andl $255,%edi 1743238405Sjkim movzbl (%ebp,%edi,1),%edi 1744238405Sjkim shll $16,%edi 1745238405Sjkim xorl %edi,%esi 1746238405Sjkim movl %edx,%edi 1747238405Sjkim shrl $24,%edi 1748238405Sjkim movzbl (%ebp,%edi,1),%edi 1749238405Sjkim shll $24,%edi 1750238405Sjkim xorl %edi,%esi 1751238405Sjkim movl 20(%esp),%edi 1752238405Sjkim andl $255,%edx 1753238405Sjkim movzbl (%ebp,%edx,1),%edx 1754238405Sjkim movzbl %ch,%ecx 1755238405Sjkim movzbl (%ebp,%ecx,1),%ecx 1756238405Sjkim shll $8,%ecx 1757238405Sjkim xorl %ecx,%edx 1758238405Sjkim movl %esi,%ecx 1759238405Sjkim shrl $16,%ebx 1760238405Sjkim andl $255,%ebx 1761238405Sjkim movzbl (%ebp,%ebx,1),%ebx 1762238405Sjkim shll $16,%ebx 1763238405Sjkim xorl %ebx,%edx 1764238405Sjkim movl 8(%esp),%ebx 1765238405Sjkim shrl $24,%eax 1766238405Sjkim movzbl (%ebp,%eax,1),%eax 1767238405Sjkim shll $24,%eax 1768238405Sjkim xorl %eax,%edx 1769238405Sjkim movl 4(%esp),%eax 1770238405Sjkim leal -2048(%ebp),%ebp 1771238405Sjkim addl $16,%edi 1772238405Sjkim xorl (%edi),%eax 1773238405Sjkim xorl 4(%edi),%ebx 1774238405Sjkim xorl 8(%edi),%ecx 1775238405Sjkim xorl 12(%edi),%edx 1776238405Sjkim ret 1777238405Sjkim.align 64 1778238405Sjkim.LAES_Td: 1779238405Sjkim.long 1353184337,1353184337 1780238405Sjkim.long 1399144830,1399144830 1781238405Sjkim.long 3282310938,3282310938 1782238405Sjkim.long 2522752826,2522752826 1783238405Sjkim.long 3412831035,3412831035 1784238405Sjkim.long 4047871263,4047871263 1785238405Sjkim.long 2874735276,2874735276 1786238405Sjkim.long 2466505547,2466505547 1787238405Sjkim.long 1442459680,1442459680 1788238405Sjkim.long 4134368941,4134368941 1789238405Sjkim.long 2440481928,2440481928 1790238405Sjkim.long 625738485,625738485 1791238405Sjkim.long 4242007375,4242007375 1792238405Sjkim.long 3620416197,3620416197 1793238405Sjkim.long 2151953702,2151953702 1794238405Sjkim.long 2409849525,2409849525 1795238405Sjkim.long 1230680542,1230680542 1796238405Sjkim.long 1729870373,1729870373 1797238405Sjkim.long 2551114309,2551114309 1798238405Sjkim.long 3787521629,3787521629 1799238405Sjkim.long 41234371,41234371 1800238405Sjkim.long 317738113,317738113 1801238405Sjkim.long 2744600205,2744600205 1802238405Sjkim.long 3338261355,3338261355 1803238405Sjkim.long 3881799427,3881799427 1804238405Sjkim.long 2510066197,2510066197 1805238405Sjkim.long 3950669247,3950669247 1806238405Sjkim.long 3663286933,3663286933 1807238405Sjkim.long 763608788,763608788 1808238405Sjkim.long 3542185048,3542185048 1809238405Sjkim.long 694804553,694804553 1810238405Sjkim.long 1154009486,1154009486 1811238405Sjkim.long 1787413109,1787413109 1812238405Sjkim.long 2021232372,2021232372 1813238405Sjkim.long 1799248025,1799248025 1814238405Sjkim.long 3715217703,3715217703 1815238405Sjkim.long 3058688446,3058688446 1816238405Sjkim.long 397248752,397248752 1817238405Sjkim.long 1722556617,1722556617 1818238405Sjkim.long 3023752829,3023752829 1819238405Sjkim.long 407560035,407560035 1820238405Sjkim.long 2184256229,2184256229 1821238405Sjkim.long 1613975959,1613975959 1822238405Sjkim.long 1165972322,1165972322 1823238405Sjkim.long 3765920945,3765920945 1824238405Sjkim.long 2226023355,2226023355 1825238405Sjkim.long 480281086,480281086 1826238405Sjkim.long 2485848313,2485848313 1827238405Sjkim.long 1483229296,1483229296 1828238405Sjkim.long 436028815,436028815 1829238405Sjkim.long 2272059028,2272059028 1830238405Sjkim.long 3086515026,3086515026 1831238405Sjkim.long 601060267,601060267 1832238405Sjkim.long 3791801202,3791801202 1833238405Sjkim.long 1468997603,1468997603 1834238405Sjkim.long 715871590,715871590 1835238405Sjkim.long 120122290,120122290 1836238405Sjkim.long 63092015,63092015 1837238405Sjkim.long 2591802758,2591802758 1838238405Sjkim.long 2768779219,2768779219 1839238405Sjkim.long 4068943920,4068943920 1840238405Sjkim.long 2997206819,2997206819 1841238405Sjkim.long 3127509762,3127509762 1842238405Sjkim.long 1552029421,1552029421 1843238405Sjkim.long 723308426,723308426 1844238405Sjkim.long 2461301159,2461301159 1845238405Sjkim.long 4042393587,4042393587 1846238405Sjkim.long 2715969870,2715969870 1847238405Sjkim.long 3455375973,3455375973 1848238405Sjkim.long 3586000134,3586000134 1849238405Sjkim.long 526529745,526529745 1850238405Sjkim.long 2331944644,2331944644 1851238405Sjkim.long 2639474228,2639474228 1852238405Sjkim.long 2689987490,2689987490 1853238405Sjkim.long 853641733,853641733 1854238405Sjkim.long 1978398372,1978398372 1855238405Sjkim.long 971801355,971801355 1856238405Sjkim.long 2867814464,2867814464 1857238405Sjkim.long 111112542,111112542 1858238405Sjkim.long 1360031421,1360031421 1859238405Sjkim.long 4186579262,4186579262 1860238405Sjkim.long 1023860118,1023860118 1861238405Sjkim.long 2919579357,2919579357 1862238405Sjkim.long 1186850381,1186850381 1863238405Sjkim.long 3045938321,3045938321 1864238405Sjkim.long 90031217,90031217 1865238405Sjkim.long 1876166148,1876166148 1866238405Sjkim.long 4279586912,4279586912 1867238405Sjkim.long 620468249,620468249 1868238405Sjkim.long 2548678102,2548678102 1869238405Sjkim.long 3426959497,3426959497 1870238405Sjkim.long 2006899047,2006899047 1871238405Sjkim.long 3175278768,3175278768 1872238405Sjkim.long 2290845959,2290845959 1873238405Sjkim.long 945494503,945494503 1874238405Sjkim.long 3689859193,3689859193 1875238405Sjkim.long 1191869601,1191869601 1876238405Sjkim.long 3910091388,3910091388 1877238405Sjkim.long 3374220536,3374220536 1878238405Sjkim.long 0,0 1879238405Sjkim.long 2206629897,2206629897 1880238405Sjkim.long 1223502642,1223502642 1881238405Sjkim.long 2893025566,2893025566 1882238405Sjkim.long 1316117100,1316117100 1883238405Sjkim.long 4227796733,4227796733 1884238405Sjkim.long 1446544655,1446544655 1885238405Sjkim.long 517320253,517320253 1886238405Sjkim.long 658058550,658058550 1887238405Sjkim.long 1691946762,1691946762 1888238405Sjkim.long 564550760,564550760 1889238405Sjkim.long 3511966619,3511966619 1890238405Sjkim.long 976107044,976107044 1891238405Sjkim.long 2976320012,2976320012 1892238405Sjkim.long 266819475,266819475 1893238405Sjkim.long 3533106868,3533106868 1894238405Sjkim.long 2660342555,2660342555 1895238405Sjkim.long 1338359936,1338359936 1896238405Sjkim.long 2720062561,2720062561 1897238405Sjkim.long 1766553434,1766553434 1898238405Sjkim.long 370807324,370807324 1899238405Sjkim.long 179999714,179999714 1900238405Sjkim.long 3844776128,3844776128 1901238405Sjkim.long 1138762300,1138762300 1902238405Sjkim.long 488053522,488053522 1903238405Sjkim.long 185403662,185403662 1904238405Sjkim.long 2915535858,2915535858 1905238405Sjkim.long 3114841645,3114841645 1906238405Sjkim.long 3366526484,3366526484 1907238405Sjkim.long 2233069911,2233069911 1908238405Sjkim.long 1275557295,1275557295 1909238405Sjkim.long 3151862254,3151862254 1910238405Sjkim.long 4250959779,4250959779 1911238405Sjkim.long 2670068215,2670068215 1912238405Sjkim.long 3170202204,3170202204 1913238405Sjkim.long 3309004356,3309004356 1914238405Sjkim.long 880737115,880737115 1915238405Sjkim.long 1982415755,1982415755 1916238405Sjkim.long 3703972811,3703972811 1917238405Sjkim.long 1761406390,1761406390 1918238405Sjkim.long 1676797112,1676797112 1919238405Sjkim.long 3403428311,3403428311 1920238405Sjkim.long 277177154,277177154 1921238405Sjkim.long 1076008723,1076008723 1922238405Sjkim.long 538035844,538035844 1923238405Sjkim.long 2099530373,2099530373 1924238405Sjkim.long 4164795346,4164795346 1925238405Sjkim.long 288553390,288553390 1926238405Sjkim.long 1839278535,1839278535 1927238405Sjkim.long 1261411869,1261411869 1928238405Sjkim.long 4080055004,4080055004 1929238405Sjkim.long 3964831245,3964831245 1930238405Sjkim.long 3504587127,3504587127 1931238405Sjkim.long 1813426987,1813426987 1932238405Sjkim.long 2579067049,2579067049 1933238405Sjkim.long 4199060497,4199060497 1934238405Sjkim.long 577038663,577038663 1935238405Sjkim.long 3297574056,3297574056 1936238405Sjkim.long 440397984,440397984 1937238405Sjkim.long 3626794326,3626794326 1938238405Sjkim.long 4019204898,4019204898 1939238405Sjkim.long 3343796615,3343796615 1940238405Sjkim.long 3251714265,3251714265 1941238405Sjkim.long 4272081548,4272081548 1942238405Sjkim.long 906744984,906744984 1943238405Sjkim.long 3481400742,3481400742 1944238405Sjkim.long 685669029,685669029 1945238405Sjkim.long 646887386,646887386 1946238405Sjkim.long 2764025151,2764025151 1947238405Sjkim.long 3835509292,3835509292 1948238405Sjkim.long 227702864,227702864 1949238405Sjkim.long 2613862250,2613862250 1950238405Sjkim.long 1648787028,1648787028 1951238405Sjkim.long 3256061430,3256061430 1952238405Sjkim.long 3904428176,3904428176 1953238405Sjkim.long 1593260334,1593260334 1954238405Sjkim.long 4121936770,4121936770 1955238405Sjkim.long 3196083615,3196083615 1956238405Sjkim.long 2090061929,2090061929 1957238405Sjkim.long 2838353263,2838353263 1958238405Sjkim.long 3004310991,3004310991 1959238405Sjkim.long 999926984,999926984 1960238405Sjkim.long 2809993232,2809993232 1961238405Sjkim.long 1852021992,1852021992 1962238405Sjkim.long 2075868123,2075868123 1963238405Sjkim.long 158869197,158869197 1964238405Sjkim.long 4095236462,4095236462 1965238405Sjkim.long 28809964,28809964 1966238405Sjkim.long 2828685187,2828685187 1967238405Sjkim.long 1701746150,1701746150 1968238405Sjkim.long 2129067946,2129067946 1969238405Sjkim.long 147831841,147831841 1970238405Sjkim.long 3873969647,3873969647 1971238405Sjkim.long 3650873274,3650873274 1972238405Sjkim.long 3459673930,3459673930 1973238405Sjkim.long 3557400554,3557400554 1974238405Sjkim.long 3598495785,3598495785 1975238405Sjkim.long 2947720241,2947720241 1976238405Sjkim.long 824393514,824393514 1977238405Sjkim.long 815048134,815048134 1978238405Sjkim.long 3227951669,3227951669 1979238405Sjkim.long 935087732,935087732 1980238405Sjkim.long 2798289660,2798289660 1981238405Sjkim.long 2966458592,2966458592 1982238405Sjkim.long 366520115,366520115 1983238405Sjkim.long 1251476721,1251476721 1984238405Sjkim.long 4158319681,4158319681 1985238405Sjkim.long 240176511,240176511 1986238405Sjkim.long 804688151,804688151 1987238405Sjkim.long 2379631990,2379631990 1988238405Sjkim.long 1303441219,1303441219 1989238405Sjkim.long 1414376140,1414376140 1990238405Sjkim.long 3741619940,3741619940 1991238405Sjkim.long 3820343710,3820343710 1992238405Sjkim.long 461924940,461924940 1993238405Sjkim.long 3089050817,3089050817 1994238405Sjkim.long 2136040774,2136040774 1995238405Sjkim.long 82468509,82468509 1996238405Sjkim.long 1563790337,1563790337 1997238405Sjkim.long 1937016826,1937016826 1998238405Sjkim.long 776014843,776014843 1999238405Sjkim.long 1511876531,1511876531 2000238405Sjkim.long 1389550482,1389550482 2001238405Sjkim.long 861278441,861278441 2002238405Sjkim.long 323475053,323475053 2003238405Sjkim.long 2355222426,2355222426 2004238405Sjkim.long 2047648055,2047648055 2005238405Sjkim.long 2383738969,2383738969 2006238405Sjkim.long 2302415851,2302415851 2007238405Sjkim.long 3995576782,3995576782 2008238405Sjkim.long 902390199,902390199 2009238405Sjkim.long 3991215329,3991215329 2010238405Sjkim.long 1018251130,1018251130 2011238405Sjkim.long 1507840668,1507840668 2012238405Sjkim.long 1064563285,1064563285 2013238405Sjkim.long 2043548696,2043548696 2014238405Sjkim.long 3208103795,3208103795 2015238405Sjkim.long 3939366739,3939366739 2016238405Sjkim.long 1537932639,1537932639 2017238405Sjkim.long 342834655,342834655 2018238405Sjkim.long 2262516856,2262516856 2019238405Sjkim.long 2180231114,2180231114 2020238405Sjkim.long 1053059257,1053059257 2021238405Sjkim.long 741614648,741614648 2022238405Sjkim.long 1598071746,1598071746 2023238405Sjkim.long 1925389590,1925389590 2024238405Sjkim.long 203809468,203809468 2025238405Sjkim.long 2336832552,2336832552 2026238405Sjkim.long 1100287487,1100287487 2027238405Sjkim.long 1895934009,1895934009 2028238405Sjkim.long 3736275976,3736275976 2029238405Sjkim.long 2632234200,2632234200 2030238405Sjkim.long 2428589668,2428589668 2031238405Sjkim.long 1636092795,1636092795 2032238405Sjkim.long 1890988757,1890988757 2033238405Sjkim.long 1952214088,1952214088 2034238405Sjkim.long 1113045200,1113045200 2035238405Sjkim.byte 82,9,106,213,48,54,165,56 2036238405Sjkim.byte 191,64,163,158,129,243,215,251 2037238405Sjkim.byte 124,227,57,130,155,47,255,135 2038238405Sjkim.byte 52,142,67,68,196,222,233,203 2039238405Sjkim.byte 84,123,148,50,166,194,35,61 2040238405Sjkim.byte 238,76,149,11,66,250,195,78 2041238405Sjkim.byte 8,46,161,102,40,217,36,178 2042238405Sjkim.byte 118,91,162,73,109,139,209,37 2043238405Sjkim.byte 114,248,246,100,134,104,152,22 2044238405Sjkim.byte 212,164,92,204,93,101,182,146 2045238405Sjkim.byte 108,112,72,80,253,237,185,218 2046238405Sjkim.byte 94,21,70,87,167,141,157,132 2047238405Sjkim.byte 144,216,171,0,140,188,211,10 2048238405Sjkim.byte 247,228,88,5,184,179,69,6 2049238405Sjkim.byte 208,44,30,143,202,63,15,2 2050238405Sjkim.byte 193,175,189,3,1,19,138,107 2051238405Sjkim.byte 58,145,17,65,79,103,220,234 2052238405Sjkim.byte 151,242,207,206,240,180,230,115 2053238405Sjkim.byte 150,172,116,34,231,173,53,133 2054238405Sjkim.byte 226,249,55,232,28,117,223,110 2055238405Sjkim.byte 71,241,26,113,29,41,197,137 2056238405Sjkim.byte 111,183,98,14,170,24,190,27 2057238405Sjkim.byte 252,86,62,75,198,210,121,32 2058238405Sjkim.byte 154,219,192,254,120,205,90,244 2059238405Sjkim.byte 31,221,168,51,136,7,199,49 2060238405Sjkim.byte 177,18,16,89,39,128,236,95 2061238405Sjkim.byte 96,81,127,169,25,181,74,13 2062238405Sjkim.byte 45,229,122,159,147,201,156,239 2063238405Sjkim.byte 160,224,59,77,174,42,245,176 2064238405Sjkim.byte 200,235,187,60,131,83,153,97 2065238405Sjkim.byte 23,43,4,126,186,119,214,38 2066238405Sjkim.byte 225,105,20,99,85,33,12,125 2067238405Sjkim.byte 82,9,106,213,48,54,165,56 2068238405Sjkim.byte 191,64,163,158,129,243,215,251 2069238405Sjkim.byte 124,227,57,130,155,47,255,135 2070238405Sjkim.byte 52,142,67,68,196,222,233,203 2071238405Sjkim.byte 84,123,148,50,166,194,35,61 2072238405Sjkim.byte 238,76,149,11,66,250,195,78 2073238405Sjkim.byte 8,46,161,102,40,217,36,178 2074238405Sjkim.byte 118,91,162,73,109,139,209,37 2075238405Sjkim.byte 114,248,246,100,134,104,152,22 2076238405Sjkim.byte 212,164,92,204,93,101,182,146 2077238405Sjkim.byte 108,112,72,80,253,237,185,218 2078238405Sjkim.byte 94,21,70,87,167,141,157,132 2079238405Sjkim.byte 144,216,171,0,140,188,211,10 2080238405Sjkim.byte 247,228,88,5,184,179,69,6 2081238405Sjkim.byte 208,44,30,143,202,63,15,2 2082238405Sjkim.byte 193,175,189,3,1,19,138,107 2083238405Sjkim.byte 58,145,17,65,79,103,220,234 2084238405Sjkim.byte 151,242,207,206,240,180,230,115 2085238405Sjkim.byte 150,172,116,34,231,173,53,133 2086238405Sjkim.byte 226,249,55,232,28,117,223,110 2087238405Sjkim.byte 71,241,26,113,29,41,197,137 2088238405Sjkim.byte 111,183,98,14,170,24,190,27 2089238405Sjkim.byte 252,86,62,75,198,210,121,32 2090238405Sjkim.byte 154,219,192,254,120,205,90,244 2091238405Sjkim.byte 31,221,168,51,136,7,199,49 2092238405Sjkim.byte 177,18,16,89,39,128,236,95 2093238405Sjkim.byte 96,81,127,169,25,181,74,13 2094238405Sjkim.byte 45,229,122,159,147,201,156,239 2095238405Sjkim.byte 160,224,59,77,174,42,245,176 2096238405Sjkim.byte 200,235,187,60,131,83,153,97 2097238405Sjkim.byte 23,43,4,126,186,119,214,38 2098238405Sjkim.byte 225,105,20,99,85,33,12,125 2099238405Sjkim.byte 82,9,106,213,48,54,165,56 2100238405Sjkim.byte 191,64,163,158,129,243,215,251 2101238405Sjkim.byte 124,227,57,130,155,47,255,135 2102238405Sjkim.byte 52,142,67,68,196,222,233,203 2103238405Sjkim.byte 84,123,148,50,166,194,35,61 2104238405Sjkim.byte 238,76,149,11,66,250,195,78 2105238405Sjkim.byte 8,46,161,102,40,217,36,178 2106238405Sjkim.byte 118,91,162,73,109,139,209,37 2107238405Sjkim.byte 114,248,246,100,134,104,152,22 2108238405Sjkim.byte 212,164,92,204,93,101,182,146 2109238405Sjkim.byte 108,112,72,80,253,237,185,218 2110238405Sjkim.byte 94,21,70,87,167,141,157,132 2111238405Sjkim.byte 144,216,171,0,140,188,211,10 2112238405Sjkim.byte 247,228,88,5,184,179,69,6 2113238405Sjkim.byte 208,44,30,143,202,63,15,2 2114238405Sjkim.byte 193,175,189,3,1,19,138,107 2115238405Sjkim.byte 58,145,17,65,79,103,220,234 2116238405Sjkim.byte 151,242,207,206,240,180,230,115 2117238405Sjkim.byte 150,172,116,34,231,173,53,133 2118238405Sjkim.byte 226,249,55,232,28,117,223,110 2119238405Sjkim.byte 71,241,26,113,29,41,197,137 2120238405Sjkim.byte 111,183,98,14,170,24,190,27 2121238405Sjkim.byte 252,86,62,75,198,210,121,32 2122238405Sjkim.byte 154,219,192,254,120,205,90,244 2123238405Sjkim.byte 31,221,168,51,136,7,199,49 2124238405Sjkim.byte 177,18,16,89,39,128,236,95 2125238405Sjkim.byte 96,81,127,169,25,181,74,13 2126238405Sjkim.byte 45,229,122,159,147,201,156,239 2127238405Sjkim.byte 160,224,59,77,174,42,245,176 2128238405Sjkim.byte 200,235,187,60,131,83,153,97 2129238405Sjkim.byte 23,43,4,126,186,119,214,38 2130238405Sjkim.byte 225,105,20,99,85,33,12,125 2131238405Sjkim.byte 82,9,106,213,48,54,165,56 2132238405Sjkim.byte 191,64,163,158,129,243,215,251 2133238405Sjkim.byte 124,227,57,130,155,47,255,135 2134238405Sjkim.byte 52,142,67,68,196,222,233,203 2135238405Sjkim.byte 84,123,148,50,166,194,35,61 2136238405Sjkim.byte 238,76,149,11,66,250,195,78 2137238405Sjkim.byte 8,46,161,102,40,217,36,178 2138238405Sjkim.byte 118,91,162,73,109,139,209,37 2139238405Sjkim.byte 114,248,246,100,134,104,152,22 2140238405Sjkim.byte 212,164,92,204,93,101,182,146 2141238405Sjkim.byte 108,112,72,80,253,237,185,218 2142238405Sjkim.byte 94,21,70,87,167,141,157,132 2143238405Sjkim.byte 144,216,171,0,140,188,211,10 2144238405Sjkim.byte 247,228,88,5,184,179,69,6 2145238405Sjkim.byte 208,44,30,143,202,63,15,2 2146238405Sjkim.byte 193,175,189,3,1,19,138,107 2147238405Sjkim.byte 58,145,17,65,79,103,220,234 2148238405Sjkim.byte 151,242,207,206,240,180,230,115 2149238405Sjkim.byte 150,172,116,34,231,173,53,133 2150238405Sjkim.byte 226,249,55,232,28,117,223,110 2151238405Sjkim.byte 71,241,26,113,29,41,197,137 2152238405Sjkim.byte 111,183,98,14,170,24,190,27 2153238405Sjkim.byte 252,86,62,75,198,210,121,32 2154238405Sjkim.byte 154,219,192,254,120,205,90,244 2155238405Sjkim.byte 31,221,168,51,136,7,199,49 2156238405Sjkim.byte 177,18,16,89,39,128,236,95 2157238405Sjkim.byte 96,81,127,169,25,181,74,13 2158238405Sjkim.byte 45,229,122,159,147,201,156,239 2159238405Sjkim.byte 160,224,59,77,174,42,245,176 2160238405Sjkim.byte 200,235,187,60,131,83,153,97 2161238405Sjkim.byte 23,43,4,126,186,119,214,38 2162238405Sjkim.byte 225,105,20,99,85,33,12,125 2163238405Sjkim.size _x86_AES_decrypt,.-_x86_AES_decrypt 2164238405Sjkim.globl AES_decrypt 2165238405Sjkim.type AES_decrypt,@function 2166238405Sjkim.align 16 2167238405SjkimAES_decrypt: 2168238405Sjkim.L_AES_decrypt_begin: 2169238405Sjkim pushl %ebp 2170238405Sjkim pushl %ebx 2171238405Sjkim pushl %esi 2172238405Sjkim pushl %edi 2173238405Sjkim movl 20(%esp),%esi 2174238405Sjkim movl 28(%esp),%edi 2175238405Sjkim movl %esp,%eax 2176238405Sjkim subl $36,%esp 2177238405Sjkim andl $-64,%esp 2178238405Sjkim leal -127(%edi),%ebx 2179238405Sjkim subl %esp,%ebx 2180238405Sjkim negl %ebx 2181238405Sjkim andl $960,%ebx 2182238405Sjkim subl %ebx,%esp 2183238405Sjkim addl $4,%esp 2184238405Sjkim movl %eax,28(%esp) 2185238405Sjkim call .L010pic_point 2186238405Sjkim.L010pic_point: 2187238405Sjkim popl %ebp 2188238405Sjkim leal OPENSSL_ia32cap_P,%eax 2189238405Sjkim leal .LAES_Td-.L010pic_point(%ebp),%ebp 2190238405Sjkim leal 764(%esp),%ebx 2191238405Sjkim subl %ebp,%ebx 2192238405Sjkim andl $768,%ebx 2193238405Sjkim leal 2176(%ebp,%ebx,1),%ebp 2194238405Sjkim btl $25,(%eax) 2195238405Sjkim jnc .L011x86 2196238405Sjkim movq (%esi),%mm0 2197238405Sjkim movq 8(%esi),%mm4 2198238405Sjkim call _sse_AES_decrypt_compact 2199238405Sjkim movl 28(%esp),%esp 2200238405Sjkim movl 24(%esp),%esi 2201238405Sjkim movq %mm0,(%esi) 2202238405Sjkim movq %mm4,8(%esi) 2203238405Sjkim emms 2204238405Sjkim popl %edi 2205238405Sjkim popl %esi 2206238405Sjkim popl %ebx 2207238405Sjkim popl %ebp 2208238405Sjkim ret 2209238405Sjkim.align 16 2210238405Sjkim.L011x86: 2211238405Sjkim movl %ebp,24(%esp) 2212238405Sjkim movl (%esi),%eax 2213238405Sjkim movl 4(%esi),%ebx 2214238405Sjkim movl 8(%esi),%ecx 2215238405Sjkim movl 12(%esi),%edx 2216238405Sjkim call _x86_AES_decrypt_compact 2217238405Sjkim movl 28(%esp),%esp 2218238405Sjkim movl 24(%esp),%esi 2219238405Sjkim movl %eax,(%esi) 2220238405Sjkim movl %ebx,4(%esi) 2221238405Sjkim movl %ecx,8(%esi) 2222238405Sjkim movl %edx,12(%esi) 2223238405Sjkim popl %edi 2224238405Sjkim popl %esi 2225238405Sjkim popl %ebx 2226238405Sjkim popl %ebp 2227238405Sjkim ret 2228238405Sjkim.size AES_decrypt,.-.L_AES_decrypt_begin 2229238405Sjkim.globl AES_cbc_encrypt 2230238405Sjkim.type AES_cbc_encrypt,@function 2231238405Sjkim.align 16 2232238405SjkimAES_cbc_encrypt: 2233238405Sjkim.L_AES_cbc_encrypt_begin: 2234238405Sjkim pushl %ebp 2235238405Sjkim pushl %ebx 2236238405Sjkim pushl %esi 2237238405Sjkim pushl %edi 2238238405Sjkim movl 28(%esp),%ecx 2239238405Sjkim cmpl $0,%ecx 2240238405Sjkim je .L012drop_out 2241238405Sjkim call .L013pic_point 2242238405Sjkim.L013pic_point: 2243238405Sjkim popl %ebp 2244238405Sjkim leal OPENSSL_ia32cap_P,%eax 2245238405Sjkim cmpl $0,40(%esp) 2246238405Sjkim leal .LAES_Te-.L013pic_point(%ebp),%ebp 2247238405Sjkim jne .L014picked_te 2248238405Sjkim leal .LAES_Td-.LAES_Te(%ebp),%ebp 2249238405Sjkim.L014picked_te: 2250238405Sjkim pushfl 2251238405Sjkim cld 2252238405Sjkim cmpl $512,%ecx 2253238405Sjkim jb .L015slow_way 2254238405Sjkim testl $15,%ecx 2255238405Sjkim jnz .L015slow_way 2256238405Sjkim btl $28,(%eax) 2257238405Sjkim jc .L015slow_way 2258238405Sjkim leal -324(%esp),%esi 2259238405Sjkim andl $-64,%esi 2260238405Sjkim movl %ebp,%eax 2261238405Sjkim leal 2304(%ebp),%ebx 2262238405Sjkim movl %esi,%edx 2263238405Sjkim andl $4095,%eax 2264238405Sjkim andl $4095,%ebx 2265238405Sjkim andl $4095,%edx 2266238405Sjkim cmpl %ebx,%edx 2267238405Sjkim jb .L016tbl_break_out 2268238405Sjkim subl %ebx,%edx 2269238405Sjkim subl %edx,%esi 2270238405Sjkim jmp .L017tbl_ok 2271238405Sjkim.align 4 2272238405Sjkim.L016tbl_break_out: 2273238405Sjkim subl %eax,%edx 2274238405Sjkim andl $4095,%edx 2275238405Sjkim addl $384,%edx 2276238405Sjkim subl %edx,%esi 2277238405Sjkim.align 4 2278238405Sjkim.L017tbl_ok: 2279238405Sjkim leal 24(%esp),%edx 2280238405Sjkim xchgl %esi,%esp 2281238405Sjkim addl $4,%esp 2282238405Sjkim movl %ebp,24(%esp) 2283238405Sjkim movl %esi,28(%esp) 2284238405Sjkim movl (%edx),%eax 2285238405Sjkim movl 4(%edx),%ebx 2286238405Sjkim movl 12(%edx),%edi 2287238405Sjkim movl 16(%edx),%esi 2288238405Sjkim movl 20(%edx),%edx 2289238405Sjkim movl %eax,32(%esp) 2290238405Sjkim movl %ebx,36(%esp) 2291238405Sjkim movl %ecx,40(%esp) 2292238405Sjkim movl %edi,44(%esp) 2293238405Sjkim movl %esi,48(%esp) 2294238405Sjkim movl $0,316(%esp) 2295238405Sjkim movl %edi,%ebx 2296238405Sjkim movl $61,%ecx 2297238405Sjkim subl %ebp,%ebx 2298238405Sjkim movl %edi,%esi 2299238405Sjkim andl $4095,%ebx 2300238405Sjkim leal 76(%esp),%edi 2301238405Sjkim cmpl $2304,%ebx 2302238405Sjkim jb .L018do_copy 2303238405Sjkim cmpl $3852,%ebx 2304238405Sjkim jb .L019skip_copy 2305238405Sjkim.align 4 2306238405Sjkim.L018do_copy: 2307238405Sjkim movl %edi,44(%esp) 2308238405Sjkim.long 2784229001 2309238405Sjkim.L019skip_copy: 2310238405Sjkim movl $16,%edi 2311238405Sjkim.align 4 2312238405Sjkim.L020prefetch_tbl: 2313238405Sjkim movl (%ebp),%eax 2314238405Sjkim movl 32(%ebp),%ebx 2315238405Sjkim movl 64(%ebp),%ecx 2316238405Sjkim movl 96(%ebp),%esi 2317238405Sjkim leal 128(%ebp),%ebp 2318238405Sjkim subl $1,%edi 2319238405Sjkim jnz .L020prefetch_tbl 2320238405Sjkim subl $2048,%ebp 2321238405Sjkim movl 32(%esp),%esi 2322238405Sjkim movl 48(%esp),%edi 2323238405Sjkim cmpl $0,%edx 2324238405Sjkim je .L021fast_decrypt 2325238405Sjkim movl (%edi),%eax 2326238405Sjkim movl 4(%edi),%ebx 2327238405Sjkim.align 16 2328238405Sjkim.L022fast_enc_loop: 2329238405Sjkim movl 8(%edi),%ecx 2330238405Sjkim movl 12(%edi),%edx 2331238405Sjkim xorl (%esi),%eax 2332238405Sjkim xorl 4(%esi),%ebx 2333238405Sjkim xorl 8(%esi),%ecx 2334238405Sjkim xorl 12(%esi),%edx 2335238405Sjkim movl 44(%esp),%edi 2336238405Sjkim call _x86_AES_encrypt 2337238405Sjkim movl 32(%esp),%esi 2338238405Sjkim movl 36(%esp),%edi 2339238405Sjkim movl %eax,(%edi) 2340238405Sjkim movl %ebx,4(%edi) 2341238405Sjkim movl %ecx,8(%edi) 2342238405Sjkim movl %edx,12(%edi) 2343238405Sjkim leal 16(%esi),%esi 2344238405Sjkim movl 40(%esp),%ecx 2345238405Sjkim movl %esi,32(%esp) 2346238405Sjkim leal 16(%edi),%edx 2347238405Sjkim movl %edx,36(%esp) 2348238405Sjkim subl $16,%ecx 2349238405Sjkim movl %ecx,40(%esp) 2350238405Sjkim jnz .L022fast_enc_loop 2351238405Sjkim movl 48(%esp),%esi 2352238405Sjkim movl 8(%edi),%ecx 2353238405Sjkim movl 12(%edi),%edx 2354238405Sjkim movl %eax,(%esi) 2355238405Sjkim movl %ebx,4(%esi) 2356238405Sjkim movl %ecx,8(%esi) 2357238405Sjkim movl %edx,12(%esi) 2358238405Sjkim cmpl $0,316(%esp) 2359238405Sjkim movl 44(%esp),%edi 2360238405Sjkim je .L023skip_ezero 2361238405Sjkim movl $60,%ecx 2362238405Sjkim xorl %eax,%eax 2363238405Sjkim.align 4 2364238405Sjkim.long 2884892297 2365238405Sjkim.L023skip_ezero: 2366238405Sjkim movl 28(%esp),%esp 2367238405Sjkim popfl 2368238405Sjkim.L012drop_out: 2369238405Sjkim popl %edi 2370238405Sjkim popl %esi 2371238405Sjkim popl %ebx 2372238405Sjkim popl %ebp 2373238405Sjkim ret 2374238405Sjkim pushfl 2375238405Sjkim.align 16 2376238405Sjkim.L021fast_decrypt: 2377238405Sjkim cmpl 36(%esp),%esi 2378238405Sjkim je .L024fast_dec_in_place 2379238405Sjkim movl %edi,52(%esp) 2380238405Sjkim.align 4 2381238405Sjkim.align 16 2382238405Sjkim.L025fast_dec_loop: 2383238405Sjkim movl (%esi),%eax 2384238405Sjkim movl 4(%esi),%ebx 2385238405Sjkim movl 8(%esi),%ecx 2386238405Sjkim movl 12(%esi),%edx 2387238405Sjkim movl 44(%esp),%edi 2388238405Sjkim call _x86_AES_decrypt 2389238405Sjkim movl 52(%esp),%edi 2390238405Sjkim movl 40(%esp),%esi 2391238405Sjkim xorl (%edi),%eax 2392238405Sjkim xorl 4(%edi),%ebx 2393238405Sjkim xorl 8(%edi),%ecx 2394238405Sjkim xorl 12(%edi),%edx 2395238405Sjkim movl 36(%esp),%edi 2396238405Sjkim movl 32(%esp),%esi 2397238405Sjkim movl %eax,(%edi) 2398238405Sjkim movl %ebx,4(%edi) 2399238405Sjkim movl %ecx,8(%edi) 2400238405Sjkim movl %edx,12(%edi) 2401238405Sjkim movl 40(%esp),%ecx 2402238405Sjkim movl %esi,52(%esp) 2403238405Sjkim leal 16(%esi),%esi 2404238405Sjkim movl %esi,32(%esp) 2405238405Sjkim leal 16(%edi),%edi 2406238405Sjkim movl %edi,36(%esp) 2407238405Sjkim subl $16,%ecx 2408238405Sjkim movl %ecx,40(%esp) 2409238405Sjkim jnz .L025fast_dec_loop 2410238405Sjkim movl 52(%esp),%edi 2411238405Sjkim movl 48(%esp),%esi 2412238405Sjkim movl (%edi),%eax 2413238405Sjkim movl 4(%edi),%ebx 2414238405Sjkim movl 8(%edi),%ecx 2415238405Sjkim movl 12(%edi),%edx 2416238405Sjkim movl %eax,(%esi) 2417238405Sjkim movl %ebx,4(%esi) 2418238405Sjkim movl %ecx,8(%esi) 2419238405Sjkim movl %edx,12(%esi) 2420238405Sjkim jmp .L026fast_dec_out 2421238405Sjkim.align 16 2422238405Sjkim.L024fast_dec_in_place: 2423238405Sjkim.L027fast_dec_in_place_loop: 2424238405Sjkim movl (%esi),%eax 2425238405Sjkim movl 4(%esi),%ebx 2426238405Sjkim movl 8(%esi),%ecx 2427238405Sjkim movl 12(%esi),%edx 2428238405Sjkim leal 60(%esp),%edi 2429238405Sjkim movl %eax,(%edi) 2430238405Sjkim movl %ebx,4(%edi) 2431238405Sjkim movl %ecx,8(%edi) 2432238405Sjkim movl %edx,12(%edi) 2433238405Sjkim movl 44(%esp),%edi 2434238405Sjkim call _x86_AES_decrypt 2435238405Sjkim movl 48(%esp),%edi 2436238405Sjkim movl 36(%esp),%esi 2437238405Sjkim xorl (%edi),%eax 2438238405Sjkim xorl 4(%edi),%ebx 2439238405Sjkim xorl 8(%edi),%ecx 2440238405Sjkim xorl 12(%edi),%edx 2441238405Sjkim movl %eax,(%esi) 2442238405Sjkim movl %ebx,4(%esi) 2443238405Sjkim movl %ecx,8(%esi) 2444238405Sjkim movl %edx,12(%esi) 2445238405Sjkim leal 16(%esi),%esi 2446238405Sjkim movl %esi,36(%esp) 2447238405Sjkim leal 60(%esp),%esi 2448238405Sjkim movl (%esi),%eax 2449238405Sjkim movl 4(%esi),%ebx 2450238405Sjkim movl 8(%esi),%ecx 2451238405Sjkim movl 12(%esi),%edx 2452238405Sjkim movl %eax,(%edi) 2453238405Sjkim movl %ebx,4(%edi) 2454238405Sjkim movl %ecx,8(%edi) 2455238405Sjkim movl %edx,12(%edi) 2456238405Sjkim movl 32(%esp),%esi 2457238405Sjkim movl 40(%esp),%ecx 2458238405Sjkim leal 16(%esi),%esi 2459238405Sjkim movl %esi,32(%esp) 2460238405Sjkim subl $16,%ecx 2461238405Sjkim movl %ecx,40(%esp) 2462238405Sjkim jnz .L027fast_dec_in_place_loop 2463238405Sjkim.align 4 2464238405Sjkim.L026fast_dec_out: 2465238405Sjkim cmpl $0,316(%esp) 2466238405Sjkim movl 44(%esp),%edi 2467238405Sjkim je .L028skip_dzero 2468238405Sjkim movl $60,%ecx 2469238405Sjkim xorl %eax,%eax 2470238405Sjkim.align 4 2471238405Sjkim.long 2884892297 2472238405Sjkim.L028skip_dzero: 2473238405Sjkim movl 28(%esp),%esp 2474238405Sjkim popfl 2475238405Sjkim popl %edi 2476238405Sjkim popl %esi 2477238405Sjkim popl %ebx 2478238405Sjkim popl %ebp 2479238405Sjkim ret 2480238405Sjkim pushfl 2481238405Sjkim.align 16 2482238405Sjkim.L015slow_way: 2483238405Sjkim movl (%eax),%eax 2484238405Sjkim movl 36(%esp),%edi 2485238405Sjkim leal -80(%esp),%esi 2486238405Sjkim andl $-64,%esi 2487238405Sjkim leal -143(%edi),%ebx 2488238405Sjkim subl %esi,%ebx 2489238405Sjkim negl %ebx 2490238405Sjkim andl $960,%ebx 2491238405Sjkim subl %ebx,%esi 2492238405Sjkim leal 768(%esi),%ebx 2493238405Sjkim subl %ebp,%ebx 2494238405Sjkim andl $768,%ebx 2495238405Sjkim leal 2176(%ebp,%ebx,1),%ebp 2496238405Sjkim leal 24(%esp),%edx 2497238405Sjkim xchgl %esi,%esp 2498238405Sjkim addl $4,%esp 2499238405Sjkim movl %ebp,24(%esp) 2500238405Sjkim movl %esi,28(%esp) 2501238405Sjkim movl %eax,52(%esp) 2502238405Sjkim movl (%edx),%eax 2503238405Sjkim movl 4(%edx),%ebx 2504238405Sjkim movl 16(%edx),%esi 2505238405Sjkim movl 20(%edx),%edx 2506238405Sjkim movl %eax,32(%esp) 2507238405Sjkim movl %ebx,36(%esp) 2508238405Sjkim movl %ecx,40(%esp) 2509238405Sjkim movl %edi,44(%esp) 2510238405Sjkim movl %esi,48(%esp) 2511238405Sjkim movl %esi,%edi 2512238405Sjkim movl %eax,%esi 2513238405Sjkim cmpl $0,%edx 2514238405Sjkim je .L029slow_decrypt 2515238405Sjkim cmpl $16,%ecx 2516238405Sjkim movl %ebx,%edx 2517238405Sjkim jb .L030slow_enc_tail 2518238405Sjkim btl $25,52(%esp) 2519238405Sjkim jnc .L031slow_enc_x86 2520238405Sjkim movq (%edi),%mm0 2521238405Sjkim movq 8(%edi),%mm4 2522238405Sjkim.align 16 2523238405Sjkim.L032slow_enc_loop_sse: 2524238405Sjkim pxor (%esi),%mm0 2525238405Sjkim pxor 8(%esi),%mm4 2526238405Sjkim movl 44(%esp),%edi 2527238405Sjkim call _sse_AES_encrypt_compact 2528238405Sjkim movl 32(%esp),%esi 2529238405Sjkim movl 36(%esp),%edi 2530238405Sjkim movl 40(%esp),%ecx 2531238405Sjkim movq %mm0,(%edi) 2532238405Sjkim movq %mm4,8(%edi) 2533238405Sjkim leal 16(%esi),%esi 2534238405Sjkim movl %esi,32(%esp) 2535238405Sjkim leal 16(%edi),%edx 2536238405Sjkim movl %edx,36(%esp) 2537238405Sjkim subl $16,%ecx 2538238405Sjkim cmpl $16,%ecx 2539238405Sjkim movl %ecx,40(%esp) 2540238405Sjkim jae .L032slow_enc_loop_sse 2541238405Sjkim testl $15,%ecx 2542238405Sjkim jnz .L030slow_enc_tail 2543238405Sjkim movl 48(%esp),%esi 2544238405Sjkim movq %mm0,(%esi) 2545238405Sjkim movq %mm4,8(%esi) 2546238405Sjkim emms 2547238405Sjkim movl 28(%esp),%esp 2548238405Sjkim popfl 2549238405Sjkim popl %edi 2550238405Sjkim popl %esi 2551238405Sjkim popl %ebx 2552238405Sjkim popl %ebp 2553238405Sjkim ret 2554238405Sjkim pushfl 2555238405Sjkim.align 16 2556238405Sjkim.L031slow_enc_x86: 2557238405Sjkim movl (%edi),%eax 2558238405Sjkim movl 4(%edi),%ebx 2559238405Sjkim.align 4 2560238405Sjkim.L033slow_enc_loop_x86: 2561238405Sjkim movl 8(%edi),%ecx 2562238405Sjkim movl 12(%edi),%edx 2563238405Sjkim xorl (%esi),%eax 2564238405Sjkim xorl 4(%esi),%ebx 2565238405Sjkim xorl 8(%esi),%ecx 2566238405Sjkim xorl 12(%esi),%edx 2567238405Sjkim movl 44(%esp),%edi 2568238405Sjkim call _x86_AES_encrypt_compact 2569238405Sjkim movl 32(%esp),%esi 2570238405Sjkim movl 36(%esp),%edi 2571238405Sjkim movl %eax,(%edi) 2572238405Sjkim movl %ebx,4(%edi) 2573238405Sjkim movl %ecx,8(%edi) 2574238405Sjkim movl %edx,12(%edi) 2575238405Sjkim movl 40(%esp),%ecx 2576238405Sjkim leal 16(%esi),%esi 2577238405Sjkim movl %esi,32(%esp) 2578238405Sjkim leal 16(%edi),%edx 2579238405Sjkim movl %edx,36(%esp) 2580238405Sjkim subl $16,%ecx 2581238405Sjkim cmpl $16,%ecx 2582238405Sjkim movl %ecx,40(%esp) 2583238405Sjkim jae .L033slow_enc_loop_x86 2584238405Sjkim testl $15,%ecx 2585238405Sjkim jnz .L030slow_enc_tail 2586238405Sjkim movl 48(%esp),%esi 2587238405Sjkim movl 8(%edi),%ecx 2588238405Sjkim movl 12(%edi),%edx 2589238405Sjkim movl %eax,(%esi) 2590238405Sjkim movl %ebx,4(%esi) 2591238405Sjkim movl %ecx,8(%esi) 2592238405Sjkim movl %edx,12(%esi) 2593238405Sjkim movl 28(%esp),%esp 2594238405Sjkim popfl 2595238405Sjkim popl %edi 2596238405Sjkim popl %esi 2597238405Sjkim popl %ebx 2598238405Sjkim popl %ebp 2599238405Sjkim ret 2600238405Sjkim pushfl 2601238405Sjkim.align 16 2602238405Sjkim.L030slow_enc_tail: 2603238405Sjkim emms 2604238405Sjkim movl %edx,%edi 2605238405Sjkim movl $16,%ebx 2606238405Sjkim subl %ecx,%ebx 2607238405Sjkim cmpl %esi,%edi 2608238405Sjkim je .L034enc_in_place 2609238405Sjkim.align 4 2610238405Sjkim.long 2767451785 2611238405Sjkim jmp .L035enc_skip_in_place 2612238405Sjkim.L034enc_in_place: 2613238405Sjkim leal (%edi,%ecx,1),%edi 2614238405Sjkim.L035enc_skip_in_place: 2615238405Sjkim movl %ebx,%ecx 2616238405Sjkim xorl %eax,%eax 2617238405Sjkim.align 4 2618238405Sjkim.long 2868115081 2619238405Sjkim movl 48(%esp),%edi 2620238405Sjkim movl %edx,%esi 2621238405Sjkim movl (%edi),%eax 2622238405Sjkim movl 4(%edi),%ebx 2623238405Sjkim movl $16,40(%esp) 2624238405Sjkim jmp .L033slow_enc_loop_x86 2625238405Sjkim.align 16 2626238405Sjkim.L029slow_decrypt: 2627238405Sjkim btl $25,52(%esp) 2628238405Sjkim jnc .L036slow_dec_loop_x86 2629238405Sjkim.align 4 2630238405Sjkim.L037slow_dec_loop_sse: 2631238405Sjkim movq (%esi),%mm0 2632238405Sjkim movq 8(%esi),%mm4 2633238405Sjkim movl 44(%esp),%edi 2634238405Sjkim call _sse_AES_decrypt_compact 2635238405Sjkim movl 32(%esp),%esi 2636238405Sjkim leal 60(%esp),%eax 2637238405Sjkim movl 36(%esp),%ebx 2638238405Sjkim movl 40(%esp),%ecx 2639238405Sjkim movl 48(%esp),%edi 2640238405Sjkim movq (%esi),%mm1 2641238405Sjkim movq 8(%esi),%mm5 2642238405Sjkim pxor (%edi),%mm0 2643238405Sjkim pxor 8(%edi),%mm4 2644238405Sjkim movq %mm1,(%edi) 2645238405Sjkim movq %mm5,8(%edi) 2646238405Sjkim subl $16,%ecx 2647238405Sjkim jc .L038slow_dec_partial_sse 2648238405Sjkim movq %mm0,(%ebx) 2649238405Sjkim movq %mm4,8(%ebx) 2650238405Sjkim leal 16(%ebx),%ebx 2651238405Sjkim movl %ebx,36(%esp) 2652238405Sjkim leal 16(%esi),%esi 2653238405Sjkim movl %esi,32(%esp) 2654238405Sjkim movl %ecx,40(%esp) 2655238405Sjkim jnz .L037slow_dec_loop_sse 2656238405Sjkim emms 2657238405Sjkim movl 28(%esp),%esp 2658238405Sjkim popfl 2659238405Sjkim popl %edi 2660238405Sjkim popl %esi 2661238405Sjkim popl %ebx 2662238405Sjkim popl %ebp 2663238405Sjkim ret 2664238405Sjkim pushfl 2665238405Sjkim.align 16 2666238405Sjkim.L038slow_dec_partial_sse: 2667238405Sjkim movq %mm0,(%eax) 2668238405Sjkim movq %mm4,8(%eax) 2669238405Sjkim emms 2670238405Sjkim addl $16,%ecx 2671238405Sjkim movl %ebx,%edi 2672238405Sjkim movl %eax,%esi 2673238405Sjkim.align 4 2674238405Sjkim.long 2767451785 2675238405Sjkim movl 28(%esp),%esp 2676238405Sjkim popfl 2677238405Sjkim popl %edi 2678238405Sjkim popl %esi 2679238405Sjkim popl %ebx 2680238405Sjkim popl %ebp 2681238405Sjkim ret 2682238405Sjkim pushfl 2683238405Sjkim.align 16 2684238405Sjkim.L036slow_dec_loop_x86: 2685238405Sjkim movl (%esi),%eax 2686238405Sjkim movl 4(%esi),%ebx 2687238405Sjkim movl 8(%esi),%ecx 2688238405Sjkim movl 12(%esi),%edx 2689238405Sjkim leal 60(%esp),%edi 2690238405Sjkim movl %eax,(%edi) 2691238405Sjkim movl %ebx,4(%edi) 2692238405Sjkim movl %ecx,8(%edi) 2693238405Sjkim movl %edx,12(%edi) 2694238405Sjkim movl 44(%esp),%edi 2695238405Sjkim call _x86_AES_decrypt_compact 2696238405Sjkim movl 48(%esp),%edi 2697238405Sjkim movl 40(%esp),%esi 2698238405Sjkim xorl (%edi),%eax 2699238405Sjkim xorl 4(%edi),%ebx 2700238405Sjkim xorl 8(%edi),%ecx 2701238405Sjkim xorl 12(%edi),%edx 2702238405Sjkim subl $16,%esi 2703238405Sjkim jc .L039slow_dec_partial_x86 2704238405Sjkim movl %esi,40(%esp) 2705238405Sjkim movl 36(%esp),%esi 2706238405Sjkim movl %eax,(%esi) 2707238405Sjkim movl %ebx,4(%esi) 2708238405Sjkim movl %ecx,8(%esi) 2709238405Sjkim movl %edx,12(%esi) 2710238405Sjkim leal 16(%esi),%esi 2711238405Sjkim movl %esi,36(%esp) 2712238405Sjkim leal 60(%esp),%esi 2713238405Sjkim movl (%esi),%eax 2714238405Sjkim movl 4(%esi),%ebx 2715238405Sjkim movl 8(%esi),%ecx 2716238405Sjkim movl 12(%esi),%edx 2717238405Sjkim movl %eax,(%edi) 2718238405Sjkim movl %ebx,4(%edi) 2719238405Sjkim movl %ecx,8(%edi) 2720238405Sjkim movl %edx,12(%edi) 2721238405Sjkim movl 32(%esp),%esi 2722238405Sjkim leal 16(%esi),%esi 2723238405Sjkim movl %esi,32(%esp) 2724238405Sjkim jnz .L036slow_dec_loop_x86 2725238405Sjkim movl 28(%esp),%esp 2726238405Sjkim popfl 2727238405Sjkim popl %edi 2728238405Sjkim popl %esi 2729238405Sjkim popl %ebx 2730238405Sjkim popl %ebp 2731238405Sjkim ret 2732238405Sjkim pushfl 2733238405Sjkim.align 16 2734238405Sjkim.L039slow_dec_partial_x86: 2735238405Sjkim leal 60(%esp),%esi 2736238405Sjkim movl %eax,(%esi) 2737238405Sjkim movl %ebx,4(%esi) 2738238405Sjkim movl %ecx,8(%esi) 2739238405Sjkim movl %edx,12(%esi) 2740238405Sjkim movl 32(%esp),%esi 2741238405Sjkim movl (%esi),%eax 2742238405Sjkim movl 4(%esi),%ebx 2743238405Sjkim movl 8(%esi),%ecx 2744238405Sjkim movl 12(%esi),%edx 2745238405Sjkim movl %eax,(%edi) 2746238405Sjkim movl %ebx,4(%edi) 2747238405Sjkim movl %ecx,8(%edi) 2748238405Sjkim movl %edx,12(%edi) 2749238405Sjkim movl 40(%esp),%ecx 2750238405Sjkim movl 36(%esp),%edi 2751238405Sjkim leal 60(%esp),%esi 2752238405Sjkim.align 4 2753238405Sjkim.long 2767451785 2754238405Sjkim movl 28(%esp),%esp 2755238405Sjkim popfl 2756238405Sjkim popl %edi 2757238405Sjkim popl %esi 2758238405Sjkim popl %ebx 2759238405Sjkim popl %ebp 2760238405Sjkim ret 2761238405Sjkim.size AES_cbc_encrypt,.-.L_AES_cbc_encrypt_begin 2762238405Sjkim.type _x86_AES_set_encrypt_key,@function 2763238405Sjkim.align 16 2764238405Sjkim_x86_AES_set_encrypt_key: 2765238405Sjkim pushl %ebp 2766238405Sjkim pushl %ebx 2767238405Sjkim pushl %esi 2768238405Sjkim pushl %edi 2769238405Sjkim movl 24(%esp),%esi 2770238405Sjkim movl 32(%esp),%edi 2771238405Sjkim testl $-1,%esi 2772238405Sjkim jz .L040badpointer 2773238405Sjkim testl $-1,%edi 2774238405Sjkim jz .L040badpointer 2775238405Sjkim call .L041pic_point 2776238405Sjkim.L041pic_point: 2777238405Sjkim popl %ebp 2778238405Sjkim leal .LAES_Te-.L041pic_point(%ebp),%ebp 2779238405Sjkim leal 2176(%ebp),%ebp 2780238405Sjkim movl -128(%ebp),%eax 2781238405Sjkim movl -96(%ebp),%ebx 2782238405Sjkim movl -64(%ebp),%ecx 2783238405Sjkim movl -32(%ebp),%edx 2784238405Sjkim movl (%ebp),%eax 2785238405Sjkim movl 32(%ebp),%ebx 2786238405Sjkim movl 64(%ebp),%ecx 2787238405Sjkim movl 96(%ebp),%edx 2788238405Sjkim movl 28(%esp),%ecx 2789238405Sjkim cmpl $128,%ecx 2790238405Sjkim je .L04210rounds 2791238405Sjkim cmpl $192,%ecx 2792238405Sjkim je .L04312rounds 2793238405Sjkim cmpl $256,%ecx 2794238405Sjkim je .L04414rounds 2795238405Sjkim movl $-2,%eax 2796238405Sjkim jmp .L045exit 2797238405Sjkim.L04210rounds: 2798238405Sjkim movl (%esi),%eax 2799238405Sjkim movl 4(%esi),%ebx 2800238405Sjkim movl 8(%esi),%ecx 2801238405Sjkim movl 12(%esi),%edx 2802238405Sjkim movl %eax,(%edi) 2803238405Sjkim movl %ebx,4(%edi) 2804238405Sjkim movl %ecx,8(%edi) 2805238405Sjkim movl %edx,12(%edi) 2806238405Sjkim xorl %ecx,%ecx 2807238405Sjkim jmp .L04610shortcut 2808238405Sjkim.align 4 2809238405Sjkim.L04710loop: 2810238405Sjkim movl (%edi),%eax 2811238405Sjkim movl 12(%edi),%edx 2812238405Sjkim.L04610shortcut: 2813238405Sjkim movzbl %dl,%esi 2814238405Sjkim movzbl -128(%ebp,%esi,1),%ebx 2815238405Sjkim movzbl %dh,%esi 2816238405Sjkim shll $24,%ebx 2817238405Sjkim xorl %ebx,%eax 2818238405Sjkim movzbl -128(%ebp,%esi,1),%ebx 2819238405Sjkim shrl $16,%edx 2820238405Sjkim movzbl %dl,%esi 2821238405Sjkim xorl %ebx,%eax 2822238405Sjkim movzbl -128(%ebp,%esi,1),%ebx 2823238405Sjkim movzbl %dh,%esi 2824238405Sjkim shll $8,%ebx 2825238405Sjkim xorl %ebx,%eax 2826238405Sjkim movzbl -128(%ebp,%esi,1),%ebx 2827238405Sjkim shll $16,%ebx 2828238405Sjkim xorl %ebx,%eax 2829238405Sjkim xorl 896(%ebp,%ecx,4),%eax 2830238405Sjkim movl %eax,16(%edi) 2831238405Sjkim xorl 4(%edi),%eax 2832238405Sjkim movl %eax,20(%edi) 2833238405Sjkim xorl 8(%edi),%eax 2834238405Sjkim movl %eax,24(%edi) 2835238405Sjkim xorl 12(%edi),%eax 2836238405Sjkim movl %eax,28(%edi) 2837238405Sjkim incl %ecx 2838238405Sjkim addl $16,%edi 2839238405Sjkim cmpl $10,%ecx 2840238405Sjkim jl .L04710loop 2841238405Sjkim movl $10,80(%edi) 2842238405Sjkim xorl %eax,%eax 2843238405Sjkim jmp .L045exit 2844238405Sjkim.L04312rounds: 2845238405Sjkim movl (%esi),%eax 2846238405Sjkim movl 4(%esi),%ebx 2847238405Sjkim movl 8(%esi),%ecx 2848238405Sjkim movl 12(%esi),%edx 2849238405Sjkim movl %eax,(%edi) 2850238405Sjkim movl %ebx,4(%edi) 2851238405Sjkim movl %ecx,8(%edi) 2852238405Sjkim movl %edx,12(%edi) 2853238405Sjkim movl 16(%esi),%ecx 2854238405Sjkim movl 20(%esi),%edx 2855238405Sjkim movl %ecx,16(%edi) 2856238405Sjkim movl %edx,20(%edi) 2857238405Sjkim xorl %ecx,%ecx 2858238405Sjkim jmp .L04812shortcut 2859238405Sjkim.align 4 2860238405Sjkim.L04912loop: 2861238405Sjkim movl (%edi),%eax 2862238405Sjkim movl 20(%edi),%edx 2863238405Sjkim.L04812shortcut: 2864238405Sjkim movzbl %dl,%esi 2865238405Sjkim movzbl -128(%ebp,%esi,1),%ebx 2866238405Sjkim movzbl %dh,%esi 2867238405Sjkim shll $24,%ebx 2868238405Sjkim xorl %ebx,%eax 2869238405Sjkim movzbl -128(%ebp,%esi,1),%ebx 2870238405Sjkim shrl $16,%edx 2871238405Sjkim movzbl %dl,%esi 2872238405Sjkim xorl %ebx,%eax 2873238405Sjkim movzbl -128(%ebp,%esi,1),%ebx 2874238405Sjkim movzbl %dh,%esi 2875238405Sjkim shll $8,%ebx 2876238405Sjkim xorl %ebx,%eax 2877238405Sjkim movzbl -128(%ebp,%esi,1),%ebx 2878238405Sjkim shll $16,%ebx 2879238405Sjkim xorl %ebx,%eax 2880238405Sjkim xorl 896(%ebp,%ecx,4),%eax 2881238405Sjkim movl %eax,24(%edi) 2882238405Sjkim xorl 4(%edi),%eax 2883238405Sjkim movl %eax,28(%edi) 2884238405Sjkim xorl 8(%edi),%eax 2885238405Sjkim movl %eax,32(%edi) 2886238405Sjkim xorl 12(%edi),%eax 2887238405Sjkim movl %eax,36(%edi) 2888238405Sjkim cmpl $7,%ecx 2889238405Sjkim je .L05012break 2890238405Sjkim incl %ecx 2891238405Sjkim xorl 16(%edi),%eax 2892238405Sjkim movl %eax,40(%edi) 2893238405Sjkim xorl 20(%edi),%eax 2894238405Sjkim movl %eax,44(%edi) 2895238405Sjkim addl $24,%edi 2896238405Sjkim jmp .L04912loop 2897238405Sjkim.L05012break: 2898238405Sjkim movl $12,72(%edi) 2899238405Sjkim xorl %eax,%eax 2900238405Sjkim jmp .L045exit 2901238405Sjkim.L04414rounds: 2902238405Sjkim movl (%esi),%eax 2903238405Sjkim movl 4(%esi),%ebx 2904238405Sjkim movl 8(%esi),%ecx 2905238405Sjkim movl 12(%esi),%edx 2906238405Sjkim movl %eax,(%edi) 2907238405Sjkim movl %ebx,4(%edi) 2908238405Sjkim movl %ecx,8(%edi) 2909238405Sjkim movl %edx,12(%edi) 2910238405Sjkim movl 16(%esi),%eax 2911238405Sjkim movl 20(%esi),%ebx 2912238405Sjkim movl 24(%esi),%ecx 2913238405Sjkim movl 28(%esi),%edx 2914238405Sjkim movl %eax,16(%edi) 2915238405Sjkim movl %ebx,20(%edi) 2916238405Sjkim movl %ecx,24(%edi) 2917238405Sjkim movl %edx,28(%edi) 2918238405Sjkim xorl %ecx,%ecx 2919238405Sjkim jmp .L05114shortcut 2920238405Sjkim.align 4 2921238405Sjkim.L05214loop: 2922238405Sjkim movl 28(%edi),%edx 2923238405Sjkim.L05114shortcut: 2924238405Sjkim movl (%edi),%eax 2925238405Sjkim movzbl %dl,%esi 2926238405Sjkim movzbl -128(%ebp,%esi,1),%ebx 2927238405Sjkim movzbl %dh,%esi 2928238405Sjkim shll $24,%ebx 2929238405Sjkim xorl %ebx,%eax 2930238405Sjkim movzbl -128(%ebp,%esi,1),%ebx 2931238405Sjkim shrl $16,%edx 2932238405Sjkim movzbl %dl,%esi 2933238405Sjkim xorl %ebx,%eax 2934238405Sjkim movzbl -128(%ebp,%esi,1),%ebx 2935238405Sjkim movzbl %dh,%esi 2936238405Sjkim shll $8,%ebx 2937238405Sjkim xorl %ebx,%eax 2938238405Sjkim movzbl -128(%ebp,%esi,1),%ebx 2939238405Sjkim shll $16,%ebx 2940238405Sjkim xorl %ebx,%eax 2941238405Sjkim xorl 896(%ebp,%ecx,4),%eax 2942238405Sjkim movl %eax,32(%edi) 2943238405Sjkim xorl 4(%edi),%eax 2944238405Sjkim movl %eax,36(%edi) 2945238405Sjkim xorl 8(%edi),%eax 2946238405Sjkim movl %eax,40(%edi) 2947238405Sjkim xorl 12(%edi),%eax 2948238405Sjkim movl %eax,44(%edi) 2949238405Sjkim cmpl $6,%ecx 2950238405Sjkim je .L05314break 2951238405Sjkim incl %ecx 2952238405Sjkim movl %eax,%edx 2953238405Sjkim movl 16(%edi),%eax 2954238405Sjkim movzbl %dl,%esi 2955238405Sjkim movzbl -128(%ebp,%esi,1),%ebx 2956238405Sjkim movzbl %dh,%esi 2957238405Sjkim xorl %ebx,%eax 2958238405Sjkim movzbl -128(%ebp,%esi,1),%ebx 2959238405Sjkim shrl $16,%edx 2960238405Sjkim shll $8,%ebx 2961238405Sjkim movzbl %dl,%esi 2962238405Sjkim xorl %ebx,%eax 2963238405Sjkim movzbl -128(%ebp,%esi,1),%ebx 2964238405Sjkim movzbl %dh,%esi 2965238405Sjkim shll $16,%ebx 2966238405Sjkim xorl %ebx,%eax 2967238405Sjkim movzbl -128(%ebp,%esi,1),%ebx 2968238405Sjkim shll $24,%ebx 2969238405Sjkim xorl %ebx,%eax 2970238405Sjkim movl %eax,48(%edi) 2971238405Sjkim xorl 20(%edi),%eax 2972238405Sjkim movl %eax,52(%edi) 2973238405Sjkim xorl 24(%edi),%eax 2974238405Sjkim movl %eax,56(%edi) 2975238405Sjkim xorl 28(%edi),%eax 2976238405Sjkim movl %eax,60(%edi) 2977238405Sjkim addl $32,%edi 2978238405Sjkim jmp .L05214loop 2979238405Sjkim.L05314break: 2980238405Sjkim movl $14,48(%edi) 2981238405Sjkim xorl %eax,%eax 2982238405Sjkim jmp .L045exit 2983238405Sjkim.L040badpointer: 2984238405Sjkim movl $-1,%eax 2985238405Sjkim.L045exit: 2986238405Sjkim popl %edi 2987238405Sjkim popl %esi 2988238405Sjkim popl %ebx 2989238405Sjkim popl %ebp 2990238405Sjkim ret 2991238405Sjkim.size _x86_AES_set_encrypt_key,.-_x86_AES_set_encrypt_key 2992238405Sjkim.globl private_AES_set_encrypt_key 2993238405Sjkim.type private_AES_set_encrypt_key,@function 2994238405Sjkim.align 16 2995238405Sjkimprivate_AES_set_encrypt_key: 2996238405Sjkim.L_private_AES_set_encrypt_key_begin: 2997238405Sjkim call _x86_AES_set_encrypt_key 2998238405Sjkim ret 2999238405Sjkim.size private_AES_set_encrypt_key,.-.L_private_AES_set_encrypt_key_begin 3000238405Sjkim.globl private_AES_set_decrypt_key 3001238405Sjkim.type private_AES_set_decrypt_key,@function 3002238405Sjkim.align 16 3003238405Sjkimprivate_AES_set_decrypt_key: 3004238405Sjkim.L_private_AES_set_decrypt_key_begin: 3005238405Sjkim call _x86_AES_set_encrypt_key 3006238405Sjkim cmpl $0,%eax 3007238405Sjkim je .L054proceed 3008238405Sjkim ret 3009238405Sjkim.L054proceed: 3010238405Sjkim pushl %ebp 3011238405Sjkim pushl %ebx 3012238405Sjkim pushl %esi 3013238405Sjkim pushl %edi 3014238405Sjkim movl 28(%esp),%esi 3015238405Sjkim movl 240(%esi),%ecx 3016238405Sjkim leal (,%ecx,4),%ecx 3017238405Sjkim leal (%esi,%ecx,4),%edi 3018238405Sjkim.align 4 3019238405Sjkim.L055invert: 3020238405Sjkim movl (%esi),%eax 3021238405Sjkim movl 4(%esi),%ebx 3022238405Sjkim movl (%edi),%ecx 3023238405Sjkim movl 4(%edi),%edx 3024238405Sjkim movl %eax,(%edi) 3025238405Sjkim movl %ebx,4(%edi) 3026238405Sjkim movl %ecx,(%esi) 3027238405Sjkim movl %edx,4(%esi) 3028238405Sjkim movl 8(%esi),%eax 3029238405Sjkim movl 12(%esi),%ebx 3030238405Sjkim movl 8(%edi),%ecx 3031238405Sjkim movl 12(%edi),%edx 3032238405Sjkim movl %eax,8(%edi) 3033238405Sjkim movl %ebx,12(%edi) 3034238405Sjkim movl %ecx,8(%esi) 3035238405Sjkim movl %edx,12(%esi) 3036238405Sjkim addl $16,%esi 3037238405Sjkim subl $16,%edi 3038238405Sjkim cmpl %edi,%esi 3039238405Sjkim jne .L055invert 3040238405Sjkim movl 28(%esp),%edi 3041238405Sjkim movl 240(%edi),%esi 3042238405Sjkim leal -2(%esi,%esi,1),%esi 3043238405Sjkim leal (%edi,%esi,8),%esi 3044238405Sjkim movl %esi,28(%esp) 3045238405Sjkim movl 16(%edi),%eax 3046238405Sjkim.align 4 3047238405Sjkim.L056permute: 3048238405Sjkim addl $16,%edi 3049238405Sjkim movl %eax,%esi 3050238405Sjkim andl $2155905152,%esi 3051238405Sjkim movl %esi,%ebp 3052238405Sjkim shrl $7,%ebp 3053238405Sjkim leal (%eax,%eax,1),%ebx 3054238405Sjkim subl %ebp,%esi 3055238405Sjkim andl $4278124286,%ebx 3056238405Sjkim andl $454761243,%esi 3057238405Sjkim xorl %ebx,%esi 3058238405Sjkim movl %esi,%ebx 3059238405Sjkim andl $2155905152,%esi 3060238405Sjkim movl %esi,%ebp 3061238405Sjkim shrl $7,%ebp 3062238405Sjkim leal (%ebx,%ebx,1),%ecx 3063238405Sjkim subl %ebp,%esi 3064238405Sjkim andl $4278124286,%ecx 3065238405Sjkim andl $454761243,%esi 3066238405Sjkim xorl %eax,%ebx 3067238405Sjkim xorl %ecx,%esi 3068238405Sjkim movl %esi,%ecx 3069238405Sjkim andl $2155905152,%esi 3070238405Sjkim movl %esi,%ebp 3071238405Sjkim shrl $7,%ebp 3072238405Sjkim leal (%ecx,%ecx,1),%edx 3073238405Sjkim xorl %eax,%ecx 3074238405Sjkim subl %ebp,%esi 3075238405Sjkim andl $4278124286,%edx 3076238405Sjkim andl $454761243,%esi 3077238405Sjkim roll $8,%eax 3078238405Sjkim xorl %esi,%edx 3079238405Sjkim movl 4(%edi),%ebp 3080238405Sjkim xorl %ebx,%eax 3081238405Sjkim xorl %edx,%ebx 3082238405Sjkim xorl %ecx,%eax 3083238405Sjkim roll $24,%ebx 3084238405Sjkim xorl %edx,%ecx 3085238405Sjkim xorl %edx,%eax 3086238405Sjkim roll $16,%ecx 3087238405Sjkim xorl %ebx,%eax 3088238405Sjkim roll $8,%edx 3089238405Sjkim xorl %ecx,%eax 3090238405Sjkim movl %ebp,%ebx 3091238405Sjkim xorl %edx,%eax 3092238405Sjkim movl %eax,(%edi) 3093238405Sjkim movl %ebx,%esi 3094238405Sjkim andl $2155905152,%esi 3095238405Sjkim movl %esi,%ebp 3096238405Sjkim shrl $7,%ebp 3097238405Sjkim leal (%ebx,%ebx,1),%ecx 3098238405Sjkim subl %ebp,%esi 3099238405Sjkim andl $4278124286,%ecx 3100238405Sjkim andl $454761243,%esi 3101238405Sjkim xorl %ecx,%esi 3102238405Sjkim movl %esi,%ecx 3103238405Sjkim andl $2155905152,%esi 3104238405Sjkim movl %esi,%ebp 3105238405Sjkim shrl $7,%ebp 3106238405Sjkim leal (%ecx,%ecx,1),%edx 3107238405Sjkim subl %ebp,%esi 3108238405Sjkim andl $4278124286,%edx 3109238405Sjkim andl $454761243,%esi 3110238405Sjkim xorl %ebx,%ecx 3111238405Sjkim xorl %edx,%esi 3112238405Sjkim movl %esi,%edx 3113238405Sjkim andl $2155905152,%esi 3114238405Sjkim movl %esi,%ebp 3115238405Sjkim shrl $7,%ebp 3116238405Sjkim leal (%edx,%edx,1),%eax 3117238405Sjkim xorl %ebx,%edx 3118238405Sjkim subl %ebp,%esi 3119238405Sjkim andl $4278124286,%eax 3120238405Sjkim andl $454761243,%esi 3121238405Sjkim roll $8,%ebx 3122238405Sjkim xorl %esi,%eax 3123238405Sjkim movl 8(%edi),%ebp 3124238405Sjkim xorl %ecx,%ebx 3125238405Sjkim xorl %eax,%ecx 3126238405Sjkim xorl %edx,%ebx 3127238405Sjkim roll $24,%ecx 3128238405Sjkim xorl %eax,%edx 3129238405Sjkim xorl %eax,%ebx 3130238405Sjkim roll $16,%edx 3131238405Sjkim xorl %ecx,%ebx 3132238405Sjkim roll $8,%eax 3133238405Sjkim xorl %edx,%ebx 3134238405Sjkim movl %ebp,%ecx 3135238405Sjkim xorl %eax,%ebx 3136238405Sjkim movl %ebx,4(%edi) 3137238405Sjkim movl %ecx,%esi 3138238405Sjkim andl $2155905152,%esi 3139238405Sjkim movl %esi,%ebp 3140238405Sjkim shrl $7,%ebp 3141238405Sjkim leal (%ecx,%ecx,1),%edx 3142238405Sjkim subl %ebp,%esi 3143238405Sjkim andl $4278124286,%edx 3144238405Sjkim andl $454761243,%esi 3145238405Sjkim xorl %edx,%esi 3146238405Sjkim movl %esi,%edx 3147238405Sjkim andl $2155905152,%esi 3148238405Sjkim movl %esi,%ebp 3149238405Sjkim shrl $7,%ebp 3150238405Sjkim leal (%edx,%edx,1),%eax 3151238405Sjkim subl %ebp,%esi 3152238405Sjkim andl $4278124286,%eax 3153238405Sjkim andl $454761243,%esi 3154238405Sjkim xorl %ecx,%edx 3155238405Sjkim xorl %eax,%esi 3156238405Sjkim movl %esi,%eax 3157238405Sjkim andl $2155905152,%esi 3158238405Sjkim movl %esi,%ebp 3159238405Sjkim shrl $7,%ebp 3160238405Sjkim leal (%eax,%eax,1),%ebx 3161238405Sjkim xorl %ecx,%eax 3162238405Sjkim subl %ebp,%esi 3163238405Sjkim andl $4278124286,%ebx 3164238405Sjkim andl $454761243,%esi 3165238405Sjkim roll $8,%ecx 3166238405Sjkim xorl %esi,%ebx 3167238405Sjkim movl 12(%edi),%ebp 3168238405Sjkim xorl %edx,%ecx 3169238405Sjkim xorl %ebx,%edx 3170238405Sjkim xorl %eax,%ecx 3171238405Sjkim roll $24,%edx 3172238405Sjkim xorl %ebx,%eax 3173238405Sjkim xorl %ebx,%ecx 3174238405Sjkim roll $16,%eax 3175238405Sjkim xorl %edx,%ecx 3176238405Sjkim roll $8,%ebx 3177238405Sjkim xorl %eax,%ecx 3178238405Sjkim movl %ebp,%edx 3179238405Sjkim xorl %ebx,%ecx 3180238405Sjkim movl %ecx,8(%edi) 3181238405Sjkim movl %edx,%esi 3182238405Sjkim andl $2155905152,%esi 3183238405Sjkim movl %esi,%ebp 3184238405Sjkim shrl $7,%ebp 3185238405Sjkim leal (%edx,%edx,1),%eax 3186238405Sjkim subl %ebp,%esi 3187238405Sjkim andl $4278124286,%eax 3188238405Sjkim andl $454761243,%esi 3189238405Sjkim xorl %eax,%esi 3190238405Sjkim movl %esi,%eax 3191238405Sjkim andl $2155905152,%esi 3192238405Sjkim movl %esi,%ebp 3193238405Sjkim shrl $7,%ebp 3194238405Sjkim leal (%eax,%eax,1),%ebx 3195238405Sjkim subl %ebp,%esi 3196238405Sjkim andl $4278124286,%ebx 3197238405Sjkim andl $454761243,%esi 3198238405Sjkim xorl %edx,%eax 3199238405Sjkim xorl %ebx,%esi 3200238405Sjkim movl %esi,%ebx 3201238405Sjkim andl $2155905152,%esi 3202238405Sjkim movl %esi,%ebp 3203238405Sjkim shrl $7,%ebp 3204238405Sjkim leal (%ebx,%ebx,1),%ecx 3205238405Sjkim xorl %edx,%ebx 3206238405Sjkim subl %ebp,%esi 3207238405Sjkim andl $4278124286,%ecx 3208238405Sjkim andl $454761243,%esi 3209238405Sjkim roll $8,%edx 3210238405Sjkim xorl %esi,%ecx 3211238405Sjkim movl 16(%edi),%ebp 3212238405Sjkim xorl %eax,%edx 3213238405Sjkim xorl %ecx,%eax 3214238405Sjkim xorl %ebx,%edx 3215238405Sjkim roll $24,%eax 3216238405Sjkim xorl %ecx,%ebx 3217238405Sjkim xorl %ecx,%edx 3218238405Sjkim roll $16,%ebx 3219238405Sjkim xorl %eax,%edx 3220238405Sjkim roll $8,%ecx 3221238405Sjkim xorl %ebx,%edx 3222238405Sjkim movl %ebp,%eax 3223238405Sjkim xorl %ecx,%edx 3224238405Sjkim movl %edx,12(%edi) 3225238405Sjkim cmpl 28(%esp),%edi 3226238405Sjkim jb .L056permute 3227238405Sjkim xorl %eax,%eax 3228238405Sjkim popl %edi 3229238405Sjkim popl %esi 3230238405Sjkim popl %ebx 3231238405Sjkim popl %ebp 3232238405Sjkim ret 3233238405Sjkim.size private_AES_set_decrypt_key,.-.L_private_AES_set_decrypt_key_begin 3234238405Sjkim.byte 65,69,83,32,102,111,114,32,120,56,54,44,32,67,82,89 3235238405Sjkim.byte 80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114 3236238405Sjkim.byte 111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 3237238405Sjkim.comm OPENSSL_ia32cap_P,8,4 3238