OLD | NEW |
(Empty) | |
| 1 %ifidn __OUTPUT_FORMAT__,obj |
| 2 section code use32 class=code align=64 |
| 3 %elifidn __OUTPUT_FORMAT__,win32 |
| 4 %ifdef __YASM_VERSION_ID__ |
| 5 %if __YASM_VERSION_ID__ < 01010000h |
| 6 %error yasm version 1.1.0 or later needed. |
| 7 %endif |
| 8 ; Yasm automatically includes .00 and complains about redefining it. |
| 9 ; https://www.tortall.net/projects/yasm/manual/html/objfmt-win32-safeseh.html |
| 10 %else |
| 11 $@feat.00 equ 1 |
| 12 %endif |
| 13 section .text code align=64 |
| 14 %else |
| 15 section .text code |
| 16 %endif |
| 17 align 16 |
| 18 __x86_AES_encrypt_compact: |
| 19 mov DWORD [20+esp],edi |
| 20 xor eax,DWORD [edi] |
| 21 xor ebx,DWORD [4+edi] |
| 22 xor ecx,DWORD [8+edi] |
| 23 xor edx,DWORD [12+edi] |
| 24 mov esi,DWORD [240+edi] |
| 25 lea esi,[esi*1+esi-2] |
| 26 lea esi,[esi*8+edi] |
| 27 mov DWORD [24+esp],esi |
| 28 mov edi,DWORD [ebp-128] |
| 29 mov esi,DWORD [ebp-96] |
| 30 mov edi,DWORD [ebp-64] |
| 31 mov esi,DWORD [ebp-32] |
| 32 mov edi,DWORD [ebp] |
| 33 mov esi,DWORD [32+ebp] |
| 34 mov edi,DWORD [64+ebp] |
| 35 mov esi,DWORD [96+ebp] |
| 36 align 16 |
| 37 L$000loop: |
| 38 mov esi,eax |
| 39 and esi,255 |
| 40 movzx esi,BYTE [esi*1+ebp-128] |
| 41 movzx edi,bh |
| 42 movzx edi,BYTE [edi*1+ebp-128] |
| 43 shl edi,8 |
| 44 xor esi,edi |
| 45 mov edi,ecx |
| 46 shr edi,16 |
| 47 and edi,255 |
| 48 movzx edi,BYTE [edi*1+ebp-128] |
| 49 shl edi,16 |
| 50 xor esi,edi |
| 51 mov edi,edx |
| 52 shr edi,24 |
| 53 movzx edi,BYTE [edi*1+ebp-128] |
| 54 shl edi,24 |
| 55 xor esi,edi |
| 56 mov DWORD [4+esp],esi |
| 57 mov esi,ebx |
| 58 and esi,255 |
| 59 shr ebx,16 |
| 60 movzx esi,BYTE [esi*1+ebp-128] |
| 61 movzx edi,ch |
| 62 movzx edi,BYTE [edi*1+ebp-128] |
| 63 shl edi,8 |
| 64 xor esi,edi |
| 65 mov edi,edx |
| 66 shr edi,16 |
| 67 and edi,255 |
| 68 movzx edi,BYTE [edi*1+ebp-128] |
| 69 shl edi,16 |
| 70 xor esi,edi |
| 71 mov edi,eax |
| 72 shr edi,24 |
| 73 movzx edi,BYTE [edi*1+ebp-128] |
| 74 shl edi,24 |
| 75 xor esi,edi |
| 76 mov DWORD [8+esp],esi |
| 77 mov esi,ecx |
| 78 and esi,255 |
| 79 shr ecx,24 |
| 80 movzx esi,BYTE [esi*1+ebp-128] |
| 81 movzx edi,dh |
| 82 movzx edi,BYTE [edi*1+ebp-128] |
| 83 shl edi,8 |
| 84 xor esi,edi |
| 85 mov edi,eax |
| 86 shr edi,16 |
| 87 and edx,255 |
| 88 and edi,255 |
| 89 movzx edi,BYTE [edi*1+ebp-128] |
| 90 shl edi,16 |
| 91 xor esi,edi |
| 92 movzx edi,bh |
| 93 movzx edi,BYTE [edi*1+ebp-128] |
| 94 shl edi,24 |
| 95 xor esi,edi |
| 96 and edx,255 |
| 97 movzx edx,BYTE [edx*1+ebp-128] |
| 98 movzx eax,ah |
| 99 movzx eax,BYTE [eax*1+ebp-128] |
| 100 shl eax,8 |
| 101 xor edx,eax |
| 102 mov eax,DWORD [4+esp] |
| 103 and ebx,255 |
| 104 movzx ebx,BYTE [ebx*1+ebp-128] |
| 105 shl ebx,16 |
| 106 xor edx,ebx |
| 107 mov ebx,DWORD [8+esp] |
| 108 movzx ecx,BYTE [ecx*1+ebp-128] |
| 109 shl ecx,24 |
| 110 xor edx,ecx |
| 111 mov ecx,esi |
| 112 mov ebp,2155905152 |
| 113 and ebp,ecx |
| 114 lea edi,[ecx*1+ecx] |
| 115 mov esi,ebp |
| 116 shr ebp,7 |
| 117 and edi,4278124286 |
| 118 sub esi,ebp |
| 119 mov ebp,ecx |
| 120 and esi,454761243 |
| 121 ror ebp,16 |
| 122 xor esi,edi |
| 123 mov edi,ecx |
| 124 xor ecx,esi |
| 125 ror edi,24 |
| 126 xor esi,ebp |
| 127 rol ecx,24 |
| 128 xor esi,edi |
| 129 mov ebp,2155905152 |
| 130 xor ecx,esi |
| 131 and ebp,edx |
| 132 lea edi,[edx*1+edx] |
| 133 mov esi,ebp |
| 134 shr ebp,7 |
| 135 and edi,4278124286 |
| 136 sub esi,ebp |
| 137 mov ebp,edx |
| 138 and esi,454761243 |
| 139 ror ebp,16 |
| 140 xor esi,edi |
| 141 mov edi,edx |
| 142 xor edx,esi |
| 143 ror edi,24 |
| 144 xor esi,ebp |
| 145 rol edx,24 |
| 146 xor esi,edi |
| 147 mov ebp,2155905152 |
| 148 xor edx,esi |
| 149 and ebp,eax |
| 150 lea edi,[eax*1+eax] |
| 151 mov esi,ebp |
| 152 shr ebp,7 |
| 153 and edi,4278124286 |
| 154 sub esi,ebp |
| 155 mov ebp,eax |
| 156 and esi,454761243 |
| 157 ror ebp,16 |
| 158 xor esi,edi |
| 159 mov edi,eax |
| 160 xor eax,esi |
| 161 ror edi,24 |
| 162 xor esi,ebp |
| 163 rol eax,24 |
| 164 xor esi,edi |
| 165 mov ebp,2155905152 |
| 166 xor eax,esi |
| 167 and ebp,ebx |
| 168 lea edi,[ebx*1+ebx] |
| 169 mov esi,ebp |
| 170 shr ebp,7 |
| 171 and edi,4278124286 |
| 172 sub esi,ebp |
| 173 mov ebp,ebx |
| 174 and esi,454761243 |
| 175 ror ebp,16 |
| 176 xor esi,edi |
| 177 mov edi,ebx |
| 178 xor ebx,esi |
| 179 ror edi,24 |
| 180 xor esi,ebp |
| 181 rol ebx,24 |
| 182 xor esi,edi |
| 183 xor ebx,esi |
| 184 mov edi,DWORD [20+esp] |
| 185 mov ebp,DWORD [28+esp] |
| 186 add edi,16 |
| 187 xor eax,DWORD [edi] |
| 188 xor ebx,DWORD [4+edi] |
| 189 xor ecx,DWORD [8+edi] |
| 190 xor edx,DWORD [12+edi] |
| 191 cmp edi,DWORD [24+esp] |
| 192 mov DWORD [20+esp],edi |
| 193 jb NEAR L$000loop |
| 194 mov esi,eax |
| 195 and esi,255 |
| 196 movzx esi,BYTE [esi*1+ebp-128] |
| 197 movzx edi,bh |
| 198 movzx edi,BYTE [edi*1+ebp-128] |
| 199 shl edi,8 |
| 200 xor esi,edi |
| 201 mov edi,ecx |
| 202 shr edi,16 |
| 203 and edi,255 |
| 204 movzx edi,BYTE [edi*1+ebp-128] |
| 205 shl edi,16 |
| 206 xor esi,edi |
| 207 mov edi,edx |
| 208 shr edi,24 |
| 209 movzx edi,BYTE [edi*1+ebp-128] |
| 210 shl edi,24 |
| 211 xor esi,edi |
| 212 mov DWORD [4+esp],esi |
| 213 mov esi,ebx |
| 214 and esi,255 |
| 215 shr ebx,16 |
| 216 movzx esi,BYTE [esi*1+ebp-128] |
| 217 movzx edi,ch |
| 218 movzx edi,BYTE [edi*1+ebp-128] |
| 219 shl edi,8 |
| 220 xor esi,edi |
| 221 mov edi,edx |
| 222 shr edi,16 |
| 223 and edi,255 |
| 224 movzx edi,BYTE [edi*1+ebp-128] |
| 225 shl edi,16 |
| 226 xor esi,edi |
| 227 mov edi,eax |
| 228 shr edi,24 |
| 229 movzx edi,BYTE [edi*1+ebp-128] |
| 230 shl edi,24 |
| 231 xor esi,edi |
| 232 mov DWORD [8+esp],esi |
| 233 mov esi,ecx |
| 234 and esi,255 |
| 235 shr ecx,24 |
| 236 movzx esi,BYTE [esi*1+ebp-128] |
| 237 movzx edi,dh |
| 238 movzx edi,BYTE [edi*1+ebp-128] |
| 239 shl edi,8 |
| 240 xor esi,edi |
| 241 mov edi,eax |
| 242 shr edi,16 |
| 243 and edx,255 |
| 244 and edi,255 |
| 245 movzx edi,BYTE [edi*1+ebp-128] |
| 246 shl edi,16 |
| 247 xor esi,edi |
| 248 movzx edi,bh |
| 249 movzx edi,BYTE [edi*1+ebp-128] |
| 250 shl edi,24 |
| 251 xor esi,edi |
| 252 mov edi,DWORD [20+esp] |
| 253 and edx,255 |
| 254 movzx edx,BYTE [edx*1+ebp-128] |
| 255 movzx eax,ah |
| 256 movzx eax,BYTE [eax*1+ebp-128] |
| 257 shl eax,8 |
| 258 xor edx,eax |
| 259 mov eax,DWORD [4+esp] |
| 260 and ebx,255 |
| 261 movzx ebx,BYTE [ebx*1+ebp-128] |
| 262 shl ebx,16 |
| 263 xor edx,ebx |
| 264 mov ebx,DWORD [8+esp] |
| 265 movzx ecx,BYTE [ecx*1+ebp-128] |
| 266 shl ecx,24 |
| 267 xor edx,ecx |
| 268 mov ecx,esi |
| 269 xor eax,DWORD [16+edi] |
| 270 xor ebx,DWORD [20+edi] |
| 271 xor ecx,DWORD [24+edi] |
| 272 xor edx,DWORD [28+edi] |
| 273 ret |
| 274 align 16 |
| 275 __sse_AES_encrypt_compact: |
| 276 pxor mm0,[edi] |
| 277 pxor mm4,[8+edi] |
| 278 mov esi,DWORD [240+edi] |
| 279 lea esi,[esi*1+esi-2] |
| 280 lea esi,[esi*8+edi] |
| 281 mov DWORD [24+esp],esi |
| 282 mov eax,454761243 |
| 283 mov DWORD [8+esp],eax |
| 284 mov DWORD [12+esp],eax |
| 285 mov eax,DWORD [ebp-128] |
| 286 mov ebx,DWORD [ebp-96] |
| 287 mov ecx,DWORD [ebp-64] |
| 288 mov edx,DWORD [ebp-32] |
| 289 mov eax,DWORD [ebp] |
| 290 mov ebx,DWORD [32+ebp] |
| 291 mov ecx,DWORD [64+ebp] |
| 292 mov edx,DWORD [96+ebp] |
| 293 align 16 |
| 294 L$001loop: |
| 295 pshufw mm1,mm0,8 |
| 296 pshufw mm5,mm4,13 |
| 297 movd eax,mm1 |
| 298 movd ebx,mm5 |
| 299 mov DWORD [20+esp],edi |
| 300 movzx esi,al |
| 301 movzx edx,ah |
| 302 pshufw mm2,mm0,13 |
| 303 movzx ecx,BYTE [esi*1+ebp-128] |
| 304 movzx edi,bl |
| 305 movzx edx,BYTE [edx*1+ebp-128] |
| 306 shr eax,16 |
| 307 shl edx,8 |
| 308 movzx esi,BYTE [edi*1+ebp-128] |
| 309 movzx edi,bh |
| 310 shl esi,16 |
| 311 pshufw mm6,mm4,8 |
| 312 or ecx,esi |
| 313 movzx esi,BYTE [edi*1+ebp-128] |
| 314 movzx edi,ah |
| 315 shl esi,24 |
| 316 shr ebx,16 |
| 317 or edx,esi |
| 318 movzx esi,BYTE [edi*1+ebp-128] |
| 319 movzx edi,bh |
| 320 shl esi,8 |
| 321 or ecx,esi |
| 322 movzx esi,BYTE [edi*1+ebp-128] |
| 323 movzx edi,al |
| 324 shl esi,24 |
| 325 or ecx,esi |
| 326 movzx esi,BYTE [edi*1+ebp-128] |
| 327 movzx edi,bl |
| 328 movd eax,mm2 |
| 329 movd mm0,ecx |
| 330 movzx ecx,BYTE [edi*1+ebp-128] |
| 331 movzx edi,ah |
| 332 shl ecx,16 |
| 333 movd ebx,mm6 |
| 334 or ecx,esi |
| 335 movzx esi,BYTE [edi*1+ebp-128] |
| 336 movzx edi,bh |
| 337 shl esi,24 |
| 338 or ecx,esi |
| 339 movzx esi,BYTE [edi*1+ebp-128] |
| 340 movzx edi,bl |
| 341 shl esi,8 |
| 342 shr ebx,16 |
| 343 or ecx,esi |
| 344 movzx esi,BYTE [edi*1+ebp-128] |
| 345 movzx edi,al |
| 346 shr eax,16 |
| 347 movd mm1,ecx |
| 348 movzx ecx,BYTE [edi*1+ebp-128] |
| 349 movzx edi,ah |
| 350 shl ecx,16 |
| 351 and eax,255 |
| 352 or ecx,esi |
| 353 punpckldq mm0,mm1 |
| 354 movzx esi,BYTE [edi*1+ebp-128] |
| 355 movzx edi,bh |
| 356 shl esi,24 |
| 357 and ebx,255 |
| 358 movzx eax,BYTE [eax*1+ebp-128] |
| 359 or ecx,esi |
| 360 shl eax,16 |
| 361 movzx esi,BYTE [edi*1+ebp-128] |
| 362 or edx,eax |
| 363 shl esi,8 |
| 364 movzx ebx,BYTE [ebx*1+ebp-128] |
| 365 or ecx,esi |
| 366 or edx,ebx |
| 367 mov edi,DWORD [20+esp] |
| 368 movd mm4,ecx |
| 369 movd mm5,edx |
| 370 punpckldq mm4,mm5 |
| 371 add edi,16 |
| 372 cmp edi,DWORD [24+esp] |
| 373 ja NEAR L$002out |
| 374 movq mm2,[8+esp] |
| 375 pxor mm3,mm3 |
| 376 pxor mm7,mm7 |
| 377 movq mm1,mm0 |
| 378 movq mm5,mm4 |
| 379 pcmpgtb mm3,mm0 |
| 380 pcmpgtb mm7,mm4 |
| 381 pand mm3,mm2 |
| 382 pand mm7,mm2 |
| 383 pshufw mm2,mm0,177 |
| 384 pshufw mm6,mm4,177 |
| 385 paddb mm0,mm0 |
| 386 paddb mm4,mm4 |
| 387 pxor mm0,mm3 |
| 388 pxor mm4,mm7 |
| 389 pshufw mm3,mm2,177 |
| 390 pshufw mm7,mm6,177 |
| 391 pxor mm1,mm0 |
| 392 pxor mm5,mm4 |
| 393 pxor mm0,mm2 |
| 394 pxor mm4,mm6 |
| 395 movq mm2,mm3 |
| 396 movq mm6,mm7 |
| 397 pslld mm3,8 |
| 398 pslld mm7,8 |
| 399 psrld mm2,24 |
| 400 psrld mm6,24 |
| 401 pxor mm0,mm3 |
| 402 pxor mm4,mm7 |
| 403 pxor mm0,mm2 |
| 404 pxor mm4,mm6 |
| 405 movq mm3,mm1 |
| 406 movq mm7,mm5 |
| 407 movq mm2,[edi] |
| 408 movq mm6,[8+edi] |
| 409 psrld mm1,8 |
| 410 psrld mm5,8 |
| 411 mov eax,DWORD [ebp-128] |
| 412 pslld mm3,24 |
| 413 pslld mm7,24 |
| 414 mov ebx,DWORD [ebp-64] |
| 415 pxor mm0,mm1 |
| 416 pxor mm4,mm5 |
| 417 mov ecx,DWORD [ebp] |
| 418 pxor mm0,mm3 |
| 419 pxor mm4,mm7 |
| 420 mov edx,DWORD [64+ebp] |
| 421 pxor mm0,mm2 |
| 422 pxor mm4,mm6 |
| 423 jmp NEAR L$001loop |
| 424 align 16 |
| 425 L$002out: |
| 426 pxor mm0,[edi] |
| 427 pxor mm4,[8+edi] |
| 428 ret |
| 429 align 16 |
| 430 __x86_AES_encrypt: |
| 431 mov DWORD [20+esp],edi |
| 432 xor eax,DWORD [edi] |
| 433 xor ebx,DWORD [4+edi] |
| 434 xor ecx,DWORD [8+edi] |
| 435 xor edx,DWORD [12+edi] |
| 436 mov esi,DWORD [240+edi] |
| 437 lea esi,[esi*1+esi-2] |
| 438 lea esi,[esi*8+edi] |
| 439 mov DWORD [24+esp],esi |
| 440 align 16 |
| 441 L$003loop: |
| 442 mov esi,eax |
| 443 and esi,255 |
| 444 mov esi,DWORD [esi*8+ebp] |
| 445 movzx edi,bh |
| 446 xor esi,DWORD [3+edi*8+ebp] |
| 447 mov edi,ecx |
| 448 shr edi,16 |
| 449 and edi,255 |
| 450 xor esi,DWORD [2+edi*8+ebp] |
| 451 mov edi,edx |
| 452 shr edi,24 |
| 453 xor esi,DWORD [1+edi*8+ebp] |
| 454 mov DWORD [4+esp],esi |
| 455 mov esi,ebx |
| 456 and esi,255 |
| 457 shr ebx,16 |
| 458 mov esi,DWORD [esi*8+ebp] |
| 459 movzx edi,ch |
| 460 xor esi,DWORD [3+edi*8+ebp] |
| 461 mov edi,edx |
| 462 shr edi,16 |
| 463 and edi,255 |
| 464 xor esi,DWORD [2+edi*8+ebp] |
| 465 mov edi,eax |
| 466 shr edi,24 |
| 467 xor esi,DWORD [1+edi*8+ebp] |
| 468 mov DWORD [8+esp],esi |
| 469 mov esi,ecx |
| 470 and esi,255 |
| 471 shr ecx,24 |
| 472 mov esi,DWORD [esi*8+ebp] |
| 473 movzx edi,dh |
| 474 xor esi,DWORD [3+edi*8+ebp] |
| 475 mov edi,eax |
| 476 shr edi,16 |
| 477 and edx,255 |
| 478 and edi,255 |
| 479 xor esi,DWORD [2+edi*8+ebp] |
| 480 movzx edi,bh |
| 481 xor esi,DWORD [1+edi*8+ebp] |
| 482 mov edi,DWORD [20+esp] |
| 483 mov edx,DWORD [edx*8+ebp] |
| 484 movzx eax,ah |
| 485 xor edx,DWORD [3+eax*8+ebp] |
| 486 mov eax,DWORD [4+esp] |
| 487 and ebx,255 |
| 488 xor edx,DWORD [2+ebx*8+ebp] |
| 489 mov ebx,DWORD [8+esp] |
| 490 xor edx,DWORD [1+ecx*8+ebp] |
| 491 mov ecx,esi |
| 492 add edi,16 |
| 493 xor eax,DWORD [edi] |
| 494 xor ebx,DWORD [4+edi] |
| 495 xor ecx,DWORD [8+edi] |
| 496 xor edx,DWORD [12+edi] |
| 497 cmp edi,DWORD [24+esp] |
| 498 mov DWORD [20+esp],edi |
| 499 jb NEAR L$003loop |
| 500 mov esi,eax |
| 501 and esi,255 |
| 502 mov esi,DWORD [2+esi*8+ebp] |
| 503 and esi,255 |
| 504 movzx edi,bh |
| 505 mov edi,DWORD [edi*8+ebp] |
| 506 and edi,65280 |
| 507 xor esi,edi |
| 508 mov edi,ecx |
| 509 shr edi,16 |
| 510 and edi,255 |
| 511 mov edi,DWORD [edi*8+ebp] |
| 512 and edi,16711680 |
| 513 xor esi,edi |
| 514 mov edi,edx |
| 515 shr edi,24 |
| 516 mov edi,DWORD [2+edi*8+ebp] |
| 517 and edi,4278190080 |
| 518 xor esi,edi |
| 519 mov DWORD [4+esp],esi |
| 520 mov esi,ebx |
| 521 and esi,255 |
| 522 shr ebx,16 |
| 523 mov esi,DWORD [2+esi*8+ebp] |
| 524 and esi,255 |
| 525 movzx edi,ch |
| 526 mov edi,DWORD [edi*8+ebp] |
| 527 and edi,65280 |
| 528 xor esi,edi |
| 529 mov edi,edx |
| 530 shr edi,16 |
| 531 and edi,255 |
| 532 mov edi,DWORD [edi*8+ebp] |
| 533 and edi,16711680 |
| 534 xor esi,edi |
| 535 mov edi,eax |
| 536 shr edi,24 |
| 537 mov edi,DWORD [2+edi*8+ebp] |
| 538 and edi,4278190080 |
| 539 xor esi,edi |
| 540 mov DWORD [8+esp],esi |
| 541 mov esi,ecx |
| 542 and esi,255 |
| 543 shr ecx,24 |
| 544 mov esi,DWORD [2+esi*8+ebp] |
| 545 and esi,255 |
| 546 movzx edi,dh |
| 547 mov edi,DWORD [edi*8+ebp] |
| 548 and edi,65280 |
| 549 xor esi,edi |
| 550 mov edi,eax |
| 551 shr edi,16 |
| 552 and edx,255 |
| 553 and edi,255 |
| 554 mov edi,DWORD [edi*8+ebp] |
| 555 and edi,16711680 |
| 556 xor esi,edi |
| 557 movzx edi,bh |
| 558 mov edi,DWORD [2+edi*8+ebp] |
| 559 and edi,4278190080 |
| 560 xor esi,edi |
| 561 mov edi,DWORD [20+esp] |
| 562 and edx,255 |
| 563 mov edx,DWORD [2+edx*8+ebp] |
| 564 and edx,255 |
| 565 movzx eax,ah |
| 566 mov eax,DWORD [eax*8+ebp] |
| 567 and eax,65280 |
| 568 xor edx,eax |
| 569 mov eax,DWORD [4+esp] |
| 570 and ebx,255 |
| 571 mov ebx,DWORD [ebx*8+ebp] |
| 572 and ebx,16711680 |
| 573 xor edx,ebx |
| 574 mov ebx,DWORD [8+esp] |
| 575 mov ecx,DWORD [2+ecx*8+ebp] |
| 576 and ecx,4278190080 |
| 577 xor edx,ecx |
| 578 mov ecx,esi |
| 579 add edi,16 |
| 580 xor eax,DWORD [edi] |
| 581 xor ebx,DWORD [4+edi] |
| 582 xor ecx,DWORD [8+edi] |
| 583 xor edx,DWORD [12+edi] |
| 584 ret |
| 585 align 64 |
| 586 L$AES_Te: |
| 587 dd 2774754246,2774754246 |
| 588 dd 2222750968,2222750968 |
| 589 dd 2574743534,2574743534 |
| 590 dd 2373680118,2373680118 |
| 591 dd 234025727,234025727 |
| 592 dd 3177933782,3177933782 |
| 593 dd 2976870366,2976870366 |
| 594 dd 1422247313,1422247313 |
| 595 dd 1345335392,1345335392 |
| 596 dd 50397442,50397442 |
| 597 dd 2842126286,2842126286 |
| 598 dd 2099981142,2099981142 |
| 599 dd 436141799,436141799 |
| 600 dd 1658312629,1658312629 |
| 601 dd 3870010189,3870010189 |
| 602 dd 2591454956,2591454956 |
| 603 dd 1170918031,1170918031 |
| 604 dd 2642575903,2642575903 |
| 605 dd 1086966153,1086966153 |
| 606 dd 2273148410,2273148410 |
| 607 dd 368769775,368769775 |
| 608 dd 3948501426,3948501426 |
| 609 dd 3376891790,3376891790 |
| 610 dd 200339707,200339707 |
| 611 dd 3970805057,3970805057 |
| 612 dd 1742001331,1742001331 |
| 613 dd 4255294047,4255294047 |
| 614 dd 3937382213,3937382213 |
| 615 dd 3214711843,3214711843 |
| 616 dd 4154762323,4154762323 |
| 617 dd 2524082916,2524082916 |
| 618 dd 1539358875,1539358875 |
| 619 dd 3266819957,3266819957 |
| 620 dd 486407649,486407649 |
| 621 dd 2928907069,2928907069 |
| 622 dd 1780885068,1780885068 |
| 623 dd 1513502316,1513502316 |
| 624 dd 1094664062,1094664062 |
| 625 dd 49805301,49805301 |
| 626 dd 1338821763,1338821763 |
| 627 dd 1546925160,1546925160 |
| 628 dd 4104496465,4104496465 |
| 629 dd 887481809,887481809 |
| 630 dd 150073849,150073849 |
| 631 dd 2473685474,2473685474 |
| 632 dd 1943591083,1943591083 |
| 633 dd 1395732834,1395732834 |
| 634 dd 1058346282,1058346282 |
| 635 dd 201589768,201589768 |
| 636 dd 1388824469,1388824469 |
| 637 dd 1696801606,1696801606 |
| 638 dd 1589887901,1589887901 |
| 639 dd 672667696,672667696 |
| 640 dd 2711000631,2711000631 |
| 641 dd 251987210,251987210 |
| 642 dd 3046808111,3046808111 |
| 643 dd 151455502,151455502 |
| 644 dd 907153956,907153956 |
| 645 dd 2608889883,2608889883 |
| 646 dd 1038279391,1038279391 |
| 647 dd 652995533,652995533 |
| 648 dd 1764173646,1764173646 |
| 649 dd 3451040383,3451040383 |
| 650 dd 2675275242,2675275242 |
| 651 dd 453576978,453576978 |
| 652 dd 2659418909,2659418909 |
| 653 dd 1949051992,1949051992 |
| 654 dd 773462580,773462580 |
| 655 dd 756751158,756751158 |
| 656 dd 2993581788,2993581788 |
| 657 dd 3998898868,3998898868 |
| 658 dd 4221608027,4221608027 |
| 659 dd 4132590244,4132590244 |
| 660 dd 1295727478,1295727478 |
| 661 dd 1641469623,1641469623 |
| 662 dd 3467883389,3467883389 |
| 663 dd 2066295122,2066295122 |
| 664 dd 1055122397,1055122397 |
| 665 dd 1898917726,1898917726 |
| 666 dd 2542044179,2542044179 |
| 667 dd 4115878822,4115878822 |
| 668 dd 1758581177,1758581177 |
| 669 dd 0,0 |
| 670 dd 753790401,753790401 |
| 671 dd 1612718144,1612718144 |
| 672 dd 536673507,536673507 |
| 673 dd 3367088505,3367088505 |
| 674 dd 3982187446,3982187446 |
| 675 dd 3194645204,3194645204 |
| 676 dd 1187761037,1187761037 |
| 677 dd 3653156455,3653156455 |
| 678 dd 1262041458,1262041458 |
| 679 dd 3729410708,3729410708 |
| 680 dd 3561770136,3561770136 |
| 681 dd 3898103984,3898103984 |
| 682 dd 1255133061,1255133061 |
| 683 dd 1808847035,1808847035 |
| 684 dd 720367557,720367557 |
| 685 dd 3853167183,3853167183 |
| 686 dd 385612781,385612781 |
| 687 dd 3309519750,3309519750 |
| 688 dd 3612167578,3612167578 |
| 689 dd 1429418854,1429418854 |
| 690 dd 2491778321,2491778321 |
| 691 dd 3477423498,3477423498 |
| 692 dd 284817897,284817897 |
| 693 dd 100794884,100794884 |
| 694 dd 2172616702,2172616702 |
| 695 dd 4031795360,4031795360 |
| 696 dd 1144798328,1144798328 |
| 697 dd 3131023141,3131023141 |
| 698 dd 3819481163,3819481163 |
| 699 dd 4082192802,4082192802 |
| 700 dd 4272137053,4272137053 |
| 701 dd 3225436288,3225436288 |
| 702 dd 2324664069,2324664069 |
| 703 dd 2912064063,2912064063 |
| 704 dd 3164445985,3164445985 |
| 705 dd 1211644016,1211644016 |
| 706 dd 83228145,83228145 |
| 707 dd 3753688163,3753688163 |
| 708 dd 3249976951,3249976951 |
| 709 dd 1977277103,1977277103 |
| 710 dd 1663115586,1663115586 |
| 711 dd 806359072,806359072 |
| 712 dd 452984805,452984805 |
| 713 dd 250868733,250868733 |
| 714 dd 1842533055,1842533055 |
| 715 dd 1288555905,1288555905 |
| 716 dd 336333848,336333848 |
| 717 dd 890442534,890442534 |
| 718 dd 804056259,804056259 |
| 719 dd 3781124030,3781124030 |
| 720 dd 2727843637,2727843637 |
| 721 dd 3427026056,3427026056 |
| 722 dd 957814574,957814574 |
| 723 dd 1472513171,1472513171 |
| 724 dd 4071073621,4071073621 |
| 725 dd 2189328124,2189328124 |
| 726 dd 1195195770,1195195770 |
| 727 dd 2892260552,2892260552 |
| 728 dd 3881655738,3881655738 |
| 729 dd 723065138,723065138 |
| 730 dd 2507371494,2507371494 |
| 731 dd 2690670784,2690670784 |
| 732 dd 2558624025,2558624025 |
| 733 dd 3511635870,3511635870 |
| 734 dd 2145180835,2145180835 |
| 735 dd 1713513028,1713513028 |
| 736 dd 2116692564,2116692564 |
| 737 dd 2878378043,2878378043 |
| 738 dd 2206763019,2206763019 |
| 739 dd 3393603212,3393603212 |
| 740 dd 703524551,703524551 |
| 741 dd 3552098411,3552098411 |
| 742 dd 1007948840,1007948840 |
| 743 dd 2044649127,2044649127 |
| 744 dd 3797835452,3797835452 |
| 745 dd 487262998,487262998 |
| 746 dd 1994120109,1994120109 |
| 747 dd 1004593371,1004593371 |
| 748 dd 1446130276,1446130276 |
| 749 dd 1312438900,1312438900 |
| 750 dd 503974420,503974420 |
| 751 dd 3679013266,3679013266 |
| 752 dd 168166924,168166924 |
| 753 dd 1814307912,1814307912 |
| 754 dd 3831258296,3831258296 |
| 755 dd 1573044895,1573044895 |
| 756 dd 1859376061,1859376061 |
| 757 dd 4021070915,4021070915 |
| 758 dd 2791465668,2791465668 |
| 759 dd 2828112185,2828112185 |
| 760 dd 2761266481,2761266481 |
| 761 dd 937747667,937747667 |
| 762 dd 2339994098,2339994098 |
| 763 dd 854058965,854058965 |
| 764 dd 1137232011,1137232011 |
| 765 dd 1496790894,1496790894 |
| 766 dd 3077402074,3077402074 |
| 767 dd 2358086913,2358086913 |
| 768 dd 1691735473,1691735473 |
| 769 dd 3528347292,3528347292 |
| 770 dd 3769215305,3769215305 |
| 771 dd 3027004632,3027004632 |
| 772 dd 4199962284,4199962284 |
| 773 dd 133494003,133494003 |
| 774 dd 636152527,636152527 |
| 775 dd 2942657994,2942657994 |
| 776 dd 2390391540,2390391540 |
| 777 dd 3920539207,3920539207 |
| 778 dd 403179536,403179536 |
| 779 dd 3585784431,3585784431 |
| 780 dd 2289596656,2289596656 |
| 781 dd 1864705354,1864705354 |
| 782 dd 1915629148,1915629148 |
| 783 dd 605822008,605822008 |
| 784 dd 4054230615,4054230615 |
| 785 dd 3350508659,3350508659 |
| 786 dd 1371981463,1371981463 |
| 787 dd 602466507,602466507 |
| 788 dd 2094914977,2094914977 |
| 789 dd 2624877800,2624877800 |
| 790 dd 555687742,555687742 |
| 791 dd 3712699286,3712699286 |
| 792 dd 3703422305,3703422305 |
| 793 dd 2257292045,2257292045 |
| 794 dd 2240449039,2240449039 |
| 795 dd 2423288032,2423288032 |
| 796 dd 1111375484,1111375484 |
| 797 dd 3300242801,3300242801 |
| 798 dd 2858837708,2858837708 |
| 799 dd 3628615824,3628615824 |
| 800 dd 84083462,84083462 |
| 801 dd 32962295,32962295 |
| 802 dd 302911004,302911004 |
| 803 dd 2741068226,2741068226 |
| 804 dd 1597322602,1597322602 |
| 805 dd 4183250862,4183250862 |
| 806 dd 3501832553,3501832553 |
| 807 dd 2441512471,2441512471 |
| 808 dd 1489093017,1489093017 |
| 809 dd 656219450,656219450 |
| 810 dd 3114180135,3114180135 |
| 811 dd 954327513,954327513 |
| 812 dd 335083755,335083755 |
| 813 dd 3013122091,3013122091 |
| 814 dd 856756514,856756514 |
| 815 dd 3144247762,3144247762 |
| 816 dd 1893325225,1893325225 |
| 817 dd 2307821063,2307821063 |
| 818 dd 2811532339,2811532339 |
| 819 dd 3063651117,3063651117 |
| 820 dd 572399164,572399164 |
| 821 dd 2458355477,2458355477 |
| 822 dd 552200649,552200649 |
| 823 dd 1238290055,1238290055 |
| 824 dd 4283782570,4283782570 |
| 825 dd 2015897680,2015897680 |
| 826 dd 2061492133,2061492133 |
| 827 dd 2408352771,2408352771 |
| 828 dd 4171342169,4171342169 |
| 829 dd 2156497161,2156497161 |
| 830 dd 386731290,386731290 |
| 831 dd 3669999461,3669999461 |
| 832 dd 837215959,837215959 |
| 833 dd 3326231172,3326231172 |
| 834 dd 3093850320,3093850320 |
| 835 dd 3275833730,3275833730 |
| 836 dd 2962856233,2962856233 |
| 837 dd 1999449434,1999449434 |
| 838 dd 286199582,286199582 |
| 839 dd 3417354363,3417354363 |
| 840 dd 4233385128,4233385128 |
| 841 dd 3602627437,3602627437 |
| 842 dd 974525996,974525996 |
| 843 db 99,124,119,123,242,107,111,197 |
| 844 db 48,1,103,43,254,215,171,118 |
| 845 db 202,130,201,125,250,89,71,240 |
| 846 db 173,212,162,175,156,164,114,192 |
| 847 db 183,253,147,38,54,63,247,204 |
| 848 db 52,165,229,241,113,216,49,21 |
| 849 db 4,199,35,195,24,150,5,154 |
| 850 db 7,18,128,226,235,39,178,117 |
| 851 db 9,131,44,26,27,110,90,160 |
| 852 db 82,59,214,179,41,227,47,132 |
| 853 db 83,209,0,237,32,252,177,91 |
| 854 db 106,203,190,57,74,76,88,207 |
| 855 db 208,239,170,251,67,77,51,133 |
| 856 db 69,249,2,127,80,60,159,168 |
| 857 db 81,163,64,143,146,157,56,245 |
| 858 db 188,182,218,33,16,255,243,210 |
| 859 db 205,12,19,236,95,151,68,23 |
| 860 db 196,167,126,61,100,93,25,115 |
| 861 db 96,129,79,220,34,42,144,136 |
| 862 db 70,238,184,20,222,94,11,219 |
| 863 db 224,50,58,10,73,6,36,92 |
| 864 db 194,211,172,98,145,149,228,121 |
| 865 db 231,200,55,109,141,213,78,169 |
| 866 db 108,86,244,234,101,122,174,8 |
| 867 db 186,120,37,46,28,166,180,198 |
| 868 db 232,221,116,31,75,189,139,138 |
| 869 db 112,62,181,102,72,3,246,14 |
| 870 db 97,53,87,185,134,193,29,158 |
| 871 db 225,248,152,17,105,217,142,148 |
| 872 db 155,30,135,233,206,85,40,223 |
| 873 db 140,161,137,13,191,230,66,104 |
| 874 db 65,153,45,15,176,84,187,22 |
| 875 db 99,124,119,123,242,107,111,197 |
| 876 db 48,1,103,43,254,215,171,118 |
| 877 db 202,130,201,125,250,89,71,240 |
| 878 db 173,212,162,175,156,164,114,192 |
| 879 db 183,253,147,38,54,63,247,204 |
| 880 db 52,165,229,241,113,216,49,21 |
| 881 db 4,199,35,195,24,150,5,154 |
| 882 db 7,18,128,226,235,39,178,117 |
| 883 db 9,131,44,26,27,110,90,160 |
| 884 db 82,59,214,179,41,227,47,132 |
| 885 db 83,209,0,237,32,252,177,91 |
| 886 db 106,203,190,57,74,76,88,207 |
| 887 db 208,239,170,251,67,77,51,133 |
| 888 db 69,249,2,127,80,60,159,168 |
| 889 db 81,163,64,143,146,157,56,245 |
| 890 db 188,182,218,33,16,255,243,210 |
| 891 db 205,12,19,236,95,151,68,23 |
| 892 db 196,167,126,61,100,93,25,115 |
| 893 db 96,129,79,220,34,42,144,136 |
| 894 db 70,238,184,20,222,94,11,219 |
| 895 db 224,50,58,10,73,6,36,92 |
| 896 db 194,211,172,98,145,149,228,121 |
| 897 db 231,200,55,109,141,213,78,169 |
| 898 db 108,86,244,234,101,122,174,8 |
| 899 db 186,120,37,46,28,166,180,198 |
| 900 db 232,221,116,31,75,189,139,138 |
| 901 db 112,62,181,102,72,3,246,14 |
| 902 db 97,53,87,185,134,193,29,158 |
| 903 db 225,248,152,17,105,217,142,148 |
| 904 db 155,30,135,233,206,85,40,223 |
| 905 db 140,161,137,13,191,230,66,104 |
| 906 db 65,153,45,15,176,84,187,22 |
| 907 db 99,124,119,123,242,107,111,197 |
| 908 db 48,1,103,43,254,215,171,118 |
| 909 db 202,130,201,125,250,89,71,240 |
| 910 db 173,212,162,175,156,164,114,192 |
| 911 db 183,253,147,38,54,63,247,204 |
| 912 db 52,165,229,241,113,216,49,21 |
| 913 db 4,199,35,195,24,150,5,154 |
| 914 db 7,18,128,226,235,39,178,117 |
| 915 db 9,131,44,26,27,110,90,160 |
| 916 db 82,59,214,179,41,227,47,132 |
| 917 db 83,209,0,237,32,252,177,91 |
| 918 db 106,203,190,57,74,76,88,207 |
| 919 db 208,239,170,251,67,77,51,133 |
| 920 db 69,249,2,127,80,60,159,168 |
| 921 db 81,163,64,143,146,157,56,245 |
| 922 db 188,182,218,33,16,255,243,210 |
| 923 db 205,12,19,236,95,151,68,23 |
| 924 db 196,167,126,61,100,93,25,115 |
| 925 db 96,129,79,220,34,42,144,136 |
| 926 db 70,238,184,20,222,94,11,219 |
| 927 db 224,50,58,10,73,6,36,92 |
| 928 db 194,211,172,98,145,149,228,121 |
| 929 db 231,200,55,109,141,213,78,169 |
| 930 db 108,86,244,234,101,122,174,8 |
| 931 db 186,120,37,46,28,166,180,198 |
| 932 db 232,221,116,31,75,189,139,138 |
| 933 db 112,62,181,102,72,3,246,14 |
| 934 db 97,53,87,185,134,193,29,158 |
| 935 db 225,248,152,17,105,217,142,148 |
| 936 db 155,30,135,233,206,85,40,223 |
| 937 db 140,161,137,13,191,230,66,104 |
| 938 db 65,153,45,15,176,84,187,22 |
| 939 db 99,124,119,123,242,107,111,197 |
| 940 db 48,1,103,43,254,215,171,118 |
| 941 db 202,130,201,125,250,89,71,240 |
| 942 db 173,212,162,175,156,164,114,192 |
| 943 db 183,253,147,38,54,63,247,204 |
| 944 db 52,165,229,241,113,216,49,21 |
| 945 db 4,199,35,195,24,150,5,154 |
| 946 db 7,18,128,226,235,39,178,117 |
| 947 db 9,131,44,26,27,110,90,160 |
| 948 db 82,59,214,179,41,227,47,132 |
| 949 db 83,209,0,237,32,252,177,91 |
| 950 db 106,203,190,57,74,76,88,207 |
| 951 db 208,239,170,251,67,77,51,133 |
| 952 db 69,249,2,127,80,60,159,168 |
| 953 db 81,163,64,143,146,157,56,245 |
| 954 db 188,182,218,33,16,255,243,210 |
| 955 db 205,12,19,236,95,151,68,23 |
| 956 db 196,167,126,61,100,93,25,115 |
| 957 db 96,129,79,220,34,42,144,136 |
| 958 db 70,238,184,20,222,94,11,219 |
| 959 db 224,50,58,10,73,6,36,92 |
| 960 db 194,211,172,98,145,149,228,121 |
| 961 db 231,200,55,109,141,213,78,169 |
| 962 db 108,86,244,234,101,122,174,8 |
| 963 db 186,120,37,46,28,166,180,198 |
| 964 db 232,221,116,31,75,189,139,138 |
| 965 db 112,62,181,102,72,3,246,14 |
| 966 db 97,53,87,185,134,193,29,158 |
| 967 db 225,248,152,17,105,217,142,148 |
| 968 db 155,30,135,233,206,85,40,223 |
| 969 db 140,161,137,13,191,230,66,104 |
| 970 db 65,153,45,15,176,84,187,22 |
| 971 dd 1,2,4,8 |
| 972 dd 16,32,64,128 |
| 973 dd 27,54,0,0 |
| 974 dd 0,0,0,0 |
| 975 global _asm_AES_encrypt |
| 976 align 16 |
| 977 _asm_AES_encrypt: |
| 978 L$_asm_AES_encrypt_begin: |
| 979 push ebp |
| 980 push ebx |
| 981 push esi |
| 982 push edi |
| 983 mov esi,DWORD [20+esp] |
| 984 mov edi,DWORD [28+esp] |
| 985 mov eax,esp |
| 986 sub esp,36 |
| 987 and esp,-64 |
| 988 lea ebx,[edi-127] |
| 989 sub ebx,esp |
| 990 neg ebx |
| 991 and ebx,960 |
| 992 sub esp,ebx |
| 993 add esp,4 |
| 994 mov DWORD [28+esp],eax |
| 995 call L$004pic_point |
| 996 L$004pic_point: |
| 997 pop ebp |
| 998 lea eax,[_OPENSSL_ia32cap_P] |
| 999 lea ebp,[(L$AES_Te-L$004pic_point)+ebp] |
| 1000 lea ebx,[764+esp] |
| 1001 sub ebx,ebp |
| 1002 and ebx,768 |
| 1003 lea ebp,[2176+ebx*1+ebp] |
| 1004 bt DWORD [eax],25 |
| 1005 jnc NEAR L$005x86 |
| 1006 movq mm0,[esi] |
| 1007 movq mm4,[8+esi] |
| 1008 call __sse_AES_encrypt_compact |
| 1009 mov esp,DWORD [28+esp] |
| 1010 mov esi,DWORD [24+esp] |
| 1011 movq [esi],mm0 |
| 1012 movq [8+esi],mm4 |
| 1013 emms |
| 1014 pop edi |
| 1015 pop esi |
| 1016 pop ebx |
| 1017 pop ebp |
| 1018 ret |
| 1019 align 16 |
| 1020 L$005x86: |
| 1021 mov DWORD [24+esp],ebp |
| 1022 mov eax,DWORD [esi] |
| 1023 mov ebx,DWORD [4+esi] |
| 1024 mov ecx,DWORD [8+esi] |
| 1025 mov edx,DWORD [12+esi] |
| 1026 call __x86_AES_encrypt_compact |
| 1027 mov esp,DWORD [28+esp] |
| 1028 mov esi,DWORD [24+esp] |
| 1029 mov DWORD [esi],eax |
| 1030 mov DWORD [4+esi],ebx |
| 1031 mov DWORD [8+esi],ecx |
| 1032 mov DWORD [12+esi],edx |
| 1033 pop edi |
| 1034 pop esi |
| 1035 pop ebx |
| 1036 pop ebp |
| 1037 ret |
| 1038 align 16 |
| 1039 __x86_AES_decrypt_compact: |
| 1040 mov DWORD [20+esp],edi |
| 1041 xor eax,DWORD [edi] |
| 1042 xor ebx,DWORD [4+edi] |
| 1043 xor ecx,DWORD [8+edi] |
| 1044 xor edx,DWORD [12+edi] |
| 1045 mov esi,DWORD [240+edi] |
| 1046 lea esi,[esi*1+esi-2] |
| 1047 lea esi,[esi*8+edi] |
| 1048 mov DWORD [24+esp],esi |
| 1049 mov edi,DWORD [ebp-128] |
| 1050 mov esi,DWORD [ebp-96] |
| 1051 mov edi,DWORD [ebp-64] |
| 1052 mov esi,DWORD [ebp-32] |
| 1053 mov edi,DWORD [ebp] |
| 1054 mov esi,DWORD [32+ebp] |
| 1055 mov edi,DWORD [64+ebp] |
| 1056 mov esi,DWORD [96+ebp] |
| 1057 align 16 |
| 1058 L$006loop: |
| 1059 mov esi,eax |
| 1060 and esi,255 |
| 1061 movzx esi,BYTE [esi*1+ebp-128] |
| 1062 movzx edi,dh |
| 1063 movzx edi,BYTE [edi*1+ebp-128] |
| 1064 shl edi,8 |
| 1065 xor esi,edi |
| 1066 mov edi,ecx |
| 1067 shr edi,16 |
| 1068 and edi,255 |
| 1069 movzx edi,BYTE [edi*1+ebp-128] |
| 1070 shl edi,16 |
| 1071 xor esi,edi |
| 1072 mov edi,ebx |
| 1073 shr edi,24 |
| 1074 movzx edi,BYTE [edi*1+ebp-128] |
| 1075 shl edi,24 |
| 1076 xor esi,edi |
| 1077 mov DWORD [4+esp],esi |
| 1078 mov esi,ebx |
| 1079 and esi,255 |
| 1080 movzx esi,BYTE [esi*1+ebp-128] |
| 1081 movzx edi,ah |
| 1082 movzx edi,BYTE [edi*1+ebp-128] |
| 1083 shl edi,8 |
| 1084 xor esi,edi |
| 1085 mov edi,edx |
| 1086 shr edi,16 |
| 1087 and edi,255 |
| 1088 movzx edi,BYTE [edi*1+ebp-128] |
| 1089 shl edi,16 |
| 1090 xor esi,edi |
| 1091 mov edi,ecx |
| 1092 shr edi,24 |
| 1093 movzx edi,BYTE [edi*1+ebp-128] |
| 1094 shl edi,24 |
| 1095 xor esi,edi |
| 1096 mov DWORD [8+esp],esi |
| 1097 mov esi,ecx |
| 1098 and esi,255 |
| 1099 movzx esi,BYTE [esi*1+ebp-128] |
| 1100 movzx edi,bh |
| 1101 movzx edi,BYTE [edi*1+ebp-128] |
| 1102 shl edi,8 |
| 1103 xor esi,edi |
| 1104 mov edi,eax |
| 1105 shr edi,16 |
| 1106 and edi,255 |
| 1107 movzx edi,BYTE [edi*1+ebp-128] |
| 1108 shl edi,16 |
| 1109 xor esi,edi |
| 1110 mov edi,edx |
| 1111 shr edi,24 |
| 1112 movzx edi,BYTE [edi*1+ebp-128] |
| 1113 shl edi,24 |
| 1114 xor esi,edi |
| 1115 and edx,255 |
| 1116 movzx edx,BYTE [edx*1+ebp-128] |
| 1117 movzx ecx,ch |
| 1118 movzx ecx,BYTE [ecx*1+ebp-128] |
| 1119 shl ecx,8 |
| 1120 xor edx,ecx |
| 1121 mov ecx,esi |
| 1122 shr ebx,16 |
| 1123 and ebx,255 |
| 1124 movzx ebx,BYTE [ebx*1+ebp-128] |
| 1125 shl ebx,16 |
| 1126 xor edx,ebx |
| 1127 shr eax,24 |
| 1128 movzx eax,BYTE [eax*1+ebp-128] |
| 1129 shl eax,24 |
| 1130 xor edx,eax |
| 1131 mov edi,2155905152 |
| 1132 and edi,ecx |
| 1133 mov esi,edi |
| 1134 shr edi,7 |
| 1135 lea eax,[ecx*1+ecx] |
| 1136 sub esi,edi |
| 1137 and eax,4278124286 |
| 1138 and esi,454761243 |
| 1139 xor eax,esi |
| 1140 mov edi,2155905152 |
| 1141 and edi,eax |
| 1142 mov esi,edi |
| 1143 shr edi,7 |
| 1144 lea ebx,[eax*1+eax] |
| 1145 sub esi,edi |
| 1146 and ebx,4278124286 |
| 1147 and esi,454761243 |
| 1148 xor eax,ecx |
| 1149 xor ebx,esi |
| 1150 mov edi,2155905152 |
| 1151 and edi,ebx |
| 1152 mov esi,edi |
| 1153 shr edi,7 |
| 1154 lea ebp,[ebx*1+ebx] |
| 1155 sub esi,edi |
| 1156 and ebp,4278124286 |
| 1157 and esi,454761243 |
| 1158 xor ebx,ecx |
| 1159 rol ecx,8 |
| 1160 xor ebp,esi |
| 1161 xor ecx,eax |
| 1162 xor eax,ebp |
| 1163 xor ecx,ebx |
| 1164 xor ebx,ebp |
| 1165 rol eax,24 |
| 1166 xor ecx,ebp |
| 1167 rol ebx,16 |
| 1168 xor ecx,eax |
| 1169 rol ebp,8 |
| 1170 xor ecx,ebx |
| 1171 mov eax,DWORD [4+esp] |
| 1172 xor ecx,ebp |
| 1173 mov DWORD [12+esp],ecx |
| 1174 mov edi,2155905152 |
| 1175 and edi,edx |
| 1176 mov esi,edi |
| 1177 shr edi,7 |
| 1178 lea ebx,[edx*1+edx] |
| 1179 sub esi,edi |
| 1180 and ebx,4278124286 |
| 1181 and esi,454761243 |
| 1182 xor ebx,esi |
| 1183 mov edi,2155905152 |
| 1184 and edi,ebx |
| 1185 mov esi,edi |
| 1186 shr edi,7 |
| 1187 lea ecx,[ebx*1+ebx] |
| 1188 sub esi,edi |
| 1189 and ecx,4278124286 |
| 1190 and esi,454761243 |
| 1191 xor ebx,edx |
| 1192 xor ecx,esi |
| 1193 mov edi,2155905152 |
| 1194 and edi,ecx |
| 1195 mov esi,edi |
| 1196 shr edi,7 |
| 1197 lea ebp,[ecx*1+ecx] |
| 1198 sub esi,edi |
| 1199 and ebp,4278124286 |
| 1200 and esi,454761243 |
| 1201 xor ecx,edx |
| 1202 rol edx,8 |
| 1203 xor ebp,esi |
| 1204 xor edx,ebx |
| 1205 xor ebx,ebp |
| 1206 xor edx,ecx |
| 1207 xor ecx,ebp |
| 1208 rol ebx,24 |
| 1209 xor edx,ebp |
| 1210 rol ecx,16 |
| 1211 xor edx,ebx |
| 1212 rol ebp,8 |
| 1213 xor edx,ecx |
| 1214 mov ebx,DWORD [8+esp] |
| 1215 xor edx,ebp |
| 1216 mov DWORD [16+esp],edx |
| 1217 mov edi,2155905152 |
| 1218 and edi,eax |
| 1219 mov esi,edi |
| 1220 shr edi,7 |
| 1221 lea ecx,[eax*1+eax] |
| 1222 sub esi,edi |
| 1223 and ecx,4278124286 |
| 1224 and esi,454761243 |
| 1225 xor ecx,esi |
| 1226 mov edi,2155905152 |
| 1227 and edi,ecx |
| 1228 mov esi,edi |
| 1229 shr edi,7 |
| 1230 lea edx,[ecx*1+ecx] |
| 1231 sub esi,edi |
| 1232 and edx,4278124286 |
| 1233 and esi,454761243 |
| 1234 xor ecx,eax |
| 1235 xor edx,esi |
| 1236 mov edi,2155905152 |
| 1237 and edi,edx |
| 1238 mov esi,edi |
| 1239 shr edi,7 |
| 1240 lea ebp,[edx*1+edx] |
| 1241 sub esi,edi |
| 1242 and ebp,4278124286 |
| 1243 and esi,454761243 |
| 1244 xor edx,eax |
| 1245 rol eax,8 |
| 1246 xor ebp,esi |
| 1247 xor eax,ecx |
| 1248 xor ecx,ebp |
| 1249 xor eax,edx |
| 1250 xor edx,ebp |
| 1251 rol ecx,24 |
| 1252 xor eax,ebp |
| 1253 rol edx,16 |
| 1254 xor eax,ecx |
| 1255 rol ebp,8 |
| 1256 xor eax,edx |
| 1257 xor eax,ebp |
| 1258 mov edi,2155905152 |
| 1259 and edi,ebx |
| 1260 mov esi,edi |
| 1261 shr edi,7 |
| 1262 lea ecx,[ebx*1+ebx] |
| 1263 sub esi,edi |
| 1264 and ecx,4278124286 |
| 1265 and esi,454761243 |
| 1266 xor ecx,esi |
| 1267 mov edi,2155905152 |
| 1268 and edi,ecx |
| 1269 mov esi,edi |
| 1270 shr edi,7 |
| 1271 lea edx,[ecx*1+ecx] |
| 1272 sub esi,edi |
| 1273 and edx,4278124286 |
| 1274 and esi,454761243 |
| 1275 xor ecx,ebx |
| 1276 xor edx,esi |
| 1277 mov edi,2155905152 |
| 1278 and edi,edx |
| 1279 mov esi,edi |
| 1280 shr edi,7 |
| 1281 lea ebp,[edx*1+edx] |
| 1282 sub esi,edi |
| 1283 and ebp,4278124286 |
| 1284 and esi,454761243 |
| 1285 xor edx,ebx |
| 1286 rol ebx,8 |
| 1287 xor ebp,esi |
| 1288 xor ebx,ecx |
| 1289 xor ecx,ebp |
| 1290 xor ebx,edx |
| 1291 xor edx,ebp |
| 1292 rol ecx,24 |
| 1293 xor ebx,ebp |
| 1294 rol edx,16 |
| 1295 xor ebx,ecx |
| 1296 rol ebp,8 |
| 1297 xor ebx,edx |
| 1298 mov ecx,DWORD [12+esp] |
| 1299 xor ebx,ebp |
| 1300 mov edx,DWORD [16+esp] |
| 1301 mov edi,DWORD [20+esp] |
| 1302 mov ebp,DWORD [28+esp] |
| 1303 add edi,16 |
| 1304 xor eax,DWORD [edi] |
| 1305 xor ebx,DWORD [4+edi] |
| 1306 xor ecx,DWORD [8+edi] |
| 1307 xor edx,DWORD [12+edi] |
| 1308 cmp edi,DWORD [24+esp] |
| 1309 mov DWORD [20+esp],edi |
| 1310 jb NEAR L$006loop |
| 1311 mov esi,eax |
| 1312 and esi,255 |
| 1313 movzx esi,BYTE [esi*1+ebp-128] |
| 1314 movzx edi,dh |
| 1315 movzx edi,BYTE [edi*1+ebp-128] |
| 1316 shl edi,8 |
| 1317 xor esi,edi |
| 1318 mov edi,ecx |
| 1319 shr edi,16 |
| 1320 and edi,255 |
| 1321 movzx edi,BYTE [edi*1+ebp-128] |
| 1322 shl edi,16 |
| 1323 xor esi,edi |
| 1324 mov edi,ebx |
| 1325 shr edi,24 |
| 1326 movzx edi,BYTE [edi*1+ebp-128] |
| 1327 shl edi,24 |
| 1328 xor esi,edi |
| 1329 mov DWORD [4+esp],esi |
| 1330 mov esi,ebx |
| 1331 and esi,255 |
| 1332 movzx esi,BYTE [esi*1+ebp-128] |
| 1333 movzx edi,ah |
| 1334 movzx edi,BYTE [edi*1+ebp-128] |
| 1335 shl edi,8 |
| 1336 xor esi,edi |
| 1337 mov edi,edx |
| 1338 shr edi,16 |
| 1339 and edi,255 |
| 1340 movzx edi,BYTE [edi*1+ebp-128] |
| 1341 shl edi,16 |
| 1342 xor esi,edi |
| 1343 mov edi,ecx |
| 1344 shr edi,24 |
| 1345 movzx edi,BYTE [edi*1+ebp-128] |
| 1346 shl edi,24 |
| 1347 xor esi,edi |
| 1348 mov DWORD [8+esp],esi |
| 1349 mov esi,ecx |
| 1350 and esi,255 |
| 1351 movzx esi,BYTE [esi*1+ebp-128] |
| 1352 movzx edi,bh |
| 1353 movzx edi,BYTE [edi*1+ebp-128] |
| 1354 shl edi,8 |
| 1355 xor esi,edi |
| 1356 mov edi,eax |
| 1357 shr edi,16 |
| 1358 and edi,255 |
| 1359 movzx edi,BYTE [edi*1+ebp-128] |
| 1360 shl edi,16 |
| 1361 xor esi,edi |
| 1362 mov edi,edx |
| 1363 shr edi,24 |
| 1364 movzx edi,BYTE [edi*1+ebp-128] |
| 1365 shl edi,24 |
| 1366 xor esi,edi |
| 1367 mov edi,DWORD [20+esp] |
| 1368 and edx,255 |
| 1369 movzx edx,BYTE [edx*1+ebp-128] |
| 1370 movzx ecx,ch |
| 1371 movzx ecx,BYTE [ecx*1+ebp-128] |
| 1372 shl ecx,8 |
| 1373 xor edx,ecx |
| 1374 mov ecx,esi |
| 1375 shr ebx,16 |
| 1376 and ebx,255 |
| 1377 movzx ebx,BYTE [ebx*1+ebp-128] |
| 1378 shl ebx,16 |
| 1379 xor edx,ebx |
| 1380 mov ebx,DWORD [8+esp] |
| 1381 shr eax,24 |
| 1382 movzx eax,BYTE [eax*1+ebp-128] |
| 1383 shl eax,24 |
| 1384 xor edx,eax |
| 1385 mov eax,DWORD [4+esp] |
| 1386 xor eax,DWORD [16+edi] |
| 1387 xor ebx,DWORD [20+edi] |
| 1388 xor ecx,DWORD [24+edi] |
| 1389 xor edx,DWORD [28+edi] |
| 1390 ret |
| 1391 align 16 |
| 1392 __sse_AES_decrypt_compact: |
| 1393 pxor mm0,[edi] |
| 1394 pxor mm4,[8+edi] |
| 1395 mov esi,DWORD [240+edi] |
| 1396 lea esi,[esi*1+esi-2] |
| 1397 lea esi,[esi*8+edi] |
| 1398 mov DWORD [24+esp],esi |
| 1399 mov eax,454761243 |
| 1400 mov DWORD [8+esp],eax |
| 1401 mov DWORD [12+esp],eax |
| 1402 mov eax,DWORD [ebp-128] |
| 1403 mov ebx,DWORD [ebp-96] |
| 1404 mov ecx,DWORD [ebp-64] |
| 1405 mov edx,DWORD [ebp-32] |
| 1406 mov eax,DWORD [ebp] |
| 1407 mov ebx,DWORD [32+ebp] |
| 1408 mov ecx,DWORD [64+ebp] |
| 1409 mov edx,DWORD [96+ebp] |
| 1410 align 16 |
| 1411 L$007loop: |
| 1412 pshufw mm1,mm0,12 |
| 1413 pshufw mm5,mm4,9 |
| 1414 movd eax,mm1 |
| 1415 movd ebx,mm5 |
| 1416 mov DWORD [20+esp],edi |
| 1417 movzx esi,al |
| 1418 movzx edx,ah |
| 1419 pshufw mm2,mm0,6 |
| 1420 movzx ecx,BYTE [esi*1+ebp-128] |
| 1421 movzx edi,bl |
| 1422 movzx edx,BYTE [edx*1+ebp-128] |
| 1423 shr eax,16 |
| 1424 shl edx,8 |
| 1425 movzx esi,BYTE [edi*1+ebp-128] |
| 1426 movzx edi,bh |
| 1427 shl esi,16 |
| 1428 pshufw mm6,mm4,3 |
| 1429 or ecx,esi |
| 1430 movzx esi,BYTE [edi*1+ebp-128] |
| 1431 movzx edi,ah |
| 1432 shl esi,24 |
| 1433 shr ebx,16 |
| 1434 or edx,esi |
| 1435 movzx esi,BYTE [edi*1+ebp-128] |
| 1436 movzx edi,bh |
| 1437 shl esi,24 |
| 1438 or ecx,esi |
| 1439 movzx esi,BYTE [edi*1+ebp-128] |
| 1440 movzx edi,al |
| 1441 shl esi,8 |
| 1442 movd eax,mm2 |
| 1443 or ecx,esi |
| 1444 movzx esi,BYTE [edi*1+ebp-128] |
| 1445 movzx edi,bl |
| 1446 shl esi,16 |
| 1447 movd ebx,mm6 |
| 1448 movd mm0,ecx |
| 1449 movzx ecx,BYTE [edi*1+ebp-128] |
| 1450 movzx edi,al |
| 1451 or ecx,esi |
| 1452 movzx esi,BYTE [edi*1+ebp-128] |
| 1453 movzx edi,bl |
| 1454 or edx,esi |
| 1455 movzx esi,BYTE [edi*1+ebp-128] |
| 1456 movzx edi,ah |
| 1457 shl esi,16 |
| 1458 shr eax,16 |
| 1459 or edx,esi |
| 1460 movzx esi,BYTE [edi*1+ebp-128] |
| 1461 movzx edi,bh |
| 1462 shr ebx,16 |
| 1463 shl esi,8 |
| 1464 movd mm1,edx |
| 1465 movzx edx,BYTE [edi*1+ebp-128] |
| 1466 movzx edi,bh |
| 1467 shl edx,24 |
| 1468 and ebx,255 |
| 1469 or edx,esi |
| 1470 punpckldq mm0,mm1 |
| 1471 movzx esi,BYTE [edi*1+ebp-128] |
| 1472 movzx edi,al |
| 1473 shl esi,8 |
| 1474 movzx eax,ah |
| 1475 movzx ebx,BYTE [ebx*1+ebp-128] |
| 1476 or ecx,esi |
| 1477 movzx esi,BYTE [edi*1+ebp-128] |
| 1478 or edx,ebx |
| 1479 shl esi,16 |
| 1480 movzx eax,BYTE [eax*1+ebp-128] |
| 1481 or edx,esi |
| 1482 shl eax,24 |
| 1483 or ecx,eax |
| 1484 mov edi,DWORD [20+esp] |
| 1485 movd mm4,edx |
| 1486 movd mm5,ecx |
| 1487 punpckldq mm4,mm5 |
| 1488 add edi,16 |
| 1489 cmp edi,DWORD [24+esp] |
| 1490 ja NEAR L$008out |
| 1491 movq mm3,mm0 |
| 1492 movq mm7,mm4 |
| 1493 pshufw mm2,mm0,228 |
| 1494 pshufw mm6,mm4,228 |
| 1495 movq mm1,mm0 |
| 1496 movq mm5,mm4 |
| 1497 pshufw mm0,mm0,177 |
| 1498 pshufw mm4,mm4,177 |
| 1499 pslld mm2,8 |
| 1500 pslld mm6,8 |
| 1501 psrld mm3,8 |
| 1502 psrld mm7,8 |
| 1503 pxor mm0,mm2 |
| 1504 pxor mm4,mm6 |
| 1505 pxor mm0,mm3 |
| 1506 pxor mm4,mm7 |
| 1507 pslld mm2,16 |
| 1508 pslld mm6,16 |
| 1509 psrld mm3,16 |
| 1510 psrld mm7,16 |
| 1511 pxor mm0,mm2 |
| 1512 pxor mm4,mm6 |
| 1513 pxor mm0,mm3 |
| 1514 pxor mm4,mm7 |
| 1515 movq mm3,[8+esp] |
| 1516 pxor mm2,mm2 |
| 1517 pxor mm6,mm6 |
| 1518 pcmpgtb mm2,mm1 |
| 1519 pcmpgtb mm6,mm5 |
| 1520 pand mm2,mm3 |
| 1521 pand mm6,mm3 |
| 1522 paddb mm1,mm1 |
| 1523 paddb mm5,mm5 |
| 1524 pxor mm1,mm2 |
| 1525 pxor mm5,mm6 |
| 1526 movq mm3,mm1 |
| 1527 movq mm7,mm5 |
| 1528 movq mm2,mm1 |
| 1529 movq mm6,mm5 |
| 1530 pxor mm0,mm1 |
| 1531 pxor mm4,mm5 |
| 1532 pslld mm3,24 |
| 1533 pslld mm7,24 |
| 1534 psrld mm2,8 |
| 1535 psrld mm6,8 |
| 1536 pxor mm0,mm3 |
| 1537 pxor mm4,mm7 |
| 1538 pxor mm0,mm2 |
| 1539 pxor mm4,mm6 |
| 1540 movq mm2,[8+esp] |
| 1541 pxor mm3,mm3 |
| 1542 pxor mm7,mm7 |
| 1543 pcmpgtb mm3,mm1 |
| 1544 pcmpgtb mm7,mm5 |
| 1545 pand mm3,mm2 |
| 1546 pand mm7,mm2 |
| 1547 paddb mm1,mm1 |
| 1548 paddb mm5,mm5 |
| 1549 pxor mm1,mm3 |
| 1550 pxor mm5,mm7 |
| 1551 pshufw mm3,mm1,177 |
| 1552 pshufw mm7,mm5,177 |
| 1553 pxor mm0,mm1 |
| 1554 pxor mm4,mm5 |
| 1555 pxor mm0,mm3 |
| 1556 pxor mm4,mm7 |
| 1557 pxor mm3,mm3 |
| 1558 pxor mm7,mm7 |
| 1559 pcmpgtb mm3,mm1 |
| 1560 pcmpgtb mm7,mm5 |
| 1561 pand mm3,mm2 |
| 1562 pand mm7,mm2 |
| 1563 paddb mm1,mm1 |
| 1564 paddb mm5,mm5 |
| 1565 pxor mm1,mm3 |
| 1566 pxor mm5,mm7 |
| 1567 pxor mm0,mm1 |
| 1568 pxor mm4,mm5 |
| 1569 movq mm3,mm1 |
| 1570 movq mm7,mm5 |
| 1571 pshufw mm2,mm1,177 |
| 1572 pshufw mm6,mm5,177 |
| 1573 pxor mm0,mm2 |
| 1574 pxor mm4,mm6 |
| 1575 pslld mm1,8 |
| 1576 pslld mm5,8 |
| 1577 psrld mm3,8 |
| 1578 psrld mm7,8 |
| 1579 movq mm2,[edi] |
| 1580 movq mm6,[8+edi] |
| 1581 pxor mm0,mm1 |
| 1582 pxor mm4,mm5 |
| 1583 pxor mm0,mm3 |
| 1584 pxor mm4,mm7 |
| 1585 mov eax,DWORD [ebp-128] |
| 1586 pslld mm1,16 |
| 1587 pslld mm5,16 |
| 1588 mov ebx,DWORD [ebp-64] |
| 1589 psrld mm3,16 |
| 1590 psrld mm7,16 |
| 1591 mov ecx,DWORD [ebp] |
| 1592 pxor mm0,mm1 |
| 1593 pxor mm4,mm5 |
| 1594 mov edx,DWORD [64+ebp] |
| 1595 pxor mm0,mm3 |
| 1596 pxor mm4,mm7 |
| 1597 pxor mm0,mm2 |
| 1598 pxor mm4,mm6 |
| 1599 jmp NEAR L$007loop |
| 1600 align 16 |
| 1601 L$008out: |
| 1602 pxor mm0,[edi] |
| 1603 pxor mm4,[8+edi] |
| 1604 ret |
| 1605 align 16 |
| 1606 __x86_AES_decrypt: |
| 1607 mov DWORD [20+esp],edi |
| 1608 xor eax,DWORD [edi] |
| 1609 xor ebx,DWORD [4+edi] |
| 1610 xor ecx,DWORD [8+edi] |
| 1611 xor edx,DWORD [12+edi] |
| 1612 mov esi,DWORD [240+edi] |
| 1613 lea esi,[esi*1+esi-2] |
| 1614 lea esi,[esi*8+edi] |
| 1615 mov DWORD [24+esp],esi |
| 1616 align 16 |
| 1617 L$009loop: |
| 1618 mov esi,eax |
| 1619 and esi,255 |
| 1620 mov esi,DWORD [esi*8+ebp] |
| 1621 movzx edi,dh |
| 1622 xor esi,DWORD [3+edi*8+ebp] |
| 1623 mov edi,ecx |
| 1624 shr edi,16 |
| 1625 and edi,255 |
| 1626 xor esi,DWORD [2+edi*8+ebp] |
| 1627 mov edi,ebx |
| 1628 shr edi,24 |
| 1629 xor esi,DWORD [1+edi*8+ebp] |
| 1630 mov DWORD [4+esp],esi |
| 1631 mov esi,ebx |
| 1632 and esi,255 |
| 1633 mov esi,DWORD [esi*8+ebp] |
| 1634 movzx edi,ah |
| 1635 xor esi,DWORD [3+edi*8+ebp] |
| 1636 mov edi,edx |
| 1637 shr edi,16 |
| 1638 and edi,255 |
| 1639 xor esi,DWORD [2+edi*8+ebp] |
| 1640 mov edi,ecx |
| 1641 shr edi,24 |
| 1642 xor esi,DWORD [1+edi*8+ebp] |
| 1643 mov DWORD [8+esp],esi |
| 1644 mov esi,ecx |
| 1645 and esi,255 |
| 1646 mov esi,DWORD [esi*8+ebp] |
| 1647 movzx edi,bh |
| 1648 xor esi,DWORD [3+edi*8+ebp] |
| 1649 mov edi,eax |
| 1650 shr edi,16 |
| 1651 and edi,255 |
| 1652 xor esi,DWORD [2+edi*8+ebp] |
| 1653 mov edi,edx |
| 1654 shr edi,24 |
| 1655 xor esi,DWORD [1+edi*8+ebp] |
| 1656 mov edi,DWORD [20+esp] |
| 1657 and edx,255 |
| 1658 mov edx,DWORD [edx*8+ebp] |
| 1659 movzx ecx,ch |
| 1660 xor edx,DWORD [3+ecx*8+ebp] |
| 1661 mov ecx,esi |
| 1662 shr ebx,16 |
| 1663 and ebx,255 |
| 1664 xor edx,DWORD [2+ebx*8+ebp] |
| 1665 mov ebx,DWORD [8+esp] |
| 1666 shr eax,24 |
| 1667 xor edx,DWORD [1+eax*8+ebp] |
| 1668 mov eax,DWORD [4+esp] |
| 1669 add edi,16 |
| 1670 xor eax,DWORD [edi] |
| 1671 xor ebx,DWORD [4+edi] |
| 1672 xor ecx,DWORD [8+edi] |
| 1673 xor edx,DWORD [12+edi] |
| 1674 cmp edi,DWORD [24+esp] |
| 1675 mov DWORD [20+esp],edi |
| 1676 jb NEAR L$009loop |
| 1677 lea ebp,[2176+ebp] |
| 1678 mov edi,DWORD [ebp-128] |
| 1679 mov esi,DWORD [ebp-96] |
| 1680 mov edi,DWORD [ebp-64] |
| 1681 mov esi,DWORD [ebp-32] |
| 1682 mov edi,DWORD [ebp] |
| 1683 mov esi,DWORD [32+ebp] |
| 1684 mov edi,DWORD [64+ebp] |
| 1685 mov esi,DWORD [96+ebp] |
| 1686 lea ebp,[ebp-128] |
| 1687 mov esi,eax |
| 1688 and esi,255 |
| 1689 movzx esi,BYTE [esi*1+ebp] |
| 1690 movzx edi,dh |
| 1691 movzx edi,BYTE [edi*1+ebp] |
| 1692 shl edi,8 |
| 1693 xor esi,edi |
| 1694 mov edi,ecx |
| 1695 shr edi,16 |
| 1696 and edi,255 |
| 1697 movzx edi,BYTE [edi*1+ebp] |
| 1698 shl edi,16 |
| 1699 xor esi,edi |
| 1700 mov edi,ebx |
| 1701 shr edi,24 |
| 1702 movzx edi,BYTE [edi*1+ebp] |
| 1703 shl edi,24 |
| 1704 xor esi,edi |
| 1705 mov DWORD [4+esp],esi |
| 1706 mov esi,ebx |
| 1707 and esi,255 |
| 1708 movzx esi,BYTE [esi*1+ebp] |
| 1709 movzx edi,ah |
| 1710 movzx edi,BYTE [edi*1+ebp] |
| 1711 shl edi,8 |
| 1712 xor esi,edi |
| 1713 mov edi,edx |
| 1714 shr edi,16 |
| 1715 and edi,255 |
| 1716 movzx edi,BYTE [edi*1+ebp] |
| 1717 shl edi,16 |
| 1718 xor esi,edi |
| 1719 mov edi,ecx |
| 1720 shr edi,24 |
| 1721 movzx edi,BYTE [edi*1+ebp] |
| 1722 shl edi,24 |
| 1723 xor esi,edi |
| 1724 mov DWORD [8+esp],esi |
| 1725 mov esi,ecx |
| 1726 and esi,255 |
| 1727 movzx esi,BYTE [esi*1+ebp] |
| 1728 movzx edi,bh |
| 1729 movzx edi,BYTE [edi*1+ebp] |
| 1730 shl edi,8 |
| 1731 xor esi,edi |
| 1732 mov edi,eax |
| 1733 shr edi,16 |
| 1734 and edi,255 |
| 1735 movzx edi,BYTE [edi*1+ebp] |
| 1736 shl edi,16 |
| 1737 xor esi,edi |
| 1738 mov edi,edx |
| 1739 shr edi,24 |
| 1740 movzx edi,BYTE [edi*1+ebp] |
| 1741 shl edi,24 |
| 1742 xor esi,edi |
| 1743 mov edi,DWORD [20+esp] |
| 1744 and edx,255 |
| 1745 movzx edx,BYTE [edx*1+ebp] |
| 1746 movzx ecx,ch |
| 1747 movzx ecx,BYTE [ecx*1+ebp] |
| 1748 shl ecx,8 |
| 1749 xor edx,ecx |
| 1750 mov ecx,esi |
| 1751 shr ebx,16 |
| 1752 and ebx,255 |
| 1753 movzx ebx,BYTE [ebx*1+ebp] |
| 1754 shl ebx,16 |
| 1755 xor edx,ebx |
| 1756 mov ebx,DWORD [8+esp] |
| 1757 shr eax,24 |
| 1758 movzx eax,BYTE [eax*1+ebp] |
| 1759 shl eax,24 |
| 1760 xor edx,eax |
| 1761 mov eax,DWORD [4+esp] |
| 1762 lea ebp,[ebp-2048] |
| 1763 add edi,16 |
| 1764 xor eax,DWORD [edi] |
| 1765 xor ebx,DWORD [4+edi] |
| 1766 xor ecx,DWORD [8+edi] |
| 1767 xor edx,DWORD [12+edi] |
| 1768 ret |
| 1769 align 64 |
| 1770 L$AES_Td: |
| 1771 dd 1353184337,1353184337 |
| 1772 dd 1399144830,1399144830 |
| 1773 dd 3282310938,3282310938 |
| 1774 dd 2522752826,2522752826 |
| 1775 dd 3412831035,3412831035 |
| 1776 dd 4047871263,4047871263 |
| 1777 dd 2874735276,2874735276 |
| 1778 dd 2466505547,2466505547 |
| 1779 dd 1442459680,1442459680 |
| 1780 dd 4134368941,4134368941 |
| 1781 dd 2440481928,2440481928 |
| 1782 dd 625738485,625738485 |
| 1783 dd 4242007375,4242007375 |
| 1784 dd 3620416197,3620416197 |
| 1785 dd 2151953702,2151953702 |
| 1786 dd 2409849525,2409849525 |
| 1787 dd 1230680542,1230680542 |
| 1788 dd 1729870373,1729870373 |
| 1789 dd 2551114309,2551114309 |
| 1790 dd 3787521629,3787521629 |
| 1791 dd 41234371,41234371 |
| 1792 dd 317738113,317738113 |
| 1793 dd 2744600205,2744600205 |
| 1794 dd 3338261355,3338261355 |
| 1795 dd 3881799427,3881799427 |
| 1796 dd 2510066197,2510066197 |
| 1797 dd 3950669247,3950669247 |
| 1798 dd 3663286933,3663286933 |
| 1799 dd 763608788,763608788 |
| 1800 dd 3542185048,3542185048 |
| 1801 dd 694804553,694804553 |
| 1802 dd 1154009486,1154009486 |
| 1803 dd 1787413109,1787413109 |
| 1804 dd 2021232372,2021232372 |
| 1805 dd 1799248025,1799248025 |
| 1806 dd 3715217703,3715217703 |
| 1807 dd 3058688446,3058688446 |
| 1808 dd 397248752,397248752 |
| 1809 dd 1722556617,1722556617 |
| 1810 dd 3023752829,3023752829 |
| 1811 dd 407560035,407560035 |
| 1812 dd 2184256229,2184256229 |
| 1813 dd 1613975959,1613975959 |
| 1814 dd 1165972322,1165972322 |
| 1815 dd 3765920945,3765920945 |
| 1816 dd 2226023355,2226023355 |
| 1817 dd 480281086,480281086 |
| 1818 dd 2485848313,2485848313 |
| 1819 dd 1483229296,1483229296 |
| 1820 dd 436028815,436028815 |
| 1821 dd 2272059028,2272059028 |
| 1822 dd 3086515026,3086515026 |
| 1823 dd 601060267,601060267 |
| 1824 dd 3791801202,3791801202 |
| 1825 dd 1468997603,1468997603 |
| 1826 dd 715871590,715871590 |
| 1827 dd 120122290,120122290 |
| 1828 dd 63092015,63092015 |
| 1829 dd 2591802758,2591802758 |
| 1830 dd 2768779219,2768779219 |
| 1831 dd 4068943920,4068943920 |
| 1832 dd 2997206819,2997206819 |
| 1833 dd 3127509762,3127509762 |
| 1834 dd 1552029421,1552029421 |
| 1835 dd 723308426,723308426 |
| 1836 dd 2461301159,2461301159 |
| 1837 dd 4042393587,4042393587 |
| 1838 dd 2715969870,2715969870 |
| 1839 dd 3455375973,3455375973 |
| 1840 dd 3586000134,3586000134 |
| 1841 dd 526529745,526529745 |
| 1842 dd 2331944644,2331944644 |
| 1843 dd 2639474228,2639474228 |
| 1844 dd 2689987490,2689987490 |
| 1845 dd 853641733,853641733 |
| 1846 dd 1978398372,1978398372 |
| 1847 dd 971801355,971801355 |
| 1848 dd 2867814464,2867814464 |
| 1849 dd 111112542,111112542 |
| 1850 dd 1360031421,1360031421 |
| 1851 dd 4186579262,4186579262 |
| 1852 dd 1023860118,1023860118 |
| 1853 dd 2919579357,2919579357 |
| 1854 dd 1186850381,1186850381 |
| 1855 dd 3045938321,3045938321 |
| 1856 dd 90031217,90031217 |
| 1857 dd 1876166148,1876166148 |
| 1858 dd 4279586912,4279586912 |
| 1859 dd 620468249,620468249 |
| 1860 dd 2548678102,2548678102 |
| 1861 dd 3426959497,3426959497 |
| 1862 dd 2006899047,2006899047 |
| 1863 dd 3175278768,3175278768 |
| 1864 dd 2290845959,2290845959 |
| 1865 dd 945494503,945494503 |
| 1866 dd 3689859193,3689859193 |
| 1867 dd 1191869601,1191869601 |
| 1868 dd 3910091388,3910091388 |
| 1869 dd 3374220536,3374220536 |
| 1870 dd 0,0 |
| 1871 dd 2206629897,2206629897 |
| 1872 dd 1223502642,1223502642 |
| 1873 dd 2893025566,2893025566 |
| 1874 dd 1316117100,1316117100 |
| 1875 dd 4227796733,4227796733 |
| 1876 dd 1446544655,1446544655 |
| 1877 dd 517320253,517320253 |
| 1878 dd 658058550,658058550 |
| 1879 dd 1691946762,1691946762 |
| 1880 dd 564550760,564550760 |
| 1881 dd 3511966619,3511966619 |
| 1882 dd 976107044,976107044 |
| 1883 dd 2976320012,2976320012 |
| 1884 dd 266819475,266819475 |
| 1885 dd 3533106868,3533106868 |
| 1886 dd 2660342555,2660342555 |
| 1887 dd 1338359936,1338359936 |
| 1888 dd 2720062561,2720062561 |
| 1889 dd 1766553434,1766553434 |
| 1890 dd 370807324,370807324 |
| 1891 dd 179999714,179999714 |
| 1892 dd 3844776128,3844776128 |
| 1893 dd 1138762300,1138762300 |
| 1894 dd 488053522,488053522 |
| 1895 dd 185403662,185403662 |
| 1896 dd 2915535858,2915535858 |
| 1897 dd 3114841645,3114841645 |
| 1898 dd 3366526484,3366526484 |
| 1899 dd 2233069911,2233069911 |
| 1900 dd 1275557295,1275557295 |
| 1901 dd 3151862254,3151862254 |
| 1902 dd 4250959779,4250959779 |
| 1903 dd 2670068215,2670068215 |
| 1904 dd 3170202204,3170202204 |
| 1905 dd 3309004356,3309004356 |
| 1906 dd 880737115,880737115 |
| 1907 dd 1982415755,1982415755 |
| 1908 dd 3703972811,3703972811 |
| 1909 dd 1761406390,1761406390 |
| 1910 dd 1676797112,1676797112 |
| 1911 dd 3403428311,3403428311 |
| 1912 dd 277177154,277177154 |
| 1913 dd 1076008723,1076008723 |
| 1914 dd 538035844,538035844 |
| 1915 dd 2099530373,2099530373 |
| 1916 dd 4164795346,4164795346 |
| 1917 dd 288553390,288553390 |
| 1918 dd 1839278535,1839278535 |
| 1919 dd 1261411869,1261411869 |
| 1920 dd 4080055004,4080055004 |
| 1921 dd 3964831245,3964831245 |
| 1922 dd 3504587127,3504587127 |
| 1923 dd 1813426987,1813426987 |
| 1924 dd 2579067049,2579067049 |
| 1925 dd 4199060497,4199060497 |
| 1926 dd 577038663,577038663 |
| 1927 dd 3297574056,3297574056 |
| 1928 dd 440397984,440397984 |
| 1929 dd 3626794326,3626794326 |
| 1930 dd 4019204898,4019204898 |
| 1931 dd 3343796615,3343796615 |
| 1932 dd 3251714265,3251714265 |
| 1933 dd 4272081548,4272081548 |
| 1934 dd 906744984,906744984 |
| 1935 dd 3481400742,3481400742 |
| 1936 dd 685669029,685669029 |
| 1937 dd 646887386,646887386 |
| 1938 dd 2764025151,2764025151 |
| 1939 dd 3835509292,3835509292 |
| 1940 dd 227702864,227702864 |
| 1941 dd 2613862250,2613862250 |
| 1942 dd 1648787028,1648787028 |
| 1943 dd 3256061430,3256061430 |
| 1944 dd 3904428176,3904428176 |
| 1945 dd 1593260334,1593260334 |
| 1946 dd 4121936770,4121936770 |
| 1947 dd 3196083615,3196083615 |
| 1948 dd 2090061929,2090061929 |
| 1949 dd 2838353263,2838353263 |
| 1950 dd 3004310991,3004310991 |
| 1951 dd 999926984,999926984 |
| 1952 dd 2809993232,2809993232 |
| 1953 dd 1852021992,1852021992 |
| 1954 dd 2075868123,2075868123 |
| 1955 dd 158869197,158869197 |
| 1956 dd 4095236462,4095236462 |
| 1957 dd 28809964,28809964 |
| 1958 dd 2828685187,2828685187 |
| 1959 dd 1701746150,1701746150 |
| 1960 dd 2129067946,2129067946 |
| 1961 dd 147831841,147831841 |
| 1962 dd 3873969647,3873969647 |
| 1963 dd 3650873274,3650873274 |
| 1964 dd 3459673930,3459673930 |
| 1965 dd 3557400554,3557400554 |
| 1966 dd 3598495785,3598495785 |
| 1967 dd 2947720241,2947720241 |
| 1968 dd 824393514,824393514 |
| 1969 dd 815048134,815048134 |
| 1970 dd 3227951669,3227951669 |
| 1971 dd 935087732,935087732 |
| 1972 dd 2798289660,2798289660 |
| 1973 dd 2966458592,2966458592 |
| 1974 dd 366520115,366520115 |
| 1975 dd 1251476721,1251476721 |
| 1976 dd 4158319681,4158319681 |
| 1977 dd 240176511,240176511 |
| 1978 dd 804688151,804688151 |
| 1979 dd 2379631990,2379631990 |
| 1980 dd 1303441219,1303441219 |
| 1981 dd 1414376140,1414376140 |
| 1982 dd 3741619940,3741619940 |
| 1983 dd 3820343710,3820343710 |
| 1984 dd 461924940,461924940 |
| 1985 dd 3089050817,3089050817 |
| 1986 dd 2136040774,2136040774 |
| 1987 dd 82468509,82468509 |
| 1988 dd 1563790337,1563790337 |
| 1989 dd 1937016826,1937016826 |
| 1990 dd 776014843,776014843 |
| 1991 dd 1511876531,1511876531 |
| 1992 dd 1389550482,1389550482 |
| 1993 dd 861278441,861278441 |
| 1994 dd 323475053,323475053 |
| 1995 dd 2355222426,2355222426 |
| 1996 dd 2047648055,2047648055 |
| 1997 dd 2383738969,2383738969 |
| 1998 dd 2302415851,2302415851 |
| 1999 dd 3995576782,3995576782 |
| 2000 dd 902390199,902390199 |
| 2001 dd 3991215329,3991215329 |
| 2002 dd 1018251130,1018251130 |
| 2003 dd 1507840668,1507840668 |
| 2004 dd 1064563285,1064563285 |
| 2005 dd 2043548696,2043548696 |
| 2006 dd 3208103795,3208103795 |
| 2007 dd 3939366739,3939366739 |
| 2008 dd 1537932639,1537932639 |
| 2009 dd 342834655,342834655 |
| 2010 dd 2262516856,2262516856 |
| 2011 dd 2180231114,2180231114 |
| 2012 dd 1053059257,1053059257 |
| 2013 dd 741614648,741614648 |
| 2014 dd 1598071746,1598071746 |
| 2015 dd 1925389590,1925389590 |
| 2016 dd 203809468,203809468 |
| 2017 dd 2336832552,2336832552 |
| 2018 dd 1100287487,1100287487 |
| 2019 dd 1895934009,1895934009 |
| 2020 dd 3736275976,3736275976 |
| 2021 dd 2632234200,2632234200 |
| 2022 dd 2428589668,2428589668 |
| 2023 dd 1636092795,1636092795 |
| 2024 dd 1890988757,1890988757 |
| 2025 dd 1952214088,1952214088 |
| 2026 dd 1113045200,1113045200 |
| 2027 db 82,9,106,213,48,54,165,56 |
| 2028 db 191,64,163,158,129,243,215,251 |
| 2029 db 124,227,57,130,155,47,255,135 |
| 2030 db 52,142,67,68,196,222,233,203 |
| 2031 db 84,123,148,50,166,194,35,61 |
| 2032 db 238,76,149,11,66,250,195,78 |
| 2033 db 8,46,161,102,40,217,36,178 |
| 2034 db 118,91,162,73,109,139,209,37 |
| 2035 db 114,248,246,100,134,104,152,22 |
| 2036 db 212,164,92,204,93,101,182,146 |
| 2037 db 108,112,72,80,253,237,185,218 |
| 2038 db 94,21,70,87,167,141,157,132 |
| 2039 db 144,216,171,0,140,188,211,10 |
| 2040 db 247,228,88,5,184,179,69,6 |
| 2041 db 208,44,30,143,202,63,15,2 |
| 2042 db 193,175,189,3,1,19,138,107 |
| 2043 db 58,145,17,65,79,103,220,234 |
| 2044 db 151,242,207,206,240,180,230,115 |
| 2045 db 150,172,116,34,231,173,53,133 |
| 2046 db 226,249,55,232,28,117,223,110 |
| 2047 db 71,241,26,113,29,41,197,137 |
| 2048 db 111,183,98,14,170,24,190,27 |
| 2049 db 252,86,62,75,198,210,121,32 |
| 2050 db 154,219,192,254,120,205,90,244 |
| 2051 db 31,221,168,51,136,7,199,49 |
| 2052 db 177,18,16,89,39,128,236,95 |
| 2053 db 96,81,127,169,25,181,74,13 |
| 2054 db 45,229,122,159,147,201,156,239 |
| 2055 db 160,224,59,77,174,42,245,176 |
| 2056 db 200,235,187,60,131,83,153,97 |
| 2057 db 23,43,4,126,186,119,214,38 |
| 2058 db 225,105,20,99,85,33,12,125 |
| 2059 db 82,9,106,213,48,54,165,56 |
| 2060 db 191,64,163,158,129,243,215,251 |
| 2061 db 124,227,57,130,155,47,255,135 |
| 2062 db 52,142,67,68,196,222,233,203 |
| 2063 db 84,123,148,50,166,194,35,61 |
| 2064 db 238,76,149,11,66,250,195,78 |
| 2065 db 8,46,161,102,40,217,36,178 |
| 2066 db 118,91,162,73,109,139,209,37 |
| 2067 db 114,248,246,100,134,104,152,22 |
| 2068 db 212,164,92,204,93,101,182,146 |
| 2069 db 108,112,72,80,253,237,185,218 |
| 2070 db 94,21,70,87,167,141,157,132 |
| 2071 db 144,216,171,0,140,188,211,10 |
| 2072 db 247,228,88,5,184,179,69,6 |
| 2073 db 208,44,30,143,202,63,15,2 |
| 2074 db 193,175,189,3,1,19,138,107 |
| 2075 db 58,145,17,65,79,103,220,234 |
| 2076 db 151,242,207,206,240,180,230,115 |
| 2077 db 150,172,116,34,231,173,53,133 |
| 2078 db 226,249,55,232,28,117,223,110 |
| 2079 db 71,241,26,113,29,41,197,137 |
| 2080 db 111,183,98,14,170,24,190,27 |
| 2081 db 252,86,62,75,198,210,121,32 |
| 2082 db 154,219,192,254,120,205,90,244 |
| 2083 db 31,221,168,51,136,7,199,49 |
| 2084 db 177,18,16,89,39,128,236,95 |
| 2085 db 96,81,127,169,25,181,74,13 |
| 2086 db 45,229,122,159,147,201,156,239 |
| 2087 db 160,224,59,77,174,42,245,176 |
| 2088 db 200,235,187,60,131,83,153,97 |
| 2089 db 23,43,4,126,186,119,214,38 |
| 2090 db 225,105,20,99,85,33,12,125 |
| 2091 db 82,9,106,213,48,54,165,56 |
| 2092 db 191,64,163,158,129,243,215,251 |
| 2093 db 124,227,57,130,155,47,255,135 |
| 2094 db 52,142,67,68,196,222,233,203 |
| 2095 db 84,123,148,50,166,194,35,61 |
| 2096 db 238,76,149,11,66,250,195,78 |
| 2097 db 8,46,161,102,40,217,36,178 |
| 2098 db 118,91,162,73,109,139,209,37 |
| 2099 db 114,248,246,100,134,104,152,22 |
| 2100 db 212,164,92,204,93,101,182,146 |
| 2101 db 108,112,72,80,253,237,185,218 |
| 2102 db 94,21,70,87,167,141,157,132 |
| 2103 db 144,216,171,0,140,188,211,10 |
| 2104 db 247,228,88,5,184,179,69,6 |
| 2105 db 208,44,30,143,202,63,15,2 |
| 2106 db 193,175,189,3,1,19,138,107 |
| 2107 db 58,145,17,65,79,103,220,234 |
| 2108 db 151,242,207,206,240,180,230,115 |
| 2109 db 150,172,116,34,231,173,53,133 |
| 2110 db 226,249,55,232,28,117,223,110 |
| 2111 db 71,241,26,113,29,41,197,137 |
| 2112 db 111,183,98,14,170,24,190,27 |
| 2113 db 252,86,62,75,198,210,121,32 |
| 2114 db 154,219,192,254,120,205,90,244 |
| 2115 db 31,221,168,51,136,7,199,49 |
| 2116 db 177,18,16,89,39,128,236,95 |
| 2117 db 96,81,127,169,25,181,74,13 |
| 2118 db 45,229,122,159,147,201,156,239 |
| 2119 db 160,224,59,77,174,42,245,176 |
| 2120 db 200,235,187,60,131,83,153,97 |
| 2121 db 23,43,4,126,186,119,214,38 |
| 2122 db 225,105,20,99,85,33,12,125 |
| 2123 db 82,9,106,213,48,54,165,56 |
| 2124 db 191,64,163,158,129,243,215,251 |
| 2125 db 124,227,57,130,155,47,255,135 |
| 2126 db 52,142,67,68,196,222,233,203 |
| 2127 db 84,123,148,50,166,194,35,61 |
| 2128 db 238,76,149,11,66,250,195,78 |
| 2129 db 8,46,161,102,40,217,36,178 |
| 2130 db 118,91,162,73,109,139,209,37 |
| 2131 db 114,248,246,100,134,104,152,22 |
| 2132 db 212,164,92,204,93,101,182,146 |
| 2133 db 108,112,72,80,253,237,185,218 |
| 2134 db 94,21,70,87,167,141,157,132 |
| 2135 db 144,216,171,0,140,188,211,10 |
| 2136 db 247,228,88,5,184,179,69,6 |
| 2137 db 208,44,30,143,202,63,15,2 |
| 2138 db 193,175,189,3,1,19,138,107 |
| 2139 db 58,145,17,65,79,103,220,234 |
| 2140 db 151,242,207,206,240,180,230,115 |
| 2141 db 150,172,116,34,231,173,53,133 |
| 2142 db 226,249,55,232,28,117,223,110 |
| 2143 db 71,241,26,113,29,41,197,137 |
| 2144 db 111,183,98,14,170,24,190,27 |
| 2145 db 252,86,62,75,198,210,121,32 |
| 2146 db 154,219,192,254,120,205,90,244 |
| 2147 db 31,221,168,51,136,7,199,49 |
| 2148 db 177,18,16,89,39,128,236,95 |
| 2149 db 96,81,127,169,25,181,74,13 |
| 2150 db 45,229,122,159,147,201,156,239 |
| 2151 db 160,224,59,77,174,42,245,176 |
| 2152 db 200,235,187,60,131,83,153,97 |
| 2153 db 23,43,4,126,186,119,214,38 |
| 2154 db 225,105,20,99,85,33,12,125 |
| 2155 global _asm_AES_decrypt |
| 2156 align 16 |
| 2157 _asm_AES_decrypt: |
| 2158 L$_asm_AES_decrypt_begin: |
| 2159 push ebp |
| 2160 push ebx |
| 2161 push esi |
| 2162 push edi |
| 2163 mov esi,DWORD [20+esp] |
| 2164 mov edi,DWORD [28+esp] |
| 2165 mov eax,esp |
| 2166 sub esp,36 |
| 2167 and esp,-64 |
| 2168 lea ebx,[edi-127] |
| 2169 sub ebx,esp |
| 2170 neg ebx |
| 2171 and ebx,960 |
| 2172 sub esp,ebx |
| 2173 add esp,4 |
| 2174 mov DWORD [28+esp],eax |
| 2175 call L$010pic_point |
| 2176 L$010pic_point: |
| 2177 pop ebp |
| 2178 lea eax,[_OPENSSL_ia32cap_P] |
| 2179 lea ebp,[(L$AES_Td-L$010pic_point)+ebp] |
| 2180 lea ebx,[764+esp] |
| 2181 sub ebx,ebp |
| 2182 and ebx,768 |
| 2183 lea ebp,[2176+ebx*1+ebp] |
| 2184 bt DWORD [eax],25 |
| 2185 jnc NEAR L$011x86 |
| 2186 movq mm0,[esi] |
| 2187 movq mm4,[8+esi] |
| 2188 call __sse_AES_decrypt_compact |
| 2189 mov esp,DWORD [28+esp] |
| 2190 mov esi,DWORD [24+esp] |
| 2191 movq [esi],mm0 |
| 2192 movq [8+esi],mm4 |
| 2193 emms |
| 2194 pop edi |
| 2195 pop esi |
| 2196 pop ebx |
| 2197 pop ebp |
| 2198 ret |
| 2199 align 16 |
| 2200 L$011x86: |
| 2201 mov DWORD [24+esp],ebp |
| 2202 mov eax,DWORD [esi] |
| 2203 mov ebx,DWORD [4+esi] |
| 2204 mov ecx,DWORD [8+esi] |
| 2205 mov edx,DWORD [12+esi] |
| 2206 call __x86_AES_decrypt_compact |
| 2207 mov esp,DWORD [28+esp] |
| 2208 mov esi,DWORD [24+esp] |
| 2209 mov DWORD [esi],eax |
| 2210 mov DWORD [4+esi],ebx |
| 2211 mov DWORD [8+esi],ecx |
| 2212 mov DWORD [12+esi],edx |
| 2213 pop edi |
| 2214 pop esi |
| 2215 pop ebx |
| 2216 pop ebp |
| 2217 ret |
| 2218 global _asm_AES_cbc_encrypt |
| 2219 align 16 |
| 2220 _asm_AES_cbc_encrypt: |
| 2221 L$_asm_AES_cbc_encrypt_begin: |
| 2222 push ebp |
| 2223 push ebx |
| 2224 push esi |
| 2225 push edi |
| 2226 mov ecx,DWORD [28+esp] |
| 2227 cmp ecx,0 |
| 2228 je NEAR L$012drop_out |
| 2229 call L$013pic_point |
| 2230 L$013pic_point: |
| 2231 pop ebp |
| 2232 lea eax,[_OPENSSL_ia32cap_P] |
| 2233 cmp DWORD [40+esp],0 |
| 2234 lea ebp,[(L$AES_Te-L$013pic_point)+ebp] |
| 2235 jne NEAR L$014picked_te |
| 2236 lea ebp,[(L$AES_Td-L$AES_Te)+ebp] |
| 2237 L$014picked_te: |
| 2238 pushfd |
| 2239 cld |
| 2240 cmp ecx,512 |
| 2241 jb NEAR L$015slow_way |
| 2242 test ecx,15 |
| 2243 jnz NEAR L$015slow_way |
| 2244 bt DWORD [eax],28 |
| 2245 jc NEAR L$015slow_way |
| 2246 lea esi,[esp-324] |
| 2247 and esi,-64 |
| 2248 mov eax,ebp |
| 2249 lea ebx,[2304+ebp] |
| 2250 mov edx,esi |
| 2251 and eax,4095 |
| 2252 and ebx,4095 |
| 2253 and edx,4095 |
| 2254 cmp edx,ebx |
| 2255 jb NEAR L$016tbl_break_out |
| 2256 sub edx,ebx |
| 2257 sub esi,edx |
| 2258 jmp NEAR L$017tbl_ok |
| 2259 align 4 |
| 2260 L$016tbl_break_out: |
| 2261 sub edx,eax |
| 2262 and edx,4095 |
| 2263 add edx,384 |
| 2264 sub esi,edx |
| 2265 align 4 |
| 2266 L$017tbl_ok: |
| 2267 lea edx,[24+esp] |
| 2268 xchg esp,esi |
| 2269 add esp,4 |
| 2270 mov DWORD [24+esp],ebp |
| 2271 mov DWORD [28+esp],esi |
| 2272 mov eax,DWORD [edx] |
| 2273 mov ebx,DWORD [4+edx] |
| 2274 mov edi,DWORD [12+edx] |
| 2275 mov esi,DWORD [16+edx] |
| 2276 mov edx,DWORD [20+edx] |
| 2277 mov DWORD [32+esp],eax |
| 2278 mov DWORD [36+esp],ebx |
| 2279 mov DWORD [40+esp],ecx |
| 2280 mov DWORD [44+esp],edi |
| 2281 mov DWORD [48+esp],esi |
| 2282 mov DWORD [316+esp],0 |
| 2283 mov ebx,edi |
| 2284 mov ecx,61 |
| 2285 sub ebx,ebp |
| 2286 mov esi,edi |
| 2287 and ebx,4095 |
| 2288 lea edi,[76+esp] |
| 2289 cmp ebx,2304 |
| 2290 jb NEAR L$018do_copy |
| 2291 cmp ebx,3852 |
| 2292 jb NEAR L$019skip_copy |
| 2293 align 4 |
| 2294 L$018do_copy: |
| 2295 mov DWORD [44+esp],edi |
| 2296 dd 2784229001 |
| 2297 L$019skip_copy: |
| 2298 mov edi,16 |
| 2299 align 4 |
| 2300 L$020prefetch_tbl: |
| 2301 mov eax,DWORD [ebp] |
| 2302 mov ebx,DWORD [32+ebp] |
| 2303 mov ecx,DWORD [64+ebp] |
| 2304 mov esi,DWORD [96+ebp] |
| 2305 lea ebp,[128+ebp] |
| 2306 sub edi,1 |
| 2307 jnz NEAR L$020prefetch_tbl |
| 2308 sub ebp,2048 |
| 2309 mov esi,DWORD [32+esp] |
| 2310 mov edi,DWORD [48+esp] |
| 2311 cmp edx,0 |
| 2312 je NEAR L$021fast_decrypt |
| 2313 mov eax,DWORD [edi] |
| 2314 mov ebx,DWORD [4+edi] |
| 2315 align 16 |
| 2316 L$022fast_enc_loop: |
| 2317 mov ecx,DWORD [8+edi] |
| 2318 mov edx,DWORD [12+edi] |
| 2319 xor eax,DWORD [esi] |
| 2320 xor ebx,DWORD [4+esi] |
| 2321 xor ecx,DWORD [8+esi] |
| 2322 xor edx,DWORD [12+esi] |
| 2323 mov edi,DWORD [44+esp] |
| 2324 call __x86_AES_encrypt |
| 2325 mov esi,DWORD [32+esp] |
| 2326 mov edi,DWORD [36+esp] |
| 2327 mov DWORD [edi],eax |
| 2328 mov DWORD [4+edi],ebx |
| 2329 mov DWORD [8+edi],ecx |
| 2330 mov DWORD [12+edi],edx |
| 2331 lea esi,[16+esi] |
| 2332 mov ecx,DWORD [40+esp] |
| 2333 mov DWORD [32+esp],esi |
| 2334 lea edx,[16+edi] |
| 2335 mov DWORD [36+esp],edx |
| 2336 sub ecx,16 |
| 2337 mov DWORD [40+esp],ecx |
| 2338 jnz NEAR L$022fast_enc_loop |
| 2339 mov esi,DWORD [48+esp] |
| 2340 mov ecx,DWORD [8+edi] |
| 2341 mov edx,DWORD [12+edi] |
| 2342 mov DWORD [esi],eax |
| 2343 mov DWORD [4+esi],ebx |
| 2344 mov DWORD [8+esi],ecx |
| 2345 mov DWORD [12+esi],edx |
| 2346 cmp DWORD [316+esp],0 |
| 2347 mov edi,DWORD [44+esp] |
| 2348 je NEAR L$023skip_ezero |
| 2349 mov ecx,60 |
| 2350 xor eax,eax |
| 2351 align 4 |
| 2352 dd 2884892297 |
| 2353 L$023skip_ezero: |
| 2354 mov esp,DWORD [28+esp] |
| 2355 popfd |
| 2356 L$012drop_out: |
| 2357 pop edi |
| 2358 pop esi |
| 2359 pop ebx |
| 2360 pop ebp |
| 2361 ret |
| 2362 pushfd |
| 2363 align 16 |
| 2364 L$021fast_decrypt: |
| 2365 cmp esi,DWORD [36+esp] |
| 2366 je NEAR L$024fast_dec_in_place |
| 2367 mov DWORD [52+esp],edi |
| 2368 align 4 |
| 2369 align 16 |
| 2370 L$025fast_dec_loop: |
| 2371 mov eax,DWORD [esi] |
| 2372 mov ebx,DWORD [4+esi] |
| 2373 mov ecx,DWORD [8+esi] |
| 2374 mov edx,DWORD [12+esi] |
| 2375 mov edi,DWORD [44+esp] |
| 2376 call __x86_AES_decrypt |
| 2377 mov edi,DWORD [52+esp] |
| 2378 mov esi,DWORD [40+esp] |
| 2379 xor eax,DWORD [edi] |
| 2380 xor ebx,DWORD [4+edi] |
| 2381 xor ecx,DWORD [8+edi] |
| 2382 xor edx,DWORD [12+edi] |
| 2383 mov edi,DWORD [36+esp] |
| 2384 mov esi,DWORD [32+esp] |
| 2385 mov DWORD [edi],eax |
| 2386 mov DWORD [4+edi],ebx |
| 2387 mov DWORD [8+edi],ecx |
| 2388 mov DWORD [12+edi],edx |
| 2389 mov ecx,DWORD [40+esp] |
| 2390 mov DWORD [52+esp],esi |
| 2391 lea esi,[16+esi] |
| 2392 mov DWORD [32+esp],esi |
| 2393 lea edi,[16+edi] |
| 2394 mov DWORD [36+esp],edi |
| 2395 sub ecx,16 |
| 2396 mov DWORD [40+esp],ecx |
| 2397 jnz NEAR L$025fast_dec_loop |
| 2398 mov edi,DWORD [52+esp] |
| 2399 mov esi,DWORD [48+esp] |
| 2400 mov eax,DWORD [edi] |
| 2401 mov ebx,DWORD [4+edi] |
| 2402 mov ecx,DWORD [8+edi] |
| 2403 mov edx,DWORD [12+edi] |
| 2404 mov DWORD [esi],eax |
| 2405 mov DWORD [4+esi],ebx |
| 2406 mov DWORD [8+esi],ecx |
| 2407 mov DWORD [12+esi],edx |
| 2408 jmp NEAR L$026fast_dec_out |
| 2409 align 16 |
| 2410 L$024fast_dec_in_place: |
| 2411 L$027fast_dec_in_place_loop: |
| 2412 mov eax,DWORD [esi] |
| 2413 mov ebx,DWORD [4+esi] |
| 2414 mov ecx,DWORD [8+esi] |
| 2415 mov edx,DWORD [12+esi] |
| 2416 lea edi,[60+esp] |
| 2417 mov DWORD [edi],eax |
| 2418 mov DWORD [4+edi],ebx |
| 2419 mov DWORD [8+edi],ecx |
| 2420 mov DWORD [12+edi],edx |
| 2421 mov edi,DWORD [44+esp] |
| 2422 call __x86_AES_decrypt |
| 2423 mov edi,DWORD [48+esp] |
| 2424 mov esi,DWORD [36+esp] |
| 2425 xor eax,DWORD [edi] |
| 2426 xor ebx,DWORD [4+edi] |
| 2427 xor ecx,DWORD [8+edi] |
| 2428 xor edx,DWORD [12+edi] |
| 2429 mov DWORD [esi],eax |
| 2430 mov DWORD [4+esi],ebx |
| 2431 mov DWORD [8+esi],ecx |
| 2432 mov DWORD [12+esi],edx |
| 2433 lea esi,[16+esi] |
| 2434 mov DWORD [36+esp],esi |
| 2435 lea esi,[60+esp] |
| 2436 mov eax,DWORD [esi] |
| 2437 mov ebx,DWORD [4+esi] |
| 2438 mov ecx,DWORD [8+esi] |
| 2439 mov edx,DWORD [12+esi] |
| 2440 mov DWORD [edi],eax |
| 2441 mov DWORD [4+edi],ebx |
| 2442 mov DWORD [8+edi],ecx |
| 2443 mov DWORD [12+edi],edx |
| 2444 mov esi,DWORD [32+esp] |
| 2445 mov ecx,DWORD [40+esp] |
| 2446 lea esi,[16+esi] |
| 2447 mov DWORD [32+esp],esi |
| 2448 sub ecx,16 |
| 2449 mov DWORD [40+esp],ecx |
| 2450 jnz NEAR L$027fast_dec_in_place_loop |
| 2451 align 4 |
| 2452 L$026fast_dec_out: |
| 2453 cmp DWORD [316+esp],0 |
| 2454 mov edi,DWORD [44+esp] |
| 2455 je NEAR L$028skip_dzero |
| 2456 mov ecx,60 |
| 2457 xor eax,eax |
| 2458 align 4 |
| 2459 dd 2884892297 |
| 2460 L$028skip_dzero: |
| 2461 mov esp,DWORD [28+esp] |
| 2462 popfd |
| 2463 pop edi |
| 2464 pop esi |
| 2465 pop ebx |
| 2466 pop ebp |
| 2467 ret |
| 2468 pushfd |
| 2469 align 16 |
| 2470 L$015slow_way: |
| 2471 mov eax,DWORD [eax] |
| 2472 mov edi,DWORD [36+esp] |
| 2473 lea esi,[esp-80] |
| 2474 and esi,-64 |
| 2475 lea ebx,[edi-143] |
| 2476 sub ebx,esi |
| 2477 neg ebx |
| 2478 and ebx,960 |
| 2479 sub esi,ebx |
| 2480 lea ebx,[768+esi] |
| 2481 sub ebx,ebp |
| 2482 and ebx,768 |
| 2483 lea ebp,[2176+ebx*1+ebp] |
| 2484 lea edx,[24+esp] |
| 2485 xchg esp,esi |
| 2486 add esp,4 |
| 2487 mov DWORD [24+esp],ebp |
| 2488 mov DWORD [28+esp],esi |
| 2489 mov DWORD [52+esp],eax |
| 2490 mov eax,DWORD [edx] |
| 2491 mov ebx,DWORD [4+edx] |
| 2492 mov esi,DWORD [16+edx] |
| 2493 mov edx,DWORD [20+edx] |
| 2494 mov DWORD [32+esp],eax |
| 2495 mov DWORD [36+esp],ebx |
| 2496 mov DWORD [40+esp],ecx |
| 2497 mov DWORD [44+esp],edi |
| 2498 mov DWORD [48+esp],esi |
| 2499 mov edi,esi |
| 2500 mov esi,eax |
| 2501 cmp edx,0 |
| 2502 je NEAR L$029slow_decrypt |
| 2503 cmp ecx,16 |
| 2504 mov edx,ebx |
| 2505 jb NEAR L$030slow_enc_tail |
| 2506 bt DWORD [52+esp],25 |
| 2507 jnc NEAR L$031slow_enc_x86 |
| 2508 movq mm0,[edi] |
| 2509 movq mm4,[8+edi] |
| 2510 align 16 |
| 2511 L$032slow_enc_loop_sse: |
| 2512 pxor mm0,[esi] |
| 2513 pxor mm4,[8+esi] |
| 2514 mov edi,DWORD [44+esp] |
| 2515 call __sse_AES_encrypt_compact |
| 2516 mov esi,DWORD [32+esp] |
| 2517 mov edi,DWORD [36+esp] |
| 2518 mov ecx,DWORD [40+esp] |
| 2519 movq [edi],mm0 |
| 2520 movq [8+edi],mm4 |
| 2521 lea esi,[16+esi] |
| 2522 mov DWORD [32+esp],esi |
| 2523 lea edx,[16+edi] |
| 2524 mov DWORD [36+esp],edx |
| 2525 sub ecx,16 |
| 2526 cmp ecx,16 |
| 2527 mov DWORD [40+esp],ecx |
| 2528 jae NEAR L$032slow_enc_loop_sse |
| 2529 test ecx,15 |
| 2530 jnz NEAR L$030slow_enc_tail |
| 2531 mov esi,DWORD [48+esp] |
| 2532 movq [esi],mm0 |
| 2533 movq [8+esi],mm4 |
| 2534 emms |
| 2535 mov esp,DWORD [28+esp] |
| 2536 popfd |
| 2537 pop edi |
| 2538 pop esi |
| 2539 pop ebx |
| 2540 pop ebp |
| 2541 ret |
| 2542 pushfd |
| 2543 align 16 |
| 2544 L$031slow_enc_x86: |
| 2545 mov eax,DWORD [edi] |
| 2546 mov ebx,DWORD [4+edi] |
| 2547 align 4 |
| 2548 L$033slow_enc_loop_x86: |
| 2549 mov ecx,DWORD [8+edi] |
| 2550 mov edx,DWORD [12+edi] |
| 2551 xor eax,DWORD [esi] |
| 2552 xor ebx,DWORD [4+esi] |
| 2553 xor ecx,DWORD [8+esi] |
| 2554 xor edx,DWORD [12+esi] |
| 2555 mov edi,DWORD [44+esp] |
| 2556 call __x86_AES_encrypt_compact |
| 2557 mov esi,DWORD [32+esp] |
| 2558 mov edi,DWORD [36+esp] |
| 2559 mov DWORD [edi],eax |
| 2560 mov DWORD [4+edi],ebx |
| 2561 mov DWORD [8+edi],ecx |
| 2562 mov DWORD [12+edi],edx |
| 2563 mov ecx,DWORD [40+esp] |
| 2564 lea esi,[16+esi] |
| 2565 mov DWORD [32+esp],esi |
| 2566 lea edx,[16+edi] |
| 2567 mov DWORD [36+esp],edx |
| 2568 sub ecx,16 |
| 2569 cmp ecx,16 |
| 2570 mov DWORD [40+esp],ecx |
| 2571 jae NEAR L$033slow_enc_loop_x86 |
| 2572 test ecx,15 |
| 2573 jnz NEAR L$030slow_enc_tail |
| 2574 mov esi,DWORD [48+esp] |
| 2575 mov ecx,DWORD [8+edi] |
| 2576 mov edx,DWORD [12+edi] |
| 2577 mov DWORD [esi],eax |
| 2578 mov DWORD [4+esi],ebx |
| 2579 mov DWORD [8+esi],ecx |
| 2580 mov DWORD [12+esi],edx |
| 2581 mov esp,DWORD [28+esp] |
| 2582 popfd |
| 2583 pop edi |
| 2584 pop esi |
| 2585 pop ebx |
| 2586 pop ebp |
| 2587 ret |
| 2588 pushfd |
| 2589 align 16 |
| 2590 L$030slow_enc_tail: |
| 2591 emms |
| 2592 mov edi,edx |
| 2593 mov ebx,16 |
| 2594 sub ebx,ecx |
| 2595 cmp edi,esi |
| 2596 je NEAR L$034enc_in_place |
| 2597 align 4 |
| 2598 dd 2767451785 |
| 2599 jmp NEAR L$035enc_skip_in_place |
| 2600 L$034enc_in_place: |
| 2601 lea edi,[ecx*1+edi] |
| 2602 L$035enc_skip_in_place: |
| 2603 mov ecx,ebx |
| 2604 xor eax,eax |
| 2605 align 4 |
| 2606 dd 2868115081 |
| 2607 mov edi,DWORD [48+esp] |
| 2608 mov esi,edx |
| 2609 mov eax,DWORD [edi] |
| 2610 mov ebx,DWORD [4+edi] |
| 2611 mov DWORD [40+esp],16 |
| 2612 jmp NEAR L$033slow_enc_loop_x86 |
| 2613 align 16 |
| 2614 L$029slow_decrypt: |
| 2615 bt DWORD [52+esp],25 |
| 2616 jnc NEAR L$036slow_dec_loop_x86 |
| 2617 align 4 |
| 2618 L$037slow_dec_loop_sse: |
| 2619 movq mm0,[esi] |
| 2620 movq mm4,[8+esi] |
| 2621 mov edi,DWORD [44+esp] |
| 2622 call __sse_AES_decrypt_compact |
| 2623 mov esi,DWORD [32+esp] |
| 2624 lea eax,[60+esp] |
| 2625 mov ebx,DWORD [36+esp] |
| 2626 mov ecx,DWORD [40+esp] |
| 2627 mov edi,DWORD [48+esp] |
| 2628 movq mm1,[esi] |
| 2629 movq mm5,[8+esi] |
| 2630 pxor mm0,[edi] |
| 2631 pxor mm4,[8+edi] |
| 2632 movq [edi],mm1 |
| 2633 movq [8+edi],mm5 |
| 2634 sub ecx,16 |
| 2635 jc NEAR L$038slow_dec_partial_sse |
| 2636 movq [ebx],mm0 |
| 2637 movq [8+ebx],mm4 |
| 2638 lea ebx,[16+ebx] |
| 2639 mov DWORD [36+esp],ebx |
| 2640 lea esi,[16+esi] |
| 2641 mov DWORD [32+esp],esi |
| 2642 mov DWORD [40+esp],ecx |
| 2643 jnz NEAR L$037slow_dec_loop_sse |
| 2644 emms |
| 2645 mov esp,DWORD [28+esp] |
| 2646 popfd |
| 2647 pop edi |
| 2648 pop esi |
| 2649 pop ebx |
| 2650 pop ebp |
| 2651 ret |
| 2652 pushfd |
| 2653 align 16 |
| 2654 L$038slow_dec_partial_sse: |
| 2655 movq [eax],mm0 |
| 2656 movq [8+eax],mm4 |
| 2657 emms |
| 2658 add ecx,16 |
| 2659 mov edi,ebx |
| 2660 mov esi,eax |
| 2661 align 4 |
| 2662 dd 2767451785 |
| 2663 mov esp,DWORD [28+esp] |
| 2664 popfd |
| 2665 pop edi |
| 2666 pop esi |
| 2667 pop ebx |
| 2668 pop ebp |
| 2669 ret |
| 2670 pushfd |
| 2671 align 16 |
| 2672 L$036slow_dec_loop_x86: |
| 2673 mov eax,DWORD [esi] |
| 2674 mov ebx,DWORD [4+esi] |
| 2675 mov ecx,DWORD [8+esi] |
| 2676 mov edx,DWORD [12+esi] |
| 2677 lea edi,[60+esp] |
| 2678 mov DWORD [edi],eax |
| 2679 mov DWORD [4+edi],ebx |
| 2680 mov DWORD [8+edi],ecx |
| 2681 mov DWORD [12+edi],edx |
| 2682 mov edi,DWORD [44+esp] |
| 2683 call __x86_AES_decrypt_compact |
| 2684 mov edi,DWORD [48+esp] |
| 2685 mov esi,DWORD [40+esp] |
| 2686 xor eax,DWORD [edi] |
| 2687 xor ebx,DWORD [4+edi] |
| 2688 xor ecx,DWORD [8+edi] |
| 2689 xor edx,DWORD [12+edi] |
| 2690 sub esi,16 |
| 2691 jc NEAR L$039slow_dec_partial_x86 |
| 2692 mov DWORD [40+esp],esi |
| 2693 mov esi,DWORD [36+esp] |
| 2694 mov DWORD [esi],eax |
| 2695 mov DWORD [4+esi],ebx |
| 2696 mov DWORD [8+esi],ecx |
| 2697 mov DWORD [12+esi],edx |
| 2698 lea esi,[16+esi] |
| 2699 mov DWORD [36+esp],esi |
| 2700 lea esi,[60+esp] |
| 2701 mov eax,DWORD [esi] |
| 2702 mov ebx,DWORD [4+esi] |
| 2703 mov ecx,DWORD [8+esi] |
| 2704 mov edx,DWORD [12+esi] |
| 2705 mov DWORD [edi],eax |
| 2706 mov DWORD [4+edi],ebx |
| 2707 mov DWORD [8+edi],ecx |
| 2708 mov DWORD [12+edi],edx |
| 2709 mov esi,DWORD [32+esp] |
| 2710 lea esi,[16+esi] |
| 2711 mov DWORD [32+esp],esi |
| 2712 jnz NEAR L$036slow_dec_loop_x86 |
| 2713 mov esp,DWORD [28+esp] |
| 2714 popfd |
| 2715 pop edi |
| 2716 pop esi |
| 2717 pop ebx |
| 2718 pop ebp |
| 2719 ret |
| 2720 pushfd |
| 2721 align 16 |
| 2722 L$039slow_dec_partial_x86: |
| 2723 lea esi,[60+esp] |
| 2724 mov DWORD [esi],eax |
| 2725 mov DWORD [4+esi],ebx |
| 2726 mov DWORD [8+esi],ecx |
| 2727 mov DWORD [12+esi],edx |
| 2728 mov esi,DWORD [32+esp] |
| 2729 mov eax,DWORD [esi] |
| 2730 mov ebx,DWORD [4+esi] |
| 2731 mov ecx,DWORD [8+esi] |
| 2732 mov edx,DWORD [12+esi] |
| 2733 mov DWORD [edi],eax |
| 2734 mov DWORD [4+edi],ebx |
| 2735 mov DWORD [8+edi],ecx |
| 2736 mov DWORD [12+edi],edx |
| 2737 mov ecx,DWORD [40+esp] |
| 2738 mov edi,DWORD [36+esp] |
| 2739 lea esi,[60+esp] |
| 2740 align 4 |
| 2741 dd 2767451785 |
| 2742 mov esp,DWORD [28+esp] |
| 2743 popfd |
| 2744 pop edi |
| 2745 pop esi |
| 2746 pop ebx |
| 2747 pop ebp |
| 2748 ret |
| 2749 align 16 |
| 2750 __x86_AES_set_encrypt_key: |
| 2751 push ebp |
| 2752 push ebx |
| 2753 push esi |
| 2754 push edi |
| 2755 mov esi,DWORD [24+esp] |
| 2756 mov edi,DWORD [32+esp] |
| 2757 test esi,-1 |
| 2758 jz NEAR L$040badpointer |
| 2759 test edi,-1 |
| 2760 jz NEAR L$040badpointer |
| 2761 call L$041pic_point |
| 2762 L$041pic_point: |
| 2763 pop ebp |
| 2764 lea ebp,[(L$AES_Te-L$041pic_point)+ebp] |
| 2765 lea ebp,[2176+ebp] |
| 2766 mov eax,DWORD [ebp-128] |
| 2767 mov ebx,DWORD [ebp-96] |
| 2768 mov ecx,DWORD [ebp-64] |
| 2769 mov edx,DWORD [ebp-32] |
| 2770 mov eax,DWORD [ebp] |
| 2771 mov ebx,DWORD [32+ebp] |
| 2772 mov ecx,DWORD [64+ebp] |
| 2773 mov edx,DWORD [96+ebp] |
| 2774 mov ecx,DWORD [28+esp] |
| 2775 cmp ecx,128 |
| 2776 je NEAR L$04210rounds |
| 2777 cmp ecx,192 |
| 2778 je NEAR L$04312rounds |
| 2779 cmp ecx,256 |
| 2780 je NEAR L$04414rounds |
| 2781 mov eax,-2 |
| 2782 jmp NEAR L$045exit |
| 2783 L$04210rounds: |
| 2784 mov eax,DWORD [esi] |
| 2785 mov ebx,DWORD [4+esi] |
| 2786 mov ecx,DWORD [8+esi] |
| 2787 mov edx,DWORD [12+esi] |
| 2788 mov DWORD [edi],eax |
| 2789 mov DWORD [4+edi],ebx |
| 2790 mov DWORD [8+edi],ecx |
| 2791 mov DWORD [12+edi],edx |
| 2792 xor ecx,ecx |
| 2793 jmp NEAR L$04610shortcut |
| 2794 align 4 |
| 2795 L$04710loop: |
| 2796 mov eax,DWORD [edi] |
| 2797 mov edx,DWORD [12+edi] |
| 2798 L$04610shortcut: |
| 2799 movzx esi,dl |
| 2800 movzx ebx,BYTE [esi*1+ebp-128] |
| 2801 movzx esi,dh |
| 2802 shl ebx,24 |
| 2803 xor eax,ebx |
| 2804 movzx ebx,BYTE [esi*1+ebp-128] |
| 2805 shr edx,16 |
| 2806 movzx esi,dl |
| 2807 xor eax,ebx |
| 2808 movzx ebx,BYTE [esi*1+ebp-128] |
| 2809 movzx esi,dh |
| 2810 shl ebx,8 |
| 2811 xor eax,ebx |
| 2812 movzx ebx,BYTE [esi*1+ebp-128] |
| 2813 shl ebx,16 |
| 2814 xor eax,ebx |
| 2815 xor eax,DWORD [896+ecx*4+ebp] |
| 2816 mov DWORD [16+edi],eax |
| 2817 xor eax,DWORD [4+edi] |
| 2818 mov DWORD [20+edi],eax |
| 2819 xor eax,DWORD [8+edi] |
| 2820 mov DWORD [24+edi],eax |
| 2821 xor eax,DWORD [12+edi] |
| 2822 mov DWORD [28+edi],eax |
| 2823 inc ecx |
| 2824 add edi,16 |
| 2825 cmp ecx,10 |
| 2826 jl NEAR L$04710loop |
| 2827 mov DWORD [80+edi],10 |
| 2828 xor eax,eax |
| 2829 jmp NEAR L$045exit |
| 2830 L$04312rounds: |
| 2831 mov eax,DWORD [esi] |
| 2832 mov ebx,DWORD [4+esi] |
| 2833 mov ecx,DWORD [8+esi] |
| 2834 mov edx,DWORD [12+esi] |
| 2835 mov DWORD [edi],eax |
| 2836 mov DWORD [4+edi],ebx |
| 2837 mov DWORD [8+edi],ecx |
| 2838 mov DWORD [12+edi],edx |
| 2839 mov ecx,DWORD [16+esi] |
| 2840 mov edx,DWORD [20+esi] |
| 2841 mov DWORD [16+edi],ecx |
| 2842 mov DWORD [20+edi],edx |
| 2843 xor ecx,ecx |
| 2844 jmp NEAR L$04812shortcut |
| 2845 align 4 |
| 2846 L$04912loop: |
| 2847 mov eax,DWORD [edi] |
| 2848 mov edx,DWORD [20+edi] |
| 2849 L$04812shortcut: |
| 2850 movzx esi,dl |
| 2851 movzx ebx,BYTE [esi*1+ebp-128] |
| 2852 movzx esi,dh |
| 2853 shl ebx,24 |
| 2854 xor eax,ebx |
| 2855 movzx ebx,BYTE [esi*1+ebp-128] |
| 2856 shr edx,16 |
| 2857 movzx esi,dl |
| 2858 xor eax,ebx |
| 2859 movzx ebx,BYTE [esi*1+ebp-128] |
| 2860 movzx esi,dh |
| 2861 shl ebx,8 |
| 2862 xor eax,ebx |
| 2863 movzx ebx,BYTE [esi*1+ebp-128] |
| 2864 shl ebx,16 |
| 2865 xor eax,ebx |
| 2866 xor eax,DWORD [896+ecx*4+ebp] |
| 2867 mov DWORD [24+edi],eax |
| 2868 xor eax,DWORD [4+edi] |
| 2869 mov DWORD [28+edi],eax |
| 2870 xor eax,DWORD [8+edi] |
| 2871 mov DWORD [32+edi],eax |
| 2872 xor eax,DWORD [12+edi] |
| 2873 mov DWORD [36+edi],eax |
| 2874 cmp ecx,7 |
| 2875 je NEAR L$05012break |
| 2876 inc ecx |
| 2877 xor eax,DWORD [16+edi] |
| 2878 mov DWORD [40+edi],eax |
| 2879 xor eax,DWORD [20+edi] |
| 2880 mov DWORD [44+edi],eax |
| 2881 add edi,24 |
| 2882 jmp NEAR L$04912loop |
| 2883 L$05012break: |
| 2884 mov DWORD [72+edi],12 |
| 2885 xor eax,eax |
| 2886 jmp NEAR L$045exit |
| 2887 L$04414rounds: |
| 2888 mov eax,DWORD [esi] |
| 2889 mov ebx,DWORD [4+esi] |
| 2890 mov ecx,DWORD [8+esi] |
| 2891 mov edx,DWORD [12+esi] |
| 2892 mov DWORD [edi],eax |
| 2893 mov DWORD [4+edi],ebx |
| 2894 mov DWORD [8+edi],ecx |
| 2895 mov DWORD [12+edi],edx |
| 2896 mov eax,DWORD [16+esi] |
| 2897 mov ebx,DWORD [20+esi] |
| 2898 mov ecx,DWORD [24+esi] |
| 2899 mov edx,DWORD [28+esi] |
| 2900 mov DWORD [16+edi],eax |
| 2901 mov DWORD [20+edi],ebx |
| 2902 mov DWORD [24+edi],ecx |
| 2903 mov DWORD [28+edi],edx |
| 2904 xor ecx,ecx |
| 2905 jmp NEAR L$05114shortcut |
| 2906 align 4 |
| 2907 L$05214loop: |
| 2908 mov edx,DWORD [28+edi] |
| 2909 L$05114shortcut: |
| 2910 mov eax,DWORD [edi] |
| 2911 movzx esi,dl |
| 2912 movzx ebx,BYTE [esi*1+ebp-128] |
| 2913 movzx esi,dh |
| 2914 shl ebx,24 |
| 2915 xor eax,ebx |
| 2916 movzx ebx,BYTE [esi*1+ebp-128] |
| 2917 shr edx,16 |
| 2918 movzx esi,dl |
| 2919 xor eax,ebx |
| 2920 movzx ebx,BYTE [esi*1+ebp-128] |
| 2921 movzx esi,dh |
| 2922 shl ebx,8 |
| 2923 xor eax,ebx |
| 2924 movzx ebx,BYTE [esi*1+ebp-128] |
| 2925 shl ebx,16 |
| 2926 xor eax,ebx |
| 2927 xor eax,DWORD [896+ecx*4+ebp] |
| 2928 mov DWORD [32+edi],eax |
| 2929 xor eax,DWORD [4+edi] |
| 2930 mov DWORD [36+edi],eax |
| 2931 xor eax,DWORD [8+edi] |
| 2932 mov DWORD [40+edi],eax |
| 2933 xor eax,DWORD [12+edi] |
| 2934 mov DWORD [44+edi],eax |
| 2935 cmp ecx,6 |
| 2936 je NEAR L$05314break |
| 2937 inc ecx |
| 2938 mov edx,eax |
| 2939 mov eax,DWORD [16+edi] |
| 2940 movzx esi,dl |
| 2941 movzx ebx,BYTE [esi*1+ebp-128] |
| 2942 movzx esi,dh |
| 2943 xor eax,ebx |
| 2944 movzx ebx,BYTE [esi*1+ebp-128] |
| 2945 shr edx,16 |
| 2946 shl ebx,8 |
| 2947 movzx esi,dl |
| 2948 xor eax,ebx |
| 2949 movzx ebx,BYTE [esi*1+ebp-128] |
| 2950 movzx esi,dh |
| 2951 shl ebx,16 |
| 2952 xor eax,ebx |
| 2953 movzx ebx,BYTE [esi*1+ebp-128] |
| 2954 shl ebx,24 |
| 2955 xor eax,ebx |
| 2956 mov DWORD [48+edi],eax |
| 2957 xor eax,DWORD [20+edi] |
| 2958 mov DWORD [52+edi],eax |
| 2959 xor eax,DWORD [24+edi] |
| 2960 mov DWORD [56+edi],eax |
| 2961 xor eax,DWORD [28+edi] |
| 2962 mov DWORD [60+edi],eax |
| 2963 add edi,32 |
| 2964 jmp NEAR L$05214loop |
| 2965 L$05314break: |
| 2966 mov DWORD [48+edi],14 |
| 2967 xor eax,eax |
| 2968 jmp NEAR L$045exit |
| 2969 L$040badpointer: |
| 2970 mov eax,-1 |
| 2971 L$045exit: |
| 2972 pop edi |
| 2973 pop esi |
| 2974 pop ebx |
| 2975 pop ebp |
| 2976 ret |
| 2977 global _asm_AES_set_encrypt_key |
| 2978 align 16 |
| 2979 _asm_AES_set_encrypt_key: |
| 2980 L$_asm_AES_set_encrypt_key_begin: |
| 2981 call __x86_AES_set_encrypt_key |
| 2982 ret |
| 2983 global _asm_AES_set_decrypt_key |
| 2984 align 16 |
| 2985 _asm_AES_set_decrypt_key: |
| 2986 L$_asm_AES_set_decrypt_key_begin: |
| 2987 call __x86_AES_set_encrypt_key |
| 2988 cmp eax,0 |
| 2989 je NEAR L$054proceed |
| 2990 ret |
| 2991 L$054proceed: |
| 2992 push ebp |
| 2993 push ebx |
| 2994 push esi |
| 2995 push edi |
| 2996 mov esi,DWORD [28+esp] |
| 2997 mov ecx,DWORD [240+esi] |
| 2998 lea ecx,[ecx*4] |
| 2999 lea edi,[ecx*4+esi] |
| 3000 align 4 |
| 3001 L$055invert: |
| 3002 mov eax,DWORD [esi] |
| 3003 mov ebx,DWORD [4+esi] |
| 3004 mov ecx,DWORD [edi] |
| 3005 mov edx,DWORD [4+edi] |
| 3006 mov DWORD [edi],eax |
| 3007 mov DWORD [4+edi],ebx |
| 3008 mov DWORD [esi],ecx |
| 3009 mov DWORD [4+esi],edx |
| 3010 mov eax,DWORD [8+esi] |
| 3011 mov ebx,DWORD [12+esi] |
| 3012 mov ecx,DWORD [8+edi] |
| 3013 mov edx,DWORD [12+edi] |
| 3014 mov DWORD [8+edi],eax |
| 3015 mov DWORD [12+edi],ebx |
| 3016 mov DWORD [8+esi],ecx |
| 3017 mov DWORD [12+esi],edx |
| 3018 add esi,16 |
| 3019 sub edi,16 |
| 3020 cmp esi,edi |
| 3021 jne NEAR L$055invert |
| 3022 mov edi,DWORD [28+esp] |
| 3023 mov esi,DWORD [240+edi] |
| 3024 lea esi,[esi*1+esi-2] |
| 3025 lea esi,[esi*8+edi] |
| 3026 mov DWORD [28+esp],esi |
| 3027 mov eax,DWORD [16+edi] |
| 3028 align 4 |
| 3029 L$056permute: |
| 3030 add edi,16 |
| 3031 mov ebp,2155905152 |
| 3032 and ebp,eax |
| 3033 lea ebx,[eax*1+eax] |
| 3034 mov esi,ebp |
| 3035 shr ebp,7 |
| 3036 sub esi,ebp |
| 3037 and ebx,4278124286 |
| 3038 and esi,454761243 |
| 3039 xor ebx,esi |
| 3040 mov ebp,2155905152 |
| 3041 and ebp,ebx |
| 3042 lea ecx,[ebx*1+ebx] |
| 3043 mov esi,ebp |
| 3044 shr ebp,7 |
| 3045 sub esi,ebp |
| 3046 and ecx,4278124286 |
| 3047 and esi,454761243 |
| 3048 xor ebx,eax |
| 3049 xor ecx,esi |
| 3050 mov ebp,2155905152 |
| 3051 and ebp,ecx |
| 3052 lea edx,[ecx*1+ecx] |
| 3053 mov esi,ebp |
| 3054 shr ebp,7 |
| 3055 xor ecx,eax |
| 3056 sub esi,ebp |
| 3057 and edx,4278124286 |
| 3058 and esi,454761243 |
| 3059 rol eax,8 |
| 3060 xor edx,esi |
| 3061 mov ebp,DWORD [4+edi] |
| 3062 xor eax,ebx |
| 3063 xor ebx,edx |
| 3064 xor eax,ecx |
| 3065 rol ebx,24 |
| 3066 xor ecx,edx |
| 3067 xor eax,edx |
| 3068 rol ecx,16 |
| 3069 xor eax,ebx |
| 3070 rol edx,8 |
| 3071 xor eax,ecx |
| 3072 mov ebx,ebp |
| 3073 xor eax,edx |
| 3074 mov DWORD [edi],eax |
| 3075 mov ebp,2155905152 |
| 3076 and ebp,ebx |
| 3077 lea ecx,[ebx*1+ebx] |
| 3078 mov esi,ebp |
| 3079 shr ebp,7 |
| 3080 sub esi,ebp |
| 3081 and ecx,4278124286 |
| 3082 and esi,454761243 |
| 3083 xor ecx,esi |
| 3084 mov ebp,2155905152 |
| 3085 and ebp,ecx |
| 3086 lea edx,[ecx*1+ecx] |
| 3087 mov esi,ebp |
| 3088 shr ebp,7 |
| 3089 sub esi,ebp |
| 3090 and edx,4278124286 |
| 3091 and esi,454761243 |
| 3092 xor ecx,ebx |
| 3093 xor edx,esi |
| 3094 mov ebp,2155905152 |
| 3095 and ebp,edx |
| 3096 lea eax,[edx*1+edx] |
| 3097 mov esi,ebp |
| 3098 shr ebp,7 |
| 3099 xor edx,ebx |
| 3100 sub esi,ebp |
| 3101 and eax,4278124286 |
| 3102 and esi,454761243 |
| 3103 rol ebx,8 |
| 3104 xor eax,esi |
| 3105 mov ebp,DWORD [8+edi] |
| 3106 xor ebx,ecx |
| 3107 xor ecx,eax |
| 3108 xor ebx,edx |
| 3109 rol ecx,24 |
| 3110 xor edx,eax |
| 3111 xor ebx,eax |
| 3112 rol edx,16 |
| 3113 xor ebx,ecx |
| 3114 rol eax,8 |
| 3115 xor ebx,edx |
| 3116 mov ecx,ebp |
| 3117 xor ebx,eax |
| 3118 mov DWORD [4+edi],ebx |
| 3119 mov ebp,2155905152 |
| 3120 and ebp,ecx |
| 3121 lea edx,[ecx*1+ecx] |
| 3122 mov esi,ebp |
| 3123 shr ebp,7 |
| 3124 sub esi,ebp |
| 3125 and edx,4278124286 |
| 3126 and esi,454761243 |
| 3127 xor edx,esi |
| 3128 mov ebp,2155905152 |
| 3129 and ebp,edx |
| 3130 lea eax,[edx*1+edx] |
| 3131 mov esi,ebp |
| 3132 shr ebp,7 |
| 3133 sub esi,ebp |
| 3134 and eax,4278124286 |
| 3135 and esi,454761243 |
| 3136 xor edx,ecx |
| 3137 xor eax,esi |
| 3138 mov ebp,2155905152 |
| 3139 and ebp,eax |
| 3140 lea ebx,[eax*1+eax] |
| 3141 mov esi,ebp |
| 3142 shr ebp,7 |
| 3143 xor eax,ecx |
| 3144 sub esi,ebp |
| 3145 and ebx,4278124286 |
| 3146 and esi,454761243 |
| 3147 rol ecx,8 |
| 3148 xor ebx,esi |
| 3149 mov ebp,DWORD [12+edi] |
| 3150 xor ecx,edx |
| 3151 xor edx,ebx |
| 3152 xor ecx,eax |
| 3153 rol edx,24 |
| 3154 xor eax,ebx |
| 3155 xor ecx,ebx |
| 3156 rol eax,16 |
| 3157 xor ecx,edx |
| 3158 rol ebx,8 |
| 3159 xor ecx,eax |
| 3160 mov edx,ebp |
| 3161 xor ecx,ebx |
| 3162 mov DWORD [8+edi],ecx |
| 3163 mov ebp,2155905152 |
| 3164 and ebp,edx |
| 3165 lea eax,[edx*1+edx] |
| 3166 mov esi,ebp |
| 3167 shr ebp,7 |
| 3168 sub esi,ebp |
| 3169 and eax,4278124286 |
| 3170 and esi,454761243 |
| 3171 xor eax,esi |
| 3172 mov ebp,2155905152 |
| 3173 and ebp,eax |
| 3174 lea ebx,[eax*1+eax] |
| 3175 mov esi,ebp |
| 3176 shr ebp,7 |
| 3177 sub esi,ebp |
| 3178 and ebx,4278124286 |
| 3179 and esi,454761243 |
| 3180 xor eax,edx |
| 3181 xor ebx,esi |
| 3182 mov ebp,2155905152 |
| 3183 and ebp,ebx |
| 3184 lea ecx,[ebx*1+ebx] |
| 3185 mov esi,ebp |
| 3186 shr ebp,7 |
| 3187 xor ebx,edx |
| 3188 sub esi,ebp |
| 3189 and ecx,4278124286 |
| 3190 and esi,454761243 |
| 3191 rol edx,8 |
| 3192 xor ecx,esi |
| 3193 mov ebp,DWORD [16+edi] |
| 3194 xor edx,eax |
| 3195 xor eax,ecx |
| 3196 xor edx,ebx |
| 3197 rol eax,24 |
| 3198 xor ebx,ecx |
| 3199 xor edx,ecx |
| 3200 rol ebx,16 |
| 3201 xor edx,eax |
| 3202 rol ecx,8 |
| 3203 xor edx,ebx |
| 3204 mov eax,ebp |
| 3205 xor edx,ecx |
| 3206 mov DWORD [12+edi],edx |
| 3207 cmp edi,DWORD [28+esp] |
| 3208 jb NEAR L$056permute |
| 3209 xor eax,eax |
| 3210 pop edi |
| 3211 pop esi |
| 3212 pop ebx |
| 3213 pop ebp |
| 3214 ret |
| 3215 db 65,69,83,32,102,111,114,32,120,56,54,44,32,67,82,89 |
| 3216 db 80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114 |
| 3217 db 111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 |
| 3218 segment .bss |
| 3219 common _OPENSSL_ia32cap_P 16 |
OLD | NEW |