Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(130)

Side by Side Diff: third_party/boringssl/win-x86_64/crypto/bn/modexp512-x86_64.asm

Issue 693893006: Roll BoringSSL. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@nasm
Patch Set: roll further Created 6 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 OPTION» DOTNAME 1 default»rel
2 .text$» SEGMENT ALIGN(256) 'CODE' 2 %define XMMWORD
3 %define YMMWORD
4 %define ZMMWORD
5 section».text code align=64
6
3 7
4 8
5 ALIGN 16 9 ALIGN 16
6 MULADD_128x512» PROC PRIVATE 10 MULADD_128x512:
7 » mov» rax,QWORD PTR[rsi] 11 » mov» rax,QWORD[rsi]
8 mul rbp 12 mul rbp
9 add r8,rax 13 add r8,rax
10 adc rdx,0 14 adc rdx,0
11 » mov» QWORD PTR[rcx],r8 15 » mov» QWORD[rcx],r8
12 mov rbx,rdx 16 mov rbx,rdx
13 17
14 » mov» rax,QWORD PTR[8+rsi] 18 » mov» rax,QWORD[8+rsi]
15 mul rbp 19 mul rbp
16 add r9,rax 20 add r9,rax
17 adc rdx,0 21 adc rdx,0
18 add r9,rbx 22 add r9,rbx
19 adc rdx,0 23 adc rdx,0
20 mov rbx,rdx 24 mov rbx,rdx
21 25
22 » mov» rax,QWORD PTR[16+rsi] 26 » mov» rax,QWORD[16+rsi]
23 mul rbp 27 mul rbp
24 add r10,rax 28 add r10,rax
25 adc rdx,0 29 adc rdx,0
26 add r10,rbx 30 add r10,rbx
27 adc rdx,0 31 adc rdx,0
28 mov rbx,rdx 32 mov rbx,rdx
29 33
30 » mov» rax,QWORD PTR[24+rsi] 34 » mov» rax,QWORD[24+rsi]
31 mul rbp 35 mul rbp
32 add r11,rax 36 add r11,rax
33 adc rdx,0 37 adc rdx,0
34 add r11,rbx 38 add r11,rbx
35 adc rdx,0 39 adc rdx,0
36 mov rbx,rdx 40 mov rbx,rdx
37 41
38 » mov» rax,QWORD PTR[32+rsi] 42 » mov» rax,QWORD[32+rsi]
39 mul rbp 43 mul rbp
40 add r12,rax 44 add r12,rax
41 adc rdx,0 45 adc rdx,0
42 add r12,rbx 46 add r12,rbx
43 adc rdx,0 47 adc rdx,0
44 mov rbx,rdx 48 mov rbx,rdx
45 49
46 » mov» rax,QWORD PTR[40+rsi] 50 » mov» rax,QWORD[40+rsi]
47 mul rbp 51 mul rbp
48 add r13,rax 52 add r13,rax
49 adc rdx,0 53 adc rdx,0
50 add r13,rbx 54 add r13,rbx
51 adc rdx,0 55 adc rdx,0
52 mov rbx,rdx 56 mov rbx,rdx
53 57
54 » mov» rax,QWORD PTR[48+rsi] 58 » mov» rax,QWORD[48+rsi]
55 mul rbp 59 mul rbp
56 add r14,rax 60 add r14,rax
57 adc rdx,0 61 adc rdx,0
58 add r14,rbx 62 add r14,rbx
59 adc rdx,0 63 adc rdx,0
60 mov rbx,rdx 64 mov rbx,rdx
61 65
62 » mov» rax,QWORD PTR[56+rsi] 66 » mov» rax,QWORD[56+rsi]
63 mul rbp 67 mul rbp
64 add r15,rax 68 add r15,rax
65 adc rdx,0 69 adc rdx,0
66 add r15,rbx 70 add r15,rbx
67 adc rdx,0 71 adc rdx,0
68 mov r8,rdx 72 mov r8,rdx
69 » mov» rbp,QWORD PTR[8+rdi] 73 » mov» rbp,QWORD[8+rdi]
70 » mov» rax,QWORD PTR[rsi] 74 » mov» rax,QWORD[rsi]
71 mul rbp 75 mul rbp
72 add r9,rax 76 add r9,rax
73 adc rdx,0 77 adc rdx,0
74 » mov» QWORD PTR[8+rcx],r9 78 » mov» QWORD[8+rcx],r9
75 mov rbx,rdx 79 mov rbx,rdx
76 80
77 » mov» rax,QWORD PTR[8+rsi] 81 » mov» rax,QWORD[8+rsi]
78 mul rbp 82 mul rbp
79 add r10,rax 83 add r10,rax
80 adc rdx,0 84 adc rdx,0
81 add r10,rbx 85 add r10,rbx
82 adc rdx,0 86 adc rdx,0
83 mov rbx,rdx 87 mov rbx,rdx
84 88
85 » mov» rax,QWORD PTR[16+rsi] 89 » mov» rax,QWORD[16+rsi]
86 mul rbp 90 mul rbp
87 add r11,rax 91 add r11,rax
88 adc rdx,0 92 adc rdx,0
89 add r11,rbx 93 add r11,rbx
90 adc rdx,0 94 adc rdx,0
91 mov rbx,rdx 95 mov rbx,rdx
92 96
93 » mov» rax,QWORD PTR[24+rsi] 97 » mov» rax,QWORD[24+rsi]
94 mul rbp 98 mul rbp
95 add r12,rax 99 add r12,rax
96 adc rdx,0 100 adc rdx,0
97 add r12,rbx 101 add r12,rbx
98 adc rdx,0 102 adc rdx,0
99 mov rbx,rdx 103 mov rbx,rdx
100 104
101 » mov» rax,QWORD PTR[32+rsi] 105 » mov» rax,QWORD[32+rsi]
102 mul rbp 106 mul rbp
103 add r13,rax 107 add r13,rax
104 adc rdx,0 108 adc rdx,0
105 add r13,rbx 109 add r13,rbx
106 adc rdx,0 110 adc rdx,0
107 mov rbx,rdx 111 mov rbx,rdx
108 112
109 » mov» rax,QWORD PTR[40+rsi] 113 » mov» rax,QWORD[40+rsi]
110 mul rbp 114 mul rbp
111 add r14,rax 115 add r14,rax
112 adc rdx,0 116 adc rdx,0
113 add r14,rbx 117 add r14,rbx
114 adc rdx,0 118 adc rdx,0
115 mov rbx,rdx 119 mov rbx,rdx
116 120
117 » mov» rax,QWORD PTR[48+rsi] 121 » mov» rax,QWORD[48+rsi]
118 mul rbp 122 mul rbp
119 add r15,rax 123 add r15,rax
120 adc rdx,0 124 adc rdx,0
121 add r15,rbx 125 add r15,rbx
122 adc rdx,0 126 adc rdx,0
123 mov rbx,rdx 127 mov rbx,rdx
124 128
125 » mov» rax,QWORD PTR[56+rsi] 129 » mov» rax,QWORD[56+rsi]
126 mul rbp 130 mul rbp
127 add r8,rax 131 add r8,rax
128 adc rdx,0 132 adc rdx,0
129 add r8,rbx 133 add r8,rbx
130 adc rdx,0 134 adc rdx,0
131 mov r9,rdx 135 mov r9,rdx
132 DB 0F3h,0C3h ;repret 136 DB 0F3h,0C3h ;repret
133 MULADD_128x512» ENDP 137
134 138
135 ALIGN 16 139 ALIGN 16
136 mont_reduce» PROC PRIVATE 140 mont_reduce:
137 » lea» rdi,QWORD PTR[192+rsp] 141 » lea» rdi,[192+rsp]
138 » mov» rsi,QWORD PTR[32+rsp] 142 » mov» rsi,QWORD[32+rsp]
139 add rsi,576 143 add rsi,576
140 » lea» rcx,QWORD PTR[520+rsp] 144 » lea» rcx,[520+rsp]
141 145
142 » mov» rbp,QWORD PTR[96+rcx] 146 » mov» rbp,QWORD[96+rcx]
143 » mov» rax,QWORD PTR[rsi] 147 » mov» rax,QWORD[rsi]
144 mul rbp 148 mul rbp
145 » mov» r8,QWORD PTR[rcx] 149 » mov» r8,QWORD[rcx]
146 add r8,rax 150 add r8,rax
147 adc rdx,0 151 adc rdx,0
148 » mov» QWORD PTR[rdi],r8 152 » mov» QWORD[rdi],r8
149 mov rbx,rdx 153 mov rbx,rdx
150 154
151 » mov» rax,QWORD PTR[8+rsi] 155 » mov» rax,QWORD[8+rsi]
152 mul rbp 156 mul rbp
153 » mov» r9,QWORD PTR[8+rcx] 157 » mov» r9,QWORD[8+rcx]
154 add r9,rax 158 add r9,rax
155 adc rdx,0 159 adc rdx,0
156 add r9,rbx 160 add r9,rbx
157 adc rdx,0 161 adc rdx,0
158 mov rbx,rdx 162 mov rbx,rdx
159 163
160 » mov» rax,QWORD PTR[16+rsi] 164 » mov» rax,QWORD[16+rsi]
161 mul rbp 165 mul rbp
162 » mov» r10,QWORD PTR[16+rcx] 166 » mov» r10,QWORD[16+rcx]
163 add r10,rax 167 add r10,rax
164 adc rdx,0 168 adc rdx,0
165 add r10,rbx 169 add r10,rbx
166 adc rdx,0 170 adc rdx,0
167 mov rbx,rdx 171 mov rbx,rdx
168 172
169 » mov» rax,QWORD PTR[24+rsi] 173 » mov» rax,QWORD[24+rsi]
170 mul rbp 174 mul rbp
171 » mov» r11,QWORD PTR[24+rcx] 175 » mov» r11,QWORD[24+rcx]
172 add r11,rax 176 add r11,rax
173 adc rdx,0 177 adc rdx,0
174 add r11,rbx 178 add r11,rbx
175 adc rdx,0 179 adc rdx,0
176 mov rbx,rdx 180 mov rbx,rdx
177 181
178 » mov» rax,QWORD PTR[32+rsi] 182 » mov» rax,QWORD[32+rsi]
179 mul rbp 183 mul rbp
180 » mov» r12,QWORD PTR[32+rcx] 184 » mov» r12,QWORD[32+rcx]
181 add r12,rax 185 add r12,rax
182 adc rdx,0 186 adc rdx,0
183 add r12,rbx 187 add r12,rbx
184 adc rdx,0 188 adc rdx,0
185 mov rbx,rdx 189 mov rbx,rdx
186 190
187 » mov» rax,QWORD PTR[40+rsi] 191 » mov» rax,QWORD[40+rsi]
188 mul rbp 192 mul rbp
189 » mov» r13,QWORD PTR[40+rcx] 193 » mov» r13,QWORD[40+rcx]
190 add r13,rax 194 add r13,rax
191 adc rdx,0 195 adc rdx,0
192 add r13,rbx 196 add r13,rbx
193 adc rdx,0 197 adc rdx,0
194 mov rbx,rdx 198 mov rbx,rdx
195 199
196 » mov» rax,QWORD PTR[48+rsi] 200 » mov» rax,QWORD[48+rsi]
197 mul rbp 201 mul rbp
198 » mov» r14,QWORD PTR[48+rcx] 202 » mov» r14,QWORD[48+rcx]
199 add r14,rax 203 add r14,rax
200 adc rdx,0 204 adc rdx,0
201 add r14,rbx 205 add r14,rbx
202 adc rdx,0 206 adc rdx,0
203 mov rbx,rdx 207 mov rbx,rdx
204 208
205 » mov» rax,QWORD PTR[56+rsi] 209 » mov» rax,QWORD[56+rsi]
206 mul rbp 210 mul rbp
207 » mov» r15,QWORD PTR[56+rcx] 211 » mov» r15,QWORD[56+rcx]
208 add r15,rax 212 add r15,rax
209 adc rdx,0 213 adc rdx,0
210 add r15,rbx 214 add r15,rbx
211 adc rdx,0 215 adc rdx,0
212 mov r8,rdx 216 mov r8,rdx
213 » mov» rbp,QWORD PTR[104+rcx] 217 » mov» rbp,QWORD[104+rcx]
214 » mov» rax,QWORD PTR[rsi] 218 » mov» rax,QWORD[rsi]
215 mul rbp 219 mul rbp
216 add r9,rax 220 add r9,rax
217 adc rdx,0 221 adc rdx,0
218 » mov» QWORD PTR[8+rdi],r9 222 » mov» QWORD[8+rdi],r9
219 mov rbx,rdx 223 mov rbx,rdx
220 224
221 » mov» rax,QWORD PTR[8+rsi] 225 » mov» rax,QWORD[8+rsi]
222 mul rbp 226 mul rbp
223 add r10,rax 227 add r10,rax
224 adc rdx,0 228 adc rdx,0
225 add r10,rbx 229 add r10,rbx
226 adc rdx,0 230 adc rdx,0
227 mov rbx,rdx 231 mov rbx,rdx
228 232
229 » mov» rax,QWORD PTR[16+rsi] 233 » mov» rax,QWORD[16+rsi]
230 mul rbp 234 mul rbp
231 add r11,rax 235 add r11,rax
232 adc rdx,0 236 adc rdx,0
233 add r11,rbx 237 add r11,rbx
234 adc rdx,0 238 adc rdx,0
235 mov rbx,rdx 239 mov rbx,rdx
236 240
237 » mov» rax,QWORD PTR[24+rsi] 241 » mov» rax,QWORD[24+rsi]
238 mul rbp 242 mul rbp
239 add r12,rax 243 add r12,rax
240 adc rdx,0 244 adc rdx,0
241 add r12,rbx 245 add r12,rbx
242 adc rdx,0 246 adc rdx,0
243 mov rbx,rdx 247 mov rbx,rdx
244 248
245 » mov» rax,QWORD PTR[32+rsi] 249 » mov» rax,QWORD[32+rsi]
246 mul rbp 250 mul rbp
247 add r13,rax 251 add r13,rax
248 adc rdx,0 252 adc rdx,0
249 add r13,rbx 253 add r13,rbx
250 adc rdx,0 254 adc rdx,0
251 mov rbx,rdx 255 mov rbx,rdx
252 256
253 » mov» rax,QWORD PTR[40+rsi] 257 » mov» rax,QWORD[40+rsi]
254 mul rbp 258 mul rbp
255 add r14,rax 259 add r14,rax
256 adc rdx,0 260 adc rdx,0
257 add r14,rbx 261 add r14,rbx
258 adc rdx,0 262 adc rdx,0
259 mov rbx,rdx 263 mov rbx,rdx
260 264
261 » mov» rax,QWORD PTR[48+rsi] 265 » mov» rax,QWORD[48+rsi]
262 mul rbp 266 mul rbp
263 add r15,rax 267 add r15,rax
264 adc rdx,0 268 adc rdx,0
265 add r15,rbx 269 add r15,rbx
266 adc rdx,0 270 adc rdx,0
267 mov rbx,rdx 271 mov rbx,rdx
268 272
269 » mov» rax,QWORD PTR[56+rsi] 273 » mov» rax,QWORD[56+rsi]
270 mul rbp 274 mul rbp
271 add r8,rax 275 add r8,rax
272 adc rdx,0 276 adc rdx,0
273 add r8,rbx 277 add r8,rbx
274 adc rdx,0 278 adc rdx,0
275 mov r9,rdx 279 mov r9,rdx
276 » mov» rbp,QWORD PTR[112+rcx] 280 » mov» rbp,QWORD[112+rcx]
277 » mov» rax,QWORD PTR[rsi] 281 » mov» rax,QWORD[rsi]
278 mul rbp 282 mul rbp
279 add r10,rax 283 add r10,rax
280 adc rdx,0 284 adc rdx,0
281 » mov» QWORD PTR[16+rdi],r10 285 » mov» QWORD[16+rdi],r10
282 mov rbx,rdx 286 mov rbx,rdx
283 287
284 » mov» rax,QWORD PTR[8+rsi] 288 » mov» rax,QWORD[8+rsi]
285 mul rbp 289 mul rbp
286 add r11,rax 290 add r11,rax
287 adc rdx,0 291 adc rdx,0
288 add r11,rbx 292 add r11,rbx
289 adc rdx,0 293 adc rdx,0
290 mov rbx,rdx 294 mov rbx,rdx
291 295
292 » mov» rax,QWORD PTR[16+rsi] 296 » mov» rax,QWORD[16+rsi]
293 mul rbp 297 mul rbp
294 add r12,rax 298 add r12,rax
295 adc rdx,0 299 adc rdx,0
296 add r12,rbx 300 add r12,rbx
297 adc rdx,0 301 adc rdx,0
298 mov rbx,rdx 302 mov rbx,rdx
299 303
300 » mov» rax,QWORD PTR[24+rsi] 304 » mov» rax,QWORD[24+rsi]
301 mul rbp 305 mul rbp
302 add r13,rax 306 add r13,rax
303 adc rdx,0 307 adc rdx,0
304 add r13,rbx 308 add r13,rbx
305 adc rdx,0 309 adc rdx,0
306 mov rbx,rdx 310 mov rbx,rdx
307 311
308 » mov» rax,QWORD PTR[32+rsi] 312 » mov» rax,QWORD[32+rsi]
309 mul rbp 313 mul rbp
310 add r14,rax 314 add r14,rax
311 adc rdx,0 315 adc rdx,0
312 add r14,rbx 316 add r14,rbx
313 adc rdx,0 317 adc rdx,0
314 mov rbx,rdx 318 mov rbx,rdx
315 319
316 » mov» rax,QWORD PTR[40+rsi] 320 » mov» rax,QWORD[40+rsi]
317 mul rbp 321 mul rbp
318 add r15,rax 322 add r15,rax
319 adc rdx,0 323 adc rdx,0
320 add r15,rbx 324 add r15,rbx
321 adc rdx,0 325 adc rdx,0
322 mov rbx,rdx 326 mov rbx,rdx
323 327
324 » mov» rax,QWORD PTR[48+rsi] 328 » mov» rax,QWORD[48+rsi]
325 mul rbp 329 mul rbp
326 add r8,rax 330 add r8,rax
327 adc rdx,0 331 adc rdx,0
328 add r8,rbx 332 add r8,rbx
329 adc rdx,0 333 adc rdx,0
330 mov rbx,rdx 334 mov rbx,rdx
331 335
332 » mov» rax,QWORD PTR[56+rsi] 336 » mov» rax,QWORD[56+rsi]
333 mul rbp 337 mul rbp
334 add r9,rax 338 add r9,rax
335 adc rdx,0 339 adc rdx,0
336 add r9,rbx 340 add r9,rbx
337 adc rdx,0 341 adc rdx,0
338 mov r10,rdx 342 mov r10,rdx
339 » mov» rbp,QWORD PTR[120+rcx] 343 » mov» rbp,QWORD[120+rcx]
340 » mov» rax,QWORD PTR[rsi] 344 » mov» rax,QWORD[rsi]
341 mul rbp 345 mul rbp
342 add r11,rax 346 add r11,rax
343 adc rdx,0 347 adc rdx,0
344 » mov» QWORD PTR[24+rdi],r11 348 » mov» QWORD[24+rdi],r11
345 mov rbx,rdx 349 mov rbx,rdx
346 350
347 » mov» rax,QWORD PTR[8+rsi] 351 » mov» rax,QWORD[8+rsi]
348 mul rbp 352 mul rbp
349 add r12,rax 353 add r12,rax
350 adc rdx,0 354 adc rdx,0
351 add r12,rbx 355 add r12,rbx
352 adc rdx,0 356 adc rdx,0
353 mov rbx,rdx 357 mov rbx,rdx
354 358
355 » mov» rax,QWORD PTR[16+rsi] 359 » mov» rax,QWORD[16+rsi]
356 mul rbp 360 mul rbp
357 add r13,rax 361 add r13,rax
358 adc rdx,0 362 adc rdx,0
359 add r13,rbx 363 add r13,rbx
360 adc rdx,0 364 adc rdx,0
361 mov rbx,rdx 365 mov rbx,rdx
362 366
363 » mov» rax,QWORD PTR[24+rsi] 367 » mov» rax,QWORD[24+rsi]
364 mul rbp 368 mul rbp
365 add r14,rax 369 add r14,rax
366 adc rdx,0 370 adc rdx,0
367 add r14,rbx 371 add r14,rbx
368 adc rdx,0 372 adc rdx,0
369 mov rbx,rdx 373 mov rbx,rdx
370 374
371 » mov» rax,QWORD PTR[32+rsi] 375 » mov» rax,QWORD[32+rsi]
372 mul rbp 376 mul rbp
373 add r15,rax 377 add r15,rax
374 adc rdx,0 378 adc rdx,0
375 add r15,rbx 379 add r15,rbx
376 adc rdx,0 380 adc rdx,0
377 mov rbx,rdx 381 mov rbx,rdx
378 382
379 » mov» rax,QWORD PTR[40+rsi] 383 » mov» rax,QWORD[40+rsi]
380 mul rbp 384 mul rbp
381 add r8,rax 385 add r8,rax
382 adc rdx,0 386 adc rdx,0
383 add r8,rbx 387 add r8,rbx
384 adc rdx,0 388 adc rdx,0
385 mov rbx,rdx 389 mov rbx,rdx
386 390
387 » mov» rax,QWORD PTR[48+rsi] 391 » mov» rax,QWORD[48+rsi]
388 mul rbp 392 mul rbp
389 add r9,rax 393 add r9,rax
390 adc rdx,0 394 adc rdx,0
391 add r9,rbx 395 add r9,rbx
392 adc rdx,0 396 adc rdx,0
393 mov rbx,rdx 397 mov rbx,rdx
394 398
395 » mov» rax,QWORD PTR[56+rsi] 399 » mov» rax,QWORD[56+rsi]
396 mul rbp 400 mul rbp
397 add r10,rax 401 add r10,rax
398 adc rdx,0 402 adc rdx,0
399 add r10,rbx 403 add r10,rbx
400 adc rdx,0 404 adc rdx,0
401 mov r11,rdx 405 mov r11,rdx
402 xor rax,rax 406 xor rax,rax
403 407
404 » add» r8,QWORD PTR[64+rcx] 408 » add» r8,QWORD[64+rcx]
405 » adc» r9,QWORD PTR[72+rcx] 409 » adc» r9,QWORD[72+rcx]
406 » adc» r10,QWORD PTR[80+rcx] 410 » adc» r10,QWORD[80+rcx]
407 » adc» r11,QWORD PTR[88+rcx] 411 » adc» r11,QWORD[88+rcx]
408 adc rax,0 412 adc rax,0
409 413
410 414
411 415
412 416
413 » mov» QWORD PTR[64+rdi],r8 417 » mov» QWORD[64+rdi],r8
414 » mov» QWORD PTR[72+rdi],r9 418 » mov» QWORD[72+rdi],r9
415 mov rbp,r10 419 mov rbp,r10
416 » mov» QWORD PTR[88+rdi],r11 420 » mov» QWORD[88+rdi],r11
417 421
418 » mov» QWORD PTR[384+rsp],rax 422 » mov» QWORD[384+rsp],rax
419 423
420 » mov» r8,QWORD PTR[rdi] 424 » mov» r8,QWORD[rdi]
421 » mov» r9,QWORD PTR[8+rdi] 425 » mov» r9,QWORD[8+rdi]
422 » mov» r10,QWORD PTR[16+rdi] 426 » mov» r10,QWORD[16+rdi]
423 » mov» r11,QWORD PTR[24+rdi] 427 » mov» r11,QWORD[24+rdi]
424 428
425 429
426 430
427 431
428 432
429 433
430 434
431 435
432 add rdi,8*10 436 add rdi,8*10
433 437
434 add rsi,64 438 add rsi,64
435 » lea» rcx,QWORD PTR[296+rsp] 439 » lea» rcx,[296+rsp]
436 440
437 call MULADD_128x512 441 call MULADD_128x512
438 442
439 » mov» rax,QWORD PTR[384+rsp] 443 » mov» rax,QWORD[384+rsp]
440 444
441 445
442 » add» r8,QWORD PTR[((-16))+rdi] 446 » add» r8,QWORD[((-16))+rdi]
443 » adc» r9,QWORD PTR[((-8))+rdi] 447 » adc» r9,QWORD[((-8))+rdi]
444 » mov» QWORD PTR[64+rcx],r8 448 » mov» QWORD[64+rcx],r8
445 » mov» QWORD PTR[72+rcx],r9 449 » mov» QWORD[72+rcx],r9
446 450
447 adc rax,rax 451 adc rax,rax
448 » mov» QWORD PTR[384+rsp],rax 452 » mov» QWORD[384+rsp],rax
449 453
450 » lea» rdi,QWORD PTR[192+rsp] 454 » lea» rdi,[192+rsp]
451 add rsi,64 455 add rsi,64
452 456
453 457
454 458
455 459
456 460
457 » mov» r8,QWORD PTR[rsi] 461 » mov» r8,QWORD[rsi]
458 » mov» rbx,QWORD PTR[8+rsi] 462 » mov» rbx,QWORD[8+rsi]
459 463
460 » mov» rax,QWORD PTR[rcx] 464 » mov» rax,QWORD[rcx]
461 mul r8 465 mul r8
462 mov rbp,rax 466 mov rbp,rax
463 mov r9,rdx 467 mov r9,rdx
464 468
465 » mov» rax,QWORD PTR[8+rcx] 469 » mov» rax,QWORD[8+rcx]
466 mul r8 470 mul r8
467 add r9,rax 471 add r9,rax
468 472
469 » mov» rax,QWORD PTR[rcx] 473 » mov» rax,QWORD[rcx]
470 mul rbx 474 mul rbx
471 add r9,rax 475 add r9,rax
472 476
473 » mov» QWORD PTR[8+rdi],r9 477 » mov» QWORD[8+rdi],r9
474 478
475 479
476 sub rsi,192 480 sub rsi,192
477 481
478 » mov» r8,QWORD PTR[rcx] 482 » mov» r8,QWORD[rcx]
479 » mov» r9,QWORD PTR[8+rcx] 483 » mov» r9,QWORD[8+rcx]
480 484
481 call MULADD_128x512 485 call MULADD_128x512
482 486
483 487
484 488
485 489
486 » mov» rax,QWORD PTR[rsi] 490 » mov» rax,QWORD[rsi]
487 » mov» rbx,QWORD PTR[8+rsi] 491 » mov» rbx,QWORD[8+rsi]
488 » mov» rdi,QWORD PTR[16+rsi] 492 » mov» rdi,QWORD[16+rsi]
489 » mov» rdx,QWORD PTR[24+rsi] 493 » mov» rdx,QWORD[24+rsi]
490 494
491 495
492 » mov» rbp,QWORD PTR[384+rsp] 496 » mov» rbp,QWORD[384+rsp]
493 497
494 » add» r8,QWORD PTR[64+rcx] 498 » add» r8,QWORD[64+rcx]
495 » adc» r9,QWORD PTR[72+rcx] 499 » adc» r9,QWORD[72+rcx]
496 500
497 501
498 adc rbp,rbp 502 adc rbp,rbp
499 503
500 504
501 505
502 shl rbp,3 506 shl rbp,3
503 » mov» rcx,QWORD PTR[32+rsp] 507 » mov» rcx,QWORD[32+rsp]
504 add rbp,rcx 508 add rbp,rcx
505 509
506 510
507 xor rsi,rsi 511 xor rsi,rsi
508 512
509 » add» r10,QWORD PTR[rbp] 513 » add» r10,QWORD[rbp]
510 » adc» r11,QWORD PTR[64+rbp] 514 » adc» r11,QWORD[64+rbp]
511 » adc» r12,QWORD PTR[128+rbp] 515 » adc» r12,QWORD[128+rbp]
512 » adc» r13,QWORD PTR[192+rbp] 516 » adc» r13,QWORD[192+rbp]
513 » adc» r14,QWORD PTR[256+rbp] 517 » adc» r14,QWORD[256+rbp]
514 » adc» r15,QWORD PTR[320+rbp] 518 » adc» r15,QWORD[320+rbp]
515 » adc» r8,QWORD PTR[384+rbp] 519 » adc» r8,QWORD[384+rbp]
516 » adc» r9,QWORD PTR[448+rbp] 520 » adc» r9,QWORD[448+rbp]
517 521
518 522
519 523
520 sbb rsi,0 524 sbb rsi,0
521 525
522 526
523 and rax,rsi 527 and rax,rsi
524 and rbx,rsi 528 and rbx,rsi
525 and rdi,rsi 529 and rdi,rsi
526 and rdx,rsi 530 and rdx,rsi
527 531
528 mov rbp,1 532 mov rbp,1
529 sub r10,rax 533 sub r10,rax
530 sbb r11,rbx 534 sbb r11,rbx
531 sbb r12,rdi 535 sbb r12,rdi
532 sbb r13,rdx 536 sbb r13,rdx
533 537
534 538
535 539
536 540
537 sbb rbp,0 541 sbb rbp,0
538 542
539 543
540 544
541 add rcx,512 545 add rcx,512
542 » mov» rax,QWORD PTR[32+rcx] 546 » mov» rax,QWORD[32+rcx]
543 » mov» rbx,QWORD PTR[40+rcx] 547 » mov» rbx,QWORD[40+rcx]
544 » mov» rdi,QWORD PTR[48+rcx] 548 » mov» rdi,QWORD[48+rcx]
545 » mov» rdx,QWORD PTR[56+rcx] 549 » mov» rdx,QWORD[56+rcx]
546 550
547 551
548 552
549 and rax,rsi 553 and rax,rsi
550 and rbx,rsi 554 and rbx,rsi
551 and rdi,rsi 555 and rdi,rsi
552 and rdx,rsi 556 and rdx,rsi
553 557
554 558
555 559
556 sub rbp,1 560 sub rbp,1
557 561
558 sbb r14,rax 562 sbb r14,rax
559 sbb r15,rbx 563 sbb r15,rbx
560 sbb r8,rdi 564 sbb r8,rdi
561 sbb r9,rdx 565 sbb r9,rdx
562 566
563 567
564 568
565 » mov» rsi,QWORD PTR[144+rsp] 569 » mov» rsi,QWORD[144+rsp]
566 » mov» QWORD PTR[rsi],r10 570 » mov» QWORD[rsi],r10
567 » mov» QWORD PTR[8+rsi],r11 571 » mov» QWORD[8+rsi],r11
568 » mov» QWORD PTR[16+rsi],r12 572 » mov» QWORD[16+rsi],r12
569 » mov» QWORD PTR[24+rsi],r13 573 » mov» QWORD[24+rsi],r13
570 » mov» QWORD PTR[32+rsi],r14 574 » mov» QWORD[32+rsi],r14
571 » mov» QWORD PTR[40+rsi],r15 575 » mov» QWORD[40+rsi],r15
572 » mov» QWORD PTR[48+rsi],r8 576 » mov» QWORD[48+rsi],r8
573 » mov» QWORD PTR[56+rsi],r9 577 » mov» QWORD[56+rsi],r9
574 578
575 DB 0F3h,0C3h ;repret 579 DB 0F3h,0C3h ;repret
576 mont_reduce» ENDP 580
577 581
578 ALIGN 16 582 ALIGN 16
579 mont_mul_a3b» PROC PRIVATE 583 mont_mul_a3b:
580 584
581 585
582 586
583 587
584 » mov» rbp,QWORD PTR[rdi] 588 » mov» rbp,QWORD[rdi]
585 589
586 mov rax,r10 590 mov rax,r10
587 mul rbp 591 mul rbp
588 » mov» QWORD PTR[520+rsp],rax 592 » mov» QWORD[520+rsp],rax
589 mov r10,rdx 593 mov r10,rdx
590 mov rax,r11 594 mov rax,r11
591 mul rbp 595 mul rbp
592 add r10,rax 596 add r10,rax
593 adc rdx,0 597 adc rdx,0
594 mov r11,rdx 598 mov r11,rdx
595 mov rax,r12 599 mov rax,r12
596 mul rbp 600 mul rbp
597 add r11,rax 601 add r11,rax
598 adc rdx,0 602 adc rdx,0
(...skipping 16 matching lines...) Expand all
615 mov rax,r8 619 mov rax,r8
616 mul rbp 620 mul rbp
617 add r15,rax 621 add r15,rax
618 adc rdx,0 622 adc rdx,0
619 mov r8,rdx 623 mov r8,rdx
620 mov rax,r9 624 mov rax,r9
621 mul rbp 625 mul rbp
622 add r8,rax 626 add r8,rax
623 adc rdx,0 627 adc rdx,0
624 mov r9,rdx 628 mov r9,rdx
625 » mov» rbp,QWORD PTR[8+rdi] 629 » mov» rbp,QWORD[8+rdi]
626 » mov» rax,QWORD PTR[rsi] 630 » mov» rax,QWORD[rsi]
627 mul rbp 631 mul rbp
628 add r10,rax 632 add r10,rax
629 adc rdx,0 633 adc rdx,0
630 » mov» QWORD PTR[528+rsp],r10 634 » mov» QWORD[528+rsp],r10
631 mov rbx,rdx 635 mov rbx,rdx
632 636
633 » mov» rax,QWORD PTR[8+rsi] 637 » mov» rax,QWORD[8+rsi]
634 mul rbp 638 mul rbp
635 add r11,rax 639 add r11,rax
636 adc rdx,0 640 adc rdx,0
637 add r11,rbx 641 add r11,rbx
638 adc rdx,0 642 adc rdx,0
639 mov rbx,rdx 643 mov rbx,rdx
640 644
641 » mov» rax,QWORD PTR[16+rsi] 645 » mov» rax,QWORD[16+rsi]
642 mul rbp 646 mul rbp
643 add r12,rax 647 add r12,rax
644 adc rdx,0 648 adc rdx,0
645 add r12,rbx 649 add r12,rbx
646 adc rdx,0 650 adc rdx,0
647 mov rbx,rdx 651 mov rbx,rdx
648 652
649 » mov» rax,QWORD PTR[24+rsi] 653 » mov» rax,QWORD[24+rsi]
650 mul rbp 654 mul rbp
651 add r13,rax 655 add r13,rax
652 adc rdx,0 656 adc rdx,0
653 add r13,rbx 657 add r13,rbx
654 adc rdx,0 658 adc rdx,0
655 mov rbx,rdx 659 mov rbx,rdx
656 660
657 » mov» rax,QWORD PTR[32+rsi] 661 » mov» rax,QWORD[32+rsi]
658 mul rbp 662 mul rbp
659 add r14,rax 663 add r14,rax
660 adc rdx,0 664 adc rdx,0
661 add r14,rbx 665 add r14,rbx
662 adc rdx,0 666 adc rdx,0
663 mov rbx,rdx 667 mov rbx,rdx
664 668
665 » mov» rax,QWORD PTR[40+rsi] 669 » mov» rax,QWORD[40+rsi]
666 mul rbp 670 mul rbp
667 add r15,rax 671 add r15,rax
668 adc rdx,0 672 adc rdx,0
669 add r15,rbx 673 add r15,rbx
670 adc rdx,0 674 adc rdx,0
671 mov rbx,rdx 675 mov rbx,rdx
672 676
673 » mov» rax,QWORD PTR[48+rsi] 677 » mov» rax,QWORD[48+rsi]
674 mul rbp 678 mul rbp
675 add r8,rax 679 add r8,rax
676 adc rdx,0 680 adc rdx,0
677 add r8,rbx 681 add r8,rbx
678 adc rdx,0 682 adc rdx,0
679 mov rbx,rdx 683 mov rbx,rdx
680 684
681 » mov» rax,QWORD PTR[56+rsi] 685 » mov» rax,QWORD[56+rsi]
682 mul rbp 686 mul rbp
683 add r9,rax 687 add r9,rax
684 adc rdx,0 688 adc rdx,0
685 add r9,rbx 689 add r9,rbx
686 adc rdx,0 690 adc rdx,0
687 mov r10,rdx 691 mov r10,rdx
688 » mov» rbp,QWORD PTR[16+rdi] 692 » mov» rbp,QWORD[16+rdi]
689 » mov» rax,QWORD PTR[rsi] 693 » mov» rax,QWORD[rsi]
690 mul rbp 694 mul rbp
691 add r11,rax 695 add r11,rax
692 adc rdx,0 696 adc rdx,0
693 » mov» QWORD PTR[536+rsp],r11 697 » mov» QWORD[536+rsp],r11
694 mov rbx,rdx 698 mov rbx,rdx
695 699
696 » mov» rax,QWORD PTR[8+rsi] 700 » mov» rax,QWORD[8+rsi]
697 mul rbp 701 mul rbp
698 add r12,rax 702 add r12,rax
699 adc rdx,0 703 adc rdx,0
700 add r12,rbx 704 add r12,rbx
701 adc rdx,0 705 adc rdx,0
702 mov rbx,rdx 706 mov rbx,rdx
703 707
704 » mov» rax,QWORD PTR[16+rsi] 708 » mov» rax,QWORD[16+rsi]
705 mul rbp 709 mul rbp
706 add r13,rax 710 add r13,rax
707 adc rdx,0 711 adc rdx,0
708 add r13,rbx 712 add r13,rbx
709 adc rdx,0 713 adc rdx,0
710 mov rbx,rdx 714 mov rbx,rdx
711 715
712 » mov» rax,QWORD PTR[24+rsi] 716 » mov» rax,QWORD[24+rsi]
713 mul rbp 717 mul rbp
714 add r14,rax 718 add r14,rax
715 adc rdx,0 719 adc rdx,0
716 add r14,rbx 720 add r14,rbx
717 adc rdx,0 721 adc rdx,0
718 mov rbx,rdx 722 mov rbx,rdx
719 723
720 » mov» rax,QWORD PTR[32+rsi] 724 » mov» rax,QWORD[32+rsi]
721 mul rbp 725 mul rbp
722 add r15,rax 726 add r15,rax
723 adc rdx,0 727 adc rdx,0
724 add r15,rbx 728 add r15,rbx
725 adc rdx,0 729 adc rdx,0
726 mov rbx,rdx 730 mov rbx,rdx
727 731
728 » mov» rax,QWORD PTR[40+rsi] 732 » mov» rax,QWORD[40+rsi]
729 mul rbp 733 mul rbp
730 add r8,rax 734 add r8,rax
731 adc rdx,0 735 adc rdx,0
732 add r8,rbx 736 add r8,rbx
733 adc rdx,0 737 adc rdx,0
734 mov rbx,rdx 738 mov rbx,rdx
735 739
736 » mov» rax,QWORD PTR[48+rsi] 740 » mov» rax,QWORD[48+rsi]
737 mul rbp 741 mul rbp
738 add r9,rax 742 add r9,rax
739 adc rdx,0 743 adc rdx,0
740 add r9,rbx 744 add r9,rbx
741 adc rdx,0 745 adc rdx,0
742 mov rbx,rdx 746 mov rbx,rdx
743 747
744 » mov» rax,QWORD PTR[56+rsi] 748 » mov» rax,QWORD[56+rsi]
745 mul rbp 749 mul rbp
746 add r10,rax 750 add r10,rax
747 adc rdx,0 751 adc rdx,0
748 add r10,rbx 752 add r10,rbx
749 adc rdx,0 753 adc rdx,0
750 mov r11,rdx 754 mov r11,rdx
751 » mov» rbp,QWORD PTR[24+rdi] 755 » mov» rbp,QWORD[24+rdi]
752 » mov» rax,QWORD PTR[rsi] 756 » mov» rax,QWORD[rsi]
753 mul rbp 757 mul rbp
754 add r12,rax 758 add r12,rax
755 adc rdx,0 759 adc rdx,0
756 » mov» QWORD PTR[544+rsp],r12 760 » mov» QWORD[544+rsp],r12
757 mov rbx,rdx 761 mov rbx,rdx
758 762
759 » mov» rax,QWORD PTR[8+rsi] 763 » mov» rax,QWORD[8+rsi]
760 mul rbp 764 mul rbp
761 add r13,rax 765 add r13,rax
762 adc rdx,0 766 adc rdx,0
763 add r13,rbx 767 add r13,rbx
764 adc rdx,0 768 adc rdx,0
765 mov rbx,rdx 769 mov rbx,rdx
766 770
767 » mov» rax,QWORD PTR[16+rsi] 771 » mov» rax,QWORD[16+rsi]
768 mul rbp 772 mul rbp
769 add r14,rax 773 add r14,rax
770 adc rdx,0 774 adc rdx,0
771 add r14,rbx 775 add r14,rbx
772 adc rdx,0 776 adc rdx,0
773 mov rbx,rdx 777 mov rbx,rdx
774 778
775 » mov» rax,QWORD PTR[24+rsi] 779 » mov» rax,QWORD[24+rsi]
776 mul rbp 780 mul rbp
777 add r15,rax 781 add r15,rax
778 adc rdx,0 782 adc rdx,0
779 add r15,rbx 783 add r15,rbx
780 adc rdx,0 784 adc rdx,0
781 mov rbx,rdx 785 mov rbx,rdx
782 786
783 » mov» rax,QWORD PTR[32+rsi] 787 » mov» rax,QWORD[32+rsi]
784 mul rbp 788 mul rbp
785 add r8,rax 789 add r8,rax
786 adc rdx,0 790 adc rdx,0
787 add r8,rbx 791 add r8,rbx
788 adc rdx,0 792 adc rdx,0
789 mov rbx,rdx 793 mov rbx,rdx
790 794
791 » mov» rax,QWORD PTR[40+rsi] 795 » mov» rax,QWORD[40+rsi]
792 mul rbp 796 mul rbp
793 add r9,rax 797 add r9,rax
794 adc rdx,0 798 adc rdx,0
795 add r9,rbx 799 add r9,rbx
796 adc rdx,0 800 adc rdx,0
797 mov rbx,rdx 801 mov rbx,rdx
798 802
799 » mov» rax,QWORD PTR[48+rsi] 803 » mov» rax,QWORD[48+rsi]
800 mul rbp 804 mul rbp
801 add r10,rax 805 add r10,rax
802 adc rdx,0 806 adc rdx,0
803 add r10,rbx 807 add r10,rbx
804 adc rdx,0 808 adc rdx,0
805 mov rbx,rdx 809 mov rbx,rdx
806 810
807 » mov» rax,QWORD PTR[56+rsi] 811 » mov» rax,QWORD[56+rsi]
808 mul rbp 812 mul rbp
809 add r11,rax 813 add r11,rax
810 adc rdx,0 814 adc rdx,0
811 add r11,rbx 815 add r11,rbx
812 adc rdx,0 816 adc rdx,0
813 mov r12,rdx 817 mov r12,rdx
814 » mov» rbp,QWORD PTR[32+rdi] 818 » mov» rbp,QWORD[32+rdi]
815 » mov» rax,QWORD PTR[rsi] 819 » mov» rax,QWORD[rsi]
816 mul rbp 820 mul rbp
817 add r13,rax 821 add r13,rax
818 adc rdx,0 822 adc rdx,0
819 » mov» QWORD PTR[552+rsp],r13 823 » mov» QWORD[552+rsp],r13
820 mov rbx,rdx 824 mov rbx,rdx
821 825
822 » mov» rax,QWORD PTR[8+rsi] 826 » mov» rax,QWORD[8+rsi]
823 mul rbp 827 mul rbp
824 add r14,rax 828 add r14,rax
825 adc rdx,0 829 adc rdx,0
826 add r14,rbx 830 add r14,rbx
827 adc rdx,0 831 adc rdx,0
828 mov rbx,rdx 832 mov rbx,rdx
829 833
830 » mov» rax,QWORD PTR[16+rsi] 834 » mov» rax,QWORD[16+rsi]
831 mul rbp 835 mul rbp
832 add r15,rax 836 add r15,rax
833 adc rdx,0 837 adc rdx,0
834 add r15,rbx 838 add r15,rbx
835 adc rdx,0 839 adc rdx,0
836 mov rbx,rdx 840 mov rbx,rdx
837 841
838 » mov» rax,QWORD PTR[24+rsi] 842 » mov» rax,QWORD[24+rsi]
839 mul rbp 843 mul rbp
840 add r8,rax 844 add r8,rax
841 adc rdx,0 845 adc rdx,0
842 add r8,rbx 846 add r8,rbx
843 adc rdx,0 847 adc rdx,0
844 mov rbx,rdx 848 mov rbx,rdx
845 849
846 » mov» rax,QWORD PTR[32+rsi] 850 » mov» rax,QWORD[32+rsi]
847 mul rbp 851 mul rbp
848 add r9,rax 852 add r9,rax
849 adc rdx,0 853 adc rdx,0
850 add r9,rbx 854 add r9,rbx
851 adc rdx,0 855 adc rdx,0
852 mov rbx,rdx 856 mov rbx,rdx
853 857
854 » mov» rax,QWORD PTR[40+rsi] 858 » mov» rax,QWORD[40+rsi]
855 mul rbp 859 mul rbp
856 add r10,rax 860 add r10,rax
857 adc rdx,0 861 adc rdx,0
858 add r10,rbx 862 add r10,rbx
859 adc rdx,0 863 adc rdx,0
860 mov rbx,rdx 864 mov rbx,rdx
861 865
862 » mov» rax,QWORD PTR[48+rsi] 866 » mov» rax,QWORD[48+rsi]
863 mul rbp 867 mul rbp
864 add r11,rax 868 add r11,rax
865 adc rdx,0 869 adc rdx,0
866 add r11,rbx 870 add r11,rbx
867 adc rdx,0 871 adc rdx,0
868 mov rbx,rdx 872 mov rbx,rdx
869 873
870 » mov» rax,QWORD PTR[56+rsi] 874 » mov» rax,QWORD[56+rsi]
871 mul rbp 875 mul rbp
872 add r12,rax 876 add r12,rax
873 adc rdx,0 877 adc rdx,0
874 add r12,rbx 878 add r12,rbx
875 adc rdx,0 879 adc rdx,0
876 mov r13,rdx 880 mov r13,rdx
877 » mov» rbp,QWORD PTR[40+rdi] 881 » mov» rbp,QWORD[40+rdi]
878 » mov» rax,QWORD PTR[rsi] 882 » mov» rax,QWORD[rsi]
879 mul rbp 883 mul rbp
880 add r14,rax 884 add r14,rax
881 adc rdx,0 885 adc rdx,0
882 » mov» QWORD PTR[560+rsp],r14 886 » mov» QWORD[560+rsp],r14
883 mov rbx,rdx 887 mov rbx,rdx
884 888
885 » mov» rax,QWORD PTR[8+rsi] 889 » mov» rax,QWORD[8+rsi]
886 mul rbp 890 mul rbp
887 add r15,rax 891 add r15,rax
888 adc rdx,0 892 adc rdx,0
889 add r15,rbx 893 add r15,rbx
890 adc rdx,0 894 adc rdx,0
891 mov rbx,rdx 895 mov rbx,rdx
892 896
893 » mov» rax,QWORD PTR[16+rsi] 897 » mov» rax,QWORD[16+rsi]
894 mul rbp 898 mul rbp
895 add r8,rax 899 add r8,rax
896 adc rdx,0 900 adc rdx,0
897 add r8,rbx 901 add r8,rbx
898 adc rdx,0 902 adc rdx,0
899 mov rbx,rdx 903 mov rbx,rdx
900 904
901 » mov» rax,QWORD PTR[24+rsi] 905 » mov» rax,QWORD[24+rsi]
902 mul rbp 906 mul rbp
903 add r9,rax 907 add r9,rax
904 adc rdx,0 908 adc rdx,0
905 add r9,rbx 909 add r9,rbx
906 adc rdx,0 910 adc rdx,0
907 mov rbx,rdx 911 mov rbx,rdx
908 912
909 » mov» rax,QWORD PTR[32+rsi] 913 » mov» rax,QWORD[32+rsi]
910 mul rbp 914 mul rbp
911 add r10,rax 915 add r10,rax
912 adc rdx,0 916 adc rdx,0
913 add r10,rbx 917 add r10,rbx
914 adc rdx,0 918 adc rdx,0
915 mov rbx,rdx 919 mov rbx,rdx
916 920
917 » mov» rax,QWORD PTR[40+rsi] 921 » mov» rax,QWORD[40+rsi]
918 mul rbp 922 mul rbp
919 add r11,rax 923 add r11,rax
920 adc rdx,0 924 adc rdx,0
921 add r11,rbx 925 add r11,rbx
922 adc rdx,0 926 adc rdx,0
923 mov rbx,rdx 927 mov rbx,rdx
924 928
925 » mov» rax,QWORD PTR[48+rsi] 929 » mov» rax,QWORD[48+rsi]
926 mul rbp 930 mul rbp
927 add r12,rax 931 add r12,rax
928 adc rdx,0 932 adc rdx,0
929 add r12,rbx 933 add r12,rbx
930 adc rdx,0 934 adc rdx,0
931 mov rbx,rdx 935 mov rbx,rdx
932 936
933 » mov» rax,QWORD PTR[56+rsi] 937 » mov» rax,QWORD[56+rsi]
934 mul rbp 938 mul rbp
935 add r13,rax 939 add r13,rax
936 adc rdx,0 940 adc rdx,0
937 add r13,rbx 941 add r13,rbx
938 adc rdx,0 942 adc rdx,0
939 mov r14,rdx 943 mov r14,rdx
940 » mov» rbp,QWORD PTR[48+rdi] 944 » mov» rbp,QWORD[48+rdi]
941 » mov» rax,QWORD PTR[rsi] 945 » mov» rax,QWORD[rsi]
942 mul rbp 946 mul rbp
943 add r15,rax 947 add r15,rax
944 adc rdx,0 948 adc rdx,0
945 » mov» QWORD PTR[568+rsp],r15 949 » mov» QWORD[568+rsp],r15
946 mov rbx,rdx 950 mov rbx,rdx
947 951
948 » mov» rax,QWORD PTR[8+rsi] 952 » mov» rax,QWORD[8+rsi]
949 mul rbp 953 mul rbp
950 add r8,rax 954 add r8,rax
951 adc rdx,0 955 adc rdx,0
952 add r8,rbx 956 add r8,rbx
953 adc rdx,0 957 adc rdx,0
954 mov rbx,rdx 958 mov rbx,rdx
955 959
956 » mov» rax,QWORD PTR[16+rsi] 960 » mov» rax,QWORD[16+rsi]
957 mul rbp 961 mul rbp
958 add r9,rax 962 add r9,rax
959 adc rdx,0 963 adc rdx,0
960 add r9,rbx 964 add r9,rbx
961 adc rdx,0 965 adc rdx,0
962 mov rbx,rdx 966 mov rbx,rdx
963 967
964 » mov» rax,QWORD PTR[24+rsi] 968 » mov» rax,QWORD[24+rsi]
965 mul rbp 969 mul rbp
966 add r10,rax 970 add r10,rax
967 adc rdx,0 971 adc rdx,0
968 add r10,rbx 972 add r10,rbx
969 adc rdx,0 973 adc rdx,0
970 mov rbx,rdx 974 mov rbx,rdx
971 975
972 » mov» rax,QWORD PTR[32+rsi] 976 » mov» rax,QWORD[32+rsi]
973 mul rbp 977 mul rbp
974 add r11,rax 978 add r11,rax
975 adc rdx,0 979 adc rdx,0
976 add r11,rbx 980 add r11,rbx
977 adc rdx,0 981 adc rdx,0
978 mov rbx,rdx 982 mov rbx,rdx
979 983
980 » mov» rax,QWORD PTR[40+rsi] 984 » mov» rax,QWORD[40+rsi]
981 mul rbp 985 mul rbp
982 add r12,rax 986 add r12,rax
983 adc rdx,0 987 adc rdx,0
984 add r12,rbx 988 add r12,rbx
985 adc rdx,0 989 adc rdx,0
986 mov rbx,rdx 990 mov rbx,rdx
987 991
988 » mov» rax,QWORD PTR[48+rsi] 992 » mov» rax,QWORD[48+rsi]
989 mul rbp 993 mul rbp
990 add r13,rax 994 add r13,rax
991 adc rdx,0 995 adc rdx,0
992 add r13,rbx 996 add r13,rbx
993 adc rdx,0 997 adc rdx,0
994 mov rbx,rdx 998 mov rbx,rdx
995 999
996 » mov» rax,QWORD PTR[56+rsi] 1000 » mov» rax,QWORD[56+rsi]
997 mul rbp 1001 mul rbp
998 add r14,rax 1002 add r14,rax
999 adc rdx,0 1003 adc rdx,0
1000 add r14,rbx 1004 add r14,rbx
1001 adc rdx,0 1005 adc rdx,0
1002 mov r15,rdx 1006 mov r15,rdx
1003 » mov» rbp,QWORD PTR[56+rdi] 1007 » mov» rbp,QWORD[56+rdi]
1004 » mov» rax,QWORD PTR[rsi] 1008 » mov» rax,QWORD[rsi]
1005 mul rbp 1009 mul rbp
1006 add r8,rax 1010 add r8,rax
1007 adc rdx,0 1011 adc rdx,0
1008 » mov» QWORD PTR[576+rsp],r8 1012 » mov» QWORD[576+rsp],r8
1009 mov rbx,rdx 1013 mov rbx,rdx
1010 1014
1011 » mov» rax,QWORD PTR[8+rsi] 1015 » mov» rax,QWORD[8+rsi]
1012 mul rbp 1016 mul rbp
1013 add r9,rax 1017 add r9,rax
1014 adc rdx,0 1018 adc rdx,0
1015 add r9,rbx 1019 add r9,rbx
1016 adc rdx,0 1020 adc rdx,0
1017 mov rbx,rdx 1021 mov rbx,rdx
1018 1022
1019 » mov» rax,QWORD PTR[16+rsi] 1023 » mov» rax,QWORD[16+rsi]
1020 mul rbp 1024 mul rbp
1021 add r10,rax 1025 add r10,rax
1022 adc rdx,0 1026 adc rdx,0
1023 add r10,rbx 1027 add r10,rbx
1024 adc rdx,0 1028 adc rdx,0
1025 mov rbx,rdx 1029 mov rbx,rdx
1026 1030
1027 » mov» rax,QWORD PTR[24+rsi] 1031 » mov» rax,QWORD[24+rsi]
1028 mul rbp 1032 mul rbp
1029 add r11,rax 1033 add r11,rax
1030 adc rdx,0 1034 adc rdx,0
1031 add r11,rbx 1035 add r11,rbx
1032 adc rdx,0 1036 adc rdx,0
1033 mov rbx,rdx 1037 mov rbx,rdx
1034 1038
1035 » mov» rax,QWORD PTR[32+rsi] 1039 » mov» rax,QWORD[32+rsi]
1036 mul rbp 1040 mul rbp
1037 add r12,rax 1041 add r12,rax
1038 adc rdx,0 1042 adc rdx,0
1039 add r12,rbx 1043 add r12,rbx
1040 adc rdx,0 1044 adc rdx,0
1041 mov rbx,rdx 1045 mov rbx,rdx
1042 1046
1043 » mov» rax,QWORD PTR[40+rsi] 1047 » mov» rax,QWORD[40+rsi]
1044 mul rbp 1048 mul rbp
1045 add r13,rax 1049 add r13,rax
1046 adc rdx,0 1050 adc rdx,0
1047 add r13,rbx 1051 add r13,rbx
1048 adc rdx,0 1052 adc rdx,0
1049 mov rbx,rdx 1053 mov rbx,rdx
1050 1054
1051 » mov» rax,QWORD PTR[48+rsi] 1055 » mov» rax,QWORD[48+rsi]
1052 mul rbp 1056 mul rbp
1053 add r14,rax 1057 add r14,rax
1054 adc rdx,0 1058 adc rdx,0
1055 add r14,rbx 1059 add r14,rbx
1056 adc rdx,0 1060 adc rdx,0
1057 mov rbx,rdx 1061 mov rbx,rdx
1058 1062
1059 » mov» rax,QWORD PTR[56+rsi] 1063 » mov» rax,QWORD[56+rsi]
1060 mul rbp 1064 mul rbp
1061 add r15,rax 1065 add r15,rax
1062 adc rdx,0 1066 adc rdx,0
1063 add r15,rbx 1067 add r15,rbx
1064 adc rdx,0 1068 adc rdx,0
1065 mov r8,rdx 1069 mov r8,rdx
1066 » mov» QWORD PTR[584+rsp],r9 1070 » mov» QWORD[584+rsp],r9
1067 » mov» QWORD PTR[592+rsp],r10 1071 » mov» QWORD[592+rsp],r10
1068 » mov» QWORD PTR[600+rsp],r11 1072 » mov» QWORD[600+rsp],r11
1069 » mov» QWORD PTR[608+rsp],r12 1073 » mov» QWORD[608+rsp],r12
1070 » mov» QWORD PTR[616+rsp],r13 1074 » mov» QWORD[616+rsp],r13
1071 » mov» QWORD PTR[624+rsp],r14 1075 » mov» QWORD[624+rsp],r14
1072 » mov» QWORD PTR[632+rsp],r15 1076 » mov» QWORD[632+rsp],r15
1073 » mov» QWORD PTR[640+rsp],r8 1077 » mov» QWORD[640+rsp],r8
1074 1078
1075 1079
1076 1080
1077 1081
1078 1082
1079 » jmp» mont_reduce 1083 » jmp» NEAR mont_reduce
1080
1081
1082 mont_mul_a3b» ENDP
1083
1084 ALIGN» 16
1085 sqr_reduce» PROC PRIVATE
1086 » mov» rcx,QWORD PTR[16+rsp]
1087 1084
1088 1085
1089 1086
1087
1088 ALIGN 16
1089 sqr_reduce:
1090 mov rcx,QWORD[16+rsp]
1091
1092
1093
1090 mov rbx,r10 1094 mov rbx,r10
1091 1095
1092 mov rax,r11 1096 mov rax,r11
1093 mul rbx 1097 mul rbx
1094 » mov» QWORD PTR[528+rsp],rax 1098 » mov» QWORD[528+rsp],rax
1095 mov r10,rdx 1099 mov r10,rdx
1096 mov rax,r12 1100 mov rax,r12
1097 mul rbx 1101 mul rbx
1098 add r10,rax 1102 add r10,rax
1099 adc rdx,0 1103 adc rdx,0
1100 mov r11,rdx 1104 mov r11,rdx
1101 mov rax,r13 1105 mov rax,r13
1102 mul rbx 1106 mul rbx
1103 add r11,rax 1107 add r11,rax
1104 adc rdx,0 1108 adc rdx,0
(...skipping 12 matching lines...) Expand all
1117 mul rbx 1121 mul rbx
1118 add r14,rax 1122 add r14,rax
1119 adc rdx,0 1123 adc rdx,0
1120 mov r15,rdx 1124 mov r15,rdx
1121 mov rax,r9 1125 mov rax,r9
1122 mul rbx 1126 mul rbx
1123 add r15,rax 1127 add r15,rax
1124 adc rdx,0 1128 adc rdx,0
1125 mov rsi,rdx 1129 mov rsi,rdx
1126 1130
1127 » mov» QWORD PTR[536+rsp],r10 1131 » mov» QWORD[536+rsp],r10
1128 1132
1129 1133
1130 1134
1131 1135
1132 1136
1133 » mov» rbx,QWORD PTR[8+rcx] 1137 » mov» rbx,QWORD[8+rcx]
1134 1138
1135 » mov» rax,QWORD PTR[16+rcx] 1139 » mov» rax,QWORD[16+rcx]
1136 mul rbx 1140 mul rbx
1137 add r11,rax 1141 add r11,rax
1138 adc rdx,0 1142 adc rdx,0
1139 » mov» QWORD PTR[544+rsp],r11 1143 » mov» QWORD[544+rsp],r11
1140 1144
1141 mov r10,rdx 1145 mov r10,rdx
1142 » mov» rax,QWORD PTR[24+rcx] 1146 » mov» rax,QWORD[24+rcx]
1143 mul rbx 1147 mul rbx
1144 add r12,rax 1148 add r12,rax
1145 adc rdx,0 1149 adc rdx,0
1146 add r12,r10 1150 add r12,r10
1147 adc rdx,0 1151 adc rdx,0
1148 » mov» QWORD PTR[552+rsp],r12 1152 » mov» QWORD[552+rsp],r12
1149 1153
1150 mov r10,rdx 1154 mov r10,rdx
1151 » mov» rax,QWORD PTR[32+rcx] 1155 » mov» rax,QWORD[32+rcx]
1152 mul rbx 1156 mul rbx
1153 add r13,rax 1157 add r13,rax
1154 adc rdx,0 1158 adc rdx,0
1155 add r13,r10 1159 add r13,r10
1156 adc rdx,0 1160 adc rdx,0
1157 1161
1158 mov r10,rdx 1162 mov r10,rdx
1159 » mov» rax,QWORD PTR[40+rcx] 1163 » mov» rax,QWORD[40+rcx]
1160 mul rbx 1164 mul rbx
1161 add r14,rax 1165 add r14,rax
1162 adc rdx,0 1166 adc rdx,0
1163 add r14,r10 1167 add r14,r10
1164 adc rdx,0 1168 adc rdx,0
1165 1169
1166 mov r10,rdx 1170 mov r10,rdx
1167 mov rax,r8 1171 mov rax,r8
1168 mul rbx 1172 mul rbx
1169 add r15,rax 1173 add r15,rax
1170 adc rdx,0 1174 adc rdx,0
1171 add r15,r10 1175 add r15,r10
1172 adc rdx,0 1176 adc rdx,0
1173 1177
1174 mov r10,rdx 1178 mov r10,rdx
1175 mov rax,r9 1179 mov rax,r9
1176 mul rbx 1180 mul rbx
1177 add rsi,rax 1181 add rsi,rax
1178 adc rdx,0 1182 adc rdx,0
1179 add rsi,r10 1183 add rsi,r10
1180 adc rdx,0 1184 adc rdx,0
1181 1185
1182 mov r11,rdx 1186 mov r11,rdx
1183 1187
1184 1188
1185 1189
1186 1190
1187 » mov» rbx,QWORD PTR[16+rcx] 1191 » mov» rbx,QWORD[16+rcx]
1188 1192
1189 » mov» rax,QWORD PTR[24+rcx] 1193 » mov» rax,QWORD[24+rcx]
1190 mul rbx 1194 mul rbx
1191 add r13,rax 1195 add r13,rax
1192 adc rdx,0 1196 adc rdx,0
1193 » mov» QWORD PTR[560+rsp],r13 1197 » mov» QWORD[560+rsp],r13
1194 1198
1195 mov r10,rdx 1199 mov r10,rdx
1196 » mov» rax,QWORD PTR[32+rcx] 1200 » mov» rax,QWORD[32+rcx]
1197 mul rbx 1201 mul rbx
1198 add r14,rax 1202 add r14,rax
1199 adc rdx,0 1203 adc rdx,0
1200 add r14,r10 1204 add r14,r10
1201 adc rdx,0 1205 adc rdx,0
1202 » mov» QWORD PTR[568+rsp],r14 1206 » mov» QWORD[568+rsp],r14
1203 1207
1204 mov r10,rdx 1208 mov r10,rdx
1205 » mov» rax,QWORD PTR[40+rcx] 1209 » mov» rax,QWORD[40+rcx]
1206 mul rbx 1210 mul rbx
1207 add r15,rax 1211 add r15,rax
1208 adc rdx,0 1212 adc rdx,0
1209 add r15,r10 1213 add r15,r10
1210 adc rdx,0 1214 adc rdx,0
1211 1215
1212 mov r10,rdx 1216 mov r10,rdx
1213 mov rax,r8 1217 mov rax,r8
1214 mul rbx 1218 mul rbx
1215 add rsi,rax 1219 add rsi,rax
1216 adc rdx,0 1220 adc rdx,0
1217 add rsi,r10 1221 add rsi,r10
1218 adc rdx,0 1222 adc rdx,0
1219 1223
1220 mov r10,rdx 1224 mov r10,rdx
1221 mov rax,r9 1225 mov rax,r9
1222 mul rbx 1226 mul rbx
1223 add r11,rax 1227 add r11,rax
1224 adc rdx,0 1228 adc rdx,0
1225 add r11,r10 1229 add r11,r10
1226 adc rdx,0 1230 adc rdx,0
1227 1231
1228 mov r12,rdx 1232 mov r12,rdx
1229 1233
1230 1234
1231 1235
1232 1236
1233 1237
1234 » mov» rbx,QWORD PTR[24+rcx] 1238 » mov» rbx,QWORD[24+rcx]
1235 1239
1236 » mov» rax,QWORD PTR[32+rcx] 1240 » mov» rax,QWORD[32+rcx]
1237 mul rbx 1241 mul rbx
1238 add r15,rax 1242 add r15,rax
1239 adc rdx,0 1243 adc rdx,0
1240 » mov» QWORD PTR[576+rsp],r15 1244 » mov» QWORD[576+rsp],r15
1241 1245
1242 mov r10,rdx 1246 mov r10,rdx
1243 » mov» rax,QWORD PTR[40+rcx] 1247 » mov» rax,QWORD[40+rcx]
1244 mul rbx 1248 mul rbx
1245 add rsi,rax 1249 add rsi,rax
1246 adc rdx,0 1250 adc rdx,0
1247 add rsi,r10 1251 add rsi,r10
1248 adc rdx,0 1252 adc rdx,0
1249 » mov» QWORD PTR[584+rsp],rsi 1253 » mov» QWORD[584+rsp],rsi
1250 1254
1251 mov r10,rdx 1255 mov r10,rdx
1252 mov rax,r8 1256 mov rax,r8
1253 mul rbx 1257 mul rbx
1254 add r11,rax 1258 add r11,rax
1255 adc rdx,0 1259 adc rdx,0
1256 add r11,r10 1260 add r11,r10
1257 adc rdx,0 1261 adc rdx,0
1258 1262
1259 mov r10,rdx 1263 mov r10,rdx
1260 mov rax,r9 1264 mov rax,r9
1261 mul rbx 1265 mul rbx
1262 add r12,rax 1266 add r12,rax
1263 adc rdx,0 1267 adc rdx,0
1264 add r12,r10 1268 add r12,r10
1265 adc rdx,0 1269 adc rdx,0
1266 1270
1267 mov r15,rdx 1271 mov r15,rdx
1268 1272
1269 1273
1270 1274
1271 1275
1272 » mov» rbx,QWORD PTR[32+rcx] 1276 » mov» rbx,QWORD[32+rcx]
1273 1277
1274 » mov» rax,QWORD PTR[40+rcx] 1278 » mov» rax,QWORD[40+rcx]
1275 mul rbx 1279 mul rbx
1276 add r11,rax 1280 add r11,rax
1277 adc rdx,0 1281 adc rdx,0
1278 » mov» QWORD PTR[592+rsp],r11 1282 » mov» QWORD[592+rsp],r11
1279 1283
1280 mov r10,rdx 1284 mov r10,rdx
1281 mov rax,r8 1285 mov rax,r8
1282 mul rbx 1286 mul rbx
1283 add r12,rax 1287 add r12,rax
1284 adc rdx,0 1288 adc rdx,0
1285 add r12,r10 1289 add r12,r10
1286 adc rdx,0 1290 adc rdx,0
1287 » mov» QWORD PTR[600+rsp],r12 1291 » mov» QWORD[600+rsp],r12
1288 1292
1289 mov r10,rdx 1293 mov r10,rdx
1290 mov rax,r9 1294 mov rax,r9
1291 mul rbx 1295 mul rbx
1292 add r15,rax 1296 add r15,rax
1293 adc rdx,0 1297 adc rdx,0
1294 add r15,r10 1298 add r15,r10
1295 adc rdx,0 1299 adc rdx,0
1296 1300
1297 mov r11,rdx 1301 mov r11,rdx
1298 1302
1299 1303
1300 1304
1301 1305
1302 » mov» rbx,QWORD PTR[40+rcx] 1306 » mov» rbx,QWORD[40+rcx]
1303 1307
1304 mov rax,r8 1308 mov rax,r8
1305 mul rbx 1309 mul rbx
1306 add r15,rax 1310 add r15,rax
1307 adc rdx,0 1311 adc rdx,0
1308 » mov» QWORD PTR[608+rsp],r15 1312 » mov» QWORD[608+rsp],r15
1309 1313
1310 mov r10,rdx 1314 mov r10,rdx
1311 mov rax,r9 1315 mov rax,r9
1312 mul rbx 1316 mul rbx
1313 add r11,rax 1317 add r11,rax
1314 adc rdx,0 1318 adc rdx,0
1315 add r11,r10 1319 add r11,r10
1316 adc rdx,0 1320 adc rdx,0
1317 » mov» QWORD PTR[616+rsp],r11 1321 » mov» QWORD[616+rsp],r11
1318 1322
1319 mov r12,rdx 1323 mov r12,rdx
1320 1324
1321 1325
1322 1326
1323 1327
1324 mov rbx,r8 1328 mov rbx,r8
1325 1329
1326 mov rax,r9 1330 mov rax,r9
1327 mul rbx 1331 mul rbx
1328 add r12,rax 1332 add r12,rax
1329 adc rdx,0 1333 adc rdx,0
1330 » mov» QWORD PTR[624+rsp],r12 1334 » mov» QWORD[624+rsp],r12
1331 1335
1332 » mov» QWORD PTR[632+rsp],rdx 1336 » mov» QWORD[632+rsp],rdx
1333 1337
1334 1338
1335 » mov» r10,QWORD PTR[528+rsp] 1339 » mov» r10,QWORD[528+rsp]
1336 » mov» r11,QWORD PTR[536+rsp] 1340 » mov» r11,QWORD[536+rsp]
1337 » mov» r12,QWORD PTR[544+rsp] 1341 » mov» r12,QWORD[544+rsp]
1338 » mov» r13,QWORD PTR[552+rsp] 1342 » mov» r13,QWORD[552+rsp]
1339 » mov» r14,QWORD PTR[560+rsp] 1343 » mov» r14,QWORD[560+rsp]
1340 » mov» r15,QWORD PTR[568+rsp] 1344 » mov» r15,QWORD[568+rsp]
1341 1345
1342 » mov» rax,QWORD PTR[24+rcx] 1346 » mov» rax,QWORD[24+rcx]
1343 mul rax 1347 mul rax
1344 mov rdi,rax 1348 mov rdi,rax
1345 mov r8,rdx 1349 mov r8,rdx
1346 1350
1347 add r10,r10 1351 add r10,r10
1348 adc r11,r11 1352 adc r11,r11
1349 adc r12,r12 1353 adc r12,r12
1350 adc r13,r13 1354 adc r13,r13
1351 adc r14,r14 1355 adc r14,r14
1352 adc r15,r15 1356 adc r15,r15
1353 adc r8,0 1357 adc r8,0
1354 1358
1355 » mov» rax,QWORD PTR[rcx] 1359 » mov» rax,QWORD[rcx]
1356 mul rax 1360 mul rax
1357 » mov» QWORD PTR[520+rsp],rax 1361 » mov» QWORD[520+rsp],rax
1358 mov rbx,rdx 1362 mov rbx,rdx
1359 1363
1360 » mov» rax,QWORD PTR[8+rcx] 1364 » mov» rax,QWORD[8+rcx]
1361 mul rax 1365 mul rax
1362 1366
1363 add r10,rbx 1367 add r10,rbx
1364 adc r11,rax 1368 adc r11,rax
1365 adc rdx,0 1369 adc rdx,0
1366 1370
1367 mov rbx,rdx 1371 mov rbx,rdx
1368 » mov» QWORD PTR[528+rsp],r10 1372 » mov» QWORD[528+rsp],r10
1369 » mov» QWORD PTR[536+rsp],r11 1373 » mov» QWORD[536+rsp],r11
1370 1374
1371 » mov» rax,QWORD PTR[16+rcx] 1375 » mov» rax,QWORD[16+rcx]
1372 mul rax 1376 mul rax
1373 1377
1374 add r12,rbx 1378 add r12,rbx
1375 adc r13,rax 1379 adc r13,rax
1376 adc rdx,0 1380 adc rdx,0
1377 1381
1378 mov rbx,rdx 1382 mov rbx,rdx
1379 1383
1380 » mov» QWORD PTR[544+rsp],r12 1384 » mov» QWORD[544+rsp],r12
1381 » mov» QWORD PTR[552+rsp],r13 1385 » mov» QWORD[552+rsp],r13
1382 1386
1383 xor rbp,rbp 1387 xor rbp,rbp
1384 add r14,rbx 1388 add r14,rbx
1385 adc r15,rdi 1389 adc r15,rdi
1386 adc rbp,0 1390 adc rbp,0
1387 1391
1388 » mov» QWORD PTR[560+rsp],r14 1392 » mov» QWORD[560+rsp],r14
1389 » mov» QWORD PTR[568+rsp],r15 1393 » mov» QWORD[568+rsp],r15
1390 1394
1391 1395
1392 1396
1393 1397
1394 » mov» r10,QWORD PTR[576+rsp] 1398 » mov» r10,QWORD[576+rsp]
1395 » mov» r11,QWORD PTR[584+rsp] 1399 » mov» r11,QWORD[584+rsp]
1396 » mov» r12,QWORD PTR[592+rsp] 1400 » mov» r12,QWORD[592+rsp]
1397 » mov» r13,QWORD PTR[600+rsp] 1401 » mov» r13,QWORD[600+rsp]
1398 » mov» r14,QWORD PTR[608+rsp] 1402 » mov» r14,QWORD[608+rsp]
1399 » mov» r15,QWORD PTR[616+rsp] 1403 » mov» r15,QWORD[616+rsp]
1400 » mov» rdi,QWORD PTR[624+rsp] 1404 » mov» rdi,QWORD[624+rsp]
1401 » mov» rsi,QWORD PTR[632+rsp] 1405 » mov» rsi,QWORD[632+rsp]
1402 1406
1403 mov rax,r9 1407 mov rax,r9
1404 mul rax 1408 mul rax
1405 mov r9,rax 1409 mov r9,rax
1406 mov rbx,rdx 1410 mov rbx,rdx
1407 1411
1408 add r10,r10 1412 add r10,r10
1409 adc r11,r11 1413 adc r11,r11
1410 adc r12,r12 1414 adc r12,r12
1411 adc r13,r13 1415 adc r13,r13
1412 adc r14,r14 1416 adc r14,r14
1413 adc r15,r15 1417 adc r15,r15
1414 adc rdi,rdi 1418 adc rdi,rdi
1415 adc rsi,rsi 1419 adc rsi,rsi
1416 adc rbx,0 1420 adc rbx,0
1417 1421
1418 add r10,rbp 1422 add r10,rbp
1419 1423
1420 » mov» rax,QWORD PTR[32+rcx] 1424 » mov» rax,QWORD[32+rcx]
1421 mul rax 1425 mul rax
1422 1426
1423 add r10,r8 1427 add r10,r8
1424 adc r11,rax 1428 adc r11,rax
1425 adc rdx,0 1429 adc rdx,0
1426 1430
1427 mov rbp,rdx 1431 mov rbp,rdx
1428 1432
1429 » mov» QWORD PTR[576+rsp],r10 1433 » mov» QWORD[576+rsp],r10
1430 » mov» QWORD PTR[584+rsp],r11 1434 » mov» QWORD[584+rsp],r11
1431 1435
1432 » mov» rax,QWORD PTR[40+rcx] 1436 » mov» rax,QWORD[40+rcx]
1433 mul rax 1437 mul rax
1434 1438
1435 add r12,rbp 1439 add r12,rbp
1436 adc r13,rax 1440 adc r13,rax
1437 adc rdx,0 1441 adc rdx,0
1438 1442
1439 mov rbp,rdx 1443 mov rbp,rdx
1440 1444
1441 » mov» QWORD PTR[592+rsp],r12 1445 » mov» QWORD[592+rsp],r12
1442 » mov» QWORD PTR[600+rsp],r13 1446 » mov» QWORD[600+rsp],r13
1443 1447
1444 » mov» rax,QWORD PTR[48+rcx] 1448 » mov» rax,QWORD[48+rcx]
1445 mul rax 1449 mul rax
1446 1450
1447 add r14,rbp 1451 add r14,rbp
1448 adc r15,rax 1452 adc r15,rax
1449 adc rdx,0 1453 adc rdx,0
1450 1454
1451 » mov» QWORD PTR[608+rsp],r14 1455 » mov» QWORD[608+rsp],r14
1452 » mov» QWORD PTR[616+rsp],r15 1456 » mov» QWORD[616+rsp],r15
1453 1457
1454 add rdi,rdx 1458 add rdi,rdx
1455 adc rsi,r9 1459 adc rsi,r9
1456 adc rbx,0 1460 adc rbx,0
1457 1461
1458 » mov» QWORD PTR[624+rsp],rdi 1462 » mov» QWORD[624+rsp],rdi
1459 » mov» QWORD PTR[632+rsp],rsi 1463 » mov» QWORD[632+rsp],rsi
1460 » mov» QWORD PTR[640+rsp],rbx 1464 » mov» QWORD[640+rsp],rbx
1461 1465
1462 » jmp» mont_reduce 1466 » jmp» NEAR mont_reduce
1463 1467
1464 1468
1465 sqr_reduce ENDP
1466 PUBLIC mod_exp_512
1467 1469
1468 mod_exp_512» PROC PUBLIC 1470 global» mod_exp_512
1469 » mov» QWORD PTR[8+rsp],rdi» ;WIN64 prologue 1471
1470 » mov» QWORD PTR[16+rsp],rsi 1472 mod_exp_512:
1473 » mov» QWORD[8+rsp],rdi» ;WIN64 prologue
1474 » mov» QWORD[16+rsp],rsi
1471 mov rax,rsp 1475 mov rax,rsp
1472 $L$SEH_begin_mod_exp_512:: 1476 $L$SEH_begin_mod_exp_512:
1473 mov rdi,rcx 1477 mov rdi,rcx
1474 mov rsi,rdx 1478 mov rsi,rdx
1475 mov rdx,r8 1479 mov rdx,r8
1476 mov rcx,r9 1480 mov rcx,r9
1477 1481
1478 1482
1479 push rbp 1483 push rbp
1480 push rbx 1484 push rbx
1481 push r12 1485 push r12
1482 push r13 1486 push r13
1483 push r14 1487 push r14
1484 push r15 1488 push r15
1485 1489
1486 1490
1487 mov r8,rsp 1491 mov r8,rsp
1488 sub rsp,2688 1492 sub rsp,2688
1489 and rsp,-64 1493 and rsp,-64
1490 1494
1491 1495
1492 » mov» QWORD PTR[rsp],r8 1496 » mov» QWORD[rsp],r8
1493 » mov» QWORD PTR[8+rsp],rdi 1497 » mov» QWORD[8+rsp],rdi
1494 » mov» QWORD PTR[16+rsp],rsi 1498 » mov» QWORD[16+rsp],rsi
1495 » mov» QWORD PTR[24+rsp],rcx 1499 » mov» QWORD[24+rsp],rcx
1496 $L$body:: 1500 $L$body:
1497 1501
1498 1502
1499 1503
1500 pxor xmm4,xmm4 1504 pxor xmm4,xmm4
1501 » movdqu» xmm0,XMMWORD PTR[rsi] 1505 » movdqu» xmm0,XMMWORD[rsi]
1502 » movdqu» xmm1,XMMWORD PTR[16+rsi] 1506 » movdqu» xmm1,XMMWORD[16+rsi]
1503 » movdqu» xmm2,XMMWORD PTR[32+rsi] 1507 » movdqu» xmm2,XMMWORD[32+rsi]
1504 » movdqu» xmm3,XMMWORD PTR[48+rsi] 1508 » movdqu» xmm3,XMMWORD[48+rsi]
1505 » movdqa» XMMWORD PTR[512+rsp],xmm4 1509 » movdqa» XMMWORD[512+rsp],xmm4
1506 » movdqa» XMMWORD PTR[528+rsp],xmm4 1510 » movdqa» XMMWORD[528+rsp],xmm4
1507 » movdqa» XMMWORD PTR[608+rsp],xmm4 1511 » movdqa» XMMWORD[608+rsp],xmm4
1508 » movdqa» XMMWORD PTR[624+rsp],xmm4 1512 » movdqa» XMMWORD[624+rsp],xmm4
1509 » movdqa» XMMWORD PTR[544+rsp],xmm0 1513 » movdqa» XMMWORD[544+rsp],xmm0
1510 » movdqa» XMMWORD PTR[560+rsp],xmm1 1514 » movdqa» XMMWORD[560+rsp],xmm1
1511 » movdqa» XMMWORD PTR[576+rsp],xmm2 1515 » movdqa» XMMWORD[576+rsp],xmm2
1512 » movdqa» XMMWORD PTR[592+rsp],xmm3 1516 » movdqa» XMMWORD[592+rsp],xmm3
1513 1517
1514 1518
1515 » movdqu» xmm0,XMMWORD PTR[rdx] 1519 » movdqu» xmm0,XMMWORD[rdx]
1516 » movdqu» xmm1,XMMWORD PTR[16+rdx] 1520 » movdqu» xmm1,XMMWORD[16+rdx]
1517 » movdqu» xmm2,XMMWORD PTR[32+rdx] 1521 » movdqu» xmm2,XMMWORD[32+rdx]
1518 » movdqu» xmm3,XMMWORD PTR[48+rdx] 1522 » movdqu» xmm3,XMMWORD[48+rdx]
1519 1523
1520 » lea» rbx,QWORD PTR[384+rsp] 1524 » lea» rbx,[384+rsp]
1521 » mov» QWORD PTR[136+rsp],rbx 1525 » mov» QWORD[136+rsp],rbx
1522 call mont_reduce 1526 call mont_reduce
1523 1527
1524 1528
1525 » lea» rcx,QWORD PTR[448+rsp] 1529 » lea» rcx,[448+rsp]
1526 xor rax,rax 1530 xor rax,rax
1527 » mov» QWORD PTR[rcx],rax 1531 » mov» QWORD[rcx],rax
1528 » mov» QWORD PTR[8+rcx],rax 1532 » mov» QWORD[8+rcx],rax
1529 » mov» QWORD PTR[24+rcx],rax 1533 » mov» QWORD[24+rcx],rax
1530 » mov» QWORD PTR[32+rcx],rax 1534 » mov» QWORD[32+rcx],rax
1531 » mov» QWORD PTR[40+rcx],rax 1535 » mov» QWORD[40+rcx],rax
1532 » mov» QWORD PTR[48+rcx],rax 1536 » mov» QWORD[48+rcx],rax
1533 » mov» QWORD PTR[56+rcx],rax 1537 » mov» QWORD[56+rcx],rax
1534 » mov» QWORD PTR[128+rsp],rax 1538 » mov» QWORD[128+rsp],rax
1535 » mov» QWORD PTR[16+rcx],1 1539 » mov» QWORD[16+rcx],1
1536 1540
1537 » lea» rbp,QWORD PTR[640+rsp] 1541 » lea» rbp,[640+rsp]
1538 mov rsi,rcx 1542 mov rsi,rcx
1539 mov rdi,rbp 1543 mov rdi,rbp
1540 mov rax,8 1544 mov rax,8
1541 loop_0:: 1545 loop_0:
1542 » mov» rbx,QWORD PTR[rcx] 1546 » mov» rbx,QWORD[rcx]
1543 » mov» WORD PTR[rdi],bx 1547 » mov» WORD[rdi],bx
1544 » shr» rbx,16 1548 » shr» rbx,16
1545 » mov» WORD PTR[64+rdi],bx 1549 » mov» WORD[64+rdi],bx
1546 » shr» rbx,16 1550 » shr» rbx,16
1547 » mov» WORD PTR[128+rdi],bx 1551 » mov» WORD[128+rdi],bx
1548 » shr» rbx,16 1552 » shr» rbx,16
1549 » mov» WORD PTR[192+rdi],bx 1553 » mov» WORD[192+rdi],bx
1550 » lea» rcx,QWORD PTR[8+rcx] 1554 » lea» rcx,[8+rcx]
1551 » lea» rdi,QWORD PTR[256+rdi] 1555 » lea» rdi,[256+rdi]
1552 dec rax 1556 dec rax
1553 » jnz» loop_0 1557 » jnz» NEAR loop_0
1554 mov rax,31 1558 mov rax,31
1555 » mov» QWORD PTR[32+rsp],rax 1559 » mov» QWORD[32+rsp],rax
1556 » mov» QWORD PTR[40+rsp],rbp 1560 » mov» QWORD[40+rsp],rbp
1557 1561
1558 » mov» QWORD PTR[136+rsp],rsi 1562 » mov» QWORD[136+rsp],rsi
1559 » mov» r10,QWORD PTR[rsi] 1563 » mov» r10,QWORD[rsi]
1560 » mov» r11,QWORD PTR[8+rsi] 1564 » mov» r11,QWORD[8+rsi]
1561 » mov» r12,QWORD PTR[16+rsi] 1565 » mov» r12,QWORD[16+rsi]
1562 » mov» r13,QWORD PTR[24+rsi] 1566 » mov» r13,QWORD[24+rsi]
1563 » mov» r14,QWORD PTR[32+rsi] 1567 » mov» r14,QWORD[32+rsi]
1564 » mov» r15,QWORD PTR[40+rsi] 1568 » mov» r15,QWORD[40+rsi]
1565 » mov» r8,QWORD PTR[48+rsi] 1569 » mov» r8,QWORD[48+rsi]
1566 » mov» r9,QWORD PTR[56+rsi] 1570 » mov» r9,QWORD[56+rsi]
1567 init_loop:: 1571 init_loop:
1568 » lea» rdi,QWORD PTR[384+rsp] 1572 » lea» rdi,[384+rsp]
1569 call mont_mul_a3b 1573 call mont_mul_a3b
1570 » lea» rsi,QWORD PTR[448+rsp] 1574 » lea» rsi,[448+rsp]
1571 » mov» rbp,QWORD PTR[40+rsp] 1575 » mov» rbp,QWORD[40+rsp]
1572 add rbp,2 1576 add rbp,2
1573 » mov» QWORD PTR[40+rsp],rbp 1577 » mov» QWORD[40+rsp],rbp
1574 mov rcx,rsi 1578 mov rcx,rsi
1575 mov rax,8 1579 mov rax,8
1576 loop_1:: 1580 loop_1:
1577 » mov» rbx,QWORD PTR[rcx] 1581 » mov» rbx,QWORD[rcx]
1578 » mov» WORD PTR[rbp],bx 1582 » mov» WORD[rbp],bx
1579 » shr» rbx,16 1583 » shr» rbx,16
1580 » mov» WORD PTR[64+rbp],bx 1584 » mov» WORD[64+rbp],bx
1581 » shr» rbx,16 1585 » shr» rbx,16
1582 » mov» WORD PTR[128+rbp],bx 1586 » mov» WORD[128+rbp],bx
1583 » shr» rbx,16 1587 » shr» rbx,16
1584 » mov» WORD PTR[192+rbp],bx 1588 » mov» WORD[192+rbp],bx
1585 » lea» rcx,QWORD PTR[8+rcx] 1589 » lea» rcx,[8+rcx]
1586 » lea» rbp,QWORD PTR[256+rbp] 1590 » lea» rbp,[256+rbp]
1587 dec rax 1591 dec rax
1588 » jnz» loop_1 1592 » jnz» NEAR loop_1
1589 » mov» rax,QWORD PTR[32+rsp] 1593 » mov» rax,QWORD[32+rsp]
1590 sub rax,1 1594 sub rax,1
1591 » mov» QWORD PTR[32+rsp],rax 1595 » mov» QWORD[32+rsp],rax
1592 » jne» init_loop 1596 » jne» NEAR init_loop
1593 1597
1594 1598
1595 1599
1596 » movdqa» XMMWORD PTR[64+rsp],xmm0 1600 » movdqa» XMMWORD[64+rsp],xmm0
1597 » movdqa» XMMWORD PTR[80+rsp],xmm1 1601 » movdqa» XMMWORD[80+rsp],xmm1
1598 » movdqa» XMMWORD PTR[96+rsp],xmm2 1602 » movdqa» XMMWORD[96+rsp],xmm2
1599 » movdqa» XMMWORD PTR[112+rsp],xmm3 1603 » movdqa» XMMWORD[112+rsp],xmm3
1600 1604
1601 1605
1602 1606
1603 1607
1604 1608
1605 » mov» eax,DWORD PTR[126+rsp] 1609 » mov» eax,DWORD[126+rsp]
1606 mov rdx,rax 1610 mov rdx,rax
1607 shr rax,11 1611 shr rax,11
1608 » and» edx,007FFh 1612 » and» edx,0x07FF
1609 » mov» DWORD PTR[126+rsp],edx 1613 » mov» DWORD[126+rsp],edx
1610 » lea» rsi,QWORD PTR[640+rax*2+rsp] 1614 » lea» rsi,[640+rax*2+rsp]
1611 » mov» rdx,QWORD PTR[8+rsp] 1615 » mov» rdx,QWORD[8+rsp]
1612 mov rbp,4 1616 mov rbp,4
1613 loop_2:: 1617 loop_2:
1614 » movzx» rbx,WORD PTR[192+rsi] 1618 » movzx» rbx,WORD[192+rsi]
1615 » movzx» rax,WORD PTR[448+rsi] 1619 » movzx» rax,WORD[448+rsi]
1616 » shl» rbx,16 1620 » shl» rbx,16
1617 » shl» rax,16 1621 » shl» rax,16
1618 » mov» bx,WORD PTR[128+rsi] 1622 » mov» bx,WORD[128+rsi]
1619 » mov» ax,WORD PTR[384+rsi] 1623 » mov» ax,WORD[384+rsi]
1620 » shl» rbx,16 1624 » shl» rbx,16
1621 » shl» rax,16 1625 » shl» rax,16
1622 » mov» bx,WORD PTR[64+rsi] 1626 » mov» bx,WORD[64+rsi]
1623 » mov» ax,WORD PTR[320+rsi] 1627 » mov» ax,WORD[320+rsi]
1624 » shl» rbx,16 1628 » shl» rbx,16
1625 » shl» rax,16 1629 » shl» rax,16
1626 » mov» bx,WORD PTR[rsi] 1630 » mov» bx,WORD[rsi]
1627 » mov» ax,WORD PTR[256+rsi] 1631 » mov» ax,WORD[256+rsi]
1628 » mov» QWORD PTR[rdx],rbx 1632 » mov» QWORD[rdx],rbx
1629 » mov» QWORD PTR[8+rdx],rax 1633 » mov» QWORD[8+rdx],rax
1630 » lea» rsi,QWORD PTR[512+rsi] 1634 » lea» rsi,[512+rsi]
1631 » lea» rdx,QWORD PTR[16+rdx] 1635 » lea» rdx,[16+rdx]
1632 sub rbp,1 1636 sub rbp,1
1633 » jnz» loop_2 1637 » jnz» NEAR loop_2
1634 » mov» QWORD PTR[48+rsp],505 1638 » mov» QWORD[48+rsp],505
1635 1639
1636 » mov» rcx,QWORD PTR[8+rsp] 1640 » mov» rcx,QWORD[8+rsp]
1637 » mov» QWORD PTR[136+rsp],rcx 1641 » mov» QWORD[136+rsp],rcx
1638 » mov» r10,QWORD PTR[rcx] 1642 » mov» r10,QWORD[rcx]
1639 » mov» r11,QWORD PTR[8+rcx] 1643 » mov» r11,QWORD[8+rcx]
1640 » mov» r12,QWORD PTR[16+rcx] 1644 » mov» r12,QWORD[16+rcx]
1641 » mov» r13,QWORD PTR[24+rcx] 1645 » mov» r13,QWORD[24+rcx]
1642 » mov» r14,QWORD PTR[32+rcx] 1646 » mov» r14,QWORD[32+rcx]
1643 » mov» r15,QWORD PTR[40+rcx] 1647 » mov» r15,QWORD[40+rcx]
1644 » mov» r8,QWORD PTR[48+rcx] 1648 » mov» r8,QWORD[48+rcx]
1645 » mov» r9,QWORD PTR[56+rcx] 1649 » mov» r9,QWORD[56+rcx]
1646 » jmp» sqr_2 1650 » jmp» NEAR sqr_2
1647 1651
1648 main_loop_a3b:: 1652 main_loop_a3b:
1649 » call» sqr_reduce 1653 » call» sqr_reduce
1650 » call» sqr_reduce 1654 » call» sqr_reduce
1651 » call» sqr_reduce 1655 » call» sqr_reduce
1652 sqr_2:: 1656 sqr_2:
1653 » call» sqr_reduce 1657 » call» sqr_reduce
1654 » call» sqr_reduce 1658 » call» sqr_reduce
1655 1659
1656 1660
1657 1661
1658 » mov» rcx,QWORD PTR[48+rsp] 1662 » mov» rcx,QWORD[48+rsp]
1659 mov rax,rcx 1663 mov rax,rcx
1660 shr rax,4 1664 shr rax,4
1661 » mov» edx,DWORD PTR[64+rax*2+rsp] 1665 » mov» edx,DWORD[64+rax*2+rsp]
1662 and rcx,15 1666 and rcx,15
1663 shr rdx,cl 1667 shr rdx,cl
1664 » and» rdx,01Fh 1668 » and» rdx,0x1F
1665 1669
1666 » lea» rsi,QWORD PTR[640+rdx*2+rsp] 1670 » lea» rsi,[640+rdx*2+rsp]
1667 » lea» rdx,QWORD PTR[448+rsp] 1671 » lea» rdx,[448+rsp]
1668 mov rdi,rdx 1672 mov rdi,rdx
1669 mov rbp,4 1673 mov rbp,4
1670 loop_3:: 1674 loop_3:
1671 » movzx» rbx,WORD PTR[192+rsi] 1675 » movzx» rbx,WORD[192+rsi]
1672 » movzx» rax,WORD PTR[448+rsi] 1676 » movzx» rax,WORD[448+rsi]
1673 » shl» rbx,16 1677 » shl» rbx,16
1674 » shl» rax,16 1678 » shl» rax,16
1675 » mov» bx,WORD PTR[128+rsi] 1679 » mov» bx,WORD[128+rsi]
1676 » mov» ax,WORD PTR[384+rsi] 1680 » mov» ax,WORD[384+rsi]
1677 » shl» rbx,16 1681 » shl» rbx,16
1678 » shl» rax,16 1682 » shl» rax,16
1679 » mov» bx,WORD PTR[64+rsi] 1683 » mov» bx,WORD[64+rsi]
1680 » mov» ax,WORD PTR[320+rsi] 1684 » mov» ax,WORD[320+rsi]
1681 » shl» rbx,16 1685 » shl» rbx,16
1682 » shl» rax,16 1686 » shl» rax,16
1683 » mov» bx,WORD PTR[rsi] 1687 » mov» bx,WORD[rsi]
1684 » mov» ax,WORD PTR[256+rsi] 1688 » mov» ax,WORD[256+rsi]
1685 » mov» QWORD PTR[rdx],rbx 1689 » mov» QWORD[rdx],rbx
1686 » mov» QWORD PTR[8+rdx],rax 1690 » mov» QWORD[8+rdx],rax
1687 » lea» rsi,QWORD PTR[512+rsi] 1691 » lea» rsi,[512+rsi]
1688 » lea» rdx,QWORD PTR[16+rdx] 1692 » lea» rdx,[16+rdx]
1689 sub rbp,1 1693 sub rbp,1
1690 » jnz» loop_3 1694 » jnz» NEAR loop_3
1691 » mov» rsi,QWORD PTR[8+rsp] 1695 » mov» rsi,QWORD[8+rsp]
1692 call mont_mul_a3b 1696 call mont_mul_a3b
1693 1697
1694 1698
1695 1699
1696 » mov» rcx,QWORD PTR[48+rsp] 1700 » mov» rcx,QWORD[48+rsp]
1697 sub rcx,5 1701 sub rcx,5
1698 » mov» QWORD PTR[48+rsp],rcx 1702 » mov» QWORD[48+rsp],rcx
1699 » jge» main_loop_a3b 1703 » jge» NEAR main_loop_a3b
1700 1704
1701 1705
1702 1706
1703 end_main_loop_a3b:: 1707 end_main_loop_a3b:
1704 1708
1705 1709
1706 » mov» rdx,QWORD PTR[8+rsp] 1710 » mov» rdx,QWORD[8+rsp]
1707 pxor xmm4,xmm4 1711 pxor xmm4,xmm4
1708 » movdqu» xmm0,XMMWORD PTR[rdx] 1712 » movdqu» xmm0,XMMWORD[rdx]
1709 » movdqu» xmm1,XMMWORD PTR[16+rdx] 1713 » movdqu» xmm1,XMMWORD[16+rdx]
1710 » movdqu» xmm2,XMMWORD PTR[32+rdx] 1714 » movdqu» xmm2,XMMWORD[32+rdx]
1711 » movdqu» xmm3,XMMWORD PTR[48+rdx] 1715 » movdqu» xmm3,XMMWORD[48+rdx]
1712 » movdqa» XMMWORD PTR[576+rsp],xmm4 1716 » movdqa» XMMWORD[576+rsp],xmm4
1713 » movdqa» XMMWORD PTR[592+rsp],xmm4 1717 » movdqa» XMMWORD[592+rsp],xmm4
1714 » movdqa» XMMWORD PTR[608+rsp],xmm4 1718 » movdqa» XMMWORD[608+rsp],xmm4
1715 » movdqa» XMMWORD PTR[624+rsp],xmm4 1719 » movdqa» XMMWORD[624+rsp],xmm4
1716 » movdqa» XMMWORD PTR[512+rsp],xmm0 1720 » movdqa» XMMWORD[512+rsp],xmm0
1717 » movdqa» XMMWORD PTR[528+rsp],xmm1 1721 » movdqa» XMMWORD[528+rsp],xmm1
1718 » movdqa» XMMWORD PTR[544+rsp],xmm2 1722 » movdqa» XMMWORD[544+rsp],xmm2
1719 » movdqa» XMMWORD PTR[560+rsp],xmm3 1723 » movdqa» XMMWORD[560+rsp],xmm3
1720 call mont_reduce 1724 call mont_reduce
1721 1725
1722 1726
1723 1727
1724 » mov» rax,QWORD PTR[8+rsp] 1728 » mov» rax,QWORD[8+rsp]
1725 » mov» r8,QWORD PTR[rax] 1729 » mov» r8,QWORD[rax]
1726 » mov» r9,QWORD PTR[8+rax] 1730 » mov» r9,QWORD[8+rax]
1727 » mov» r10,QWORD PTR[16+rax] 1731 » mov» r10,QWORD[16+rax]
1728 » mov» r11,QWORD PTR[24+rax] 1732 » mov» r11,QWORD[24+rax]
1729 » mov» r12,QWORD PTR[32+rax] 1733 » mov» r12,QWORD[32+rax]
1730 » mov» r13,QWORD PTR[40+rax] 1734 » mov» r13,QWORD[40+rax]
1731 » mov» r14,QWORD PTR[48+rax] 1735 » mov» r14,QWORD[48+rax]
1732 » mov» r15,QWORD PTR[56+rax] 1736 » mov» r15,QWORD[56+rax]
1733 1737
1734 1738
1735 » mov» rbx,QWORD PTR[24+rsp] 1739 » mov» rbx,QWORD[24+rsp]
1736 add rbx,512 1740 add rbx,512
1737 1741
1738 » sub» r8,QWORD PTR[rbx] 1742 » sub» r8,QWORD[rbx]
1739 » sbb» r9,QWORD PTR[8+rbx] 1743 » sbb» r9,QWORD[8+rbx]
1740 » sbb» r10,QWORD PTR[16+rbx] 1744 » sbb» r10,QWORD[16+rbx]
1741 » sbb» r11,QWORD PTR[24+rbx] 1745 » sbb» r11,QWORD[24+rbx]
1742 » sbb» r12,QWORD PTR[32+rbx] 1746 » sbb» r12,QWORD[32+rbx]
1743 » sbb» r13,QWORD PTR[40+rbx] 1747 » sbb» r13,QWORD[40+rbx]
1744 » sbb» r14,QWORD PTR[48+rbx] 1748 » sbb» r14,QWORD[48+rbx]
1745 » sbb» r15,QWORD PTR[56+rbx] 1749 » sbb» r15,QWORD[56+rbx]
1746 1750
1747 1751
1748 » mov» rsi,QWORD PTR[rax] 1752 » mov» rsi,QWORD[rax]
1749 » mov» rdi,QWORD PTR[8+rax] 1753 » mov» rdi,QWORD[8+rax]
1750 » mov» rcx,QWORD PTR[16+rax] 1754 » mov» rcx,QWORD[16+rax]
1751 » mov» rdx,QWORD PTR[24+rax] 1755 » mov» rdx,QWORD[24+rax]
1752 cmovnc rsi,r8 1756 cmovnc rsi,r8
1753 cmovnc rdi,r9 1757 cmovnc rdi,r9
1754 cmovnc rcx,r10 1758 cmovnc rcx,r10
1755 cmovnc rdx,r11 1759 cmovnc rdx,r11
1756 » mov» QWORD PTR[rax],rsi 1760 » mov» QWORD[rax],rsi
1757 » mov» QWORD PTR[8+rax],rdi 1761 » mov» QWORD[8+rax],rdi
1758 » mov» QWORD PTR[16+rax],rcx 1762 » mov» QWORD[16+rax],rcx
1759 » mov» QWORD PTR[24+rax],rdx 1763 » mov» QWORD[24+rax],rdx
1760 1764
1761 » mov» rsi,QWORD PTR[32+rax] 1765 » mov» rsi,QWORD[32+rax]
1762 » mov» rdi,QWORD PTR[40+rax] 1766 » mov» rdi,QWORD[40+rax]
1763 » mov» rcx,QWORD PTR[48+rax] 1767 » mov» rcx,QWORD[48+rax]
1764 » mov» rdx,QWORD PTR[56+rax] 1768 » mov» rdx,QWORD[56+rax]
1765 cmovnc rsi,r12 1769 cmovnc rsi,r12
1766 cmovnc rdi,r13 1770 cmovnc rdi,r13
1767 cmovnc rcx,r14 1771 cmovnc rcx,r14
1768 cmovnc rdx,r15 1772 cmovnc rdx,r15
1769 » mov» QWORD PTR[32+rax],rsi 1773 » mov» QWORD[32+rax],rsi
1770 » mov» QWORD PTR[40+rax],rdi 1774 » mov» QWORD[40+rax],rdi
1771 » mov» QWORD PTR[48+rax],rcx 1775 » mov» QWORD[48+rax],rcx
1772 » mov» QWORD PTR[56+rax],rdx 1776 » mov» QWORD[56+rax],rdx
1773 1777
1774 » mov» rsi,QWORD PTR[rsp] 1778 » mov» rsi,QWORD[rsp]
1775 » mov» r15,QWORD PTR[rsi] 1779 » mov» r15,QWORD[rsi]
1776 » mov» r14,QWORD PTR[8+rsi] 1780 » mov» r14,QWORD[8+rsi]
1777 » mov» r13,QWORD PTR[16+rsi] 1781 » mov» r13,QWORD[16+rsi]
1778 » mov» r12,QWORD PTR[24+rsi] 1782 » mov» r12,QWORD[24+rsi]
1779 » mov» rbx,QWORD PTR[32+rsi] 1783 » mov» rbx,QWORD[32+rsi]
1780 » mov» rbp,QWORD PTR[40+rsi] 1784 » mov» rbp,QWORD[40+rsi]
1781 » lea» rsp,QWORD PTR[48+rsi] 1785 » lea» rsp,[48+rsi]
1782 $L$epilogue:: 1786 $L$epilogue:
1783 » mov» rdi,QWORD PTR[8+rsp]» ;WIN64 epilogue 1787 » mov» rdi,QWORD[8+rsp]» ;WIN64 epilogue
1784 » mov» rsi,QWORD PTR[16+rsp] 1788 » mov» rsi,QWORD[16+rsp]
1785 DB 0F3h,0C3h ;repret 1789 DB 0F3h,0C3h ;repret
1786 $L$SEH_end_mod_exp_512:: 1790 $L$SEH_end_mod_exp_512:
1787 mod_exp_512» ENDP 1791 EXTERN» __imp_RtlVirtualUnwind
1788 EXTERN» __imp_RtlVirtualUnwind:NEAR
1789 1792
1790 ALIGN 16 1793 ALIGN 16
1791 mod_exp_512_se_handler» PROC PRIVATE 1794 mod_exp_512_se_handler:
1792 push rsi 1795 push rsi
1793 push rdi 1796 push rdi
1794 push rbx 1797 push rbx
1795 push rbp 1798 push rbp
1796 push r12 1799 push r12
1797 push r13 1800 push r13
1798 push r14 1801 push r14
1799 push r15 1802 push r15
1800 pushfq 1803 pushfq
1801 sub rsp,64 1804 sub rsp,64
1802 1805
1803 » mov» rax,QWORD PTR[120+r8] 1806 » mov» rax,QWORD[120+r8]
1804 » mov» rbx,QWORD PTR[248+r8] 1807 » mov» rbx,QWORD[248+r8]
1805 1808
1806 » lea» r10,QWORD PTR[$L$body] 1809 » lea» r10,[$L$body]
1807 cmp rbx,r10 1810 cmp rbx,r10
1808 » jb» $L$in_prologue 1811 » jb» NEAR $L$in_prologue
1809 1812
1810 » mov» rax,QWORD PTR[152+r8] 1813 » mov» rax,QWORD[152+r8]
1811 1814
1812 » lea» r10,QWORD PTR[$L$epilogue] 1815 » lea» r10,[$L$epilogue]
1813 cmp rbx,r10 1816 cmp rbx,r10
1814 » jae» $L$in_prologue 1817 » jae» NEAR $L$in_prologue
1815 1818
1816 » mov» rax,QWORD PTR[rax] 1819 » mov» rax,QWORD[rax]
1817 1820
1818 » mov» rbx,QWORD PTR[32+rax] 1821 » mov» rbx,QWORD[32+rax]
1819 » mov» rbp,QWORD PTR[40+rax] 1822 » mov» rbp,QWORD[40+rax]
1820 » mov» r12,QWORD PTR[24+rax] 1823 » mov» r12,QWORD[24+rax]
1821 » mov» r13,QWORD PTR[16+rax] 1824 » mov» r13,QWORD[16+rax]
1822 » mov» r14,QWORD PTR[8+rax] 1825 » mov» r14,QWORD[8+rax]
1823 » mov» r15,QWORD PTR[rax] 1826 » mov» r15,QWORD[rax]
1824 » lea» rax,QWORD PTR[48+rax] 1827 » lea» rax,[48+rax]
1825 » mov» QWORD PTR[144+r8],rbx 1828 » mov» QWORD[144+r8],rbx
1826 » mov» QWORD PTR[160+r8],rbp 1829 » mov» QWORD[160+r8],rbp
1827 » mov» QWORD PTR[216+r8],r12 1830 » mov» QWORD[216+r8],r12
1828 » mov» QWORD PTR[224+r8],r13 1831 » mov» QWORD[224+r8],r13
1829 » mov» QWORD PTR[232+r8],r14 1832 » mov» QWORD[232+r8],r14
1830 » mov» QWORD PTR[240+r8],r15 1833 » mov» QWORD[240+r8],r15
1831 1834
1832 $L$in_prologue:: 1835 $L$in_prologue:
1833 » mov» rdi,QWORD PTR[8+rax] 1836 » mov» rdi,QWORD[8+rax]
1834 » mov» rsi,QWORD PTR[16+rax] 1837 » mov» rsi,QWORD[16+rax]
1835 » mov» QWORD PTR[152+r8],rax 1838 » mov» QWORD[152+r8],rax
1836 » mov» QWORD PTR[168+r8],rsi 1839 » mov» QWORD[168+r8],rsi
1837 » mov» QWORD PTR[176+r8],rdi 1840 » mov» QWORD[176+r8],rdi
1838 1841
1839 » mov» rdi,QWORD PTR[40+r9] 1842 » mov» rdi,QWORD[40+r9]
1840 mov rsi,r8 1843 mov rsi,r8
1841 mov ecx,154 1844 mov ecx,154
1842 » DD» 0a548f3fch 1845 » DD» 0xa548f3fc
1843 1846
1844 mov rsi,r9 1847 mov rsi,r9
1845 xor rcx,rcx 1848 xor rcx,rcx
1846 » mov» rdx,QWORD PTR[8+rsi] 1849 » mov» rdx,QWORD[8+rsi]
1847 » mov» r8,QWORD PTR[rsi] 1850 » mov» r8,QWORD[rsi]
1848 » mov» r9,QWORD PTR[16+rsi] 1851 » mov» r9,QWORD[16+rsi]
1849 » mov» r10,QWORD PTR[40+rsi] 1852 » mov» r10,QWORD[40+rsi]
1850 » lea» r11,QWORD PTR[56+rsi] 1853 » lea» r11,[56+rsi]
1851 » lea» r12,QWORD PTR[24+rsi] 1854 » lea» r12,[24+rsi]
1852 » mov» QWORD PTR[32+rsp],r10 1855 » mov» QWORD[32+rsp],r10
1853 » mov» QWORD PTR[40+rsp],r11 1856 » mov» QWORD[40+rsp],r11
1854 » mov» QWORD PTR[48+rsp],r12 1857 » mov» QWORD[48+rsp],r12
1855 » mov» QWORD PTR[56+rsp],rcx 1858 » mov» QWORD[56+rsp],rcx
1856 » call» QWORD PTR[__imp_RtlVirtualUnwind] 1859 » call» QWORD[__imp_RtlVirtualUnwind]
1857 1860
1858 mov eax,1 1861 mov eax,1
1859 add rsp,64 1862 add rsp,64
1860 popfq 1863 popfq
1861 pop r15 1864 pop r15
1862 pop r14 1865 pop r14
1863 pop r13 1866 pop r13
1864 pop r12 1867 pop r12
1865 pop rbp 1868 pop rbp
1866 pop rbx 1869 pop rbx
1867 pop rdi 1870 pop rdi
1868 pop rsi 1871 pop rsi
1869 DB 0F3h,0C3h ;repret 1872 DB 0F3h,0C3h ;repret
1870 mod_exp_512_se_handler ENDP
1871 1873
1872 .text$» ENDS 1874
1873 .pdata» SEGMENT READONLY ALIGN(4) 1875 section».pdata rdata align=4
1874 ALIGN 4 1876 ALIGN 4
1875 » DD» imagerel $L$SEH_begin_mod_exp_512 1877 » DD» $L$SEH_begin_mod_exp_512 wrt ..imagebase
1876 » DD» imagerel $L$SEH_end_mod_exp_512 1878 » DD» $L$SEH_end_mod_exp_512 wrt ..imagebase
1877 » DD» imagerel $L$SEH_info_mod_exp_512 1879 » DD» $L$SEH_info_mod_exp_512 wrt ..imagebase
1878 1880
1879 .pdata» ENDS 1881 section».xdata rdata align=8
1880 .xdata» SEGMENT READONLY ALIGN(8)
1881 ALIGN 8 1882 ALIGN 8
1882 $L$SEH_info_mod_exp_512:: 1883 $L$SEH_info_mod_exp_512:
1883 DB 9,0,0,0 1884 DB 9,0,0,0
1884 » DD» imagerel mod_exp_512_se_handler 1885 » DD» mod_exp_512_se_handler wrt ..imagebase
1885
1886 .xdata» ENDS
1887 END
OLDNEW
« no previous file with comments | « third_party/boringssl/win-x86_64/crypto/aes/vpaes-x86_64.asm ('k') | third_party/boringssl/win-x86_64/crypto/bn/rsaz-avx2.asm » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698