| 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 ;extern _OPENSSL_ia32cap_P | |
| 18 global _bn_mul_add_words | |
| 19 align 16 | |
| 20 _bn_mul_add_words: | |
| 21 L$_bn_mul_add_words_begin: | |
| 22 lea eax,[_OPENSSL_ia32cap_P] | |
| 23 bt DWORD [eax],26 | |
| 24 jnc NEAR L$000maw_non_sse2 | |
| 25 mov eax,DWORD [4+esp] | |
| 26 mov edx,DWORD [8+esp] | |
| 27 mov ecx,DWORD [12+esp] | |
| 28 movd mm0,DWORD [16+esp] | |
| 29 pxor mm1,mm1 | |
| 30 jmp NEAR L$001maw_sse2_entry | |
| 31 align 16 | |
| 32 L$002maw_sse2_unrolled: | |
| 33 movd mm3,DWORD [eax] | |
| 34 paddq mm1,mm3 | |
| 35 movd mm2,DWORD [edx] | |
| 36 pmuludq mm2,mm0 | |
| 37 movd mm4,DWORD [4+edx] | |
| 38 pmuludq mm4,mm0 | |
| 39 movd mm6,DWORD [8+edx] | |
| 40 pmuludq mm6,mm0 | |
| 41 movd mm7,DWORD [12+edx] | |
| 42 pmuludq mm7,mm0 | |
| 43 paddq mm1,mm2 | |
| 44 movd mm3,DWORD [4+eax] | |
| 45 paddq mm3,mm4 | |
| 46 movd mm5,DWORD [8+eax] | |
| 47 paddq mm5,mm6 | |
| 48 movd mm4,DWORD [12+eax] | |
| 49 paddq mm7,mm4 | |
| 50 movd DWORD [eax],mm1 | |
| 51 movd mm2,DWORD [16+edx] | |
| 52 pmuludq mm2,mm0 | |
| 53 psrlq mm1,32 | |
| 54 movd mm4,DWORD [20+edx] | |
| 55 pmuludq mm4,mm0 | |
| 56 paddq mm1,mm3 | |
| 57 movd mm6,DWORD [24+edx] | |
| 58 pmuludq mm6,mm0 | |
| 59 movd DWORD [4+eax],mm1 | |
| 60 psrlq mm1,32 | |
| 61 movd mm3,DWORD [28+edx] | |
| 62 add edx,32 | |
| 63 pmuludq mm3,mm0 | |
| 64 paddq mm1,mm5 | |
| 65 movd mm5,DWORD [16+eax] | |
| 66 paddq mm2,mm5 | |
| 67 movd DWORD [8+eax],mm1 | |
| 68 psrlq mm1,32 | |
| 69 paddq mm1,mm7 | |
| 70 movd mm5,DWORD [20+eax] | |
| 71 paddq mm4,mm5 | |
| 72 movd DWORD [12+eax],mm1 | |
| 73 psrlq mm1,32 | |
| 74 paddq mm1,mm2 | |
| 75 movd mm5,DWORD [24+eax] | |
| 76 paddq mm6,mm5 | |
| 77 movd DWORD [16+eax],mm1 | |
| 78 psrlq mm1,32 | |
| 79 paddq mm1,mm4 | |
| 80 movd mm5,DWORD [28+eax] | |
| 81 paddq mm3,mm5 | |
| 82 movd DWORD [20+eax],mm1 | |
| 83 psrlq mm1,32 | |
| 84 paddq mm1,mm6 | |
| 85 movd DWORD [24+eax],mm1 | |
| 86 psrlq mm1,32 | |
| 87 paddq mm1,mm3 | |
| 88 movd DWORD [28+eax],mm1 | |
| 89 lea eax,[32+eax] | |
| 90 psrlq mm1,32 | |
| 91 sub ecx,8 | |
| 92 jz NEAR L$003maw_sse2_exit | |
| 93 L$001maw_sse2_entry: | |
| 94 test ecx,4294967288 | |
| 95 jnz NEAR L$002maw_sse2_unrolled | |
| 96 align 4 | |
| 97 L$004maw_sse2_loop: | |
| 98 movd mm2,DWORD [edx] | |
| 99 movd mm3,DWORD [eax] | |
| 100 pmuludq mm2,mm0 | |
| 101 lea edx,[4+edx] | |
| 102 paddq mm1,mm3 | |
| 103 paddq mm1,mm2 | |
| 104 movd DWORD [eax],mm1 | |
| 105 sub ecx,1 | |
| 106 psrlq mm1,32 | |
| 107 lea eax,[4+eax] | |
| 108 jnz NEAR L$004maw_sse2_loop | |
| 109 L$003maw_sse2_exit: | |
| 110 movd eax,mm1 | |
| 111 emms | |
| 112 ret | |
| 113 align 16 | |
| 114 L$000maw_non_sse2: | |
| 115 push ebp | |
| 116 push ebx | |
| 117 push esi | |
| 118 push edi | |
| 119 ; | |
| 120 xor esi,esi | |
| 121 mov edi,DWORD [20+esp] | |
| 122 mov ecx,DWORD [28+esp] | |
| 123 mov ebx,DWORD [24+esp] | |
| 124 and ecx,4294967288 | |
| 125 mov ebp,DWORD [32+esp] | |
| 126 push ecx | |
| 127 jz NEAR L$005maw_finish | |
| 128 align 16 | |
| 129 L$006maw_loop: | |
| 130 ; Round 0 | |
| 131 mov eax,DWORD [ebx] | |
| 132 mul ebp | |
| 133 add eax,esi | |
| 134 adc edx,0 | |
| 135 add eax,DWORD [edi] | |
| 136 adc edx,0 | |
| 137 mov DWORD [edi],eax | |
| 138 mov esi,edx | |
| 139 ; Round 4 | |
| 140 mov eax,DWORD [4+ebx] | |
| 141 mul ebp | |
| 142 add eax,esi | |
| 143 adc edx,0 | |
| 144 add eax,DWORD [4+edi] | |
| 145 adc edx,0 | |
| 146 mov DWORD [4+edi],eax | |
| 147 mov esi,edx | |
| 148 ; Round 8 | |
| 149 mov eax,DWORD [8+ebx] | |
| 150 mul ebp | |
| 151 add eax,esi | |
| 152 adc edx,0 | |
| 153 add eax,DWORD [8+edi] | |
| 154 adc edx,0 | |
| 155 mov DWORD [8+edi],eax | |
| 156 mov esi,edx | |
| 157 ; Round 12 | |
| 158 mov eax,DWORD [12+ebx] | |
| 159 mul ebp | |
| 160 add eax,esi | |
| 161 adc edx,0 | |
| 162 add eax,DWORD [12+edi] | |
| 163 adc edx,0 | |
| 164 mov DWORD [12+edi],eax | |
| 165 mov esi,edx | |
| 166 ; Round 16 | |
| 167 mov eax,DWORD [16+ebx] | |
| 168 mul ebp | |
| 169 add eax,esi | |
| 170 adc edx,0 | |
| 171 add eax,DWORD [16+edi] | |
| 172 adc edx,0 | |
| 173 mov DWORD [16+edi],eax | |
| 174 mov esi,edx | |
| 175 ; Round 20 | |
| 176 mov eax,DWORD [20+ebx] | |
| 177 mul ebp | |
| 178 add eax,esi | |
| 179 adc edx,0 | |
| 180 add eax,DWORD [20+edi] | |
| 181 adc edx,0 | |
| 182 mov DWORD [20+edi],eax | |
| 183 mov esi,edx | |
| 184 ; Round 24 | |
| 185 mov eax,DWORD [24+ebx] | |
| 186 mul ebp | |
| 187 add eax,esi | |
| 188 adc edx,0 | |
| 189 add eax,DWORD [24+edi] | |
| 190 adc edx,0 | |
| 191 mov DWORD [24+edi],eax | |
| 192 mov esi,edx | |
| 193 ; Round 28 | |
| 194 mov eax,DWORD [28+ebx] | |
| 195 mul ebp | |
| 196 add eax,esi | |
| 197 adc edx,0 | |
| 198 add eax,DWORD [28+edi] | |
| 199 adc edx,0 | |
| 200 mov DWORD [28+edi],eax | |
| 201 mov esi,edx | |
| 202 ; | |
| 203 sub ecx,8 | |
| 204 lea ebx,[32+ebx] | |
| 205 lea edi,[32+edi] | |
| 206 jnz NEAR L$006maw_loop | |
| 207 L$005maw_finish: | |
| 208 mov ecx,DWORD [32+esp] | |
| 209 and ecx,7 | |
| 210 jnz NEAR L$007maw_finish2 | |
| 211 jmp NEAR L$008maw_end | |
| 212 L$007maw_finish2: | |
| 213 ; Tail Round 0 | |
| 214 mov eax,DWORD [ebx] | |
| 215 mul ebp | |
| 216 add eax,esi | |
| 217 adc edx,0 | |
| 218 add eax,DWORD [edi] | |
| 219 adc edx,0 | |
| 220 dec ecx | |
| 221 mov DWORD [edi],eax | |
| 222 mov esi,edx | |
| 223 jz NEAR L$008maw_end | |
| 224 ; Tail Round 1 | |
| 225 mov eax,DWORD [4+ebx] | |
| 226 mul ebp | |
| 227 add eax,esi | |
| 228 adc edx,0 | |
| 229 add eax,DWORD [4+edi] | |
| 230 adc edx,0 | |
| 231 dec ecx | |
| 232 mov DWORD [4+edi],eax | |
| 233 mov esi,edx | |
| 234 jz NEAR L$008maw_end | |
| 235 ; Tail Round 2 | |
| 236 mov eax,DWORD [8+ebx] | |
| 237 mul ebp | |
| 238 add eax,esi | |
| 239 adc edx,0 | |
| 240 add eax,DWORD [8+edi] | |
| 241 adc edx,0 | |
| 242 dec ecx | |
| 243 mov DWORD [8+edi],eax | |
| 244 mov esi,edx | |
| 245 jz NEAR L$008maw_end | |
| 246 ; Tail Round 3 | |
| 247 mov eax,DWORD [12+ebx] | |
| 248 mul ebp | |
| 249 add eax,esi | |
| 250 adc edx,0 | |
| 251 add eax,DWORD [12+edi] | |
| 252 adc edx,0 | |
| 253 dec ecx | |
| 254 mov DWORD [12+edi],eax | |
| 255 mov esi,edx | |
| 256 jz NEAR L$008maw_end | |
| 257 ; Tail Round 4 | |
| 258 mov eax,DWORD [16+ebx] | |
| 259 mul ebp | |
| 260 add eax,esi | |
| 261 adc edx,0 | |
| 262 add eax,DWORD [16+edi] | |
| 263 adc edx,0 | |
| 264 dec ecx | |
| 265 mov DWORD [16+edi],eax | |
| 266 mov esi,edx | |
| 267 jz NEAR L$008maw_end | |
| 268 ; Tail Round 5 | |
| 269 mov eax,DWORD [20+ebx] | |
| 270 mul ebp | |
| 271 add eax,esi | |
| 272 adc edx,0 | |
| 273 add eax,DWORD [20+edi] | |
| 274 adc edx,0 | |
| 275 dec ecx | |
| 276 mov DWORD [20+edi],eax | |
| 277 mov esi,edx | |
| 278 jz NEAR L$008maw_end | |
| 279 ; Tail Round 6 | |
| 280 mov eax,DWORD [24+ebx] | |
| 281 mul ebp | |
| 282 add eax,esi | |
| 283 adc edx,0 | |
| 284 add eax,DWORD [24+edi] | |
| 285 adc edx,0 | |
| 286 mov DWORD [24+edi],eax | |
| 287 mov esi,edx | |
| 288 L$008maw_end: | |
| 289 mov eax,esi | |
| 290 pop ecx | |
| 291 pop edi | |
| 292 pop esi | |
| 293 pop ebx | |
| 294 pop ebp | |
| 295 ret | |
| 296 global _bn_mul_words | |
| 297 align 16 | |
| 298 _bn_mul_words: | |
| 299 L$_bn_mul_words_begin: | |
| 300 lea eax,[_OPENSSL_ia32cap_P] | |
| 301 bt DWORD [eax],26 | |
| 302 jnc NEAR L$009mw_non_sse2 | |
| 303 mov eax,DWORD [4+esp] | |
| 304 mov edx,DWORD [8+esp] | |
| 305 mov ecx,DWORD [12+esp] | |
| 306 movd mm0,DWORD [16+esp] | |
| 307 pxor mm1,mm1 | |
| 308 align 16 | |
| 309 L$010mw_sse2_loop: | |
| 310 movd mm2,DWORD [edx] | |
| 311 pmuludq mm2,mm0 | |
| 312 lea edx,[4+edx] | |
| 313 paddq mm1,mm2 | |
| 314 movd DWORD [eax],mm1 | |
| 315 sub ecx,1 | |
| 316 psrlq mm1,32 | |
| 317 lea eax,[4+eax] | |
| 318 jnz NEAR L$010mw_sse2_loop | |
| 319 movd eax,mm1 | |
| 320 emms | |
| 321 ret | |
| 322 align 16 | |
| 323 L$009mw_non_sse2: | |
| 324 push ebp | |
| 325 push ebx | |
| 326 push esi | |
| 327 push edi | |
| 328 ; | |
| 329 xor esi,esi | |
| 330 mov edi,DWORD [20+esp] | |
| 331 mov ebx,DWORD [24+esp] | |
| 332 mov ebp,DWORD [28+esp] | |
| 333 mov ecx,DWORD [32+esp] | |
| 334 and ebp,4294967288 | |
| 335 jz NEAR L$011mw_finish | |
| 336 L$012mw_loop: | |
| 337 ; Round 0 | |
| 338 mov eax,DWORD [ebx] | |
| 339 mul ecx | |
| 340 add eax,esi | |
| 341 adc edx,0 | |
| 342 mov DWORD [edi],eax | |
| 343 mov esi,edx | |
| 344 ; Round 4 | |
| 345 mov eax,DWORD [4+ebx] | |
| 346 mul ecx | |
| 347 add eax,esi | |
| 348 adc edx,0 | |
| 349 mov DWORD [4+edi],eax | |
| 350 mov esi,edx | |
| 351 ; Round 8 | |
| 352 mov eax,DWORD [8+ebx] | |
| 353 mul ecx | |
| 354 add eax,esi | |
| 355 adc edx,0 | |
| 356 mov DWORD [8+edi],eax | |
| 357 mov esi,edx | |
| 358 ; Round 12 | |
| 359 mov eax,DWORD [12+ebx] | |
| 360 mul ecx | |
| 361 add eax,esi | |
| 362 adc edx,0 | |
| 363 mov DWORD [12+edi],eax | |
| 364 mov esi,edx | |
| 365 ; Round 16 | |
| 366 mov eax,DWORD [16+ebx] | |
| 367 mul ecx | |
| 368 add eax,esi | |
| 369 adc edx,0 | |
| 370 mov DWORD [16+edi],eax | |
| 371 mov esi,edx | |
| 372 ; Round 20 | |
| 373 mov eax,DWORD [20+ebx] | |
| 374 mul ecx | |
| 375 add eax,esi | |
| 376 adc edx,0 | |
| 377 mov DWORD [20+edi],eax | |
| 378 mov esi,edx | |
| 379 ; Round 24 | |
| 380 mov eax,DWORD [24+ebx] | |
| 381 mul ecx | |
| 382 add eax,esi | |
| 383 adc edx,0 | |
| 384 mov DWORD [24+edi],eax | |
| 385 mov esi,edx | |
| 386 ; Round 28 | |
| 387 mov eax,DWORD [28+ebx] | |
| 388 mul ecx | |
| 389 add eax,esi | |
| 390 adc edx,0 | |
| 391 mov DWORD [28+edi],eax | |
| 392 mov esi,edx | |
| 393 ; | |
| 394 add ebx,32 | |
| 395 add edi,32 | |
| 396 sub ebp,8 | |
| 397 jz NEAR L$011mw_finish | |
| 398 jmp NEAR L$012mw_loop | |
| 399 L$011mw_finish: | |
| 400 mov ebp,DWORD [28+esp] | |
| 401 and ebp,7 | |
| 402 jnz NEAR L$013mw_finish2 | |
| 403 jmp NEAR L$014mw_end | |
| 404 L$013mw_finish2: | |
| 405 ; Tail Round 0 | |
| 406 mov eax,DWORD [ebx] | |
| 407 mul ecx | |
| 408 add eax,esi | |
| 409 adc edx,0 | |
| 410 mov DWORD [edi],eax | |
| 411 mov esi,edx | |
| 412 dec ebp | |
| 413 jz NEAR L$014mw_end | |
| 414 ; Tail Round 1 | |
| 415 mov eax,DWORD [4+ebx] | |
| 416 mul ecx | |
| 417 add eax,esi | |
| 418 adc edx,0 | |
| 419 mov DWORD [4+edi],eax | |
| 420 mov esi,edx | |
| 421 dec ebp | |
| 422 jz NEAR L$014mw_end | |
| 423 ; Tail Round 2 | |
| 424 mov eax,DWORD [8+ebx] | |
| 425 mul ecx | |
| 426 add eax,esi | |
| 427 adc edx,0 | |
| 428 mov DWORD [8+edi],eax | |
| 429 mov esi,edx | |
| 430 dec ebp | |
| 431 jz NEAR L$014mw_end | |
| 432 ; Tail Round 3 | |
| 433 mov eax,DWORD [12+ebx] | |
| 434 mul ecx | |
| 435 add eax,esi | |
| 436 adc edx,0 | |
| 437 mov DWORD [12+edi],eax | |
| 438 mov esi,edx | |
| 439 dec ebp | |
| 440 jz NEAR L$014mw_end | |
| 441 ; Tail Round 4 | |
| 442 mov eax,DWORD [16+ebx] | |
| 443 mul ecx | |
| 444 add eax,esi | |
| 445 adc edx,0 | |
| 446 mov DWORD [16+edi],eax | |
| 447 mov esi,edx | |
| 448 dec ebp | |
| 449 jz NEAR L$014mw_end | |
| 450 ; Tail Round 5 | |
| 451 mov eax,DWORD [20+ebx] | |
| 452 mul ecx | |
| 453 add eax,esi | |
| 454 adc edx,0 | |
| 455 mov DWORD [20+edi],eax | |
| 456 mov esi,edx | |
| 457 dec ebp | |
| 458 jz NEAR L$014mw_end | |
| 459 ; Tail Round 6 | |
| 460 mov eax,DWORD [24+ebx] | |
| 461 mul ecx | |
| 462 add eax,esi | |
| 463 adc edx,0 | |
| 464 mov DWORD [24+edi],eax | |
| 465 mov esi,edx | |
| 466 L$014mw_end: | |
| 467 mov eax,esi | |
| 468 pop edi | |
| 469 pop esi | |
| 470 pop ebx | |
| 471 pop ebp | |
| 472 ret | |
| 473 global _bn_sqr_words | |
| 474 align 16 | |
| 475 _bn_sqr_words: | |
| 476 L$_bn_sqr_words_begin: | |
| 477 lea eax,[_OPENSSL_ia32cap_P] | |
| 478 bt DWORD [eax],26 | |
| 479 jnc NEAR L$015sqr_non_sse2 | |
| 480 mov eax,DWORD [4+esp] | |
| 481 mov edx,DWORD [8+esp] | |
| 482 mov ecx,DWORD [12+esp] | |
| 483 align 16 | |
| 484 L$016sqr_sse2_loop: | |
| 485 movd mm0,DWORD [edx] | |
| 486 pmuludq mm0,mm0 | |
| 487 lea edx,[4+edx] | |
| 488 movq [eax],mm0 | |
| 489 sub ecx,1 | |
| 490 lea eax,[8+eax] | |
| 491 jnz NEAR L$016sqr_sse2_loop | |
| 492 emms | |
| 493 ret | |
| 494 align 16 | |
| 495 L$015sqr_non_sse2: | |
| 496 push ebp | |
| 497 push ebx | |
| 498 push esi | |
| 499 push edi | |
| 500 ; | |
| 501 mov esi,DWORD [20+esp] | |
| 502 mov edi,DWORD [24+esp] | |
| 503 mov ebx,DWORD [28+esp] | |
| 504 and ebx,4294967288 | |
| 505 jz NEAR L$017sw_finish | |
| 506 L$018sw_loop: | |
| 507 ; Round 0 | |
| 508 mov eax,DWORD [edi] | |
| 509 mul eax | |
| 510 mov DWORD [esi],eax | |
| 511 mov DWORD [4+esi],edx | |
| 512 ; Round 4 | |
| 513 mov eax,DWORD [4+edi] | |
| 514 mul eax | |
| 515 mov DWORD [8+esi],eax | |
| 516 mov DWORD [12+esi],edx | |
| 517 ; Round 8 | |
| 518 mov eax,DWORD [8+edi] | |
| 519 mul eax | |
| 520 mov DWORD [16+esi],eax | |
| 521 mov DWORD [20+esi],edx | |
| 522 ; Round 12 | |
| 523 mov eax,DWORD [12+edi] | |
| 524 mul eax | |
| 525 mov DWORD [24+esi],eax | |
| 526 mov DWORD [28+esi],edx | |
| 527 ; Round 16 | |
| 528 mov eax,DWORD [16+edi] | |
| 529 mul eax | |
| 530 mov DWORD [32+esi],eax | |
| 531 mov DWORD [36+esi],edx | |
| 532 ; Round 20 | |
| 533 mov eax,DWORD [20+edi] | |
| 534 mul eax | |
| 535 mov DWORD [40+esi],eax | |
| 536 mov DWORD [44+esi],edx | |
| 537 ; Round 24 | |
| 538 mov eax,DWORD [24+edi] | |
| 539 mul eax | |
| 540 mov DWORD [48+esi],eax | |
| 541 mov DWORD [52+esi],edx | |
| 542 ; Round 28 | |
| 543 mov eax,DWORD [28+edi] | |
| 544 mul eax | |
| 545 mov DWORD [56+esi],eax | |
| 546 mov DWORD [60+esi],edx | |
| 547 ; | |
| 548 add edi,32 | |
| 549 add esi,64 | |
| 550 sub ebx,8 | |
| 551 jnz NEAR L$018sw_loop | |
| 552 L$017sw_finish: | |
| 553 mov ebx,DWORD [28+esp] | |
| 554 and ebx,7 | |
| 555 jz NEAR L$019sw_end | |
| 556 ; Tail Round 0 | |
| 557 mov eax,DWORD [edi] | |
| 558 mul eax | |
| 559 mov DWORD [esi],eax | |
| 560 dec ebx | |
| 561 mov DWORD [4+esi],edx | |
| 562 jz NEAR L$019sw_end | |
| 563 ; Tail Round 1 | |
| 564 mov eax,DWORD [4+edi] | |
| 565 mul eax | |
| 566 mov DWORD [8+esi],eax | |
| 567 dec ebx | |
| 568 mov DWORD [12+esi],edx | |
| 569 jz NEAR L$019sw_end | |
| 570 ; Tail Round 2 | |
| 571 mov eax,DWORD [8+edi] | |
| 572 mul eax | |
| 573 mov DWORD [16+esi],eax | |
| 574 dec ebx | |
| 575 mov DWORD [20+esi],edx | |
| 576 jz NEAR L$019sw_end | |
| 577 ; Tail Round 3 | |
| 578 mov eax,DWORD [12+edi] | |
| 579 mul eax | |
| 580 mov DWORD [24+esi],eax | |
| 581 dec ebx | |
| 582 mov DWORD [28+esi],edx | |
| 583 jz NEAR L$019sw_end | |
| 584 ; Tail Round 4 | |
| 585 mov eax,DWORD [16+edi] | |
| 586 mul eax | |
| 587 mov DWORD [32+esi],eax | |
| 588 dec ebx | |
| 589 mov DWORD [36+esi],edx | |
| 590 jz NEAR L$019sw_end | |
| 591 ; Tail Round 5 | |
| 592 mov eax,DWORD [20+edi] | |
| 593 mul eax | |
| 594 mov DWORD [40+esi],eax | |
| 595 dec ebx | |
| 596 mov DWORD [44+esi],edx | |
| 597 jz NEAR L$019sw_end | |
| 598 ; Tail Round 6 | |
| 599 mov eax,DWORD [24+edi] | |
| 600 mul eax | |
| 601 mov DWORD [48+esi],eax | |
| 602 mov DWORD [52+esi],edx | |
| 603 L$019sw_end: | |
| 604 pop edi | |
| 605 pop esi | |
| 606 pop ebx | |
| 607 pop ebp | |
| 608 ret | |
| 609 global _bn_div_words | |
| 610 align 16 | |
| 611 _bn_div_words: | |
| 612 L$_bn_div_words_begin: | |
| 613 mov edx,DWORD [4+esp] | |
| 614 mov eax,DWORD [8+esp] | |
| 615 mov ecx,DWORD [12+esp] | |
| 616 div ecx | |
| 617 ret | |
| 618 global _bn_add_words | |
| 619 align 16 | |
| 620 _bn_add_words: | |
| 621 L$_bn_add_words_begin: | |
| 622 push ebp | |
| 623 push ebx | |
| 624 push esi | |
| 625 push edi | |
| 626 ; | |
| 627 mov ebx,DWORD [20+esp] | |
| 628 mov esi,DWORD [24+esp] | |
| 629 mov edi,DWORD [28+esp] | |
| 630 mov ebp,DWORD [32+esp] | |
| 631 xor eax,eax | |
| 632 and ebp,4294967288 | |
| 633 jz NEAR L$020aw_finish | |
| 634 L$021aw_loop: | |
| 635 ; Round 0 | |
| 636 mov ecx,DWORD [esi] | |
| 637 mov edx,DWORD [edi] | |
| 638 add ecx,eax | |
| 639 mov eax,0 | |
| 640 adc eax,eax | |
| 641 add ecx,edx | |
| 642 adc eax,0 | |
| 643 mov DWORD [ebx],ecx | |
| 644 ; Round 1 | |
| 645 mov ecx,DWORD [4+esi] | |
| 646 mov edx,DWORD [4+edi] | |
| 647 add ecx,eax | |
| 648 mov eax,0 | |
| 649 adc eax,eax | |
| 650 add ecx,edx | |
| 651 adc eax,0 | |
| 652 mov DWORD [4+ebx],ecx | |
| 653 ; Round 2 | |
| 654 mov ecx,DWORD [8+esi] | |
| 655 mov edx,DWORD [8+edi] | |
| 656 add ecx,eax | |
| 657 mov eax,0 | |
| 658 adc eax,eax | |
| 659 add ecx,edx | |
| 660 adc eax,0 | |
| 661 mov DWORD [8+ebx],ecx | |
| 662 ; Round 3 | |
| 663 mov ecx,DWORD [12+esi] | |
| 664 mov edx,DWORD [12+edi] | |
| 665 add ecx,eax | |
| 666 mov eax,0 | |
| 667 adc eax,eax | |
| 668 add ecx,edx | |
| 669 adc eax,0 | |
| 670 mov DWORD [12+ebx],ecx | |
| 671 ; Round 4 | |
| 672 mov ecx,DWORD [16+esi] | |
| 673 mov edx,DWORD [16+edi] | |
| 674 add ecx,eax | |
| 675 mov eax,0 | |
| 676 adc eax,eax | |
| 677 add ecx,edx | |
| 678 adc eax,0 | |
| 679 mov DWORD [16+ebx],ecx | |
| 680 ; Round 5 | |
| 681 mov ecx,DWORD [20+esi] | |
| 682 mov edx,DWORD [20+edi] | |
| 683 add ecx,eax | |
| 684 mov eax,0 | |
| 685 adc eax,eax | |
| 686 add ecx,edx | |
| 687 adc eax,0 | |
| 688 mov DWORD [20+ebx],ecx | |
| 689 ; Round 6 | |
| 690 mov ecx,DWORD [24+esi] | |
| 691 mov edx,DWORD [24+edi] | |
| 692 add ecx,eax | |
| 693 mov eax,0 | |
| 694 adc eax,eax | |
| 695 add ecx,edx | |
| 696 adc eax,0 | |
| 697 mov DWORD [24+ebx],ecx | |
| 698 ; Round 7 | |
| 699 mov ecx,DWORD [28+esi] | |
| 700 mov edx,DWORD [28+edi] | |
| 701 add ecx,eax | |
| 702 mov eax,0 | |
| 703 adc eax,eax | |
| 704 add ecx,edx | |
| 705 adc eax,0 | |
| 706 mov DWORD [28+ebx],ecx | |
| 707 ; | |
| 708 add esi,32 | |
| 709 add edi,32 | |
| 710 add ebx,32 | |
| 711 sub ebp,8 | |
| 712 jnz NEAR L$021aw_loop | |
| 713 L$020aw_finish: | |
| 714 mov ebp,DWORD [32+esp] | |
| 715 and ebp,7 | |
| 716 jz NEAR L$022aw_end | |
| 717 ; Tail Round 0 | |
| 718 mov ecx,DWORD [esi] | |
| 719 mov edx,DWORD [edi] | |
| 720 add ecx,eax | |
| 721 mov eax,0 | |
| 722 adc eax,eax | |
| 723 add ecx,edx | |
| 724 adc eax,0 | |
| 725 dec ebp | |
| 726 mov DWORD [ebx],ecx | |
| 727 jz NEAR L$022aw_end | |
| 728 ; Tail Round 1 | |
| 729 mov ecx,DWORD [4+esi] | |
| 730 mov edx,DWORD [4+edi] | |
| 731 add ecx,eax | |
| 732 mov eax,0 | |
| 733 adc eax,eax | |
| 734 add ecx,edx | |
| 735 adc eax,0 | |
| 736 dec ebp | |
| 737 mov DWORD [4+ebx],ecx | |
| 738 jz NEAR L$022aw_end | |
| 739 ; Tail Round 2 | |
| 740 mov ecx,DWORD [8+esi] | |
| 741 mov edx,DWORD [8+edi] | |
| 742 add ecx,eax | |
| 743 mov eax,0 | |
| 744 adc eax,eax | |
| 745 add ecx,edx | |
| 746 adc eax,0 | |
| 747 dec ebp | |
| 748 mov DWORD [8+ebx],ecx | |
| 749 jz NEAR L$022aw_end | |
| 750 ; Tail Round 3 | |
| 751 mov ecx,DWORD [12+esi] | |
| 752 mov edx,DWORD [12+edi] | |
| 753 add ecx,eax | |
| 754 mov eax,0 | |
| 755 adc eax,eax | |
| 756 add ecx,edx | |
| 757 adc eax,0 | |
| 758 dec ebp | |
| 759 mov DWORD [12+ebx],ecx | |
| 760 jz NEAR L$022aw_end | |
| 761 ; Tail Round 4 | |
| 762 mov ecx,DWORD [16+esi] | |
| 763 mov edx,DWORD [16+edi] | |
| 764 add ecx,eax | |
| 765 mov eax,0 | |
| 766 adc eax,eax | |
| 767 add ecx,edx | |
| 768 adc eax,0 | |
| 769 dec ebp | |
| 770 mov DWORD [16+ebx],ecx | |
| 771 jz NEAR L$022aw_end | |
| 772 ; Tail Round 5 | |
| 773 mov ecx,DWORD [20+esi] | |
| 774 mov edx,DWORD [20+edi] | |
| 775 add ecx,eax | |
| 776 mov eax,0 | |
| 777 adc eax,eax | |
| 778 add ecx,edx | |
| 779 adc eax,0 | |
| 780 dec ebp | |
| 781 mov DWORD [20+ebx],ecx | |
| 782 jz NEAR L$022aw_end | |
| 783 ; Tail Round 6 | |
| 784 mov ecx,DWORD [24+esi] | |
| 785 mov edx,DWORD [24+edi] | |
| 786 add ecx,eax | |
| 787 mov eax,0 | |
| 788 adc eax,eax | |
| 789 add ecx,edx | |
| 790 adc eax,0 | |
| 791 mov DWORD [24+ebx],ecx | |
| 792 L$022aw_end: | |
| 793 pop edi | |
| 794 pop esi | |
| 795 pop ebx | |
| 796 pop ebp | |
| 797 ret | |
| 798 global _bn_sub_words | |
| 799 align 16 | |
| 800 _bn_sub_words: | |
| 801 L$_bn_sub_words_begin: | |
| 802 push ebp | |
| 803 push ebx | |
| 804 push esi | |
| 805 push edi | |
| 806 ; | |
| 807 mov ebx,DWORD [20+esp] | |
| 808 mov esi,DWORD [24+esp] | |
| 809 mov edi,DWORD [28+esp] | |
| 810 mov ebp,DWORD [32+esp] | |
| 811 xor eax,eax | |
| 812 and ebp,4294967288 | |
| 813 jz NEAR L$023aw_finish | |
| 814 L$024aw_loop: | |
| 815 ; Round 0 | |
| 816 mov ecx,DWORD [esi] | |
| 817 mov edx,DWORD [edi] | |
| 818 sub ecx,eax | |
| 819 mov eax,0 | |
| 820 adc eax,eax | |
| 821 sub ecx,edx | |
| 822 adc eax,0 | |
| 823 mov DWORD [ebx],ecx | |
| 824 ; Round 1 | |
| 825 mov ecx,DWORD [4+esi] | |
| 826 mov edx,DWORD [4+edi] | |
| 827 sub ecx,eax | |
| 828 mov eax,0 | |
| 829 adc eax,eax | |
| 830 sub ecx,edx | |
| 831 adc eax,0 | |
| 832 mov DWORD [4+ebx],ecx | |
| 833 ; Round 2 | |
| 834 mov ecx,DWORD [8+esi] | |
| 835 mov edx,DWORD [8+edi] | |
| 836 sub ecx,eax | |
| 837 mov eax,0 | |
| 838 adc eax,eax | |
| 839 sub ecx,edx | |
| 840 adc eax,0 | |
| 841 mov DWORD [8+ebx],ecx | |
| 842 ; Round 3 | |
| 843 mov ecx,DWORD [12+esi] | |
| 844 mov edx,DWORD [12+edi] | |
| 845 sub ecx,eax | |
| 846 mov eax,0 | |
| 847 adc eax,eax | |
| 848 sub ecx,edx | |
| 849 adc eax,0 | |
| 850 mov DWORD [12+ebx],ecx | |
| 851 ; Round 4 | |
| 852 mov ecx,DWORD [16+esi] | |
| 853 mov edx,DWORD [16+edi] | |
| 854 sub ecx,eax | |
| 855 mov eax,0 | |
| 856 adc eax,eax | |
| 857 sub ecx,edx | |
| 858 adc eax,0 | |
| 859 mov DWORD [16+ebx],ecx | |
| 860 ; Round 5 | |
| 861 mov ecx,DWORD [20+esi] | |
| 862 mov edx,DWORD [20+edi] | |
| 863 sub ecx,eax | |
| 864 mov eax,0 | |
| 865 adc eax,eax | |
| 866 sub ecx,edx | |
| 867 adc eax,0 | |
| 868 mov DWORD [20+ebx],ecx | |
| 869 ; Round 6 | |
| 870 mov ecx,DWORD [24+esi] | |
| 871 mov edx,DWORD [24+edi] | |
| 872 sub ecx,eax | |
| 873 mov eax,0 | |
| 874 adc eax,eax | |
| 875 sub ecx,edx | |
| 876 adc eax,0 | |
| 877 mov DWORD [24+ebx],ecx | |
| 878 ; Round 7 | |
| 879 mov ecx,DWORD [28+esi] | |
| 880 mov edx,DWORD [28+edi] | |
| 881 sub ecx,eax | |
| 882 mov eax,0 | |
| 883 adc eax,eax | |
| 884 sub ecx,edx | |
| 885 adc eax,0 | |
| 886 mov DWORD [28+ebx],ecx | |
| 887 ; | |
| 888 add esi,32 | |
| 889 add edi,32 | |
| 890 add ebx,32 | |
| 891 sub ebp,8 | |
| 892 jnz NEAR L$024aw_loop | |
| 893 L$023aw_finish: | |
| 894 mov ebp,DWORD [32+esp] | |
| 895 and ebp,7 | |
| 896 jz NEAR L$025aw_end | |
| 897 ; Tail Round 0 | |
| 898 mov ecx,DWORD [esi] | |
| 899 mov edx,DWORD [edi] | |
| 900 sub ecx,eax | |
| 901 mov eax,0 | |
| 902 adc eax,eax | |
| 903 sub ecx,edx | |
| 904 adc eax,0 | |
| 905 dec ebp | |
| 906 mov DWORD [ebx],ecx | |
| 907 jz NEAR L$025aw_end | |
| 908 ; Tail Round 1 | |
| 909 mov ecx,DWORD [4+esi] | |
| 910 mov edx,DWORD [4+edi] | |
| 911 sub ecx,eax | |
| 912 mov eax,0 | |
| 913 adc eax,eax | |
| 914 sub ecx,edx | |
| 915 adc eax,0 | |
| 916 dec ebp | |
| 917 mov DWORD [4+ebx],ecx | |
| 918 jz NEAR L$025aw_end | |
| 919 ; Tail Round 2 | |
| 920 mov ecx,DWORD [8+esi] | |
| 921 mov edx,DWORD [8+edi] | |
| 922 sub ecx,eax | |
| 923 mov eax,0 | |
| 924 adc eax,eax | |
| 925 sub ecx,edx | |
| 926 adc eax,0 | |
| 927 dec ebp | |
| 928 mov DWORD [8+ebx],ecx | |
| 929 jz NEAR L$025aw_end | |
| 930 ; Tail Round 3 | |
| 931 mov ecx,DWORD [12+esi] | |
| 932 mov edx,DWORD [12+edi] | |
| 933 sub ecx,eax | |
| 934 mov eax,0 | |
| 935 adc eax,eax | |
| 936 sub ecx,edx | |
| 937 adc eax,0 | |
| 938 dec ebp | |
| 939 mov DWORD [12+ebx],ecx | |
| 940 jz NEAR L$025aw_end | |
| 941 ; Tail Round 4 | |
| 942 mov ecx,DWORD [16+esi] | |
| 943 mov edx,DWORD [16+edi] | |
| 944 sub ecx,eax | |
| 945 mov eax,0 | |
| 946 adc eax,eax | |
| 947 sub ecx,edx | |
| 948 adc eax,0 | |
| 949 dec ebp | |
| 950 mov DWORD [16+ebx],ecx | |
| 951 jz NEAR L$025aw_end | |
| 952 ; Tail Round 5 | |
| 953 mov ecx,DWORD [20+esi] | |
| 954 mov edx,DWORD [20+edi] | |
| 955 sub ecx,eax | |
| 956 mov eax,0 | |
| 957 adc eax,eax | |
| 958 sub ecx,edx | |
| 959 adc eax,0 | |
| 960 dec ebp | |
| 961 mov DWORD [20+ebx],ecx | |
| 962 jz NEAR L$025aw_end | |
| 963 ; Tail Round 6 | |
| 964 mov ecx,DWORD [24+esi] | |
| 965 mov edx,DWORD [24+edi] | |
| 966 sub ecx,eax | |
| 967 mov eax,0 | |
| 968 adc eax,eax | |
| 969 sub ecx,edx | |
| 970 adc eax,0 | |
| 971 mov DWORD [24+ebx],ecx | |
| 972 L$025aw_end: | |
| 973 pop edi | |
| 974 pop esi | |
| 975 pop ebx | |
| 976 pop ebp | |
| 977 ret | |
| 978 global _bn_sub_part_words | |
| 979 align 16 | |
| 980 _bn_sub_part_words: | |
| 981 L$_bn_sub_part_words_begin: | |
| 982 push ebp | |
| 983 push ebx | |
| 984 push esi | |
| 985 push edi | |
| 986 ; | |
| 987 mov ebx,DWORD [20+esp] | |
| 988 mov esi,DWORD [24+esp] | |
| 989 mov edi,DWORD [28+esp] | |
| 990 mov ebp,DWORD [32+esp] | |
| 991 xor eax,eax | |
| 992 and ebp,4294967288 | |
| 993 jz NEAR L$026aw_finish | |
| 994 L$027aw_loop: | |
| 995 ; Round 0 | |
| 996 mov ecx,DWORD [esi] | |
| 997 mov edx,DWORD [edi] | |
| 998 sub ecx,eax | |
| 999 mov eax,0 | |
| 1000 adc eax,eax | |
| 1001 sub ecx,edx | |
| 1002 adc eax,0 | |
| 1003 mov DWORD [ebx],ecx | |
| 1004 ; Round 1 | |
| 1005 mov ecx,DWORD [4+esi] | |
| 1006 mov edx,DWORD [4+edi] | |
| 1007 sub ecx,eax | |
| 1008 mov eax,0 | |
| 1009 adc eax,eax | |
| 1010 sub ecx,edx | |
| 1011 adc eax,0 | |
| 1012 mov DWORD [4+ebx],ecx | |
| 1013 ; Round 2 | |
| 1014 mov ecx,DWORD [8+esi] | |
| 1015 mov edx,DWORD [8+edi] | |
| 1016 sub ecx,eax | |
| 1017 mov eax,0 | |
| 1018 adc eax,eax | |
| 1019 sub ecx,edx | |
| 1020 adc eax,0 | |
| 1021 mov DWORD [8+ebx],ecx | |
| 1022 ; Round 3 | |
| 1023 mov ecx,DWORD [12+esi] | |
| 1024 mov edx,DWORD [12+edi] | |
| 1025 sub ecx,eax | |
| 1026 mov eax,0 | |
| 1027 adc eax,eax | |
| 1028 sub ecx,edx | |
| 1029 adc eax,0 | |
| 1030 mov DWORD [12+ebx],ecx | |
| 1031 ; Round 4 | |
| 1032 mov ecx,DWORD [16+esi] | |
| 1033 mov edx,DWORD [16+edi] | |
| 1034 sub ecx,eax | |
| 1035 mov eax,0 | |
| 1036 adc eax,eax | |
| 1037 sub ecx,edx | |
| 1038 adc eax,0 | |
| 1039 mov DWORD [16+ebx],ecx | |
| 1040 ; Round 5 | |
| 1041 mov ecx,DWORD [20+esi] | |
| 1042 mov edx,DWORD [20+edi] | |
| 1043 sub ecx,eax | |
| 1044 mov eax,0 | |
| 1045 adc eax,eax | |
| 1046 sub ecx,edx | |
| 1047 adc eax,0 | |
| 1048 mov DWORD [20+ebx],ecx | |
| 1049 ; Round 6 | |
| 1050 mov ecx,DWORD [24+esi] | |
| 1051 mov edx,DWORD [24+edi] | |
| 1052 sub ecx,eax | |
| 1053 mov eax,0 | |
| 1054 adc eax,eax | |
| 1055 sub ecx,edx | |
| 1056 adc eax,0 | |
| 1057 mov DWORD [24+ebx],ecx | |
| 1058 ; Round 7 | |
| 1059 mov ecx,DWORD [28+esi] | |
| 1060 mov edx,DWORD [28+edi] | |
| 1061 sub ecx,eax | |
| 1062 mov eax,0 | |
| 1063 adc eax,eax | |
| 1064 sub ecx,edx | |
| 1065 adc eax,0 | |
| 1066 mov DWORD [28+ebx],ecx | |
| 1067 ; | |
| 1068 add esi,32 | |
| 1069 add edi,32 | |
| 1070 add ebx,32 | |
| 1071 sub ebp,8 | |
| 1072 jnz NEAR L$027aw_loop | |
| 1073 L$026aw_finish: | |
| 1074 mov ebp,DWORD [32+esp] | |
| 1075 and ebp,7 | |
| 1076 jz NEAR L$028aw_end | |
| 1077 ; Tail Round 0 | |
| 1078 mov ecx,DWORD [esi] | |
| 1079 mov edx,DWORD [edi] | |
| 1080 sub ecx,eax | |
| 1081 mov eax,0 | |
| 1082 adc eax,eax | |
| 1083 sub ecx,edx | |
| 1084 adc eax,0 | |
| 1085 mov DWORD [ebx],ecx | |
| 1086 add esi,4 | |
| 1087 add edi,4 | |
| 1088 add ebx,4 | |
| 1089 dec ebp | |
| 1090 jz NEAR L$028aw_end | |
| 1091 ; Tail Round 1 | |
| 1092 mov ecx,DWORD [esi] | |
| 1093 mov edx,DWORD [edi] | |
| 1094 sub ecx,eax | |
| 1095 mov eax,0 | |
| 1096 adc eax,eax | |
| 1097 sub ecx,edx | |
| 1098 adc eax,0 | |
| 1099 mov DWORD [ebx],ecx | |
| 1100 add esi,4 | |
| 1101 add edi,4 | |
| 1102 add ebx,4 | |
| 1103 dec ebp | |
| 1104 jz NEAR L$028aw_end | |
| 1105 ; Tail Round 2 | |
| 1106 mov ecx,DWORD [esi] | |
| 1107 mov edx,DWORD [edi] | |
| 1108 sub ecx,eax | |
| 1109 mov eax,0 | |
| 1110 adc eax,eax | |
| 1111 sub ecx,edx | |
| 1112 adc eax,0 | |
| 1113 mov DWORD [ebx],ecx | |
| 1114 add esi,4 | |
| 1115 add edi,4 | |
| 1116 add ebx,4 | |
| 1117 dec ebp | |
| 1118 jz NEAR L$028aw_end | |
| 1119 ; Tail Round 3 | |
| 1120 mov ecx,DWORD [esi] | |
| 1121 mov edx,DWORD [edi] | |
| 1122 sub ecx,eax | |
| 1123 mov eax,0 | |
| 1124 adc eax,eax | |
| 1125 sub ecx,edx | |
| 1126 adc eax,0 | |
| 1127 mov DWORD [ebx],ecx | |
| 1128 add esi,4 | |
| 1129 add edi,4 | |
| 1130 add ebx,4 | |
| 1131 dec ebp | |
| 1132 jz NEAR L$028aw_end | |
| 1133 ; Tail Round 4 | |
| 1134 mov ecx,DWORD [esi] | |
| 1135 mov edx,DWORD [edi] | |
| 1136 sub ecx,eax | |
| 1137 mov eax,0 | |
| 1138 adc eax,eax | |
| 1139 sub ecx,edx | |
| 1140 adc eax,0 | |
| 1141 mov DWORD [ebx],ecx | |
| 1142 add esi,4 | |
| 1143 add edi,4 | |
| 1144 add ebx,4 | |
| 1145 dec ebp | |
| 1146 jz NEAR L$028aw_end | |
| 1147 ; Tail Round 5 | |
| 1148 mov ecx,DWORD [esi] | |
| 1149 mov edx,DWORD [edi] | |
| 1150 sub ecx,eax | |
| 1151 mov eax,0 | |
| 1152 adc eax,eax | |
| 1153 sub ecx,edx | |
| 1154 adc eax,0 | |
| 1155 mov DWORD [ebx],ecx | |
| 1156 add esi,4 | |
| 1157 add edi,4 | |
| 1158 add ebx,4 | |
| 1159 dec ebp | |
| 1160 jz NEAR L$028aw_end | |
| 1161 ; Tail Round 6 | |
| 1162 mov ecx,DWORD [esi] | |
| 1163 mov edx,DWORD [edi] | |
| 1164 sub ecx,eax | |
| 1165 mov eax,0 | |
| 1166 adc eax,eax | |
| 1167 sub ecx,edx | |
| 1168 adc eax,0 | |
| 1169 mov DWORD [ebx],ecx | |
| 1170 add esi,4 | |
| 1171 add edi,4 | |
| 1172 add ebx,4 | |
| 1173 L$028aw_end: | |
| 1174 cmp DWORD [36+esp],0 | |
| 1175 je NEAR L$029pw_end | |
| 1176 mov ebp,DWORD [36+esp] | |
| 1177 cmp ebp,0 | |
| 1178 je NEAR L$029pw_end | |
| 1179 jge NEAR L$030pw_pos | |
| 1180 ; pw_neg | |
| 1181 mov edx,0 | |
| 1182 sub edx,ebp | |
| 1183 mov ebp,edx | |
| 1184 and ebp,4294967288 | |
| 1185 jz NEAR L$031pw_neg_finish | |
| 1186 L$032pw_neg_loop: | |
| 1187 ; dl<0 Round 0 | |
| 1188 mov ecx,0 | |
| 1189 mov edx,DWORD [edi] | |
| 1190 sub ecx,eax | |
| 1191 mov eax,0 | |
| 1192 adc eax,eax | |
| 1193 sub ecx,edx | |
| 1194 adc eax,0 | |
| 1195 mov DWORD [ebx],ecx | |
| 1196 ; dl<0 Round 1 | |
| 1197 mov ecx,0 | |
| 1198 mov edx,DWORD [4+edi] | |
| 1199 sub ecx,eax | |
| 1200 mov eax,0 | |
| 1201 adc eax,eax | |
| 1202 sub ecx,edx | |
| 1203 adc eax,0 | |
| 1204 mov DWORD [4+ebx],ecx | |
| 1205 ; dl<0 Round 2 | |
| 1206 mov ecx,0 | |
| 1207 mov edx,DWORD [8+edi] | |
| 1208 sub ecx,eax | |
| 1209 mov eax,0 | |
| 1210 adc eax,eax | |
| 1211 sub ecx,edx | |
| 1212 adc eax,0 | |
| 1213 mov DWORD [8+ebx],ecx | |
| 1214 ; dl<0 Round 3 | |
| 1215 mov ecx,0 | |
| 1216 mov edx,DWORD [12+edi] | |
| 1217 sub ecx,eax | |
| 1218 mov eax,0 | |
| 1219 adc eax,eax | |
| 1220 sub ecx,edx | |
| 1221 adc eax,0 | |
| 1222 mov DWORD [12+ebx],ecx | |
| 1223 ; dl<0 Round 4 | |
| 1224 mov ecx,0 | |
| 1225 mov edx,DWORD [16+edi] | |
| 1226 sub ecx,eax | |
| 1227 mov eax,0 | |
| 1228 adc eax,eax | |
| 1229 sub ecx,edx | |
| 1230 adc eax,0 | |
| 1231 mov DWORD [16+ebx],ecx | |
| 1232 ; dl<0 Round 5 | |
| 1233 mov ecx,0 | |
| 1234 mov edx,DWORD [20+edi] | |
| 1235 sub ecx,eax | |
| 1236 mov eax,0 | |
| 1237 adc eax,eax | |
| 1238 sub ecx,edx | |
| 1239 adc eax,0 | |
| 1240 mov DWORD [20+ebx],ecx | |
| 1241 ; dl<0 Round 6 | |
| 1242 mov ecx,0 | |
| 1243 mov edx,DWORD [24+edi] | |
| 1244 sub ecx,eax | |
| 1245 mov eax,0 | |
| 1246 adc eax,eax | |
| 1247 sub ecx,edx | |
| 1248 adc eax,0 | |
| 1249 mov DWORD [24+ebx],ecx | |
| 1250 ; dl<0 Round 7 | |
| 1251 mov ecx,0 | |
| 1252 mov edx,DWORD [28+edi] | |
| 1253 sub ecx,eax | |
| 1254 mov eax,0 | |
| 1255 adc eax,eax | |
| 1256 sub ecx,edx | |
| 1257 adc eax,0 | |
| 1258 mov DWORD [28+ebx],ecx | |
| 1259 ; | |
| 1260 add edi,32 | |
| 1261 add ebx,32 | |
| 1262 sub ebp,8 | |
| 1263 jnz NEAR L$032pw_neg_loop | |
| 1264 L$031pw_neg_finish: | |
| 1265 mov edx,DWORD [36+esp] | |
| 1266 mov ebp,0 | |
| 1267 sub ebp,edx | |
| 1268 and ebp,7 | |
| 1269 jz NEAR L$029pw_end | |
| 1270 ; dl<0 Tail Round 0 | |
| 1271 mov ecx,0 | |
| 1272 mov edx,DWORD [edi] | |
| 1273 sub ecx,eax | |
| 1274 mov eax,0 | |
| 1275 adc eax,eax | |
| 1276 sub ecx,edx | |
| 1277 adc eax,0 | |
| 1278 dec ebp | |
| 1279 mov DWORD [ebx],ecx | |
| 1280 jz NEAR L$029pw_end | |
| 1281 ; dl<0 Tail Round 1 | |
| 1282 mov ecx,0 | |
| 1283 mov edx,DWORD [4+edi] | |
| 1284 sub ecx,eax | |
| 1285 mov eax,0 | |
| 1286 adc eax,eax | |
| 1287 sub ecx,edx | |
| 1288 adc eax,0 | |
| 1289 dec ebp | |
| 1290 mov DWORD [4+ebx],ecx | |
| 1291 jz NEAR L$029pw_end | |
| 1292 ; dl<0 Tail Round 2 | |
| 1293 mov ecx,0 | |
| 1294 mov edx,DWORD [8+edi] | |
| 1295 sub ecx,eax | |
| 1296 mov eax,0 | |
| 1297 adc eax,eax | |
| 1298 sub ecx,edx | |
| 1299 adc eax,0 | |
| 1300 dec ebp | |
| 1301 mov DWORD [8+ebx],ecx | |
| 1302 jz NEAR L$029pw_end | |
| 1303 ; dl<0 Tail Round 3 | |
| 1304 mov ecx,0 | |
| 1305 mov edx,DWORD [12+edi] | |
| 1306 sub ecx,eax | |
| 1307 mov eax,0 | |
| 1308 adc eax,eax | |
| 1309 sub ecx,edx | |
| 1310 adc eax,0 | |
| 1311 dec ebp | |
| 1312 mov DWORD [12+ebx],ecx | |
| 1313 jz NEAR L$029pw_end | |
| 1314 ; dl<0 Tail Round 4 | |
| 1315 mov ecx,0 | |
| 1316 mov edx,DWORD [16+edi] | |
| 1317 sub ecx,eax | |
| 1318 mov eax,0 | |
| 1319 adc eax,eax | |
| 1320 sub ecx,edx | |
| 1321 adc eax,0 | |
| 1322 dec ebp | |
| 1323 mov DWORD [16+ebx],ecx | |
| 1324 jz NEAR L$029pw_end | |
| 1325 ; dl<0 Tail Round 5 | |
| 1326 mov ecx,0 | |
| 1327 mov edx,DWORD [20+edi] | |
| 1328 sub ecx,eax | |
| 1329 mov eax,0 | |
| 1330 adc eax,eax | |
| 1331 sub ecx,edx | |
| 1332 adc eax,0 | |
| 1333 dec ebp | |
| 1334 mov DWORD [20+ebx],ecx | |
| 1335 jz NEAR L$029pw_end | |
| 1336 ; dl<0 Tail Round 6 | |
| 1337 mov ecx,0 | |
| 1338 mov edx,DWORD [24+edi] | |
| 1339 sub ecx,eax | |
| 1340 mov eax,0 | |
| 1341 adc eax,eax | |
| 1342 sub ecx,edx | |
| 1343 adc eax,0 | |
| 1344 mov DWORD [24+ebx],ecx | |
| 1345 jmp NEAR L$029pw_end | |
| 1346 L$030pw_pos: | |
| 1347 and ebp,4294967288 | |
| 1348 jz NEAR L$033pw_pos_finish | |
| 1349 L$034pw_pos_loop: | |
| 1350 ; dl>0 Round 0 | |
| 1351 mov ecx,DWORD [esi] | |
| 1352 sub ecx,eax | |
| 1353 mov DWORD [ebx],ecx | |
| 1354 jnc NEAR L$035pw_nc0 | |
| 1355 ; dl>0 Round 1 | |
| 1356 mov ecx,DWORD [4+esi] | |
| 1357 sub ecx,eax | |
| 1358 mov DWORD [4+ebx],ecx | |
| 1359 jnc NEAR L$036pw_nc1 | |
| 1360 ; dl>0 Round 2 | |
| 1361 mov ecx,DWORD [8+esi] | |
| 1362 sub ecx,eax | |
| 1363 mov DWORD [8+ebx],ecx | |
| 1364 jnc NEAR L$037pw_nc2 | |
| 1365 ; dl>0 Round 3 | |
| 1366 mov ecx,DWORD [12+esi] | |
| 1367 sub ecx,eax | |
| 1368 mov DWORD [12+ebx],ecx | |
| 1369 jnc NEAR L$038pw_nc3 | |
| 1370 ; dl>0 Round 4 | |
| 1371 mov ecx,DWORD [16+esi] | |
| 1372 sub ecx,eax | |
| 1373 mov DWORD [16+ebx],ecx | |
| 1374 jnc NEAR L$039pw_nc4 | |
| 1375 ; dl>0 Round 5 | |
| 1376 mov ecx,DWORD [20+esi] | |
| 1377 sub ecx,eax | |
| 1378 mov DWORD [20+ebx],ecx | |
| 1379 jnc NEAR L$040pw_nc5 | |
| 1380 ; dl>0 Round 6 | |
| 1381 mov ecx,DWORD [24+esi] | |
| 1382 sub ecx,eax | |
| 1383 mov DWORD [24+ebx],ecx | |
| 1384 jnc NEAR L$041pw_nc6 | |
| 1385 ; dl>0 Round 7 | |
| 1386 mov ecx,DWORD [28+esi] | |
| 1387 sub ecx,eax | |
| 1388 mov DWORD [28+ebx],ecx | |
| 1389 jnc NEAR L$042pw_nc7 | |
| 1390 ; | |
| 1391 add esi,32 | |
| 1392 add ebx,32 | |
| 1393 sub ebp,8 | |
| 1394 jnz NEAR L$034pw_pos_loop | |
| 1395 L$033pw_pos_finish: | |
| 1396 mov ebp,DWORD [36+esp] | |
| 1397 and ebp,7 | |
| 1398 jz NEAR L$029pw_end | |
| 1399 ; dl>0 Tail Round 0 | |
| 1400 mov ecx,DWORD [esi] | |
| 1401 sub ecx,eax | |
| 1402 mov DWORD [ebx],ecx | |
| 1403 jnc NEAR L$043pw_tail_nc0 | |
| 1404 dec ebp | |
| 1405 jz NEAR L$029pw_end | |
| 1406 ; dl>0 Tail Round 1 | |
| 1407 mov ecx,DWORD [4+esi] | |
| 1408 sub ecx,eax | |
| 1409 mov DWORD [4+ebx],ecx | |
| 1410 jnc NEAR L$044pw_tail_nc1 | |
| 1411 dec ebp | |
| 1412 jz NEAR L$029pw_end | |
| 1413 ; dl>0 Tail Round 2 | |
| 1414 mov ecx,DWORD [8+esi] | |
| 1415 sub ecx,eax | |
| 1416 mov DWORD [8+ebx],ecx | |
| 1417 jnc NEAR L$045pw_tail_nc2 | |
| 1418 dec ebp | |
| 1419 jz NEAR L$029pw_end | |
| 1420 ; dl>0 Tail Round 3 | |
| 1421 mov ecx,DWORD [12+esi] | |
| 1422 sub ecx,eax | |
| 1423 mov DWORD [12+ebx],ecx | |
| 1424 jnc NEAR L$046pw_tail_nc3 | |
| 1425 dec ebp | |
| 1426 jz NEAR L$029pw_end | |
| 1427 ; dl>0 Tail Round 4 | |
| 1428 mov ecx,DWORD [16+esi] | |
| 1429 sub ecx,eax | |
| 1430 mov DWORD [16+ebx],ecx | |
| 1431 jnc NEAR L$047pw_tail_nc4 | |
| 1432 dec ebp | |
| 1433 jz NEAR L$029pw_end | |
| 1434 ; dl>0 Tail Round 5 | |
| 1435 mov ecx,DWORD [20+esi] | |
| 1436 sub ecx,eax | |
| 1437 mov DWORD [20+ebx],ecx | |
| 1438 jnc NEAR L$048pw_tail_nc5 | |
| 1439 dec ebp | |
| 1440 jz NEAR L$029pw_end | |
| 1441 ; dl>0 Tail Round 6 | |
| 1442 mov ecx,DWORD [24+esi] | |
| 1443 sub ecx,eax | |
| 1444 mov DWORD [24+ebx],ecx | |
| 1445 jnc NEAR L$049pw_tail_nc6 | |
| 1446 mov eax,1 | |
| 1447 jmp NEAR L$029pw_end | |
| 1448 L$050pw_nc_loop: | |
| 1449 mov ecx,DWORD [esi] | |
| 1450 mov DWORD [ebx],ecx | |
| 1451 L$035pw_nc0: | |
| 1452 mov ecx,DWORD [4+esi] | |
| 1453 mov DWORD [4+ebx],ecx | |
| 1454 L$036pw_nc1: | |
| 1455 mov ecx,DWORD [8+esi] | |
| 1456 mov DWORD [8+ebx],ecx | |
| 1457 L$037pw_nc2: | |
| 1458 mov ecx,DWORD [12+esi] | |
| 1459 mov DWORD [12+ebx],ecx | |
| 1460 L$038pw_nc3: | |
| 1461 mov ecx,DWORD [16+esi] | |
| 1462 mov DWORD [16+ebx],ecx | |
| 1463 L$039pw_nc4: | |
| 1464 mov ecx,DWORD [20+esi] | |
| 1465 mov DWORD [20+ebx],ecx | |
| 1466 L$040pw_nc5: | |
| 1467 mov ecx,DWORD [24+esi] | |
| 1468 mov DWORD [24+ebx],ecx | |
| 1469 L$041pw_nc6: | |
| 1470 mov ecx,DWORD [28+esi] | |
| 1471 mov DWORD [28+ebx],ecx | |
| 1472 L$042pw_nc7: | |
| 1473 ; | |
| 1474 add esi,32 | |
| 1475 add ebx,32 | |
| 1476 sub ebp,8 | |
| 1477 jnz NEAR L$050pw_nc_loop | |
| 1478 mov ebp,DWORD [36+esp] | |
| 1479 and ebp,7 | |
| 1480 jz NEAR L$051pw_nc_end | |
| 1481 mov ecx,DWORD [esi] | |
| 1482 mov DWORD [ebx],ecx | |
| 1483 L$043pw_tail_nc0: | |
| 1484 dec ebp | |
| 1485 jz NEAR L$051pw_nc_end | |
| 1486 mov ecx,DWORD [4+esi] | |
| 1487 mov DWORD [4+ebx],ecx | |
| 1488 L$044pw_tail_nc1: | |
| 1489 dec ebp | |
| 1490 jz NEAR L$051pw_nc_end | |
| 1491 mov ecx,DWORD [8+esi] | |
| 1492 mov DWORD [8+ebx],ecx | |
| 1493 L$045pw_tail_nc2: | |
| 1494 dec ebp | |
| 1495 jz NEAR L$051pw_nc_end | |
| 1496 mov ecx,DWORD [12+esi] | |
| 1497 mov DWORD [12+ebx],ecx | |
| 1498 L$046pw_tail_nc3: | |
| 1499 dec ebp | |
| 1500 jz NEAR L$051pw_nc_end | |
| 1501 mov ecx,DWORD [16+esi] | |
| 1502 mov DWORD [16+ebx],ecx | |
| 1503 L$047pw_tail_nc4: | |
| 1504 dec ebp | |
| 1505 jz NEAR L$051pw_nc_end | |
| 1506 mov ecx,DWORD [20+esi] | |
| 1507 mov DWORD [20+ebx],ecx | |
| 1508 L$048pw_tail_nc5: | |
| 1509 dec ebp | |
| 1510 jz NEAR L$051pw_nc_end | |
| 1511 mov ecx,DWORD [24+esi] | |
| 1512 mov DWORD [24+ebx],ecx | |
| 1513 L$049pw_tail_nc6: | |
| 1514 L$051pw_nc_end: | |
| 1515 mov eax,0 | |
| 1516 L$029pw_end: | |
| 1517 pop edi | |
| 1518 pop esi | |
| 1519 pop ebx | |
| 1520 pop ebp | |
| 1521 ret | |
| 1522 segment .bss | |
| 1523 common _OPENSSL_ia32cap_P 16 | |
| OLD | NEW |