| OLD | NEW |
| 1 %ifidn __OUTPUT_FORMAT__,obj | 1 %ifidn __OUTPUT_FORMAT__,obj |
| 2 section code use32 class=code align=64 | 2 section code use32 class=code align=64 |
| 3 %elifidn __OUTPUT_FORMAT__,win32 | 3 %elifidn __OUTPUT_FORMAT__,win32 |
| 4 %ifdef __YASM_VERSION_ID__ | 4 %ifdef __YASM_VERSION_ID__ |
| 5 %if __YASM_VERSION_ID__ < 01010000h | 5 %if __YASM_VERSION_ID__ < 01010000h |
| 6 %error yasm version 1.1.0 or later needed. | 6 %error yasm version 1.1.0 or later needed. |
| 7 %endif | 7 %endif |
| 8 ; Yasm automatically includes .00 and complains about redefining it. | 8 ; Yasm automatically includes .00 and complains about redefining it. |
| 9 ; https://www.tortall.net/projects/yasm/manual/html/objfmt-win32-safeseh.html | 9 ; https://www.tortall.net/projects/yasm/manual/html/objfmt-win32-safeseh.html |
| 10 %else | 10 %else |
| (...skipping 11 matching lines...) Expand all Loading... |
| 22 push ebp | 22 push ebp |
| 23 push ebx | 23 push ebx |
| 24 push esi | 24 push esi |
| 25 push edi | 25 push edi |
| 26 xor eax,eax | 26 xor eax,eax |
| 27 mov edi,DWORD [40+esp] | 27 mov edi,DWORD [40+esp] |
| 28 cmp edi,4 | 28 cmp edi,4 |
| 29 jl NEAR L$000just_leave | 29 jl NEAR L$000just_leave |
| 30 lea esi,[20+esp] | 30 lea esi,[20+esp] |
| 31 lea edx,[24+esp] | 31 lea edx,[24+esp] |
| 32 mov ebp,esp | |
| 33 add edi,2 | 32 add edi,2 |
| 34 neg edi | 33 neg edi |
| 35 » lea» esp,[edi*4+esp-32] | 34 » lea» ebp,[edi*4+esp-32] |
| 36 neg edi | 35 neg edi |
| 37 » mov» eax,esp | 36 » mov» eax,ebp |
| 38 sub eax,edx | 37 sub eax,edx |
| 39 and eax,2047 | 38 and eax,2047 |
| 40 » sub» esp,eax | 39 » sub» ebp,eax |
| 41 » xor» edx,esp | 40 » xor» edx,ebp |
| 42 and edx,2048 | 41 and edx,2048 |
| 43 xor edx,2048 | 42 xor edx,2048 |
| 44 » sub» esp,edx | 43 » sub» ebp,edx |
| 45 » and» esp,-64 | 44 » and» ebp,-64 |
| 45 » mov» eax,esp |
| 46 » sub» eax,ebp |
| 47 » and» eax,-4096 |
| 48 » mov» edx,esp |
| 49 » lea» esp,[eax*1+ebp] |
| 50 » mov» eax,DWORD [esp] |
| 51 » cmp» esp,ebp |
| 52 » ja» NEAR L$001page_walk |
| 53 » jmp» NEAR L$002page_walk_done |
| 54 align» 16 |
| 55 L$001page_walk: |
| 56 » lea» esp,[esp-4096] |
| 57 » mov» eax,DWORD [esp] |
| 58 » cmp» esp,ebp |
| 59 » ja» NEAR L$001page_walk |
| 60 L$002page_walk_done: |
| 46 mov eax,DWORD [esi] | 61 mov eax,DWORD [esi] |
| 47 mov ebx,DWORD [4+esi] | 62 mov ebx,DWORD [4+esi] |
| 48 mov ecx,DWORD [8+esi] | 63 mov ecx,DWORD [8+esi] |
| 49 » mov» edx,DWORD [12+esi] | 64 » mov» ebp,DWORD [12+esi] |
| 50 mov esi,DWORD [16+esi] | 65 mov esi,DWORD [16+esi] |
| 51 mov esi,DWORD [esi] | 66 mov esi,DWORD [esi] |
| 52 mov DWORD [4+esp],eax | 67 mov DWORD [4+esp],eax |
| 53 mov DWORD [8+esp],ebx | 68 mov DWORD [8+esp],ebx |
| 54 mov DWORD [12+esp],ecx | 69 mov DWORD [12+esp],ecx |
| 55 » mov» DWORD [16+esp],edx | 70 » mov» DWORD [16+esp],ebp |
| 56 mov DWORD [20+esp],esi | 71 mov DWORD [20+esp],esi |
| 57 lea ebx,[edi-3] | 72 lea ebx,[edi-3] |
| 58 » mov» DWORD [24+esp],ebp | 73 » mov» DWORD [24+esp],edx |
| 59 lea eax,[_OPENSSL_ia32cap_P] | 74 lea eax,[_OPENSSL_ia32cap_P] |
| 60 bt DWORD [eax],26 | 75 bt DWORD [eax],26 |
| 61 » jnc» NEAR L$001non_sse2 | 76 » jnc» NEAR L$003non_sse2 |
| 62 mov eax,-1 | 77 mov eax,-1 |
| 63 movd mm7,eax | 78 movd mm7,eax |
| 64 mov esi,DWORD [8+esp] | 79 mov esi,DWORD [8+esp] |
| 65 mov edi,DWORD [12+esp] | 80 mov edi,DWORD [12+esp] |
| 66 mov ebp,DWORD [16+esp] | 81 mov ebp,DWORD [16+esp] |
| 67 xor edx,edx | 82 xor edx,edx |
| 68 xor ecx,ecx | 83 xor ecx,ecx |
| 69 movd mm4,DWORD [edi] | 84 movd mm4,DWORD [edi] |
| 70 movd mm5,DWORD [esi] | 85 movd mm5,DWORD [esi] |
| 71 movd mm3,DWORD [ebp] | 86 movd mm3,DWORD [ebp] |
| 72 pmuludq mm5,mm4 | 87 pmuludq mm5,mm4 |
| 73 movq mm2,mm5 | 88 movq mm2,mm5 |
| 74 movq mm0,mm5 | 89 movq mm0,mm5 |
| 75 pand mm0,mm7 | 90 pand mm0,mm7 |
| 76 pmuludq mm5,[20+esp] | 91 pmuludq mm5,[20+esp] |
| 77 pmuludq mm3,mm5 | 92 pmuludq mm3,mm5 |
| 78 paddq mm3,mm0 | 93 paddq mm3,mm0 |
| 79 movd mm1,DWORD [4+ebp] | 94 movd mm1,DWORD [4+ebp] |
| 80 movd mm0,DWORD [4+esi] | 95 movd mm0,DWORD [4+esi] |
| 81 psrlq mm2,32 | 96 psrlq mm2,32 |
| 82 psrlq mm3,32 | 97 psrlq mm3,32 |
| 83 inc ecx | 98 inc ecx |
| 84 align 16 | 99 align 16 |
| 85 L$0021st: | 100 L$0041st: |
| 86 pmuludq mm0,mm4 | 101 pmuludq mm0,mm4 |
| 87 pmuludq mm1,mm5 | 102 pmuludq mm1,mm5 |
| 88 paddq mm2,mm0 | 103 paddq mm2,mm0 |
| 89 paddq mm3,mm1 | 104 paddq mm3,mm1 |
| 90 movq mm0,mm2 | 105 movq mm0,mm2 |
| 91 pand mm0,mm7 | 106 pand mm0,mm7 |
| 92 movd mm1,DWORD [4+ecx*4+ebp] | 107 movd mm1,DWORD [4+ecx*4+ebp] |
| 93 paddq mm3,mm0 | 108 paddq mm3,mm0 |
| 94 movd mm0,DWORD [4+ecx*4+esi] | 109 movd mm0,DWORD [4+ecx*4+esi] |
| 95 psrlq mm2,32 | 110 psrlq mm2,32 |
| 96 movd DWORD [28+ecx*4+esp],mm3 | 111 movd DWORD [28+ecx*4+esp],mm3 |
| 97 psrlq mm3,32 | 112 psrlq mm3,32 |
| 98 lea ecx,[1+ecx] | 113 lea ecx,[1+ecx] |
| 99 cmp ecx,ebx | 114 cmp ecx,ebx |
| 100 » jl» NEAR L$0021st | 115 » jl» NEAR L$0041st |
| 101 pmuludq mm0,mm4 | 116 pmuludq mm0,mm4 |
| 102 pmuludq mm1,mm5 | 117 pmuludq mm1,mm5 |
| 103 paddq mm2,mm0 | 118 paddq mm2,mm0 |
| 104 paddq mm3,mm1 | 119 paddq mm3,mm1 |
| 105 movq mm0,mm2 | 120 movq mm0,mm2 |
| 106 pand mm0,mm7 | 121 pand mm0,mm7 |
| 107 paddq mm3,mm0 | 122 paddq mm3,mm0 |
| 108 movd DWORD [28+ecx*4+esp],mm3 | 123 movd DWORD [28+ecx*4+esp],mm3 |
| 109 psrlq mm2,32 | 124 psrlq mm2,32 |
| 110 psrlq mm3,32 | 125 psrlq mm3,32 |
| 111 paddq mm3,mm2 | 126 paddq mm3,mm2 |
| 112 movq [32+ebx*4+esp],mm3 | 127 movq [32+ebx*4+esp],mm3 |
| 113 inc edx | 128 inc edx |
| 114 L$003outer: | 129 L$005outer: |
| 115 xor ecx,ecx | 130 xor ecx,ecx |
| 116 movd mm4,DWORD [edx*4+edi] | 131 movd mm4,DWORD [edx*4+edi] |
| 117 movd mm5,DWORD [esi] | 132 movd mm5,DWORD [esi] |
| 118 movd mm6,DWORD [32+esp] | 133 movd mm6,DWORD [32+esp] |
| 119 movd mm3,DWORD [ebp] | 134 movd mm3,DWORD [ebp] |
| 120 pmuludq mm5,mm4 | 135 pmuludq mm5,mm4 |
| 121 paddq mm5,mm6 | 136 paddq mm5,mm6 |
| 122 movq mm0,mm5 | 137 movq mm0,mm5 |
| 123 movq mm2,mm5 | 138 movq mm2,mm5 |
| 124 pand mm0,mm7 | 139 pand mm0,mm7 |
| 125 pmuludq mm5,[20+esp] | 140 pmuludq mm5,[20+esp] |
| 126 pmuludq mm3,mm5 | 141 pmuludq mm3,mm5 |
| 127 paddq mm3,mm0 | 142 paddq mm3,mm0 |
| 128 movd mm6,DWORD [36+esp] | 143 movd mm6,DWORD [36+esp] |
| 129 movd mm1,DWORD [4+ebp] | 144 movd mm1,DWORD [4+ebp] |
| 130 movd mm0,DWORD [4+esi] | 145 movd mm0,DWORD [4+esi] |
| 131 psrlq mm2,32 | 146 psrlq mm2,32 |
| 132 psrlq mm3,32 | 147 psrlq mm3,32 |
| 133 paddq mm2,mm6 | 148 paddq mm2,mm6 |
| 134 inc ecx | 149 inc ecx |
| 135 dec ebx | 150 dec ebx |
| 136 L$004inner: | 151 L$006inner: |
| 137 pmuludq mm0,mm4 | 152 pmuludq mm0,mm4 |
| 138 pmuludq mm1,mm5 | 153 pmuludq mm1,mm5 |
| 139 paddq mm2,mm0 | 154 paddq mm2,mm0 |
| 140 paddq mm3,mm1 | 155 paddq mm3,mm1 |
| 141 movq mm0,mm2 | 156 movq mm0,mm2 |
| 142 movd mm6,DWORD [36+ecx*4+esp] | 157 movd mm6,DWORD [36+ecx*4+esp] |
| 143 pand mm0,mm7 | 158 pand mm0,mm7 |
| 144 movd mm1,DWORD [4+ecx*4+ebp] | 159 movd mm1,DWORD [4+ecx*4+ebp] |
| 145 paddq mm3,mm0 | 160 paddq mm3,mm0 |
| 146 movd mm0,DWORD [4+ecx*4+esi] | 161 movd mm0,DWORD [4+ecx*4+esi] |
| 147 psrlq mm2,32 | 162 psrlq mm2,32 |
| 148 movd DWORD [28+ecx*4+esp],mm3 | 163 movd DWORD [28+ecx*4+esp],mm3 |
| 149 psrlq mm3,32 | 164 psrlq mm3,32 |
| 150 paddq mm2,mm6 | 165 paddq mm2,mm6 |
| 151 dec ebx | 166 dec ebx |
| 152 lea ecx,[1+ecx] | 167 lea ecx,[1+ecx] |
| 153 » jnz» NEAR L$004inner | 168 » jnz» NEAR L$006inner |
| 154 mov ebx,ecx | 169 mov ebx,ecx |
| 155 pmuludq mm0,mm4 | 170 pmuludq mm0,mm4 |
| 156 pmuludq mm1,mm5 | 171 pmuludq mm1,mm5 |
| 157 paddq mm2,mm0 | 172 paddq mm2,mm0 |
| 158 paddq mm3,mm1 | 173 paddq mm3,mm1 |
| 159 movq mm0,mm2 | 174 movq mm0,mm2 |
| 160 pand mm0,mm7 | 175 pand mm0,mm7 |
| 161 paddq mm3,mm0 | 176 paddq mm3,mm0 |
| 162 movd DWORD [28+ecx*4+esp],mm3 | 177 movd DWORD [28+ecx*4+esp],mm3 |
| 163 psrlq mm2,32 | 178 psrlq mm2,32 |
| 164 psrlq mm3,32 | 179 psrlq mm3,32 |
| 165 movd mm6,DWORD [36+ebx*4+esp] | 180 movd mm6,DWORD [36+ebx*4+esp] |
| 166 paddq mm3,mm2 | 181 paddq mm3,mm2 |
| 167 paddq mm3,mm6 | 182 paddq mm3,mm6 |
| 168 movq [32+ebx*4+esp],mm3 | 183 movq [32+ebx*4+esp],mm3 |
| 169 lea edx,[1+edx] | 184 lea edx,[1+edx] |
| 170 cmp edx,ebx | 185 cmp edx,ebx |
| 171 » jle» NEAR L$003outer | 186 » jle» NEAR L$005outer |
| 172 emms | 187 emms |
| 173 » jmp» NEAR L$005common_tail | 188 » jmp» NEAR L$007common_tail |
| 174 align 16 | 189 align 16 |
| 175 L$001non_sse2: | 190 L$003non_sse2: |
| 176 mov esi,DWORD [8+esp] | 191 mov esi,DWORD [8+esp] |
| 177 lea ebp,[1+ebx] | 192 lea ebp,[1+ebx] |
| 178 mov edi,DWORD [12+esp] | 193 mov edi,DWORD [12+esp] |
| 179 xor ecx,ecx | 194 xor ecx,ecx |
| 180 mov edx,esi | 195 mov edx,esi |
| 181 and ebp,1 | 196 and ebp,1 |
| 182 sub edx,edi | 197 sub edx,edi |
| 183 lea eax,[4+ebx*4+edi] | 198 lea eax,[4+ebx*4+edi] |
| 184 or ebp,edx | 199 or ebp,edx |
| 185 mov edi,DWORD [edi] | 200 mov edi,DWORD [edi] |
| 186 » jz» NEAR L$006bn_sqr_mont | 201 » jz» NEAR L$008bn_sqr_mont |
| 187 mov DWORD [28+esp],eax | 202 mov DWORD [28+esp],eax |
| 188 mov eax,DWORD [esi] | 203 mov eax,DWORD [esi] |
| 189 xor edx,edx | 204 xor edx,edx |
| 190 align 16 | 205 align 16 |
| 191 L$007mull: | 206 L$009mull: |
| 192 mov ebp,edx | 207 mov ebp,edx |
| 193 mul edi | 208 mul edi |
| 194 add ebp,eax | 209 add ebp,eax |
| 195 lea ecx,[1+ecx] | 210 lea ecx,[1+ecx] |
| 196 adc edx,0 | 211 adc edx,0 |
| 197 mov eax,DWORD [ecx*4+esi] | 212 mov eax,DWORD [ecx*4+esi] |
| 198 cmp ecx,ebx | 213 cmp ecx,ebx |
| 199 mov DWORD [28+ecx*4+esp],ebp | 214 mov DWORD [28+ecx*4+esp],ebp |
| 200 » jl» NEAR L$007mull | 215 » jl» NEAR L$009mull |
| 201 mov ebp,edx | 216 mov ebp,edx |
| 202 mul edi | 217 mul edi |
| 203 mov edi,DWORD [20+esp] | 218 mov edi,DWORD [20+esp] |
| 204 add eax,ebp | 219 add eax,ebp |
| 205 mov esi,DWORD [16+esp] | 220 mov esi,DWORD [16+esp] |
| 206 adc edx,0 | 221 adc edx,0 |
| 207 imul edi,DWORD [32+esp] | 222 imul edi,DWORD [32+esp] |
| 208 mov DWORD [32+ebx*4+esp],eax | 223 mov DWORD [32+ebx*4+esp],eax |
| 209 xor ecx,ecx | 224 xor ecx,ecx |
| 210 mov DWORD [36+ebx*4+esp],edx | 225 mov DWORD [36+ebx*4+esp],edx |
| 211 mov DWORD [40+ebx*4+esp],ecx | 226 mov DWORD [40+ebx*4+esp],ecx |
| 212 mov eax,DWORD [esi] | 227 mov eax,DWORD [esi] |
| 213 mul edi | 228 mul edi |
| 214 add eax,DWORD [32+esp] | 229 add eax,DWORD [32+esp] |
| 215 mov eax,DWORD [4+esi] | 230 mov eax,DWORD [4+esi] |
| 216 adc edx,0 | 231 adc edx,0 |
| 217 inc ecx | 232 inc ecx |
| 218 » jmp» NEAR L$0082ndmadd | 233 » jmp» NEAR L$0102ndmadd |
| 219 align 16 | 234 align 16 |
| 220 L$0091stmadd: | 235 L$0111stmadd: |
| 221 mov ebp,edx | 236 mov ebp,edx |
| 222 mul edi | 237 mul edi |
| 223 add ebp,DWORD [32+ecx*4+esp] | 238 add ebp,DWORD [32+ecx*4+esp] |
| 224 lea ecx,[1+ecx] | 239 lea ecx,[1+ecx] |
| 225 adc edx,0 | 240 adc edx,0 |
| 226 add ebp,eax | 241 add ebp,eax |
| 227 mov eax,DWORD [ecx*4+esi] | 242 mov eax,DWORD [ecx*4+esi] |
| 228 adc edx,0 | 243 adc edx,0 |
| 229 cmp ecx,ebx | 244 cmp ecx,ebx |
| 230 mov DWORD [28+ecx*4+esp],ebp | 245 mov DWORD [28+ecx*4+esp],ebp |
| 231 » jl» NEAR L$0091stmadd | 246 » jl» NEAR L$0111stmadd |
| 232 mov ebp,edx | 247 mov ebp,edx |
| 233 mul edi | 248 mul edi |
| 234 add eax,DWORD [32+ebx*4+esp] | 249 add eax,DWORD [32+ebx*4+esp] |
| 235 mov edi,DWORD [20+esp] | 250 mov edi,DWORD [20+esp] |
| 236 adc edx,0 | 251 adc edx,0 |
| 237 mov esi,DWORD [16+esp] | 252 mov esi,DWORD [16+esp] |
| 238 add ebp,eax | 253 add ebp,eax |
| 239 adc edx,0 | 254 adc edx,0 |
| 240 imul edi,DWORD [32+esp] | 255 imul edi,DWORD [32+esp] |
| 241 xor ecx,ecx | 256 xor ecx,ecx |
| 242 add edx,DWORD [36+ebx*4+esp] | 257 add edx,DWORD [36+ebx*4+esp] |
| 243 mov DWORD [32+ebx*4+esp],ebp | 258 mov DWORD [32+ebx*4+esp],ebp |
| 244 adc ecx,0 | 259 adc ecx,0 |
| 245 mov eax,DWORD [esi] | 260 mov eax,DWORD [esi] |
| 246 mov DWORD [36+ebx*4+esp],edx | 261 mov DWORD [36+ebx*4+esp],edx |
| 247 mov DWORD [40+ebx*4+esp],ecx | 262 mov DWORD [40+ebx*4+esp],ecx |
| 248 mul edi | 263 mul edi |
| 249 add eax,DWORD [32+esp] | 264 add eax,DWORD [32+esp] |
| 250 mov eax,DWORD [4+esi] | 265 mov eax,DWORD [4+esi] |
| 251 adc edx,0 | 266 adc edx,0 |
| 252 mov ecx,1 | 267 mov ecx,1 |
| 253 align 16 | 268 align 16 |
| 254 L$0082ndmadd: | 269 L$0102ndmadd: |
| 255 mov ebp,edx | 270 mov ebp,edx |
| 256 mul edi | 271 mul edi |
| 257 add ebp,DWORD [32+ecx*4+esp] | 272 add ebp,DWORD [32+ecx*4+esp] |
| 258 lea ecx,[1+ecx] | 273 lea ecx,[1+ecx] |
| 259 adc edx,0 | 274 adc edx,0 |
| 260 add ebp,eax | 275 add ebp,eax |
| 261 mov eax,DWORD [ecx*4+esi] | 276 mov eax,DWORD [ecx*4+esi] |
| 262 adc edx,0 | 277 adc edx,0 |
| 263 cmp ecx,ebx | 278 cmp ecx,ebx |
| 264 mov DWORD [24+ecx*4+esp],ebp | 279 mov DWORD [24+ecx*4+esp],ebp |
| 265 » jl» NEAR L$0082ndmadd | 280 » jl» NEAR L$0102ndmadd |
| 266 mov ebp,edx | 281 mov ebp,edx |
| 267 mul edi | 282 mul edi |
| 268 add ebp,DWORD [32+ebx*4+esp] | 283 add ebp,DWORD [32+ebx*4+esp] |
| 269 adc edx,0 | 284 adc edx,0 |
| 270 add ebp,eax | 285 add ebp,eax |
| 271 adc edx,0 | 286 adc edx,0 |
| 272 mov DWORD [28+ebx*4+esp],ebp | 287 mov DWORD [28+ebx*4+esp],ebp |
| 273 xor eax,eax | 288 xor eax,eax |
| 274 mov ecx,DWORD [12+esp] | 289 mov ecx,DWORD [12+esp] |
| 275 add edx,DWORD [36+ebx*4+esp] | 290 add edx,DWORD [36+ebx*4+esp] |
| 276 adc eax,DWORD [40+ebx*4+esp] | 291 adc eax,DWORD [40+ebx*4+esp] |
| 277 lea ecx,[4+ecx] | 292 lea ecx,[4+ecx] |
| 278 mov DWORD [32+ebx*4+esp],edx | 293 mov DWORD [32+ebx*4+esp],edx |
| 279 cmp ecx,DWORD [28+esp] | 294 cmp ecx,DWORD [28+esp] |
| 280 mov DWORD [36+ebx*4+esp],eax | 295 mov DWORD [36+ebx*4+esp],eax |
| 281 » je» NEAR L$005common_tail | 296 » je» NEAR L$007common_tail |
| 282 mov edi,DWORD [ecx] | 297 mov edi,DWORD [ecx] |
| 283 mov esi,DWORD [8+esp] | 298 mov esi,DWORD [8+esp] |
| 284 mov DWORD [12+esp],ecx | 299 mov DWORD [12+esp],ecx |
| 285 xor ecx,ecx | 300 xor ecx,ecx |
| 286 xor edx,edx | 301 xor edx,edx |
| 287 mov eax,DWORD [esi] | 302 mov eax,DWORD [esi] |
| 288 » jmp» NEAR L$0091stmadd | 303 » jmp» NEAR L$0111stmadd |
| 289 align 16 | 304 align 16 |
| 290 L$006bn_sqr_mont: | 305 L$008bn_sqr_mont: |
| 291 mov DWORD [esp],ebx | 306 mov DWORD [esp],ebx |
| 292 mov DWORD [12+esp],ecx | 307 mov DWORD [12+esp],ecx |
| 293 mov eax,edi | 308 mov eax,edi |
| 294 mul edi | 309 mul edi |
| 295 mov DWORD [32+esp],eax | 310 mov DWORD [32+esp],eax |
| 296 mov ebx,edx | 311 mov ebx,edx |
| 297 shr edx,1 | 312 shr edx,1 |
| 298 and ebx,1 | 313 and ebx,1 |
| 299 inc ecx | 314 inc ecx |
| 300 align 16 | 315 align 16 |
| 301 L$010sqr: | 316 L$012sqr: |
| 302 mov eax,DWORD [ecx*4+esi] | 317 mov eax,DWORD [ecx*4+esi] |
| 303 mov ebp,edx | 318 mov ebp,edx |
| 304 mul edi | 319 mul edi |
| 305 add eax,ebp | 320 add eax,ebp |
| 306 lea ecx,[1+ecx] | 321 lea ecx,[1+ecx] |
| 307 adc edx,0 | 322 adc edx,0 |
| 308 lea ebp,[eax*2+ebx] | 323 lea ebp,[eax*2+ebx] |
| 309 shr eax,31 | 324 shr eax,31 |
| 310 cmp ecx,DWORD [esp] | 325 cmp ecx,DWORD [esp] |
| 311 mov ebx,eax | 326 mov ebx,eax |
| 312 mov DWORD [28+ecx*4+esp],ebp | 327 mov DWORD [28+ecx*4+esp],ebp |
| 313 » jl» NEAR L$010sqr | 328 » jl» NEAR L$012sqr |
| 314 mov eax,DWORD [ecx*4+esi] | 329 mov eax,DWORD [ecx*4+esi] |
| 315 mov ebp,edx | 330 mov ebp,edx |
| 316 mul edi | 331 mul edi |
| 317 add eax,ebp | 332 add eax,ebp |
| 318 mov edi,DWORD [20+esp] | 333 mov edi,DWORD [20+esp] |
| 319 adc edx,0 | 334 adc edx,0 |
| 320 mov esi,DWORD [16+esp] | 335 mov esi,DWORD [16+esp] |
| 321 lea ebp,[eax*2+ebx] | 336 lea ebp,[eax*2+ebx] |
| 322 imul edi,DWORD [32+esp] | 337 imul edi,DWORD [32+esp] |
| 323 shr eax,31 | 338 shr eax,31 |
| 324 mov DWORD [32+ecx*4+esp],ebp | 339 mov DWORD [32+ecx*4+esp],ebp |
| 325 lea ebp,[edx*2+eax] | 340 lea ebp,[edx*2+eax] |
| 326 mov eax,DWORD [esi] | 341 mov eax,DWORD [esi] |
| 327 shr edx,31 | 342 shr edx,31 |
| 328 mov DWORD [36+ecx*4+esp],ebp | 343 mov DWORD [36+ecx*4+esp],ebp |
| 329 mov DWORD [40+ecx*4+esp],edx | 344 mov DWORD [40+ecx*4+esp],edx |
| 330 mul edi | 345 mul edi |
| 331 add eax,DWORD [32+esp] | 346 add eax,DWORD [32+esp] |
| 332 mov ebx,ecx | 347 mov ebx,ecx |
| 333 adc edx,0 | 348 adc edx,0 |
| 334 mov eax,DWORD [4+esi] | 349 mov eax,DWORD [4+esi] |
| 335 mov ecx,1 | 350 mov ecx,1 |
| 336 align 16 | 351 align 16 |
| 337 L$0113rdmadd: | 352 L$0133rdmadd: |
| 338 mov ebp,edx | 353 mov ebp,edx |
| 339 mul edi | 354 mul edi |
| 340 add ebp,DWORD [32+ecx*4+esp] | 355 add ebp,DWORD [32+ecx*4+esp] |
| 341 adc edx,0 | 356 adc edx,0 |
| 342 add ebp,eax | 357 add ebp,eax |
| 343 mov eax,DWORD [4+ecx*4+esi] | 358 mov eax,DWORD [4+ecx*4+esi] |
| 344 adc edx,0 | 359 adc edx,0 |
| 345 mov DWORD [28+ecx*4+esp],ebp | 360 mov DWORD [28+ecx*4+esp],ebp |
| 346 mov ebp,edx | 361 mov ebp,edx |
| 347 mul edi | 362 mul edi |
| 348 add ebp,DWORD [36+ecx*4+esp] | 363 add ebp,DWORD [36+ecx*4+esp] |
| 349 lea ecx,[2+ecx] | 364 lea ecx,[2+ecx] |
| 350 adc edx,0 | 365 adc edx,0 |
| 351 add ebp,eax | 366 add ebp,eax |
| 352 mov eax,DWORD [ecx*4+esi] | 367 mov eax,DWORD [ecx*4+esi] |
| 353 adc edx,0 | 368 adc edx,0 |
| 354 cmp ecx,ebx | 369 cmp ecx,ebx |
| 355 mov DWORD [24+ecx*4+esp],ebp | 370 mov DWORD [24+ecx*4+esp],ebp |
| 356 » jl» NEAR L$0113rdmadd | 371 » jl» NEAR L$0133rdmadd |
| 357 mov ebp,edx | 372 mov ebp,edx |
| 358 mul edi | 373 mul edi |
| 359 add ebp,DWORD [32+ebx*4+esp] | 374 add ebp,DWORD [32+ebx*4+esp] |
| 360 adc edx,0 | 375 adc edx,0 |
| 361 add ebp,eax | 376 add ebp,eax |
| 362 adc edx,0 | 377 adc edx,0 |
| 363 mov DWORD [28+ebx*4+esp],ebp | 378 mov DWORD [28+ebx*4+esp],ebp |
| 364 mov ecx,DWORD [12+esp] | 379 mov ecx,DWORD [12+esp] |
| 365 xor eax,eax | 380 xor eax,eax |
| 366 mov esi,DWORD [8+esp] | 381 mov esi,DWORD [8+esp] |
| 367 add edx,DWORD [36+ebx*4+esp] | 382 add edx,DWORD [36+ebx*4+esp] |
| 368 adc eax,DWORD [40+ebx*4+esp] | 383 adc eax,DWORD [40+ebx*4+esp] |
| 369 mov DWORD [32+ebx*4+esp],edx | 384 mov DWORD [32+ebx*4+esp],edx |
| 370 cmp ecx,ebx | 385 cmp ecx,ebx |
| 371 mov DWORD [36+ebx*4+esp],eax | 386 mov DWORD [36+ebx*4+esp],eax |
| 372 » je» NEAR L$005common_tail | 387 » je» NEAR L$007common_tail |
| 373 mov edi,DWORD [4+ecx*4+esi] | 388 mov edi,DWORD [4+ecx*4+esi] |
| 374 lea ecx,[1+ecx] | 389 lea ecx,[1+ecx] |
| 375 mov eax,edi | 390 mov eax,edi |
| 376 mov DWORD [12+esp],ecx | 391 mov DWORD [12+esp],ecx |
| 377 mul edi | 392 mul edi |
| 378 add eax,DWORD [32+ecx*4+esp] | 393 add eax,DWORD [32+ecx*4+esp] |
| 379 adc edx,0 | 394 adc edx,0 |
| 380 mov DWORD [32+ecx*4+esp],eax | 395 mov DWORD [32+ecx*4+esp],eax |
| 381 xor ebp,ebp | 396 xor ebp,ebp |
| 382 cmp ecx,ebx | 397 cmp ecx,ebx |
| 383 lea ecx,[1+ecx] | 398 lea ecx,[1+ecx] |
| 384 » je» NEAR L$012sqrlast | 399 » je» NEAR L$014sqrlast |
| 385 mov ebx,edx | 400 mov ebx,edx |
| 386 shr edx,1 | 401 shr edx,1 |
| 387 and ebx,1 | 402 and ebx,1 |
| 388 align 16 | 403 align 16 |
| 389 L$013sqradd: | 404 L$015sqradd: |
| 390 mov eax,DWORD [ecx*4+esi] | 405 mov eax,DWORD [ecx*4+esi] |
| 391 mov ebp,edx | 406 mov ebp,edx |
| 392 mul edi | 407 mul edi |
| 393 add eax,ebp | 408 add eax,ebp |
| 394 lea ebp,[eax*1+eax] | 409 lea ebp,[eax*1+eax] |
| 395 adc edx,0 | 410 adc edx,0 |
| 396 shr eax,31 | 411 shr eax,31 |
| 397 add ebp,DWORD [32+ecx*4+esp] | 412 add ebp,DWORD [32+ecx*4+esp] |
| 398 lea ecx,[1+ecx] | 413 lea ecx,[1+ecx] |
| 399 adc eax,0 | 414 adc eax,0 |
| 400 add ebp,ebx | 415 add ebp,ebx |
| 401 adc eax,0 | 416 adc eax,0 |
| 402 cmp ecx,DWORD [esp] | 417 cmp ecx,DWORD [esp] |
| 403 mov DWORD [28+ecx*4+esp],ebp | 418 mov DWORD [28+ecx*4+esp],ebp |
| 404 mov ebx,eax | 419 mov ebx,eax |
| 405 » jle» NEAR L$013sqradd | 420 » jle» NEAR L$015sqradd |
| 406 mov ebp,edx | 421 mov ebp,edx |
| 407 add edx,edx | 422 add edx,edx |
| 408 shr ebp,31 | 423 shr ebp,31 |
| 409 add edx,ebx | 424 add edx,ebx |
| 410 adc ebp,0 | 425 adc ebp,0 |
| 411 L$012sqrlast: | 426 L$014sqrlast: |
| 412 mov edi,DWORD [20+esp] | 427 mov edi,DWORD [20+esp] |
| 413 mov esi,DWORD [16+esp] | 428 mov esi,DWORD [16+esp] |
| 414 imul edi,DWORD [32+esp] | 429 imul edi,DWORD [32+esp] |
| 415 add edx,DWORD [32+ecx*4+esp] | 430 add edx,DWORD [32+ecx*4+esp] |
| 416 mov eax,DWORD [esi] | 431 mov eax,DWORD [esi] |
| 417 adc ebp,0 | 432 adc ebp,0 |
| 418 mov DWORD [32+ecx*4+esp],edx | 433 mov DWORD [32+ecx*4+esp],edx |
| 419 mov DWORD [36+ecx*4+esp],ebp | 434 mov DWORD [36+ecx*4+esp],ebp |
| 420 mul edi | 435 mul edi |
| 421 add eax,DWORD [32+esp] | 436 add eax,DWORD [32+esp] |
| 422 lea ebx,[ecx-1] | 437 lea ebx,[ecx-1] |
| 423 adc edx,0 | 438 adc edx,0 |
| 424 mov ecx,1 | 439 mov ecx,1 |
| 425 mov eax,DWORD [4+esi] | 440 mov eax,DWORD [4+esi] |
| 426 » jmp» NEAR L$0113rdmadd | 441 » jmp» NEAR L$0133rdmadd |
| 427 align 16 | 442 align 16 |
| 428 L$005common_tail: | 443 L$007common_tail: |
| 429 mov ebp,DWORD [16+esp] | 444 mov ebp,DWORD [16+esp] |
| 430 mov edi,DWORD [4+esp] | 445 mov edi,DWORD [4+esp] |
| 431 lea esi,[32+esp] | 446 lea esi,[32+esp] |
| 432 mov eax,DWORD [esi] | 447 mov eax,DWORD [esi] |
| 433 mov ecx,ebx | 448 mov ecx,ebx |
| 434 xor edx,edx | 449 xor edx,edx |
| 435 align 16 | 450 align 16 |
| 436 L$014sub: | 451 L$016sub: |
| 437 sbb eax,DWORD [edx*4+ebp] | 452 sbb eax,DWORD [edx*4+ebp] |
| 438 mov DWORD [edx*4+edi],eax | 453 mov DWORD [edx*4+edi],eax |
| 439 dec ecx | 454 dec ecx |
| 440 mov eax,DWORD [4+edx*4+esi] | 455 mov eax,DWORD [4+edx*4+esi] |
| 441 lea edx,[1+edx] | 456 lea edx,[1+edx] |
| 442 » jge» NEAR L$014sub | 457 » jge» NEAR L$016sub |
| 443 sbb eax,0 | 458 sbb eax,0 |
| 459 and esi,eax |
| 460 not eax |
| 461 mov ebp,edi |
| 462 and ebp,eax |
| 463 or esi,ebp |
| 444 align 16 | 464 align 16 |
| 445 L$015copy: | 465 L$017copy: |
| 446 » mov» edx,DWORD [ebx*4+esi] | 466 » mov» eax,DWORD [ebx*4+esi] |
| 447 » mov» ebp,DWORD [ebx*4+edi] | 467 » mov» DWORD [ebx*4+edi],eax |
| 448 » xor» edx,ebp | 468 » mov» DWORD [32+ebx*4+esp],ecx |
| 449 » and» edx,eax | |
| 450 » xor» edx,ebp | |
| 451 » mov» DWORD [ebx*4+esi],ecx | |
| 452 » mov» DWORD [ebx*4+edi],edx | |
| 453 dec ebx | 469 dec ebx |
| 454 » jge» NEAR L$015copy | 470 » jge» NEAR L$017copy |
| 455 mov esp,DWORD [24+esp] | 471 mov esp,DWORD [24+esp] |
| 456 mov eax,1 | 472 mov eax,1 |
| 457 L$000just_leave: | 473 L$000just_leave: |
| 458 pop edi | 474 pop edi |
| 459 pop esi | 475 pop esi |
| 460 pop ebx | 476 pop ebx |
| 461 pop ebp | 477 pop ebp |
| 462 ret | 478 ret |
| 463 db 77,111,110,116,103,111,109,101,114,121,32,77,117,108,116,105 | 479 db 77,111,110,116,103,111,109,101,114,121,32,77,117,108,116,105 |
| 464 db 112,108,105,99,97,116,105,111,110,32,102,111,114,32,120,56 | 480 db 112,108,105,99,97,116,105,111,110,32,102,111,114,32,120,56 |
| 465 db 54,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121 | 481 db 54,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121 |
| 466 db 32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46 | 482 db 32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46 |
| 467 db 111,114,103,62,0 | 483 db 111,114,103,62,0 |
| 468 segment .bss | 484 segment .bss |
| 469 common _OPENSSL_ia32cap_P 16 | 485 common _OPENSSL_ia32cap_P 16 |
| OLD | NEW |