~ubuntu-branches/ubuntu/karmic/nss/karmic-updates

« back to all changes in this revision

Viewing changes to mozilla/security/nss/lib/freebl/mpi/mp_comba_amd64_masm.asm

  • Committer: Bazaar Package Importer
  • Author(s): Alexander Sack
  • Date: 2009-06-16 13:23:47 UTC
  • mfrom: (1.1.9 upstream)
  • Revision ID: james.westby@ubuntu.com-20090616132347-311ysb8oep74b98y
Tags: 3.12.3-0ubuntu1
* new upstream release 3.12.3 RTM (NSS_3_12_3_RTM) (LP: #387751)
* adjust patches to changed upstream code base
  - update debian/patches/38_kbsd.patch
* needs nspr >= 4.7.4
  - update debian/control
* update 85_security_load.patch to latest debian version
  - update debian/patches/85_security_load.patch
* add new symbols for 3.12.3
  - update debian/libnss3-1d.symbols

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
; ***** BEGIN LICENSE BLOCK *****
 
2
; Version: MPL 1.1/GPL 2.0/LGPL 2.1
 
3
 
4
; The contents of this file are subject to the Mozilla Public License Version
 
5
; 1.1 (the "License"); you may not use this file except in compliance with
 
6
; the License. You may obtain a copy of the License at
 
7
; http://www.mozilla.org/MPL/
 
8
 
9
; Software distributed under the License is distributed on an "AS IS" basis,
 
10
; WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
 
11
; for the specific language governing rights and limitations under the
 
12
; License.
 
13
 
14
; The Original Code is TomsFastMath, a fast ISO C bignum library.
 
15
 
16
; The Initial Developer of the Original Code is
 
17
; Tom St Denis, tomstdenis@iahu.ca .
 
18
; Portions created by the Initial Developer are Copyright (C) 2005
 
19
; the Initial Developer. All Rights Reserved.
 
20
 
21
; Contributor(s):
 
22
;   Sun Microsystems, Inc.
 
23
;   Makoto Kato <m_kato@ga2.so-net.ne.jp>
 
24
 
25
; Alternatively, the contents of this file may be used under the terms of
 
26
; either the GNU General Public License Version 2 or later (the "GPL"), or
 
27
; the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
 
28
; in which case the provisions of the GPL or the LGPL are applicable instead
 
29
; of those above. If you wish to allow use of your version of this file only
 
30
; under the terms of either the GPL or the LGPL, and not to allow others to
 
31
; use your version of this file under the terms of the MPL, indicate your
 
32
; decision by deleting the provisions above and replace them with the notice
 
33
; and other provisions required by the GPL or the LGPL. If you do not delete
 
34
; the provisions above, a recipient may use your version of this file under
 
35
; the terms of any one of the MPL, the GPL or the LGPL.
 
36
 
37
; ***** END LICENSE BLOCK ***** */
 
38
 
 
39
;/* TomsFastMath, a fast ISO C bignum library.
 
40
; * 
 
41
; * This project is meant to fill in where LibTomMath
 
42
; * falls short.  That is speed ;-)
 
43
; *
 
44
; * This project is public domain and free for all purposes.
 
45
; * 
 
46
; * Tom St Denis, tomstdenis@iahu.ca
 
47
; */
 
48
 
 
49
;/*
 
50
; * The source file from which this assembly was derived
 
51
; * comes from TFM v0.03, which has the above license.
 
52
; * This source was from mp_comba_amd64.sun.s and convert to
 
53
; * MASM code set.
 
54
; */
 
55
 
 
56
.CODE
 
57
 
 
58
externdef memcpy:PROC
 
59
 
 
60
public s_mp_mul_comba_4
 
61
public s_mp_mul_comba_8
 
62
public s_mp_mul_comba_16
 
63
public s_mp_mul_comba_32
 
64
public s_mp_sqr_comba_8
 
65
public s_mp_sqr_comba_16
 
66
public s_mp_sqr_comba_32
 
67
 
 
68
 
 
69
; void s_mp_mul_comba_4(const mp_int *A, const mp_int *B, mp_int *C)
 
70
 
 
71
        ALIGN 16
 
72
s_mp_mul_comba_4 PROC
 
73
 
 
74
        push rdi
 
75
        push rsi
 
76
 
 
77
        mov rdi, rcx
 
78
        mov rsi, rdx
 
79
        mov rdx, r8
 
80
 
 
81
        push r12
 
82
        push rbp
 
83
        push rbx
 
84
        sub rsp, 64
 
85
        mov r9, qword ptr [16+rdi]
 
86
        mov rbx, rdx
 
87
        mov rdx, qword ptr [16+rsi]
 
88
        mov rax, qword ptr [r9]
 
89
        mov qword ptr [-64+64+rsp], rax
 
90
        mov r8, qword ptr [8+r9]
 
91
        mov qword ptr [-56+64+rsp], r8
 
92
        mov rbp, qword ptr [16+r9]
 
93
        mov qword ptr [-48+64+rsp], rbp
 
94
        mov r12, qword ptr [24+r9]
 
95
        mov qword ptr [-40+64+rsp], r12
 
96
        mov rcx, qword ptr [rdx]
 
97
        mov qword ptr [-32+64+rsp], rcx
 
98
        mov r10, qword ptr [8+rdx]
 
99
        mov qword ptr [-24+64+rsp], r10
 
100
        mov r11, qword ptr [16+rdx]
 
101
        xor r10d, r10d
 
102
        mov r8, r10
 
103
        mov r9, r10
 
104
        mov rbp, r10
 
105
        mov qword ptr [-16+64+rsp], r11
 
106
        mov r11, qword ptr [16+rbx]
 
107
        mov rax, qword ptr [24+rdx]
 
108
        mov qword ptr [-8+64+rsp], rax
 
109
        mov rax, qword ptr [-64+64+rsp]
 
110
        mul qword ptr [-32+64+rsp]
 
111
        add r8, rax
 
112
        adc r9, rdx
 
113
        adc rbp, 0
 
114
        mov qword ptr [r11], r8
 
115
        mov r8, rbp
 
116
        mov rbp, r10
 
117
        mov rax, qword ptr [-64+64+rsp]
 
118
        mul qword ptr [-24+64+rsp]
 
119
        add r9, rax
 
120
        adc r8, rdx
 
121
        adc rbp, 0
 
122
        mov r12, rbp
 
123
        mov rax, qword ptr [-56+64+rsp]
 
124
        mul qword ptr [-32+64+rsp]
 
125
        add r9, rax
 
126
        adc r8, rdx
 
127
        adc r12, 0
 
128
        mov qword ptr [8+r11], r9
 
129
        mov r9, r12
 
130
        mov r12, r10
 
131
        mov rax, qword ptr [-64+64+rsp]
 
132
        mul qword ptr [-16+64+rsp]
 
133
        add r8, rax
 
134
        adc r9, rdx
 
135
        adc r12, 0
 
136
        mov rcx, r12
 
137
        mov rax, qword ptr [-56+64+rsp]
 
138
        mul qword ptr [-24+64+rsp]
 
139
        add r8, rax
 
140
        adc r9, rdx
 
141
        adc rcx, 0
 
142
        mov rbp, r9
 
143
        mov r12, rcx
 
144
        mov rax, qword ptr [-48+64+rsp]
 
145
        mul qword ptr [-32+64+rsp]
 
146
        add r8, rax
 
147
        adc rbp, rdx
 
148
        adc r12, 0
 
149
        mov qword ptr [16+r11], r8
 
150
        mov r9, r12
 
151
        mov rcx, rbp
 
152
        mov r8, r10
 
153
        mov rax, qword ptr [-64+64+rsp]
 
154
        mul qword ptr [-8+64+rsp]
 
155
        add rcx, rax
 
156
        adc r9, rdx
 
157
        adc r8, 0
 
158
        mov rax, qword ptr [-56+64+rsp]
 
159
        mul qword ptr [-16+64+rsp]
 
160
        add rcx, rax
 
161
        adc r9, rdx
 
162
        adc r8, 0
 
163
        mov rax, qword ptr [-48+64+rsp]
 
164
        mul qword ptr [-24+64+rsp]
 
165
        add rcx, rax
 
166
        adc r9, rdx
 
167
        adc r8, 0
 
168
        mov rbp, r9
 
169
        mov r12, r8
 
170
        mov rax, qword ptr [-40+64+rsp]
 
171
        mul qword ptr [-32+64+rsp]
 
172
        add rcx, rax
 
173
        adc rbp, rdx
 
174
        adc r12, 0
 
175
        mov qword ptr [24+r11], rcx
 
176
        mov r9, r12
 
177
        mov r8, rbp
 
178
        mov rcx, r10
 
179
        mov rax, qword ptr [-56+64+rsp]
 
180
        mul qword ptr [-8+64+rsp]
 
181
        add r8, rax
 
182
        adc r9, rdx
 
183
        adc rcx, 0
 
184
        mov rax, qword ptr [-48+64+rsp]
 
185
        mul qword ptr [-16+64+rsp]
 
186
        add r8, rax
 
187
        adc r9, rdx
 
188
        adc rcx, 0
 
189
        mov rbp, r9
 
190
        mov r12, rcx
 
191
        mov rax, qword ptr [-40+64+rsp]
 
192
        mul qword ptr [-24+64+rsp]
 
193
        add r8, rax
 
194
        adc rbp, rdx
 
195
        adc r12, 0
 
196
        mov qword ptr [32+r11], r8
 
197
        mov r9, r12
 
198
        mov rcx, rbp
 
199
        mov r8, r10
 
200
        mov rax, qword ptr [-48+64+rsp]
 
201
        mul qword ptr [-8+64+rsp]
 
202
        add rcx, rax
 
203
        adc r9, rdx
 
204
        adc r8, 0
 
205
        mov r12, r8
 
206
        mov rbp, r9
 
207
        mov rax, qword ptr [-40+64+rsp]
 
208
        mul qword ptr [-16+64+rsp]
 
209
        add rcx, rax
 
210
        adc rbp, rdx
 
211
        adc r12, 0
 
212
        mov qword ptr [40+r11], rcx
 
213
        mov r8, rbp
 
214
        mov rcx, r12
 
215
        mov rax, qword ptr [-40+64+rsp]
 
216
        mul qword ptr [-8+64+rsp]
 
217
        add r8, rax
 
218
        adc rcx, rdx
 
219
        adc r10, 0
 
220
        mov qword ptr [48+r11], r8
 
221
        mov esi, dword ptr [rsi]
 
222
        xor esi, dword ptr [rdi]
 
223
        test rcx, rcx
 
224
        mov qword ptr [56+r11], rcx
 
225
        mov dword ptr [8+rbx], 8
 
226
        jne L9
 
227
        ALIGN 16
 
228
L18:
 
229
        mov edx, dword ptr [8+rbx]
 
230
        lea edi, dword ptr [-1+rdx]
 
231
        test edi, edi
 
232
        mov dword ptr [8+rbx], edi
 
233
        je L9
 
234
        lea r10d, dword ptr [-2+rdx]
 
235
        cmp dword ptr [r11+r10*8], 0
 
236
        je L18
 
237
L9:
 
238
        mov edx, dword ptr [8+rbx]
 
239
        xor r11d, r11d
 
240
        test edx, edx
 
241
        cmovne r11d, esi
 
242
        mov dword ptr [rbx], r11d
 
243
        add rsp, 64
 
244
        pop rbx
 
245
        pop rbp
 
246
        pop r12
 
247
 
 
248
        pop rsi
 
249
        pop rdi
 
250
 
 
251
        ret
 
252
 
 
253
s_mp_mul_comba_4 ENDP
 
254
 
 
255
 
 
256
; void s_mp_mul_comba_8(const mp_int *A, const mp_int *B, mp_int *C)
 
257
 
 
258
        ALIGN 16
 
259
s_mp_mul_comba_8 PROC
 
260
 
 
261
        push rdi
 
262
        push rsi
 
263
 
 
264
        mov rdi, rcx
 
265
        mov rsi, rdx
 
266
        mov rdx, r8
 
267
 
 
268
        push r12
 
269
        push rbp
 
270
        push rbx
 
271
        mov rbx, rdx
 
272
        sub rsp, 8+128
 
273
        mov rdx, qword ptr [16+rdi]
 
274
        mov r8, qword ptr [rdx]
 
275
        mov qword ptr [-120+128+rsp], r8
 
276
        mov rbp, qword ptr [8+rdx]
 
277
        mov qword ptr [-112+128+rsp], rbp
 
278
        mov r9, qword ptr [16+rdx]
 
279
        mov qword ptr [-104+128+rsp], r9
 
280
        mov r12, qword ptr [24+rdx]
 
281
        mov qword ptr [-96+128+rsp], r12
 
282
        mov rcx, qword ptr [32+rdx]
 
283
        mov qword ptr [-88+128+rsp], rcx
 
284
        mov r10, qword ptr [40+rdx]
 
285
        mov qword ptr [-80+128+rsp], r10
 
286
        mov r11, qword ptr [48+rdx]
 
287
        mov qword ptr [-72+128+rsp], r11
 
288
        mov rax, qword ptr [56+rdx]
 
289
        mov rdx, qword ptr [16+rsi]
 
290
        mov qword ptr [-64+128+rsp], rax
 
291
        mov r8, qword ptr [rdx]
 
292
        mov qword ptr [-56+128+rsp], r8
 
293
        mov rbp, qword ptr [8+rdx]
 
294
        mov qword ptr [-48+128+rsp], rbp
 
295
        mov r9, qword ptr [16+rdx]
 
296
        mov qword ptr [-40+128+rsp], r9
 
297
        mov r12, qword ptr [24+rdx]
 
298
        mov qword ptr [-32+128+rsp], r12
 
299
        mov rcx, qword ptr [32+rdx]
 
300
        mov qword ptr [-24+128+rsp], rcx
 
301
        mov r10, qword ptr [40+rdx]
 
302
        mov qword ptr [-16+128+rsp], r10
 
303
        mov r11, qword ptr [48+rdx]
 
304
        xor r10d, r10d
 
305
        mov r8, r10
 
306
        mov r9, r10
 
307
        mov rbp, r10
 
308
        mov qword ptr [-8+128+rsp], r11
 
309
        mov r11, qword ptr [16+rbx]
 
310
        mov rax, qword ptr [56+rdx]
 
311
        mov qword ptr [128+rsp], rax
 
312
        mov rax, qword ptr [-120+128+rsp]
 
313
        mul qword ptr [-56+128+rsp]
 
314
        add r8, rax
 
315
        adc r9, rdx
 
316
        adc rbp, 0
 
317
        mov qword ptr [r11], r8
 
318
        mov r8, rbp
 
319
        mov rbp, r10
 
320
        mov rax, qword ptr [-120+128+rsp]
 
321
        mul qword ptr [-48+128+rsp]
 
322
        add r9, rax
 
323
        adc r8, rdx
 
324
        adc rbp, 0
 
325
        mov r12, rbp
 
326
        mov rax, qword ptr [-112+128+rsp]
 
327
        mul qword ptr [-56+128+rsp]
 
328
        add r9, rax
 
329
        adc r8, rdx
 
330
        adc r12, 0
 
331
        mov qword ptr [8+r11], r9
 
332
        mov r9, r12
 
333
        mov r12, r10
 
334
        mov rax, qword ptr [-120+128+rsp]
 
335
        mul qword ptr [-40+128+rsp]
 
336
        add r8, rax
 
337
        adc r9, rdx
 
338
        adc r12, 0
 
339
        mov rcx, r12
 
340
        mov rax, qword ptr [-112+128+rsp]
 
341
        mul qword ptr [-48+128+rsp]
 
342
        add r8, rax
 
343
        adc r9, rdx
 
344
        adc rcx, 0
 
345
        mov rbp, r9
 
346
        mov r12, rcx
 
347
        mov rax, qword ptr [-104+128+rsp]
 
348
        mul qword ptr [-56+128+rsp]
 
349
        add r8, rax
 
350
        adc rbp, rdx
 
351
        adc r12, 0
 
352
        mov qword ptr [16+r11], r8
 
353
        mov r9, r12
 
354
        mov rcx, rbp
 
355
        mov r8, r10
 
356
        mov rax, qword ptr [-120+128+rsp]
 
357
        mul qword ptr [-32+128+rsp]
 
358
        add rcx, rax
 
359
        adc r9, rdx
 
360
        adc r8, 0
 
361
        mov rax, qword ptr [-112+128+rsp]
 
362
        mul qword ptr [-40+128+rsp]
 
363
        add rcx, rax
 
364
        adc r9, rdx
 
365
        adc r8, 0
 
366
        mov rax, qword ptr [-104+128+rsp]
 
367
        mul qword ptr [-48+128+rsp]
 
368
        add rcx, rax
 
369
        adc r9, rdx
 
370
        adc r8, 0
 
371
        mov rbp, r9
 
372
        mov r12, r8
 
373
        mov rax, qword ptr [-96+128+rsp]
 
374
        mul qword ptr [-56+128+rsp]
 
375
        add rcx, rax
 
376
        adc rbp, rdx
 
377
        adc r12, 0
 
378
        mov qword ptr [24+r11], rcx
 
379
        mov r9, r12
 
380
        mov r8, rbp
 
381
        mov rcx, r10
 
382
        mov rax, qword ptr [-120+128+rsp]
 
383
        mul qword ptr [-24+128+rsp]
 
384
        add r8, rax
 
385
        adc r9, rdx
 
386
        adc rcx, 0
 
387
        mov rax, qword ptr [-112+128+rsp]
 
388
        mul qword ptr [-32+128+rsp]
 
389
        add r8, rax
 
390
        adc r9, rdx
 
391
        adc rcx, 0
 
392
        mov rax, qword ptr [-104+128+rsp]
 
393
        mul qword ptr [-40+128+rsp]
 
394
        add r8, rax
 
395
        adc r9, rdx
 
396
        adc rcx, 0
 
397
        mov rax, qword ptr [-96+128+rsp]
 
398
        mul qword ptr [-48+128+rsp]
 
399
        add r8, rax
 
400
        adc r9, rdx
 
401
        adc rcx, 0
 
402
        mov rbp, r9
 
403
        mov r12, rcx
 
404
        mov rax, qword ptr [-88+128+rsp]
 
405
        mul qword ptr [-56+128+rsp]
 
406
        add r8, rax
 
407
        adc rbp, rdx
 
408
        adc r12, 0
 
409
        mov qword ptr [32+r11], r8
 
410
        mov r9, r12
 
411
        mov rcx, rbp
 
412
        mov r8, r10
 
413
        mov rax, qword ptr [-120+128+rsp]
 
414
        mul qword ptr [-16+128+rsp]
 
415
        add rcx, rax
 
416
        adc r9, rdx
 
417
        adc r8, 0
 
418
        mov rax, qword ptr [-112+128+rsp]
 
419
        mul qword ptr [-24+128+rsp]
 
420
        add rcx, rax
 
421
        adc r9, rdx
 
422
        adc r8, 0
 
423
        mov rax, qword ptr [-104+128+rsp]
 
424
        mul qword ptr [-32+128+rsp]
 
425
        add rcx, rax
 
426
        adc r9, rdx
 
427
        adc r8, 0
 
428
        mov rax, qword ptr [-96+128+rsp]
 
429
        mul qword ptr [-40+128+rsp]
 
430
        add rcx, rax
 
431
        adc r9, rdx
 
432
        adc r8, 0
 
433
        mov rax, qword ptr [-88+128+rsp]
 
434
        mul qword ptr [-48+128+rsp]
 
435
        add rcx, rax
 
436
        adc r9, rdx
 
437
        adc r8, 0
 
438
        mov rbp, r9
 
439
        mov r12, r8
 
440
        mov rax, qword ptr [-80+128+rsp]
 
441
        mul qword ptr [-56+128+rsp]
 
442
        add rcx, rax
 
443
        adc rbp, rdx
 
444
        adc r12, 0
 
445
        mov qword ptr [40+r11], rcx
 
446
        mov r9, r12
 
447
        mov r8, rbp
 
448
        mov rcx, r10
 
449
        mov rax, qword ptr [-120+128+rsp]
 
450
        mul qword ptr [-8+128+rsp]
 
451
        add r8, rax
 
452
        adc r9, rdx
 
453
        adc rcx, 0
 
454
        mov rax, qword ptr [-112+128+rsp]
 
455
        mul qword ptr [-16+128+rsp]
 
456
        add r8, rax
 
457
        adc r9, rdx
 
458
        adc rcx, 0
 
459
        mov rax, qword ptr [-104+128+rsp]
 
460
        mul qword ptr [-24+128+rsp]
 
461
        add r8, rax
 
462
        adc r9, rdx
 
463
        adc rcx, 0
 
464
        mov rax, qword ptr [-96+128+rsp]
 
465
        mul qword ptr [-32+128+rsp]
 
466
        add r8, rax
 
467
        adc r9, rdx
 
468
        adc rcx, 0
 
469
        mov rax, qword ptr [-88+128+rsp]
 
470
        mul qword ptr [-40+128+rsp]
 
471
        add r8, rax
 
472
        adc r9, rdx
 
473
        adc rcx, 0
 
474
        mov rax, qword ptr [-80+128+rsp]
 
475
        mul qword ptr [-48+128+rsp]
 
476
        add r8, rax
 
477
        adc r9, rdx
 
478
        adc rcx, 0
 
479
        mov rbp, r9
 
480
        mov r12, rcx
 
481
        mov rax, qword ptr [-72+128+rsp]
 
482
        mul qword ptr [-56+128+rsp]
 
483
        add r8, rax
 
484
        adc rbp, rdx
 
485
        adc r12, 0
 
486
        mov qword ptr [48+r11], r8
 
487
        mov r9, r12
 
488
        mov rcx, rbp
 
489
        mov r8, r10
 
490
        mov rax, qword ptr [-120+128+rsp]
 
491
        mul qword ptr [128+rsp]
 
492
        add rcx, rax
 
493
        adc r9, rdx
 
494
        adc r8, 0
 
495
        mov rax, qword ptr [-112+128+rsp]
 
496
        mul qword ptr [-8+128+rsp]
 
497
        add rcx, rax
 
498
        adc r9, rdx
 
499
        adc r8, 0
 
500
        mov rax, qword ptr [-104+128+rsp]
 
501
        mul qword ptr [-16+128+rsp]
 
502
        add rcx, rax
 
503
        adc r9, rdx
 
504
        adc r8, 0
 
505
        mov rax, qword ptr [-96+128+rsp]
 
506
        mul qword ptr [-24+128+rsp]
 
507
        add rcx, rax
 
508
        adc r9, rdx
 
509
        adc r8, 0
 
510
        mov rax, qword ptr [-88+128+rsp]
 
511
        mul qword ptr [-32+128+rsp]
 
512
        add rcx, rax
 
513
        adc r9, rdx
 
514
        adc r8, 0
 
515
        mov rax, qword ptr [-80+128+rsp]
 
516
        mul qword ptr [-40+128+rsp]
 
517
        add rcx, rax
 
518
        adc r9, rdx
 
519
        adc r8, 0
 
520
        mov rax, qword ptr [-72+128+rsp]
 
521
        mul qword ptr [-48+128+rsp]
 
522
        add rcx, rax
 
523
        adc r9, rdx
 
524
        adc r8, 0
 
525
        mov rbp, r9
 
526
        mov r12, r8
 
527
        mov rax, qword ptr [-64+128+rsp]
 
528
        mul qword ptr [-56+128+rsp]
 
529
        add rcx, rax
 
530
        adc rbp, rdx
 
531
        adc r12, 0
 
532
        mov qword ptr [56+r11], rcx
 
533
        mov r9, r12
 
534
        mov r8, rbp
 
535
        mov rcx, r10
 
536
        mov rax, qword ptr [-112+128+rsp]
 
537
        mul qword ptr [128+rsp]
 
538
        add r8, rax
 
539
        adc r9, rdx
 
540
        adc rcx, 0
 
541
        mov rax, qword ptr [-104+128+rsp]
 
542
        mul qword ptr [-8+128+rsp]
 
543
        add r8, rax
 
544
        adc r9, rdx
 
545
        adc rcx, 0
 
546
        mov rax, qword ptr [-96+128+rsp]
 
547
        mul qword ptr [-16+128+rsp]
 
548
        add r8, rax
 
549
        adc r9, rdx
 
550
        adc rcx, 0
 
551
        mov rax, qword ptr [-88+128+rsp]
 
552
        mul qword ptr [-24+128+rsp]
 
553
        add r8, rax
 
554
        adc r9, rdx
 
555
        adc rcx, 0
 
556
        mov rax, qword ptr [-80+128+rsp]
 
557
        mul qword ptr [-32+128+rsp]
 
558
        add r8, rax
 
559
        adc r9, rdx
 
560
        adc rcx, 0
 
561
        mov rax, qword ptr [-72+128+rsp]
 
562
        mul qword ptr [-40+128+rsp]
 
563
        add r8, rax
 
564
        adc r9, rdx
 
565
        adc rcx, 0
 
566
        mov rbp, r9
 
567
        mov r12, rcx
 
568
        mov rax, qword ptr [-64+128+rsp]
 
569
        mul qword ptr [-48+128+rsp]
 
570
        add r8, rax
 
571
        adc rbp, rdx
 
572
        adc r12, 0
 
573
        mov qword ptr [64+r11], r8
 
574
        mov r9, r12
 
575
        mov rcx, rbp
 
576
        mov r8, r10
 
577
        mov rax, qword ptr [-104+128+rsp]
 
578
        mul qword ptr [128+rsp]
 
579
        add rcx, rax
 
580
        adc r9, rdx
 
581
        adc r8, 0
 
582
        mov rax, qword ptr [-96+128+rsp]
 
583
        mul qword ptr [-8+128+rsp]
 
584
        add rcx, rax
 
585
        adc r9, rdx
 
586
        adc r8, 0
 
587
        mov rax, qword ptr [-88+128+rsp]
 
588
        mul qword ptr [-16+128+rsp]
 
589
        add rcx, rax
 
590
        adc r9, rdx
 
591
        adc r8, 0
 
592
        mov rax, qword ptr [-80+128+rsp]
 
593
        mul qword ptr [-24+128+rsp]
 
594
        add rcx, rax
 
595
        adc r9, rdx
 
596
        adc r8, 0
 
597
        mov rax, qword ptr [-72+128+rsp]
 
598
        mul qword ptr [-32+128+rsp]
 
599
        add rcx, rax
 
600
        adc r9, rdx
 
601
        adc r8, 0
 
602
        mov rbp, r9
 
603
        mov r12, r8
 
604
        mov rax, qword ptr [-64+128+rsp]
 
605
        mul qword ptr [-40+128+rsp]
 
606
        add rcx, rax
 
607
        adc rbp, rdx
 
608
        adc r12, 0
 
609
        mov qword ptr [72+r11], rcx
 
610
        mov r9, r12
 
611
        mov r8, rbp
 
612
        mov rcx, r10
 
613
        mov rax, qword ptr [-96+128+rsp]
 
614
        mul qword ptr [128+rsp]
 
615
        add r8, rax
 
616
        adc r9, rdx
 
617
        adc rcx, 0
 
618
        mov rax, qword ptr [-88+128+rsp]
 
619
        mul qword ptr [-8+128+rsp]
 
620
        add r8, rax
 
621
        adc r9, rdx
 
622
        adc rcx, 0
 
623
        mov rax, qword ptr [-80+128+rsp]
 
624
        mul qword ptr [-16+128+rsp]
 
625
        add r8, rax
 
626
        adc r9, rdx
 
627
        adc rcx, 0
 
628
        mov rax, qword ptr [-72+128+rsp]
 
629
        mul qword ptr [-24+128+rsp]
 
630
        add r8, rax
 
631
        adc r9, rdx
 
632
        adc rcx, 0
 
633
        mov rbp, r9
 
634
        mov r12, rcx
 
635
        mov rax, qword ptr [-64+128+rsp]
 
636
        mul qword ptr [-32+128+rsp]
 
637
        add r8, rax
 
638
        adc rbp, rdx
 
639
        adc r12, 0
 
640
        mov qword ptr [80+r11], r8
 
641
        mov r9, r12
 
642
        mov rcx, rbp
 
643
        mov r8, r10
 
644
        mov rax, qword ptr [-88+128+rsp]
 
645
        mul qword ptr [128+rsp]
 
646
        add rcx, rax
 
647
        adc r9, rdx
 
648
        adc r8, 0
 
649
        mov rax, qword ptr [-80+128+rsp]
 
650
        mul qword ptr [-8+128+rsp]
 
651
        add rcx, rax
 
652
        adc r9, rdx
 
653
        adc r8, 0
 
654
        mov rax, qword ptr [-72+128+rsp]
 
655
        mul qword ptr [-16+128+rsp]
 
656
        add rcx, rax
 
657
        adc r9, rdx
 
658
        adc r8, 0
 
659
        mov rbp, r9
 
660
        mov r12, r8
 
661
        mov rax, qword ptr [-64+128+rsp]
 
662
        mul qword ptr [-24+128+rsp]
 
663
        add rcx, rax
 
664
        adc rbp, rdx
 
665
        adc r12, 0
 
666
        mov qword ptr [88+r11], rcx
 
667
        mov r9, r12
 
668
        mov r8, rbp
 
669
        mov rcx, r10
 
670
        mov rax, qword ptr [-80+128+rsp]
 
671
        mul qword ptr [128+rsp]
 
672
        add r8, rax
 
673
        adc r9, rdx
 
674
        adc rcx, 0
 
675
        mov rax, qword ptr [-72+128+rsp]
 
676
        mul qword ptr [-8+128+rsp]
 
677
        add r8, rax
 
678
        adc r9, rdx
 
679
        adc rcx, 0
 
680
        mov rbp, r9
 
681
        mov r12, rcx
 
682
        mov rax, qword ptr [-64+128+rsp]
 
683
        mul qword ptr [-16+128+rsp]
 
684
        add r8, rax
 
685
        adc rbp, rdx
 
686
        adc r12, 0
 
687
        mov qword ptr [96+r11], r8
 
688
        mov r9, r12
 
689
        mov rcx, rbp
 
690
        mov r8, r10
 
691
        mov rax, qword ptr [-72+128+rsp]
 
692
        mul qword ptr [128+rsp]
 
693
        add rcx, rax
 
694
        adc r9, rdx
 
695
        adc r8, 0
 
696
        mov r12, r8
 
697
        mov rbp, r9
 
698
        mov rax, qword ptr [-64+128+rsp]
 
699
        mul qword ptr [-8+128+rsp]
 
700
        add rcx, rax
 
701
        adc rbp, rdx
 
702
        adc r12, 0
 
703
        mov qword ptr [104+r11], rcx
 
704
        mov r8, rbp
 
705
        mov rcx, r12
 
706
        mov rax, qword ptr [-64+128+rsp]
 
707
        mul qword ptr [128+rsp]
 
708
        add r8, rax
 
709
        adc rcx, rdx
 
710
        adc r10, 0
 
711
        mov qword ptr [112+r11], r8
 
712
        mov esi, dword ptr [rsi]
 
713
        xor esi, dword ptr [rdi]
 
714
        test rcx, rcx
 
715
        mov qword ptr [120+r11], rcx
 
716
        mov dword ptr [8+rbx], 16
 
717
        jne L35
 
718
        ALIGN 16
 
719
L43:
 
720
        mov edx, dword ptr [8+rbx]
 
721
        lea edi, dword ptr [-1+rdx]
 
722
        test edi, edi
 
723
        mov dword ptr [8+rbx], edi
 
724
        je L35
 
725
        lea eax, dword ptr [-2+rdx]
 
726
        cmp dword ptr [r11+rax*8], 0
 
727
        je L43
 
728
L35:
 
729
        mov r11d, dword ptr [8+rbx]
 
730
        xor edx, edx
 
731
        test r11d, r11d
 
732
        cmovne edx, esi
 
733
        mov dword ptr [rbx], edx
 
734
        add rsp, 8+128
 
735
        pop rbx
 
736
        pop rbp
 
737
        pop r12
 
738
 
 
739
        pop rsi
 
740
        pop rdi
 
741
 
 
742
        ret
 
743
 
 
744
s_mp_mul_comba_8 ENDP
 
745
 
 
746
 
 
747
; void s_mp_mul_comba_16(const mp_int *A, const mp_int *B, mp_int *C);
 
748
 
 
749
        ALIGN 16
 
750
s_mp_mul_comba_16 PROC
 
751
 
 
752
        push rdi
 
753
        push rsi
 
754
 
 
755
        mov rdi, rcx
 
756
        mov rsi, rdx
 
757
        mov rdx, r8
 
758
 
 
759
        push r12
 
760
        push rbp
 
761
        push rbx
 
762
        mov rbx, rdx
 
763
        sub rsp, 136+128
 
764
        mov rax, qword ptr [16+rdi]
 
765
        mov r8, qword ptr [rax]
 
766
        mov qword ptr [-120+128+rsp], r8
 
767
        mov rbp, qword ptr [8+rax]
 
768
        mov qword ptr [-112+128+rsp], rbp
 
769
        mov r9, qword ptr [16+rax]
 
770
        mov qword ptr [-104+128+rsp], r9
 
771
        mov r12, qword ptr [24+rax]
 
772
        mov qword ptr [-96+128+rsp], r12
 
773
        mov rcx, qword ptr [32+rax]
 
774
        mov qword ptr [-88+128+rsp], rcx
 
775
        mov r10, qword ptr [40+rax]
 
776
        mov qword ptr [-80+128+rsp], r10
 
777
        mov rdx, qword ptr [48+rax]
 
778
        mov qword ptr [-72+128+rsp], rdx
 
779
        mov r11, qword ptr [56+rax]
 
780
        mov qword ptr [-64+128+rsp], r11
 
781
        mov r8, qword ptr [64+rax]
 
782
        mov qword ptr [-56+128+rsp], r8
 
783
        mov rbp, qword ptr [72+rax]
 
784
        mov qword ptr [-48+128+rsp], rbp
 
785
        mov r9, qword ptr [80+rax]
 
786
        mov qword ptr [-40+128+rsp], r9
 
787
        mov r12, qword ptr [88+rax]
 
788
        mov qword ptr [-32+128+rsp], r12
 
789
        mov rcx, qword ptr [96+rax]
 
790
        mov qword ptr [-24+128+rsp], rcx
 
791
        mov r10, qword ptr [104+rax]
 
792
        mov qword ptr [-16+128+rsp], r10
 
793
        mov rdx, qword ptr [112+rax]
 
794
        mov qword ptr [-8+128+rsp], rdx
 
795
        mov r11, qword ptr [120+rax]
 
796
        mov qword ptr [128+rsp], r11
 
797
        mov r11, qword ptr [16+rsi]
 
798
        mov r8, qword ptr [r11]
 
799
        mov qword ptr [8+128+rsp], r8
 
800
        mov rbp, qword ptr [8+r11]
 
801
        mov qword ptr [16+128+rsp], rbp
 
802
        mov r9, qword ptr [16+r11]
 
803
        mov qword ptr [24+128+rsp], r9
 
804
        mov r12, qword ptr [24+r11]
 
805
        mov qword ptr [32+128+rsp], r12
 
806
        mov rcx, qword ptr [32+r11]
 
807
        mov qword ptr [40+128+rsp], rcx
 
808
        mov r10, qword ptr [40+r11]
 
809
        mov qword ptr [48+128+rsp], r10
 
810
        mov rdx, qword ptr [48+r11]
 
811
        mov qword ptr [56+128+rsp], rdx
 
812
        mov rax, qword ptr [56+r11]
 
813
        mov qword ptr [64+128+rsp], rax
 
814
        mov r8, qword ptr [64+r11]
 
815
        mov qword ptr [72+128+rsp], r8
 
816
        mov rbp, qword ptr [72+r11]
 
817
        mov qword ptr [80+128+rsp], rbp
 
818
        mov r9, qword ptr [80+r11]
 
819
        mov qword ptr [88+128+rsp], r9
 
820
        mov r12, qword ptr [88+r11]
 
821
        mov qword ptr [96+128+rsp], r12
 
822
        mov rcx, qword ptr [96+r11]
 
823
        mov qword ptr [104+128+rsp], rcx
 
824
        mov r10, qword ptr [104+r11]
 
825
        mov qword ptr [112+128+rsp], r10
 
826
        mov rdx, qword ptr [112+r11]
 
827
        xor r10d, r10d
 
828
        mov r8, r10
 
829
        mov r9, r10
 
830
        mov rbp, r10
 
831
        mov qword ptr [120+128+rsp], rdx
 
832
        mov rax, qword ptr [120+r11]
 
833
        mov qword ptr [128+128+rsp], rax
 
834
        mov r11, qword ptr [16+rbx]
 
835
        mov rax, qword ptr [-120+128+rsp]
 
836
        mul qword ptr [8+128+rsp]
 
837
        add r8, rax
 
838
        adc r9, rdx
 
839
        adc rbp, 0
 
840
        mov qword ptr [r11], r8
 
841
        mov r8, rbp
 
842
        mov rbp, r10
 
843
        mov rax, qword ptr [-120+128+rsp]
 
844
        mul qword ptr [16+128+rsp]
 
845
        add r9, rax
 
846
        adc r8, rdx
 
847
        adc rbp, 0
 
848
        mov r12, rbp
 
849
        mov rax, qword ptr [-112+128+rsp]
 
850
        mul qword ptr [8+128+rsp]
 
851
        add r9, rax
 
852
        adc r8, rdx
 
853
        adc r12, 0
 
854
        mov qword ptr [8+r11], r9
 
855
        mov r9, r12
 
856
        mov r12, r10
 
857
        mov rax, qword ptr [-120+128+rsp]
 
858
        mul qword ptr [24+128+rsp]
 
859
        add r8, rax
 
860
        adc r9, rdx
 
861
        adc r12, 0
 
862
        mov rcx, r12
 
863
        mov rax, qword ptr [-112+128+rsp]
 
864
        mul qword ptr [16+128+rsp]
 
865
        add r8, rax
 
866
        adc r9, rdx
 
867
        adc rcx, 0
 
868
        mov rbp, r9
 
869
        mov r12, rcx
 
870
        mov rax, qword ptr [-104+128+rsp]
 
871
        mul qword ptr [8+128+rsp]
 
872
        add r8, rax
 
873
        adc rbp, rdx
 
874
        adc r12, 0
 
875
        mov qword ptr [16+r11], r8
 
876
        mov r9, r12
 
877
        mov rcx, rbp
 
878
        mov r8, r10
 
879
        mov rax, qword ptr [-120+128+rsp]
 
880
        mul qword ptr [32+128+rsp]
 
881
        add rcx, rax
 
882
        adc r9, rdx
 
883
        adc r8, 0
 
884
        mov rax, qword ptr [-112+128+rsp]
 
885
        mul qword ptr [24+128+rsp]
 
886
        add rcx, rax
 
887
        adc r9, rdx
 
888
        adc r8, 0
 
889
        mov rax, qword ptr [-104+128+rsp]
 
890
        mul qword ptr [16+128+rsp]
 
891
        add rcx, rax
 
892
        adc r9, rdx
 
893
        adc r8, 0
 
894
        mov rbp, r9
 
895
        mov r12, r8
 
896
        mov rax, qword ptr [-96+128+rsp]
 
897
        mul qword ptr [8+128+rsp]
 
898
        add rcx, rax
 
899
        adc rbp, rdx
 
900
        adc r12, 0
 
901
        mov qword ptr [24+r11], rcx
 
902
        mov r9, r12
 
903
        mov r8, rbp
 
904
        mov rcx, r10
 
905
        mov rax, qword ptr [-120+128+rsp]
 
906
        mul qword ptr [40+128+rsp]
 
907
        add r8, rax
 
908
        adc r9, rdx
 
909
        adc rcx, 0
 
910
        mov rax, qword ptr [-112+128+rsp]
 
911
        mul qword ptr [32+128+rsp]
 
912
        add r8, rax
 
913
        adc r9, rdx
 
914
        adc rcx, 0
 
915
        mov rax, qword ptr [-104+128+rsp]
 
916
        mul qword ptr [24+128+rsp]
 
917
        add r8, rax
 
918
        adc r9, rdx
 
919
        adc rcx, 0
 
920
        mov rax, qword ptr [-96+128+rsp]
 
921
        mul qword ptr [16+128+rsp]
 
922
        add r8, rax
 
923
        adc r9, rdx
 
924
        adc rcx, 0
 
925
        mov rbp, r9
 
926
        mov r12, rcx
 
927
        mov rax, qword ptr [-88+128+rsp]
 
928
        mul qword ptr [8+128+rsp]
 
929
        add r8, rax
 
930
        adc rbp, rdx
 
931
        adc r12, 0
 
932
        mov qword ptr [32+r11], r8
 
933
        mov r9, r12
 
934
        mov rcx, rbp
 
935
        mov r8, r10
 
936
        mov rax, qword ptr [-120+128+rsp]
 
937
        mul qword ptr [48+128+rsp]
 
938
        add rcx, rax
 
939
        adc r9, rdx
 
940
        adc r8, 0
 
941
        mov rax, qword ptr [-112+128+rsp]
 
942
        mul qword ptr [40+128+rsp]
 
943
        add rcx, rax
 
944
        adc r9, rdx
 
945
        adc r8, 0
 
946
        mov rax, qword ptr [-104+128+rsp]
 
947
        mul qword ptr [32+128+rsp]
 
948
        add rcx, rax
 
949
        adc r9, rdx
 
950
        adc r8, 0
 
951
        mov rax, qword ptr [-96+128+rsp]
 
952
        mul qword ptr [24+128+rsp]
 
953
        add rcx, rax
 
954
        adc r9, rdx
 
955
        adc r8, 0
 
956
        mov rax, qword ptr [-88+128+rsp]
 
957
        mul qword ptr [16+128+rsp]
 
958
        add rcx, rax
 
959
        adc r9, rdx
 
960
        adc r8, 0
 
961
        mov rbp, r9
 
962
        mov r12, r8
 
963
        mov rax, qword ptr [-80+128+rsp]
 
964
        mul qword ptr [8+128+rsp]
 
965
        add rcx, rax
 
966
        adc rbp, rdx
 
967
        adc r12, 0
 
968
        mov qword ptr [40+r11], rcx
 
969
        mov r9, r12
 
970
        mov r8, rbp
 
971
        mov rcx, r10
 
972
        mov rax, qword ptr [-120+128+rsp]
 
973
        mul qword ptr [56+128+rsp]
 
974
        add r8, rax
 
975
        adc r9, rdx
 
976
        adc rcx, 0
 
977
        mov rax, qword ptr [-112+128+rsp]
 
978
        mul qword ptr [48+128+rsp]
 
979
        add r8, rax
 
980
        adc r9, rdx
 
981
        adc rcx, 0
 
982
        mov rax, qword ptr [-104+128+rsp]
 
983
        mul qword ptr [40+128+rsp]
 
984
        add r8, rax
 
985
        adc r9, rdx
 
986
        adc rcx, 0
 
987
        mov rax, qword ptr [-96+128+rsp]
 
988
        mul qword ptr [32+128+rsp]
 
989
        add r8, rax
 
990
        adc r9, rdx
 
991
        adc rcx, 0
 
992
        mov rax, qword ptr [-88+128+rsp]
 
993
        mul qword ptr [24+128+rsp]
 
994
        add r8, rax
 
995
        adc r9, rdx
 
996
        adc rcx, 0
 
997
        mov rax, qword ptr [-80+128+rsp]
 
998
        mul qword ptr [16+128+rsp]
 
999
        add r8, rax
 
1000
        adc r9, rdx
 
1001
        adc rcx, 0
 
1002
        mov rbp, r9
 
1003
        mov r12, rcx
 
1004
        mov rax, qword ptr [-72+128+rsp]
 
1005
        mul qword ptr [8+128+rsp]
 
1006
        add r8, rax
 
1007
        adc rbp, rdx
 
1008
        adc r12, 0
 
1009
        mov qword ptr [48+r11], r8
 
1010
        mov r9, r12
 
1011
        mov rcx, rbp
 
1012
        mov r8, r10
 
1013
        mov rax, qword ptr [-120+128+rsp]
 
1014
        mul qword ptr [64+128+rsp]
 
1015
        add rcx, rax
 
1016
        adc r9, rdx
 
1017
        adc r8, 0
 
1018
        mov rax, qword ptr [-112+128+rsp]
 
1019
        mul qword ptr [56+128+rsp]
 
1020
        add rcx, rax
 
1021
        adc r9, rdx
 
1022
        adc r8, 0
 
1023
        mov rax, qword ptr [-104+128+rsp]
 
1024
        mul qword ptr [48+128+rsp]
 
1025
        add rcx, rax
 
1026
        adc r9, rdx
 
1027
        adc r8, 0
 
1028
        mov rax, qword ptr [-96+128+rsp]
 
1029
        mul qword ptr [40+128+rsp]
 
1030
        add rcx, rax
 
1031
        adc r9, rdx
 
1032
        adc r8, 0
 
1033
        mov rax, qword ptr [-88+128+rsp]
 
1034
        mul qword ptr [32+128+rsp]
 
1035
        add rcx, rax
 
1036
        adc r9, rdx
 
1037
        adc r8, 0
 
1038
        mov rax, qword ptr [-80+128+rsp]
 
1039
        mul qword ptr [24+128+rsp]
 
1040
        add rcx, rax
 
1041
        adc r9, rdx
 
1042
        adc r8, 0
 
1043
        mov rax, qword ptr [-72+128+rsp]
 
1044
        mul qword ptr [16+128+rsp]
 
1045
        add rcx, rax
 
1046
        adc r9, rdx
 
1047
        adc r8, 0
 
1048
        mov rbp, r9
 
1049
        mov r12, r8
 
1050
        mov rax, qword ptr [-64+128+rsp]
 
1051
        mul qword ptr [8+128+rsp]
 
1052
        add rcx, rax
 
1053
        adc rbp, rdx
 
1054
        adc r12, 0
 
1055
        mov qword ptr [56+r11], rcx
 
1056
        mov r9, r12
 
1057
        mov r8, rbp
 
1058
        mov rcx, r10
 
1059
        mov rax, qword ptr [-120+128+rsp]
 
1060
        mul qword ptr [72+128+rsp]
 
1061
        add r8, rax
 
1062
        adc r9, rdx
 
1063
        adc rcx, 0
 
1064
        mov rax, qword ptr [-112+128+rsp]
 
1065
        mul qword ptr [64+128+rsp]
 
1066
        add r8, rax
 
1067
        adc r9, rdx
 
1068
        adc rcx, 0
 
1069
        mov rax, qword ptr [-104+128+rsp]
 
1070
        mul qword ptr [56+128+rsp]
 
1071
        add r8, rax
 
1072
        adc r9, rdx
 
1073
        adc rcx, 0
 
1074
        mov rax, qword ptr [-96+128+rsp]
 
1075
        mul qword ptr [48+128+rsp]
 
1076
        add r8, rax
 
1077
        adc r9, rdx
 
1078
        adc rcx, 0
 
1079
        mov rax, qword ptr [-88+128+rsp]
 
1080
        mul qword ptr [40+128+rsp]
 
1081
        add r8, rax
 
1082
        adc r9, rdx
 
1083
        adc rcx, 0
 
1084
        mov rax, qword ptr [-80+128+rsp]
 
1085
        mul qword ptr [32+128+rsp]
 
1086
        add r8, rax
 
1087
        adc r9, rdx
 
1088
        adc rcx, 0
 
1089
        mov rax, qword ptr [-72+128+rsp]
 
1090
        mul qword ptr [24+128+rsp]
 
1091
        add r8, rax
 
1092
        adc r9, rdx
 
1093
        adc rcx, 0
 
1094
        mov rax, qword ptr [-64+128+rsp]
 
1095
        mul qword ptr [16+128+rsp]
 
1096
        add r8, rax
 
1097
        adc r9, rdx
 
1098
        adc rcx, 0
 
1099
        mov rbp, r9
 
1100
        mov r12, rcx
 
1101
        mov rax, qword ptr [-56+128+rsp]
 
1102
        mul qword ptr [8+128+rsp]
 
1103
        add r8, rax
 
1104
        adc rbp, rdx
 
1105
        adc r12, 0
 
1106
        mov qword ptr [64+r11], r8
 
1107
        mov r9, r12
 
1108
        mov rcx, rbp
 
1109
        mov r8, r10
 
1110
        mov rax, qword ptr [-120+128+rsp]
 
1111
        mul qword ptr [80+128+rsp]
 
1112
        add rcx, rax
 
1113
        adc r9, rdx
 
1114
        adc r8, 0
 
1115
        mov rax, qword ptr [-112+128+rsp]
 
1116
        mul qword ptr [72+128+rsp]
 
1117
        add rcx, rax
 
1118
        adc r9, rdx
 
1119
        adc r8, 0
 
1120
        mov rax, qword ptr [-104+128+rsp]
 
1121
        mul qword ptr [64+128+rsp]
 
1122
        add rcx, rax
 
1123
        adc r9, rdx
 
1124
        adc r8, 0
 
1125
        mov rax, qword ptr [-96+128+rsp]
 
1126
        mul qword ptr [56+128+rsp]
 
1127
        add rcx, rax
 
1128
        adc r9, rdx
 
1129
        adc r8, 0
 
1130
        mov rax, qword ptr [-88+128+rsp]
 
1131
        mul qword ptr [48+128+rsp]
 
1132
        add rcx, rax
 
1133
        adc r9, rdx
 
1134
        adc r8, 0
 
1135
        mov rax, qword ptr [-80+128+rsp]
 
1136
        mul qword ptr [40+128+rsp]
 
1137
        add rcx, rax
 
1138
        adc r9, rdx
 
1139
        adc r8, 0
 
1140
        mov rax, qword ptr [-72+128+rsp]
 
1141
        mul qword ptr [32+128+rsp]
 
1142
        add rcx, rax
 
1143
        adc r9, rdx
 
1144
        adc r8, 0
 
1145
        mov rax, qword ptr [-64+128+rsp]
 
1146
        mul qword ptr [24+128+rsp]
 
1147
        add rcx, rax
 
1148
        adc r9, rdx
 
1149
        adc r8, 0
 
1150
        mov rax, qword ptr [-56+128+rsp]
 
1151
        mul qword ptr [16+128+rsp]
 
1152
        add rcx, rax
 
1153
        adc r9, rdx
 
1154
        adc r8, 0
 
1155
        mov rbp, r9
 
1156
        mov r12, r8
 
1157
        mov rax, qword ptr [-48+128+rsp]
 
1158
        mul qword ptr [8+128+rsp]
 
1159
        add rcx, rax
 
1160
        adc rbp, rdx
 
1161
        adc r12, 0
 
1162
        mov qword ptr [72+r11], rcx
 
1163
        mov r9, r12
 
1164
        mov r8, rbp
 
1165
        mov rcx, r10
 
1166
        mov rax, qword ptr [-120+128+rsp]
 
1167
        mul qword ptr [88+128+rsp]
 
1168
        add r8, rax
 
1169
        adc r9, rdx
 
1170
        adc rcx, 0
 
1171
        mov rax, qword ptr [-112+128+rsp]
 
1172
        mul qword ptr [80+128+rsp]
 
1173
        add r8, rax
 
1174
        adc r9, rdx
 
1175
        adc rcx, 0
 
1176
        mov rax, qword ptr [-104+128+rsp]
 
1177
        mul qword ptr [72+128+rsp]
 
1178
        add r8, rax
 
1179
        adc r9, rdx
 
1180
        adc rcx, 0
 
1181
        mov rax, qword ptr [-96+128+rsp]
 
1182
        mul qword ptr [64+128+rsp]
 
1183
        add r8, rax
 
1184
        adc r9, rdx
 
1185
        adc rcx, 0
 
1186
        mov rax, qword ptr [-88+128+rsp]
 
1187
        mul qword ptr [56+128+rsp]
 
1188
        add r8, rax
 
1189
        adc r9, rdx
 
1190
        adc rcx, 0
 
1191
        mov rax, qword ptr [-80+128+rsp]
 
1192
        mul qword ptr [48+128+rsp]
 
1193
        add r8, rax
 
1194
        adc r9, rdx
 
1195
        adc rcx, 0
 
1196
        mov rax, qword ptr [-72+128+rsp]
 
1197
        mul qword ptr [40+128+rsp]
 
1198
        add r8, rax
 
1199
        adc r9, rdx
 
1200
        adc rcx, 0
 
1201
        mov rax, qword ptr [-64+128+rsp]
 
1202
        mul qword ptr [32+128+rsp]
 
1203
        add r8, rax
 
1204
        adc r9, rdx
 
1205
        adc rcx, 0
 
1206
        mov rax, qword ptr [-56+128+rsp]
 
1207
        mul qword ptr [24+128+rsp]
 
1208
        add r8, rax
 
1209
        adc r9, rdx
 
1210
        adc rcx, 0
 
1211
        mov rax, qword ptr [-48+128+rsp]
 
1212
        mul qword ptr [16+128+rsp]
 
1213
        add r8, rax
 
1214
        adc r9, rdx
 
1215
        adc rcx, 0
 
1216
        mov rbp, r9
 
1217
        mov r12, rcx
 
1218
        mov rax, qword ptr [-40+128+rsp]
 
1219
        mul qword ptr [8+128+rsp]
 
1220
        add r8, rax
 
1221
        adc rbp, rdx
 
1222
        adc r12, 0
 
1223
        mov qword ptr [80+r11], r8
 
1224
        mov r9, r12
 
1225
        mov rcx, rbp
 
1226
        mov r8, r10
 
1227
        mov rax, qword ptr [-120+128+rsp]
 
1228
        mul qword ptr [96+128+rsp]
 
1229
        add rcx, rax
 
1230
        adc r9, rdx
 
1231
        adc r8, 0
 
1232
        mov rax, qword ptr [-112+128+rsp]
 
1233
        mul qword ptr [88+128+rsp]
 
1234
        add rcx, rax
 
1235
        adc r9, rdx
 
1236
        adc r8, 0
 
1237
        mov rax, qword ptr [-104+128+rsp]
 
1238
        mul qword ptr [80+128+rsp]
 
1239
        add rcx, rax
 
1240
        adc r9, rdx
 
1241
        adc r8, 0
 
1242
        mov rax, qword ptr [-96+128+rsp]
 
1243
        mul qword ptr [72+128+rsp]
 
1244
        add rcx, rax
 
1245
        adc r9, rdx
 
1246
        adc r8, 0
 
1247
        mov rax, qword ptr [-88+128+rsp]
 
1248
        mul qword ptr [64+128+rsp]
 
1249
        add rcx, rax
 
1250
        adc r9, rdx
 
1251
        adc r8, 0
 
1252
        mov rax, qword ptr [-80+128+rsp]
 
1253
        mul qword ptr [56+128+rsp]
 
1254
        add rcx, rax
 
1255
        adc r9, rdx
 
1256
        adc r8, 0
 
1257
        mov rax, qword ptr [-72+128+rsp]
 
1258
        mul qword ptr [48+128+rsp]
 
1259
        add rcx, rax
 
1260
        adc r9, rdx
 
1261
        adc r8, 0
 
1262
        mov rax, qword ptr [-64+128+rsp]
 
1263
        mul qword ptr [40+128+rsp]
 
1264
        add rcx, rax
 
1265
        adc r9, rdx
 
1266
        adc r8, 0
 
1267
        mov rax, qword ptr [-56+128+rsp]
 
1268
        mul qword ptr [32+128+rsp]
 
1269
        add rcx, rax
 
1270
        adc r9, rdx
 
1271
        adc r8, 0
 
1272
        mov rax, qword ptr [-48+128+rsp]
 
1273
        mul qword ptr [24+128+rsp]
 
1274
        add rcx, rax
 
1275
        adc r9, rdx
 
1276
        adc r8, 0
 
1277
        mov rax, qword ptr [-40+128+rsp]
 
1278
        mul qword ptr [16+128+rsp]
 
1279
        add rcx, rax
 
1280
        adc r9, rdx
 
1281
        adc r8, 0
 
1282
        mov rbp, r9
 
1283
        mov r12, r8
 
1284
        mov rax, qword ptr [-32+128+rsp]
 
1285
        mul qword ptr [8+128+rsp]
 
1286
        add rcx, rax
 
1287
        adc rbp, rdx
 
1288
        adc r12, 0
 
1289
        mov qword ptr [88+r11], rcx
 
1290
        mov r9, r12
 
1291
        mov r8, rbp
 
1292
        mov rcx, r10
 
1293
        mov rax, qword ptr [-120+128+rsp]
 
1294
        mul qword ptr [104+128+rsp]
 
1295
        add r8, rax
 
1296
        adc r9, rdx
 
1297
        adc rcx, 0
 
1298
        mov rax, qword ptr [-112+128+rsp]
 
1299
        mul qword ptr [96+128+rsp]
 
1300
        add r8, rax
 
1301
        adc r9, rdx
 
1302
        adc rcx, 0
 
1303
        mov rax, qword ptr [-104+128+rsp]
 
1304
        mul qword ptr [88+128+rsp]
 
1305
        add r8, rax
 
1306
        adc r9, rdx
 
1307
        adc rcx, 0
 
1308
        mov rax, qword ptr [-96+128+rsp]
 
1309
        mul qword ptr [80+128+rsp]
 
1310
        add r8, rax
 
1311
        adc r9, rdx
 
1312
        adc rcx, 0
 
1313
        mov rax, qword ptr [-88+128+rsp]
 
1314
        mul qword ptr [72+128+rsp]
 
1315
        add r8, rax
 
1316
        adc r9, rdx
 
1317
        adc rcx, 0
 
1318
        mov rax, qword ptr [-80+128+rsp]
 
1319
        mul qword ptr [64+128+rsp]
 
1320
        add r8, rax
 
1321
        adc r9, rdx
 
1322
        adc rcx, 0
 
1323
        mov rax, qword ptr [-72+128+rsp]
 
1324
        mul qword ptr [56+128+rsp]
 
1325
        add r8, rax
 
1326
        adc r9, rdx
 
1327
        adc rcx, 0
 
1328
        mov rax, qword ptr [-64+128+rsp]
 
1329
        mul qword ptr [48+128+rsp]
 
1330
        add r8, rax
 
1331
        adc r9, rdx
 
1332
        adc rcx, 0
 
1333
        mov rax, qword ptr [-56+128+rsp]
 
1334
        mul qword ptr [40+128+rsp]
 
1335
        add r8, rax
 
1336
        adc r9, rdx
 
1337
        adc rcx, 0
 
1338
        mov rax, qword ptr [-48+128+rsp]
 
1339
        mul qword ptr [32+128+rsp]
 
1340
        add r8, rax
 
1341
        adc r9, rdx
 
1342
        adc rcx, 0
 
1343
        mov rax, qword ptr [-40+128+rsp]
 
1344
        mul qword ptr [24+128+rsp]
 
1345
        add r8, rax
 
1346
        adc r9, rdx
 
1347
        adc rcx, 0
 
1348
        mov rax, qword ptr [-32+128+rsp]
 
1349
        mul qword ptr [16+128+rsp]
 
1350
        add r8, rax
 
1351
        adc r9, rdx
 
1352
        adc rcx, 0
 
1353
        mov rbp, r9
 
1354
        mov r12, rcx
 
1355
        mov rax, qword ptr [-24+128+rsp]
 
1356
        mul qword ptr [8+128+rsp]
 
1357
        add r8, rax
 
1358
        adc rbp, rdx
 
1359
        adc r12, 0
 
1360
        mov qword ptr [96+r11], r8
 
1361
        mov r9, r12
 
1362
        mov rcx, rbp
 
1363
        mov r8, r10
 
1364
        mov rax, qword ptr [-120+128+rsp]
 
1365
        mul qword ptr [112+128+rsp]
 
1366
        add rcx, rax
 
1367
        adc r9, rdx
 
1368
        adc r8, 0
 
1369
        mov rax, qword ptr [-112+128+rsp]
 
1370
        mul qword ptr [104+128+rsp]
 
1371
        add rcx, rax
 
1372
        adc r9, rdx
 
1373
        adc r8, 0
 
1374
        mov rax, qword ptr [-104+128+rsp]
 
1375
        mul qword ptr [96+128+rsp]
 
1376
        add rcx, rax
 
1377
        adc r9, rdx
 
1378
        adc r8, 0
 
1379
        mov rax, qword ptr [-96+128+rsp]
 
1380
        mul qword ptr [88+128+rsp]
 
1381
        add rcx, rax
 
1382
        adc r9, rdx
 
1383
        adc r8, 0
 
1384
        mov rax, qword ptr [-88+128+rsp]
 
1385
        mul qword ptr [80+128+rsp]
 
1386
        add rcx, rax
 
1387
        adc r9, rdx
 
1388
        adc r8, 0
 
1389
        mov rax, qword ptr [-80+128+rsp]
 
1390
        mul qword ptr [72+128+rsp]
 
1391
        add rcx, rax
 
1392
        adc r9, rdx
 
1393
        adc r8, 0
 
1394
        mov rax, qword ptr [-72+128+rsp]
 
1395
        mul qword ptr [64+128+rsp]
 
1396
        add rcx, rax
 
1397
        adc r9, rdx
 
1398
        adc r8, 0
 
1399
        mov rax, qword ptr [-64+128+rsp]
 
1400
        mul qword ptr [56+128+rsp]
 
1401
        add rcx, rax
 
1402
        adc r9, rdx
 
1403
        adc r8, 0
 
1404
        mov rax, qword ptr [-56+128+rsp]
 
1405
        mul qword ptr [48+128+rsp]
 
1406
        add rcx, rax
 
1407
        adc r9, rdx
 
1408
        adc r8, 0
 
1409
        mov rax, qword ptr [-48+128+rsp]
 
1410
        mul qword ptr [40+128+rsp]
 
1411
        add rcx, rax
 
1412
        adc r9, rdx
 
1413
        adc r8, 0
 
1414
        mov rax, qword ptr [-40+128+rsp]
 
1415
        mul qword ptr [32+128+rsp]
 
1416
        add rcx, rax
 
1417
        adc r9, rdx
 
1418
        adc r8, 0
 
1419
        mov rax, qword ptr [-32+128+rsp]
 
1420
        mul qword ptr [24+128+rsp]
 
1421
        add rcx, rax
 
1422
        adc r9, rdx
 
1423
        adc r8, 0
 
1424
        mov rax, qword ptr [-24+128+rsp]
 
1425
        mul qword ptr [16+128+rsp]
 
1426
        add rcx, rax
 
1427
        adc r9, rdx
 
1428
        adc r8, 0
 
1429
        mov rbp, r9
 
1430
        mov r12, r8
 
1431
        mov rax, qword ptr [-16+128+rsp]
 
1432
        mul qword ptr [8+128+rsp]
 
1433
        add rcx, rax
 
1434
        adc rbp, rdx
 
1435
        adc r12, 0
 
1436
        mov qword ptr [104+r11], rcx
 
1437
        mov r9, r12
 
1438
        mov r8, rbp
 
1439
        mov rcx, r10
 
1440
        mov rax, qword ptr [-120+128+rsp]
 
1441
        mul qword ptr [120+128+rsp]
 
1442
        add r8, rax
 
1443
        adc r9, rdx
 
1444
        adc rcx, 0
 
1445
        mov rax, qword ptr [-112+128+rsp]
 
1446
        mul qword ptr [112+128+rsp]
 
1447
        add r8, rax
 
1448
        adc r9, rdx
 
1449
        adc rcx, 0
 
1450
        mov rax, qword ptr [-104+128+rsp]
 
1451
        mul qword ptr [104+128+rsp]
 
1452
        add r8, rax
 
1453
        adc r9, rdx
 
1454
        adc rcx, 0
 
1455
        mov rax, qword ptr [-96+128+rsp]
 
1456
        mul qword ptr [96+128+rsp]
 
1457
        add r8, rax
 
1458
        adc r9, rdx
 
1459
        adc rcx, 0
 
1460
        mov rax, qword ptr [-88+128+rsp]
 
1461
        mul qword ptr [88+128+rsp]
 
1462
        add r8, rax
 
1463
        adc r9, rdx
 
1464
        adc rcx, 0
 
1465
        mov rax, qword ptr [-80+128+rsp]
 
1466
        mul qword ptr [80+128+rsp]
 
1467
        add r8, rax
 
1468
        adc r9, rdx
 
1469
        adc rcx, 0
 
1470
        mov rax, qword ptr [-72+128+rsp]
 
1471
        mul qword ptr [72+128+rsp]
 
1472
        add r8, rax
 
1473
        adc r9, rdx
 
1474
        adc rcx, 0
 
1475
        mov rax, qword ptr [-64+128+rsp]
 
1476
        mul qword ptr [64+128+rsp]
 
1477
        add r8, rax
 
1478
        adc r9, rdx
 
1479
        adc rcx, 0
 
1480
        mov rax, qword ptr [-56+128+rsp]
 
1481
        mul qword ptr [56+128+rsp]
 
1482
        add r8, rax
 
1483
        adc r9, rdx
 
1484
        adc rcx, 0
 
1485
        mov rax, qword ptr [-48+128+rsp]
 
1486
        mul qword ptr [48+128+rsp]
 
1487
        add r8, rax
 
1488
        adc r9, rdx
 
1489
        adc rcx, 0
 
1490
        mov rax, qword ptr [-40+128+rsp]
 
1491
        mul qword ptr [40+128+rsp]
 
1492
        add r8, rax
 
1493
        adc r9, rdx
 
1494
        adc rcx, 0
 
1495
        mov rax, qword ptr [-32+128+rsp]
 
1496
        mul qword ptr [32+128+rsp]
 
1497
        add r8, rax
 
1498
        adc r9, rdx
 
1499
        adc rcx, 0
 
1500
        mov rax, qword ptr [-24+128+rsp]
 
1501
        mul qword ptr [24+128+rsp]
 
1502
        add r8, rax
 
1503
        adc r9, rdx
 
1504
        adc rcx, 0
 
1505
        mov rax, qword ptr [-16+128+rsp]
 
1506
        mul qword ptr [16+128+rsp]
 
1507
        add r8, rax
 
1508
        adc r9, rdx
 
1509
        adc rcx, 0
 
1510
        mov rbp, r9
 
1511
        mov r12, rcx
 
1512
        mov rax, qword ptr [-8+128+rsp]
 
1513
        mul qword ptr [8+128+rsp]
 
1514
        add r8, rax
 
1515
        adc rbp, rdx
 
1516
        adc r12, 0
 
1517
        mov qword ptr [112+r11], r8
 
1518
        mov r9, r12
 
1519
        mov rcx, rbp
 
1520
        mov r8, r10
 
1521
        mov rax, qword ptr [-120+128+rsp]
 
1522
        mul qword ptr [128+128+rsp]
 
1523
        add rcx, rax
 
1524
        adc r9, rdx
 
1525
        adc r8, 0
 
1526
        mov rax, qword ptr [-112+128+rsp]
 
1527
        mul qword ptr [120+128+rsp]
 
1528
        add rcx, rax
 
1529
        adc r9, rdx
 
1530
        adc r8, 0
 
1531
        mov rax, qword ptr [-104+128+rsp]
 
1532
        mul qword ptr [112+128+rsp]
 
1533
        add rcx, rax
 
1534
        adc r9, rdx
 
1535
        adc r8, 0
 
1536
        mov rax, qword ptr [-96+128+rsp]
 
1537
        mul qword ptr [104+128+rsp]
 
1538
        add rcx, rax
 
1539
        adc r9, rdx
 
1540
        adc r8, 0
 
1541
        mov rax, qword ptr [-88+128+rsp]
 
1542
        mul qword ptr [96+128+rsp]
 
1543
        add rcx, rax
 
1544
        adc r9, rdx
 
1545
        adc r8, 0
 
1546
        mov rax, qword ptr [-80+128+rsp]
 
1547
        mul qword ptr [88+128+rsp]
 
1548
        add rcx, rax
 
1549
        adc r9, rdx
 
1550
        adc r8, 0
 
1551
        mov rax, qword ptr [-72+128+rsp]
 
1552
        mul qword ptr [80+128+rsp]
 
1553
        add rcx, rax
 
1554
        adc r9, rdx
 
1555
        adc r8, 0
 
1556
        mov rax, qword ptr [-64+128+rsp]
 
1557
        mul qword ptr [72+128+rsp]
 
1558
        add rcx, rax
 
1559
        adc r9, rdx
 
1560
        adc r8, 0
 
1561
        mov rax, qword ptr [-56+128+rsp]
 
1562
        mul qword ptr [64+128+rsp]
 
1563
        add rcx, rax
 
1564
        adc r9, rdx
 
1565
        adc r8, 0
 
1566
        mov rax, qword ptr [-48+128+rsp]
 
1567
        mul qword ptr [56+128+rsp]
 
1568
        add rcx, rax
 
1569
        adc r9, rdx
 
1570
        adc r8, 0
 
1571
        mov rax, qword ptr [-40+128+rsp]
 
1572
        mul qword ptr [48+128+rsp]
 
1573
        add rcx, rax
 
1574
        adc r9, rdx
 
1575
        adc r8, 0
 
1576
        mov rax, qword ptr [-32+128+rsp]
 
1577
        mul qword ptr [40+128+rsp]
 
1578
        add rcx, rax
 
1579
        adc r9, rdx
 
1580
        adc r8, 0
 
1581
        mov rax, qword ptr [-24+128+rsp]
 
1582
        mul qword ptr [32+128+rsp]
 
1583
        add rcx, rax
 
1584
        adc r9, rdx
 
1585
        adc r8, 0
 
1586
        mov rax, qword ptr [-16+128+rsp]
 
1587
        mul qword ptr [24+128+rsp]
 
1588
        add rcx, rax
 
1589
        adc r9, rdx
 
1590
        adc r8, 0
 
1591
        mov rax, qword ptr [-8+128+rsp]
 
1592
        mul qword ptr [16+128+rsp]
 
1593
        add rcx, rax
 
1594
        adc r9, rdx
 
1595
        adc r8, 0
 
1596
        mov rbp, r9
 
1597
        mov r12, r8
 
1598
        mov rax, qword ptr [128+rsp]
 
1599
        mul qword ptr [8+128+rsp]
 
1600
        add rcx, rax
 
1601
        adc rbp, rdx
 
1602
        adc r12, 0
 
1603
        mov qword ptr [120+r11], rcx
 
1604
        mov r9, r12
 
1605
        mov r8, rbp
 
1606
        mov rcx, r10
 
1607
        mov rax, qword ptr [-112+128+rsp]
 
1608
        mul qword ptr [128+128+rsp]
 
1609
        add r8, rax
 
1610
        adc r9, rdx
 
1611
        adc rcx, 0
 
1612
        mov rax, qword ptr [-104+128+rsp]
 
1613
        mul qword ptr [120+128+rsp]
 
1614
        add r8, rax
 
1615
        adc r9, rdx
 
1616
        adc rcx, 0
 
1617
        mov rax, qword ptr [-96+128+rsp]
 
1618
        mul qword ptr [112+128+rsp]
 
1619
        add r8, rax
 
1620
        adc r9, rdx
 
1621
        adc rcx, 0
 
1622
        mov rax, qword ptr [-88+128+rsp]
 
1623
        mul qword ptr [104+128+rsp]
 
1624
        add r8, rax
 
1625
        adc r9, rdx
 
1626
        adc rcx, 0
 
1627
        mov rax, qword ptr [-80+128+rsp]
 
1628
        mul qword ptr [96+128+rsp]
 
1629
        add r8, rax
 
1630
        adc r9, rdx
 
1631
        adc rcx, 0
 
1632
        mov rax, qword ptr [-72+128+rsp]
 
1633
        mul qword ptr [88+128+rsp]
 
1634
        add r8, rax
 
1635
        adc r9, rdx
 
1636
        adc rcx, 0
 
1637
        mov rax, qword ptr [-64+128+rsp]
 
1638
        mul qword ptr [80+128+rsp]
 
1639
        add r8, rax
 
1640
        adc r9, rdx
 
1641
        adc rcx, 0
 
1642
        mov rax, qword ptr [-56+128+rsp]
 
1643
        mul qword ptr [72+128+rsp]
 
1644
        add r8, rax
 
1645
        adc r9, rdx
 
1646
        adc rcx, 0
 
1647
        mov rax, qword ptr [-48+128+rsp]
 
1648
        mul qword ptr [64+128+rsp]
 
1649
        add r8, rax
 
1650
        adc r9, rdx
 
1651
        adc rcx, 0
 
1652
        mov rax, qword ptr [-40+128+rsp]
 
1653
        mul qword ptr [56+128+rsp]
 
1654
        add r8, rax
 
1655
        adc r9, rdx
 
1656
        adc rcx, 0
 
1657
        mov rax, qword ptr [-32+128+rsp]
 
1658
        mul qword ptr [48+128+rsp]
 
1659
        add r8, rax
 
1660
        adc r9, rdx
 
1661
        adc rcx, 0
 
1662
        mov rax, qword ptr [-24+128+rsp]
 
1663
        mul qword ptr [40+128+rsp]
 
1664
        add r8, rax
 
1665
        adc r9, rdx
 
1666
        adc rcx, 0
 
1667
        mov rax, qword ptr [-16+128+rsp]
 
1668
        mul qword ptr [32+128+rsp]
 
1669
        add r8, rax
 
1670
        adc r9, rdx
 
1671
        adc rcx, 0
 
1672
        mov rax, qword ptr [-8+128+rsp]
 
1673
        mul qword ptr [24+128+rsp]
 
1674
        add r8, rax
 
1675
        adc r9, rdx
 
1676
        adc rcx, 0
 
1677
        mov rbp, r9
 
1678
        mov r12, rcx
 
1679
        mov rax, qword ptr [128+rsp]
 
1680
        mul qword ptr [16+128+rsp]
 
1681
        add r8, rax
 
1682
        adc rbp, rdx
 
1683
        adc r12, 0
 
1684
        mov qword ptr [128+r11], r8
 
1685
        mov r9, r12
 
1686
        mov rcx, rbp
 
1687
        mov r8, r10
 
1688
        mov rax, qword ptr [-104+128+rsp]
 
1689
        mul qword ptr [128+128+rsp]
 
1690
        add rcx, rax
 
1691
        adc r9, rdx
 
1692
        adc r8, 0
 
1693
        mov rax, qword ptr [-96+128+rsp]
 
1694
        mul qword ptr [120+128+rsp]
 
1695
        add rcx, rax
 
1696
        adc r9, rdx
 
1697
        adc r8, 0
 
1698
        mov rax, qword ptr [-88+128+rsp]
 
1699
        mul qword ptr [112+128+rsp]
 
1700
        add rcx, rax
 
1701
        adc r9, rdx
 
1702
        adc r8, 0
 
1703
        mov rax, qword ptr [-80+128+rsp]
 
1704
        mul qword ptr [104+128+rsp]
 
1705
        add rcx, rax
 
1706
        adc r9, rdx
 
1707
        adc r8, 0
 
1708
        mov rax, qword ptr [-72+128+rsp]
 
1709
        mul qword ptr [96+128+rsp]
 
1710
        add rcx, rax
 
1711
        adc r9, rdx
 
1712
        adc r8, 0
 
1713
        mov rax, qword ptr [-64+128+rsp]
 
1714
        mul qword ptr [88+128+rsp]
 
1715
        add rcx, rax
 
1716
        adc r9, rdx
 
1717
        adc r8, 0
 
1718
        mov rax, qword ptr [-56+128+rsp]
 
1719
        mul qword ptr [80+128+rsp]
 
1720
        add rcx, rax
 
1721
        adc r9, rdx
 
1722
        adc r8, 0
 
1723
        mov rax, qword ptr [-48+128+rsp]
 
1724
        mul qword ptr [72+128+rsp]
 
1725
        add rcx, rax
 
1726
        adc r9, rdx
 
1727
        adc r8, 0
 
1728
        mov rax, qword ptr [-40+128+rsp]
 
1729
        mul qword ptr [64+128+rsp]
 
1730
        add rcx, rax
 
1731
        adc r9, rdx
 
1732
        adc r8, 0
 
1733
        mov rax, qword ptr [-32+128+rsp]
 
1734
        mul qword ptr [56+128+rsp]
 
1735
        add rcx, rax
 
1736
        adc r9, rdx
 
1737
        adc r8, 0
 
1738
        mov rax, qword ptr [-24+128+rsp]
 
1739
        mul qword ptr [48+128+rsp]
 
1740
        add rcx, rax
 
1741
        adc r9, rdx
 
1742
        adc r8, 0
 
1743
        mov rax, qword ptr [-16+128+rsp]
 
1744
        mul qword ptr [40+128+rsp]
 
1745
        add rcx, rax
 
1746
        adc r9, rdx
 
1747
        adc r8, 0
 
1748
        mov rax, qword ptr [-8+128+rsp]
 
1749
        mul qword ptr [32+128+rsp]
 
1750
        add rcx, rax
 
1751
        adc r9, rdx
 
1752
        adc r8, 0
 
1753
        mov rbp, r9
 
1754
        mov r12, r8
 
1755
        mov rax, qword ptr [128+rsp]
 
1756
        mul qword ptr [24+128+rsp]
 
1757
        add rcx, rax
 
1758
        adc rbp, rdx
 
1759
        adc r12, 0
 
1760
        mov qword ptr [136+r11], rcx
 
1761
        mov r9, r12
 
1762
        mov r8, rbp
 
1763
        mov rcx, r10
 
1764
        mov rax, qword ptr [-96+128+rsp]
 
1765
        mul qword ptr [128+128+rsp]
 
1766
        add r8, rax
 
1767
        adc r9, rdx
 
1768
        adc rcx, 0
 
1769
        mov rax, qword ptr [-88+128+rsp]
 
1770
        mul qword ptr [120+128+rsp]
 
1771
        add r8, rax
 
1772
        adc r9, rdx
 
1773
        adc rcx, 0
 
1774
        mov rax, qword ptr [-80+128+rsp]
 
1775
        mul qword ptr [112+128+rsp]
 
1776
        add r8, rax
 
1777
        adc r9, rdx
 
1778
        adc rcx, 0
 
1779
        mov rax, qword ptr [-72+128+rsp]
 
1780
        mul qword ptr [104+128+rsp]
 
1781
        add r8, rax
 
1782
        adc r9, rdx
 
1783
        adc rcx, 0
 
1784
        mov rax, qword ptr [-64+128+rsp]
 
1785
        mul qword ptr [96+128+rsp]
 
1786
        add r8, rax
 
1787
        adc r9, rdx
 
1788
        adc rcx, 0
 
1789
        mov rax, qword ptr [-56+128+rsp]
 
1790
        mul qword ptr [88+128+rsp]
 
1791
        add r8, rax
 
1792
        adc r9, rdx
 
1793
        adc rcx, 0
 
1794
        mov rax, qword ptr [-48+128+rsp]
 
1795
        mul qword ptr [80+128+rsp]
 
1796
        add r8, rax
 
1797
        adc r9, rdx
 
1798
        adc rcx, 0
 
1799
        mov rax, qword ptr [-40+128+rsp]
 
1800
        mul qword ptr [72+128+rsp]
 
1801
        add r8, rax
 
1802
        adc r9, rdx
 
1803
        adc rcx, 0
 
1804
        mov rax, qword ptr [-32+128+rsp]
 
1805
        mul qword ptr [64+128+rsp]
 
1806
        add r8, rax
 
1807
        adc r9, rdx
 
1808
        adc rcx, 0
 
1809
        mov rax, qword ptr [-24+128+rsp]
 
1810
        mul qword ptr [56+128+rsp]
 
1811
        add r8, rax
 
1812
        adc r9, rdx
 
1813
        adc rcx, 0
 
1814
        mov rax, qword ptr [-16+128+rsp]
 
1815
        mul qword ptr [48+128+rsp]
 
1816
        add r8, rax
 
1817
        adc r9, rdx
 
1818
        adc rcx, 0
 
1819
        mov rax, qword ptr [-8+128+rsp]
 
1820
        mul qword ptr [40+128+rsp]
 
1821
        add r8, rax
 
1822
        adc r9, rdx
 
1823
        adc rcx, 0
 
1824
        mov rbp, r9
 
1825
        mov r12, rcx
 
1826
        mov rax, qword ptr [128+rsp]
 
1827
        mul qword ptr [32+128+rsp]
 
1828
        add r8, rax
 
1829
        adc rbp, rdx
 
1830
        adc r12, 0
 
1831
        mov qword ptr [144+r11], r8
 
1832
        mov r9, r12
 
1833
        mov rcx, rbp
 
1834
        mov r8, r10
 
1835
        mov rax, qword ptr [-88+128+rsp]
 
1836
        mul qword ptr [128+128+rsp]
 
1837
        add rcx, rax
 
1838
        adc r9, rdx
 
1839
        adc r8, 0
 
1840
        mov rax, qword ptr [-80+128+rsp]
 
1841
        mul qword ptr [120+128+rsp]
 
1842
        add rcx, rax
 
1843
        adc r9, rdx
 
1844
        adc r8, 0
 
1845
        mov rax, qword ptr [-72+128+rsp]
 
1846
        mul qword ptr [112+128+rsp]
 
1847
        add rcx, rax
 
1848
        adc r9, rdx
 
1849
        adc r8, 0
 
1850
        mov rax, qword ptr [-64+128+rsp]
 
1851
        mul qword ptr [104+128+rsp]
 
1852
        add rcx, rax
 
1853
        adc r9, rdx
 
1854
        adc r8, 0
 
1855
        mov rax, qword ptr [-56+128+rsp]
 
1856
        mul qword ptr [96+128+rsp]
 
1857
        add rcx, rax
 
1858
        adc r9, rdx
 
1859
        adc r8, 0
 
1860
        mov rax, qword ptr [-48+128+rsp]
 
1861
        mul qword ptr [88+128+rsp]
 
1862
        add rcx, rax
 
1863
        adc r9, rdx
 
1864
        adc r8, 0
 
1865
        mov rax, qword ptr [-40+128+rsp]
 
1866
        mul qword ptr [80+128+rsp]
 
1867
        add rcx, rax
 
1868
        adc r9, rdx
 
1869
        adc r8, 0
 
1870
        mov rax, qword ptr [-32+128+rsp]
 
1871
        mul qword ptr [72+128+rsp]
 
1872
        add rcx, rax
 
1873
        adc r9, rdx
 
1874
        adc r8, 0
 
1875
        mov rax, qword ptr [-24+128+rsp]
 
1876
        mul qword ptr [64+128+rsp]
 
1877
        add rcx, rax
 
1878
        adc r9, rdx
 
1879
        adc r8, 0
 
1880
        mov rax, qword ptr [-16+128+rsp]
 
1881
        mul qword ptr [56+128+rsp]
 
1882
        add rcx, rax
 
1883
        adc r9, rdx
 
1884
        adc r8, 0
 
1885
        mov rax, qword ptr [-8+128+rsp]
 
1886
        mul qword ptr [48+128+rsp]
 
1887
        add rcx, rax
 
1888
        adc r9, rdx
 
1889
        adc r8, 0
 
1890
        mov rbp, r9
 
1891
        mov r12, r8
 
1892
        mov rax, qword ptr [128+rsp]
 
1893
        mul qword ptr [40+128+rsp]
 
1894
        add rcx, rax
 
1895
        adc rbp, rdx
 
1896
        adc r12, 0
 
1897
        mov qword ptr [152+r11], rcx
 
1898
        mov r9, r12
 
1899
        mov r8, rbp
 
1900
        mov rcx, r10
 
1901
        mov rax, qword ptr [-80+128+rsp]
 
1902
        mul qword ptr [128+128+rsp]
 
1903
        add r8, rax
 
1904
        adc r9, rdx
 
1905
        adc rcx, 0
 
1906
        mov rax, qword ptr [-72+128+rsp]
 
1907
        mul qword ptr [120+128+rsp]
 
1908
        add r8, rax
 
1909
        adc r9, rdx
 
1910
        adc rcx, 0
 
1911
        mov rax, qword ptr [-64+128+rsp]
 
1912
        mul qword ptr [112+128+rsp]
 
1913
        add r8, rax
 
1914
        adc r9, rdx
 
1915
        adc rcx, 0
 
1916
        mov rax, qword ptr [-56+128+rsp]
 
1917
        mul qword ptr [104+128+rsp]
 
1918
        add r8, rax
 
1919
        adc r9, rdx
 
1920
        adc rcx, 0
 
1921
        mov rax, qword ptr [-48+128+rsp]
 
1922
        mul qword ptr [96+128+rsp]
 
1923
        add r8, rax
 
1924
        adc r9, rdx
 
1925
        adc rcx, 0
 
1926
        mov rax, qword ptr [-40+128+rsp]
 
1927
        mul qword ptr [88+128+rsp]
 
1928
        add r8, rax
 
1929
        adc r9, rdx
 
1930
        adc rcx, 0
 
1931
        mov rax, qword ptr [-32+128+rsp]
 
1932
        mul qword ptr [80+128+rsp]
 
1933
        add r8, rax
 
1934
        adc r9, rdx
 
1935
        adc rcx, 0
 
1936
        mov rax, qword ptr [-24+128+rsp]
 
1937
        mul qword ptr [72+128+rsp]
 
1938
        add r8, rax
 
1939
        adc r9, rdx
 
1940
        adc rcx, 0
 
1941
        mov rax, qword ptr [-16+128+rsp]
 
1942
        mul qword ptr [64+128+rsp]
 
1943
        add r8, rax
 
1944
        adc r9, rdx
 
1945
        adc rcx, 0
 
1946
        mov rax, qword ptr [-8+128+rsp]
 
1947
        mul qword ptr [56+128+rsp]
 
1948
        add r8, rax
 
1949
        adc r9, rdx
 
1950
        adc rcx, 0
 
1951
        mov rbp, r9
 
1952
        mov r12, rcx
 
1953
        mov rax, qword ptr [128+rsp]
 
1954
        mul qword ptr [48+128+rsp]
 
1955
        add r8, rax
 
1956
        adc rbp, rdx
 
1957
        adc r12, 0
 
1958
        mov qword ptr [160+r11], r8
 
1959
        mov r9, r12
 
1960
        mov rcx, rbp
 
1961
        mov r8, r10
 
1962
        mov rax, qword ptr [-72+128+rsp]
 
1963
        mul qword ptr [128+128+rsp]
 
1964
        add rcx, rax
 
1965
        adc r9, rdx
 
1966
        adc r8, 0
 
1967
        mov rax, qword ptr [-64+128+rsp]
 
1968
        mul qword ptr [120+128+rsp]
 
1969
        add rcx, rax
 
1970
        adc r9, rdx
 
1971
        adc r8, 0
 
1972
        mov rax, qword ptr [-56+128+rsp]
 
1973
        mul qword ptr [112+128+rsp]
 
1974
        add rcx, rax
 
1975
        adc r9, rdx
 
1976
        adc r8, 0
 
1977
        mov rax, qword ptr [-48+128+rsp]
 
1978
        mul qword ptr [104+128+rsp]
 
1979
        add rcx, rax
 
1980
        adc r9, rdx
 
1981
        adc r8, 0
 
1982
        mov rax, qword ptr [-40+128+rsp]
 
1983
        mul qword ptr [96+128+rsp]
 
1984
        add rcx, rax
 
1985
        adc r9, rdx
 
1986
        adc r8, 0
 
1987
        mov rax, qword ptr [-32+128+rsp]
 
1988
        mul qword ptr [88+128+rsp]
 
1989
        add rcx, rax
 
1990
        adc r9, rdx
 
1991
        adc r8, 0
 
1992
        mov rax, qword ptr [-24+128+rsp]
 
1993
        mul qword ptr [80+128+rsp]
 
1994
        add rcx, rax
 
1995
        adc r9, rdx
 
1996
        adc r8, 0
 
1997
        mov rax, qword ptr [-16+128+rsp]
 
1998
        mul qword ptr [72+128+rsp]
 
1999
        add rcx, rax
 
2000
        adc r9, rdx
 
2001
        adc r8, 0
 
2002
        mov rax, qword ptr [-8+128+rsp]
 
2003
        mul qword ptr [64+128+rsp]
 
2004
        add rcx, rax
 
2005
        adc r9, rdx
 
2006
        adc r8, 0
 
2007
        mov rbp, r9
 
2008
        mov r12, r8
 
2009
        mov rax, qword ptr [128+rsp]
 
2010
        mul qword ptr [56+128+rsp]
 
2011
        add rcx, rax
 
2012
        adc rbp, rdx
 
2013
        adc r12, 0
 
2014
        mov qword ptr [168+r11], rcx
 
2015
        mov r9, r12
 
2016
        mov r8, rbp
 
2017
        mov rcx, r10
 
2018
        mov rax, qword ptr [-64+128+rsp]
 
2019
        mul qword ptr [128+128+rsp]
 
2020
        add r8, rax
 
2021
        adc r9, rdx
 
2022
        adc rcx, 0
 
2023
        mov rax, qword ptr [-56+128+rsp]
 
2024
        mul qword ptr [120+128+rsp]
 
2025
        add r8, rax
 
2026
        adc r9, rdx
 
2027
        adc rcx, 0
 
2028
        mov rax, qword ptr [-48+128+rsp]
 
2029
        mul qword ptr [112+128+rsp]
 
2030
        add r8, rax
 
2031
        adc r9, rdx
 
2032
        adc rcx, 0
 
2033
        mov rax, qword ptr [-40+128+rsp]
 
2034
        mul qword ptr [104+128+rsp]
 
2035
        add r8, rax
 
2036
        adc r9, rdx
 
2037
        adc rcx, 0
 
2038
        mov rax, qword ptr [-32+128+rsp]
 
2039
        mul qword ptr [96+128+rsp]
 
2040
        add r8, rax
 
2041
        adc r9, rdx
 
2042
        adc rcx, 0
 
2043
        mov rax, qword ptr [-24+128+rsp]
 
2044
        mul qword ptr [88+128+rsp]
 
2045
        add r8, rax
 
2046
        adc r9, rdx
 
2047
        adc rcx, 0
 
2048
        mov rax, qword ptr [-16+128+rsp]
 
2049
        mul qword ptr [80+128+rsp]
 
2050
        add r8, rax
 
2051
        adc r9, rdx
 
2052
        adc rcx, 0
 
2053
        mov rax, qword ptr [-8+128+rsp]
 
2054
        mul qword ptr [72+128+rsp]
 
2055
        add r8, rax
 
2056
        adc r9, rdx
 
2057
        adc rcx, 0
 
2058
        mov rbp, r9
 
2059
        mov r12, rcx
 
2060
        mov rax, qword ptr [128+rsp]
 
2061
        mul qword ptr [64+128+rsp]
 
2062
        add r8, rax
 
2063
        adc rbp, rdx
 
2064
        adc r12, 0
 
2065
        mov qword ptr [176+r11], r8
 
2066
        mov r9, r12
 
2067
        mov rcx, rbp
 
2068
        mov r8, r10
 
2069
        mov rax, qword ptr [-56+128+rsp]
 
2070
        mul qword ptr [128+128+rsp]
 
2071
        add rcx, rax
 
2072
        adc r9, rdx
 
2073
        adc r8, 0
 
2074
        mov rax, qword ptr [-48+128+rsp]
 
2075
        mul qword ptr [120+128+rsp]
 
2076
        add rcx, rax
 
2077
        adc r9, rdx
 
2078
        adc r8, 0
 
2079
        mov rax, qword ptr [-40+128+rsp]
 
2080
        mul qword ptr [112+128+rsp]
 
2081
        add rcx, rax
 
2082
        adc r9, rdx
 
2083
        adc r8, 0
 
2084
        mov rax, qword ptr [-32+128+rsp]
 
2085
        mul qword ptr [104+128+rsp]
 
2086
        add rcx, rax
 
2087
        adc r9, rdx
 
2088
        adc r8, 0
 
2089
        mov rax, qword ptr [-24+128+rsp]
 
2090
        mul qword ptr [96+128+rsp]
 
2091
        add rcx, rax
 
2092
        adc r9, rdx
 
2093
        adc r8, 0
 
2094
        mov rax, qword ptr [-16+128+rsp]
 
2095
        mul qword ptr [88+128+rsp]
 
2096
        add rcx, rax
 
2097
        adc r9, rdx
 
2098
        adc r8, 0
 
2099
        mov rax, qword ptr [-8+128+rsp]
 
2100
        mul qword ptr [80+128+rsp]
 
2101
        add rcx, rax
 
2102
        adc r9, rdx
 
2103
        adc r8, 0
 
2104
        mov rbp, r9
 
2105
        mov r12, r8
 
2106
        mov rax, qword ptr [128+rsp]
 
2107
        mul qword ptr [72+128+rsp]
 
2108
        add rcx, rax
 
2109
        adc rbp, rdx
 
2110
        adc r12, 0
 
2111
        mov qword ptr [184+r11], rcx
 
2112
        mov r9, r12
 
2113
        mov r8, rbp
 
2114
        mov rcx, r10
 
2115
        mov rax, qword ptr [-48+128+rsp]
 
2116
        mul qword ptr [128+128+rsp]
 
2117
        add r8, rax
 
2118
        adc r9, rdx
 
2119
        adc rcx, 0
 
2120
        mov rax, qword ptr [-40+128+rsp]
 
2121
        mul qword ptr [120+128+rsp]
 
2122
        add r8, rax
 
2123
        adc r9, rdx
 
2124
        adc rcx, 0
 
2125
        mov rax, qword ptr [-32+128+rsp]
 
2126
        mul qword ptr [112+128+rsp]
 
2127
        add r8, rax
 
2128
        adc r9, rdx
 
2129
        adc rcx, 0
 
2130
        mov rax, qword ptr [-24+128+rsp]
 
2131
        mul qword ptr [104+128+rsp]
 
2132
        add r8, rax
 
2133
        adc r9, rdx
 
2134
        adc rcx, 0
 
2135
        mov rax, qword ptr [-16+128+rsp]
 
2136
        mul qword ptr [96+128+rsp]
 
2137
        add r8, rax
 
2138
        adc r9, rdx
 
2139
        adc rcx, 0
 
2140
        mov rax, qword ptr [-8+128+rsp]
 
2141
        mul qword ptr [88+128+rsp]
 
2142
        add r8, rax
 
2143
        adc r9, rdx
 
2144
        adc rcx, 0
 
2145
        mov rbp, r9
 
2146
        mov r12, rcx
 
2147
        mov rax, qword ptr [128+rsp]
 
2148
        mul qword ptr [80+128+rsp]
 
2149
        add r8, rax
 
2150
        adc rbp, rdx
 
2151
        adc r12, 0
 
2152
        mov qword ptr [192+r11], r8
 
2153
        mov r9, r12
 
2154
        mov rcx, rbp
 
2155
        mov r8, r10
 
2156
        mov rax, qword ptr [-40+128+rsp]
 
2157
        mul qword ptr [128+128+rsp]
 
2158
        add rcx, rax
 
2159
        adc r9, rdx
 
2160
        adc r8, 0
 
2161
        mov rax, qword ptr [-32+128+rsp]
 
2162
        mul qword ptr [120+128+rsp]
 
2163
        add rcx, rax
 
2164
        adc r9, rdx
 
2165
        adc r8, 0
 
2166
        mov rax, qword ptr [-24+128+rsp]
 
2167
        mul qword ptr [112+128+rsp]
 
2168
        add rcx, rax
 
2169
        adc r9, rdx
 
2170
        adc r8, 0
 
2171
        mov rax, qword ptr [-16+128+rsp]
 
2172
        mul qword ptr [104+128+rsp]
 
2173
        add rcx, rax
 
2174
        adc r9, rdx
 
2175
        adc r8, 0
 
2176
        mov rax, qword ptr [-8+128+rsp]
 
2177
        mul qword ptr [96+128+rsp]
 
2178
        add rcx, rax
 
2179
        adc r9, rdx
 
2180
        adc r8, 0
 
2181
        mov rbp, r9
 
2182
        mov r12, r8
 
2183
        mov rax, qword ptr [128+rsp]
 
2184
        mul qword ptr [88+128+rsp]
 
2185
        add rcx, rax
 
2186
        adc rbp, rdx
 
2187
        adc r12, 0
 
2188
        mov qword ptr [200+r11], rcx
 
2189
        mov r9, r12
 
2190
        mov r8, rbp
 
2191
        mov rcx, r10
 
2192
        mov rax, qword ptr [-32+128+rsp]
 
2193
        mul qword ptr [128+128+rsp]
 
2194
        add r8, rax
 
2195
        adc r9, rdx
 
2196
        adc rcx, 0
 
2197
        mov rax, qword ptr [-24+128+rsp]
 
2198
        mul qword ptr [120+128+rsp]
 
2199
        add r8, rax
 
2200
        adc r9, rdx
 
2201
        adc rcx, 0
 
2202
        mov rax, qword ptr [-16+128+rsp]
 
2203
        mul qword ptr [112+128+rsp]
 
2204
        add r8, rax
 
2205
        adc r9, rdx
 
2206
        adc rcx, 0
 
2207
        mov rax, qword ptr [-8+128+rsp]
 
2208
        mul qword ptr [104+128+rsp]
 
2209
        add r8, rax
 
2210
        adc r9, rdx
 
2211
        adc rcx, 0
 
2212
        mov rbp, r9
 
2213
        mov r12, rcx
 
2214
        mov rax, qword ptr [128+rsp]
 
2215
        mul qword ptr [96+128+rsp]
 
2216
        add r8, rax
 
2217
        adc rbp, rdx
 
2218
        adc r12, 0
 
2219
        mov qword ptr [208+r11], r8
 
2220
        mov r9, r12
 
2221
        mov rcx, rbp
 
2222
        mov r8, r10
 
2223
        mov rax, qword ptr [-24+128+rsp]
 
2224
        mul qword ptr [128+128+rsp]
 
2225
        add rcx, rax
 
2226
        adc r9, rdx
 
2227
        adc r8, 0
 
2228
        mov rax, qword ptr [-16+128+rsp]
 
2229
        mul qword ptr [120+128+rsp]
 
2230
        add rcx, rax
 
2231
        adc r9, rdx
 
2232
        adc r8, 0
 
2233
        mov rax, qword ptr [-8+128+rsp]
 
2234
        mul qword ptr [112+128+rsp]
 
2235
        add rcx, rax
 
2236
        adc r9, rdx
 
2237
        adc r8, 0
 
2238
        mov rbp, r9
 
2239
        mov r12, r8
 
2240
        mov rax, qword ptr [128+rsp]
 
2241
        mul qword ptr [104+128+rsp]
 
2242
        add rcx, rax
 
2243
        adc rbp, rdx
 
2244
        adc r12, 0
 
2245
        mov qword ptr [216+r11], rcx
 
2246
        mov r9, r12
 
2247
        mov r8, rbp
 
2248
        mov rcx, r10
 
2249
        mov rax, qword ptr [-16+128+rsp]
 
2250
        mul qword ptr [128+128+rsp]
 
2251
        add r8, rax
 
2252
        adc r9, rdx
 
2253
        adc rcx, 0
 
2254
        mov rax, qword ptr [-8+128+rsp]
 
2255
        mul qword ptr [120+128+rsp]
 
2256
        add r8, rax
 
2257
        adc r9, rdx
 
2258
        adc rcx, 0
 
2259
        mov rbp, r9
 
2260
        mov r12, rcx
 
2261
        mov rax, qword ptr [128+rsp]
 
2262
        mul qword ptr [112+128+rsp]
 
2263
        add r8, rax
 
2264
        adc rbp, rdx
 
2265
        adc r12, 0
 
2266
        mov qword ptr [224+r11], r8
 
2267
        mov r9, r12
 
2268
        mov rcx, rbp
 
2269
        mov r8, r10
 
2270
        mov rax, qword ptr [-8+128+rsp]
 
2271
        mul qword ptr [128+128+rsp]
 
2272
        add rcx, rax
 
2273
        adc r9, rdx
 
2274
        adc r8, 0
 
2275
        mov r12, r8
 
2276
        mov rbp, r9
 
2277
        mov rax, qword ptr [128+rsp]
 
2278
        mul qword ptr [120+128+rsp]
 
2279
        add rcx, rax
 
2280
        adc rbp, rdx
 
2281
        adc r12, 0
 
2282
        mov qword ptr [232+r11], rcx
 
2283
        mov r8, rbp
 
2284
        mov rcx, r12
 
2285
        mov rax, qword ptr [128+rsp]
 
2286
        mul qword ptr [128+128+rsp]
 
2287
        add r8, rax
 
2288
        adc rcx, rdx
 
2289
        adc r10, 0
 
2290
        mov qword ptr [240+r11], r8
 
2291
        mov esi, dword ptr [rsi]
 
2292
        xor esi, dword ptr [rdi]
 
2293
        test rcx, rcx
 
2294
        mov qword ptr [248+r11], rcx
 
2295
        mov dword ptr [8+rbx], 32
 
2296
        jne L76
 
2297
        ALIGN 16
 
2298
L84:
 
2299
        mov edx, dword ptr [8+rbx]
 
2300
        lea edi, dword ptr [-1+rdx]
 
2301
        test edi, edi
 
2302
        mov dword ptr [8+rbx], edi
 
2303
        je L76
 
2304
        lea eax, dword ptr [-2+rdx]
 
2305
        cmp dword ptr [r11+rax*8], 0
 
2306
        je L84
 
2307
L76:
 
2308
        mov edx, dword ptr [8+rbx]
 
2309
        xor r11d, r11d
 
2310
        test edx, edx
 
2311
        cmovne r11d, esi
 
2312
        mov dword ptr [rbx], r11d
 
2313
        add rsp, 136+128
 
2314
        pop rbx
 
2315
        pop rbp
 
2316
        pop r12
 
2317
 
 
2318
        pop rsi
 
2319
        pop rdi
 
2320
 
 
2321
        ret
 
2322
 
 
2323
s_mp_mul_comba_16 ENDP
 
2324
 
 
2325
; void s_mp_mul_comba_32(const mp_int *A, const mp_int *B, mp_int *C)
 
2326
 
 
2327
 
 
2328
        ALIGN 16
 
2329
s_mp_mul_comba_32 PROC ; a "FRAME" function
 
2330
 
 
2331
        push rdi
 
2332
        push rsi
 
2333
 
 
2334
        mov rdi, rcx
 
2335
        mov rsi, rdx
 
2336
        mov rdx, r8
 
2337
 
 
2338
        push rbp
 
2339
        mov rbp, rsp
 
2340
        push r13
 
2341
        mov r13, rdx
 
2342
;        mov edx, 256
 
2343
        mov r8d, 256
 
2344
        push r12
 
2345
        mov r12, rsi
 
2346
        push rbx
 
2347
        mov rbx, rdi
 
2348
        sub rsp, 520+32                 ; +32 for "home" storage
 
2349
;        mov rsi, qword ptr [16+rdi]
 
2350
;        lea rdi, qword ptr [-544+rbp]
 
2351
        mov rdx, qword ptr [16+rdi]
 
2352
        lea rcx, qword ptr [-544+rbp]
 
2353
        call memcpy
 
2354
;        mov rsi, qword ptr [16+r12]
 
2355
;        lea rdi, qword ptr [-288+rbp]
 
2356
;        mov edx, 256
 
2357
        mov rdx, qword ptr [16+r12]
 
2358
        lea rcx, qword ptr [-288+rbp]
 
2359
        mov r8d, 256
 
2360
        call memcpy
 
2361
        mov r9, qword ptr [16+r13]
 
2362
        xor r8d, r8d
 
2363
        mov rsi, r8
 
2364
        mov rdi, r8
 
2365
        mov r10, r8
 
2366
        mov rax, qword ptr [-544+rbp]
 
2367
        mul qword ptr [-288+rbp]
 
2368
        add rsi, rax
 
2369
        adc rdi, rdx
 
2370
        adc r10, 0
 
2371
        mov qword ptr [r9], rsi
 
2372
        mov rsi, r10
 
2373
        mov r10, r8
 
2374
        mov rax, qword ptr [-544+rbp]
 
2375
        mul qword ptr [-280+rbp]
 
2376
        add rdi, rax
 
2377
        adc rsi, rdx
 
2378
        adc r10, 0
 
2379
        mov r11, r10
 
2380
        mov rax, qword ptr [-536+rbp]
 
2381
        mul qword ptr [-288+rbp]
 
2382
        add rdi, rax
 
2383
        adc rsi, rdx
 
2384
        adc r11, 0
 
2385
        mov qword ptr [8+r9], rdi
 
2386
        mov rdi, r11
 
2387
        mov r11, r8
 
2388
        mov rax, qword ptr [-544+rbp]
 
2389
        mul qword ptr [-272+rbp]
 
2390
        add rsi, rax
 
2391
        adc rdi, rdx
 
2392
        adc r11, 0
 
2393
        mov rcx, r11
 
2394
        mov rax, qword ptr [-536+rbp]
 
2395
        mul qword ptr [-280+rbp]
 
2396
        add rsi, rax
 
2397
        adc rdi, rdx
 
2398
        adc rcx, 0
 
2399
        mov r10, rdi
 
2400
        mov r11, rcx
 
2401
        mov rax, qword ptr [-528+rbp]
 
2402
        mul qword ptr [-288+rbp]
 
2403
        add rsi, rax
 
2404
        adc r10, rdx
 
2405
        adc r11, 0
 
2406
        mov qword ptr [16+r9], rsi
 
2407
        mov rdi, r11
 
2408
        mov rcx, r10
 
2409
        mov rsi, r8
 
2410
        mov rax, qword ptr [-544+rbp]
 
2411
        mul qword ptr [-264+rbp]
 
2412
        add rcx, rax
 
2413
        adc rdi, rdx
 
2414
        adc rsi, 0
 
2415
        mov rax, qword ptr [-536+rbp]
 
2416
        mul qword ptr [-272+rbp]
 
2417
        add rcx, rax
 
2418
        adc rdi, rdx
 
2419
        adc rsi, 0
 
2420
        mov rax, qword ptr [-528+rbp]
 
2421
        mul qword ptr [-280+rbp]
 
2422
        add rcx, rax
 
2423
        adc rdi, rdx
 
2424
        adc rsi, 0
 
2425
        mov r10, rdi
 
2426
        mov r11, rsi
 
2427
        mov rax, qword ptr [-520+rbp]
 
2428
        mul qword ptr [-288+rbp]
 
2429
        add rcx, rax
 
2430
        adc r10, rdx
 
2431
        adc r11, 0
 
2432
        mov qword ptr [24+r9], rcx
 
2433
        mov rdi, r11
 
2434
        mov rsi, r10
 
2435
        mov rcx, r8
 
2436
        mov rax, qword ptr [-544+rbp]
 
2437
        mul qword ptr [-256+rbp]
 
2438
        add rsi, rax
 
2439
        adc rdi, rdx
 
2440
        adc rcx, 0
 
2441
        mov rax, qword ptr [-536+rbp]
 
2442
        mul qword ptr [-264+rbp]
 
2443
        add rsi, rax
 
2444
        adc rdi, rdx
 
2445
        adc rcx, 0
 
2446
        mov rax, qword ptr [-528+rbp]
 
2447
        mul qword ptr [-272+rbp]
 
2448
        add rsi, rax
 
2449
        adc rdi, rdx
 
2450
        adc rcx, 0
 
2451
        mov rax, qword ptr [-520+rbp]
 
2452
        mul qword ptr [-280+rbp]
 
2453
        add rsi, rax
 
2454
        adc rdi, rdx
 
2455
        adc rcx, 0
 
2456
        mov r10, rdi
 
2457
        mov r11, rcx
 
2458
        mov rax, qword ptr [-512+rbp]
 
2459
        mul qword ptr [-288+rbp]
 
2460
        add rsi, rax
 
2461
        adc r10, rdx
 
2462
        adc r11, 0
 
2463
        mov qword ptr [32+r9], rsi
 
2464
        mov rdi, r11
 
2465
        mov rcx, r10
 
2466
        mov rsi, r8
 
2467
        mov rax, qword ptr [-544+rbp]
 
2468
        mul qword ptr [-248+rbp]
 
2469
        add rcx, rax
 
2470
        adc rdi, rdx
 
2471
        adc rsi, 0
 
2472
        mov rax, qword ptr [-536+rbp]
 
2473
        mul qword ptr [-256+rbp]
 
2474
        add rcx, rax
 
2475
        adc rdi, rdx
 
2476
        adc rsi, 0
 
2477
        mov rax, qword ptr [-528+rbp]
 
2478
        mul qword ptr [-264+rbp]
 
2479
        add rcx, rax
 
2480
        adc rdi, rdx
 
2481
        adc rsi, 0
 
2482
        mov rax, qword ptr [-520+rbp]
 
2483
        mul qword ptr [-272+rbp]
 
2484
        add rcx, rax
 
2485
        adc rdi, rdx
 
2486
        adc rsi, 0
 
2487
        mov rax, qword ptr [-512+rbp]
 
2488
        mul qword ptr [-280+rbp]
 
2489
        add rcx, rax
 
2490
        adc rdi, rdx
 
2491
        adc rsi, 0
 
2492
        mov r10, rdi
 
2493
        mov r11, rsi
 
2494
        mov rax, qword ptr [-504+rbp]
 
2495
        mul qword ptr [-288+rbp]
 
2496
        add rcx, rax
 
2497
        adc r10, rdx
 
2498
        adc r11, 0
 
2499
        mov qword ptr [40+r9], rcx
 
2500
        mov rdi, r11
 
2501
        mov rsi, r10
 
2502
        mov rcx, r8
 
2503
        mov rax, qword ptr [-544+rbp]
 
2504
        mul qword ptr [-240+rbp]
 
2505
        add rsi, rax
 
2506
        adc rdi, rdx
 
2507
        adc rcx, 0
 
2508
        mov rax, qword ptr [-536+rbp]
 
2509
        mul qword ptr [-248+rbp]
 
2510
        add rsi, rax
 
2511
        adc rdi, rdx
 
2512
        adc rcx, 0
 
2513
        mov rax, qword ptr [-528+rbp]
 
2514
        mul qword ptr [-256+rbp]
 
2515
        add rsi, rax
 
2516
        adc rdi, rdx
 
2517
        adc rcx, 0
 
2518
        mov rax, qword ptr [-520+rbp]
 
2519
        mul qword ptr [-264+rbp]
 
2520
        add rsi, rax
 
2521
        adc rdi, rdx
 
2522
        adc rcx, 0
 
2523
        mov rax, qword ptr [-512+rbp]
 
2524
        mul qword ptr [-272+rbp]
 
2525
        add rsi, rax
 
2526
        adc rdi, rdx
 
2527
        adc rcx, 0
 
2528
        mov rax, qword ptr [-504+rbp]
 
2529
        mul qword ptr [-280+rbp]
 
2530
        add rsi, rax
 
2531
        adc rdi, rdx
 
2532
        adc rcx, 0
 
2533
        mov r10, rdi
 
2534
        mov r11, rcx
 
2535
        mov rax, qword ptr [-496+rbp]
 
2536
        mul qword ptr [-288+rbp]
 
2537
        add rsi, rax
 
2538
        adc r10, rdx
 
2539
        adc r11, 0
 
2540
        mov qword ptr [48+r9], rsi
 
2541
        mov rdi, r11
 
2542
        mov rcx, r10
 
2543
        mov rsi, r8
 
2544
        mov rax, qword ptr [-544+rbp]
 
2545
        mul qword ptr [-232+rbp]
 
2546
        add rcx, rax
 
2547
        adc rdi, rdx
 
2548
        adc rsi, 0
 
2549
        mov rax, qword ptr [-536+rbp]
 
2550
        mul qword ptr [-240+rbp]
 
2551
        add rcx, rax
 
2552
        adc rdi, rdx
 
2553
        adc rsi, 0
 
2554
        mov rax, qword ptr [-528+rbp]
 
2555
        mul qword ptr [-248+rbp]
 
2556
        add rcx, rax
 
2557
        adc rdi, rdx
 
2558
        adc rsi, 0
 
2559
        mov rax, qword ptr [-520+rbp]
 
2560
        mul qword ptr [-256+rbp]
 
2561
        add rcx, rax
 
2562
        adc rdi, rdx
 
2563
        adc rsi, 0
 
2564
        mov rax, qword ptr [-512+rbp]
 
2565
        mul qword ptr [-264+rbp]
 
2566
        add rcx, rax
 
2567
        adc rdi, rdx
 
2568
        adc rsi, 0
 
2569
        mov rax, qword ptr [-504+rbp]
 
2570
        mul qword ptr [-272+rbp]
 
2571
        add rcx, rax
 
2572
        adc rdi, rdx
 
2573
        adc rsi, 0
 
2574
        mov rax, qword ptr [-496+rbp]
 
2575
        mul qword ptr [-280+rbp]
 
2576
        add rcx, rax
 
2577
        adc rdi, rdx
 
2578
        adc rsi, 0
 
2579
        mov r10, rdi
 
2580
        mov r11, rsi
 
2581
        mov rax, qword ptr [-488+rbp]
 
2582
        mul qword ptr [-288+rbp]
 
2583
        add rcx, rax
 
2584
        adc r10, rdx
 
2585
        adc r11, 0
 
2586
        mov qword ptr [56+r9], rcx
 
2587
        mov rdi, r11
 
2588
        mov rsi, r10
 
2589
        mov rcx, r8
 
2590
        mov rax, qword ptr [-544+rbp]
 
2591
        mul qword ptr [-224+rbp]
 
2592
        add rsi, rax
 
2593
        adc rdi, rdx
 
2594
        adc rcx, 0
 
2595
        mov rax, qword ptr [-536+rbp]
 
2596
        mul qword ptr [-232+rbp]
 
2597
        add rsi, rax
 
2598
        adc rdi, rdx
 
2599
        adc rcx, 0
 
2600
        mov rax, qword ptr [-528+rbp]
 
2601
        mul qword ptr [-240+rbp]
 
2602
        add rsi, rax
 
2603
        adc rdi, rdx
 
2604
        adc rcx, 0
 
2605
        mov rax, qword ptr [-520+rbp]
 
2606
        mul qword ptr [-248+rbp]
 
2607
        add rsi, rax
 
2608
        adc rdi, rdx
 
2609
        adc rcx, 0
 
2610
        mov rax, qword ptr [-512+rbp]
 
2611
        mul qword ptr [-256+rbp]
 
2612
        add rsi, rax
 
2613
        adc rdi, rdx
 
2614
        adc rcx, 0
 
2615
        mov rax, qword ptr [-504+rbp]
 
2616
        mul qword ptr [-264+rbp]
 
2617
        add rsi, rax
 
2618
        adc rdi, rdx
 
2619
        adc rcx, 0
 
2620
        mov rax, qword ptr [-496+rbp]
 
2621
        mul qword ptr [-272+rbp]
 
2622
        add rsi, rax
 
2623
        adc rdi, rdx
 
2624
        adc rcx, 0
 
2625
        mov rax, qword ptr [-488+rbp]
 
2626
        mul qword ptr [-280+rbp]
 
2627
        add rsi, rax
 
2628
        adc rdi, rdx
 
2629
        adc rcx, 0
 
2630
        mov r10, rdi
 
2631
        mov r11, rcx
 
2632
        mov rax, qword ptr [-480+rbp]
 
2633
        mul qword ptr [-288+rbp]
 
2634
        add rsi, rax
 
2635
        adc r10, rdx
 
2636
        adc r11, 0
 
2637
        mov qword ptr [64+r9], rsi
 
2638
        mov rdi, r11
 
2639
        mov rcx, r10
 
2640
        mov rsi, r8
 
2641
        mov rax, qword ptr [-544+rbp]
 
2642
        mul qword ptr [-216+rbp]
 
2643
        add rcx, rax
 
2644
        adc rdi, rdx
 
2645
        adc rsi, 0
 
2646
        mov rax, qword ptr [-536+rbp]
 
2647
        mul qword ptr [-224+rbp]
 
2648
        add rcx, rax
 
2649
        adc rdi, rdx
 
2650
        adc rsi, 0
 
2651
        mov rax, qword ptr [-528+rbp]
 
2652
        mul qword ptr [-232+rbp]
 
2653
        add rcx, rax
 
2654
        adc rdi, rdx
 
2655
        adc rsi, 0
 
2656
        mov rax, qword ptr [-520+rbp]
 
2657
        mul qword ptr [-240+rbp]
 
2658
        add rcx, rax
 
2659
        adc rdi, rdx
 
2660
        adc rsi, 0
 
2661
        mov rax, qword ptr [-512+rbp]
 
2662
        mul qword ptr [-248+rbp]
 
2663
        add rcx, rax
 
2664
        adc rdi, rdx
 
2665
        adc rsi, 0
 
2666
        mov rax, qword ptr [-504+rbp]
 
2667
        mul qword ptr [-256+rbp]
 
2668
        add rcx, rax
 
2669
        adc rdi, rdx
 
2670
        adc rsi, 0
 
2671
        mov rax, qword ptr [-496+rbp]
 
2672
        mul qword ptr [-264+rbp]
 
2673
        add rcx, rax
 
2674
        adc rdi, rdx
 
2675
        adc rsi, 0
 
2676
        mov rax, qword ptr [-488+rbp]
 
2677
        mul qword ptr [-272+rbp]
 
2678
        add rcx, rax
 
2679
        adc rdi, rdx
 
2680
        adc rsi, 0
 
2681
        mov rax, qword ptr [-480+rbp]
 
2682
        mul qword ptr [-280+rbp]
 
2683
        add rcx, rax
 
2684
        adc rdi, rdx
 
2685
        adc rsi, 0
 
2686
        mov r10, rdi
 
2687
        mov r11, rsi
 
2688
        mov rax, qword ptr [-472+rbp]
 
2689
        mul qword ptr [-288+rbp]
 
2690
        add rcx, rax
 
2691
        adc r10, rdx
 
2692
        adc r11, 0
 
2693
        mov qword ptr [72+r9], rcx
 
2694
        mov rdi, r11
 
2695
        mov rsi, r10
 
2696
        mov rcx, r8
 
2697
        mov rax, qword ptr [-544+rbp]
 
2698
        mul qword ptr [-208+rbp]
 
2699
        add rsi, rax
 
2700
        adc rdi, rdx
 
2701
        adc rcx, 0
 
2702
        mov rax, qword ptr [-536+rbp]
 
2703
        mul qword ptr [-216+rbp]
 
2704
        add rsi, rax
 
2705
        adc rdi, rdx
 
2706
        adc rcx, 0
 
2707
        mov rax, qword ptr [-528+rbp]
 
2708
        mul qword ptr [-224+rbp]
 
2709
        add rsi, rax
 
2710
        adc rdi, rdx
 
2711
        adc rcx, 0
 
2712
        mov rax, qword ptr [-520+rbp]
 
2713
        mul qword ptr [-232+rbp]
 
2714
        add rsi, rax
 
2715
        adc rdi, rdx
 
2716
        adc rcx, 0
 
2717
        mov rax, qword ptr [-512+rbp]
 
2718
        mul qword ptr [-240+rbp]
 
2719
        add rsi, rax
 
2720
        adc rdi, rdx
 
2721
        adc rcx, 0
 
2722
        mov rax, qword ptr [-504+rbp]
 
2723
        mul qword ptr [-248+rbp]
 
2724
        add rsi, rax
 
2725
        adc rdi, rdx
 
2726
        adc rcx, 0
 
2727
        mov rax, qword ptr [-496+rbp]
 
2728
        mul qword ptr [-256+rbp]
 
2729
        add rsi, rax
 
2730
        adc rdi, rdx
 
2731
        adc rcx, 0
 
2732
        mov rax, qword ptr [-488+rbp]
 
2733
        mul qword ptr [-264+rbp]
 
2734
        add rsi, rax
 
2735
        adc rdi, rdx
 
2736
        adc rcx, 0
 
2737
        mov rax, qword ptr [-480+rbp]
 
2738
        mul qword ptr [-272+rbp]
 
2739
        add rsi, rax
 
2740
        adc rdi, rdx
 
2741
        adc rcx, 0
 
2742
        mov rax, qword ptr [-472+rbp]
 
2743
        mul qword ptr [-280+rbp]
 
2744
        add rsi, rax
 
2745
        adc rdi, rdx
 
2746
        adc rcx, 0
 
2747
        mov r10, rdi
 
2748
        mov r11, rcx
 
2749
        mov rax, qword ptr [-464+rbp]
 
2750
        mul qword ptr [-288+rbp]
 
2751
        add rsi, rax
 
2752
        adc r10, rdx
 
2753
        adc r11, 0
 
2754
        mov qword ptr [80+r9], rsi
 
2755
        mov rdi, r11
 
2756
        mov rcx, r10
 
2757
        mov rsi, r8
 
2758
        mov rax, qword ptr [-544+rbp]
 
2759
        mul qword ptr [-200+rbp]
 
2760
        add rcx, rax
 
2761
        adc rdi, rdx
 
2762
        adc rsi, 0
 
2763
        mov rax, qword ptr [-536+rbp]
 
2764
        mul qword ptr [-208+rbp]
 
2765
        add rcx, rax
 
2766
        adc rdi, rdx
 
2767
        adc rsi, 0
 
2768
        mov rax, qword ptr [-528+rbp]
 
2769
        mul qword ptr [-216+rbp]
 
2770
        add rcx, rax
 
2771
        adc rdi, rdx
 
2772
        adc rsi, 0
 
2773
        mov rax, qword ptr [-520+rbp]
 
2774
        mul qword ptr [-224+rbp]
 
2775
        add rcx, rax
 
2776
        adc rdi, rdx
 
2777
        adc rsi, 0
 
2778
        mov rax, qword ptr [-512+rbp]
 
2779
        mul qword ptr [-232+rbp]
 
2780
        add rcx, rax
 
2781
        adc rdi, rdx
 
2782
        adc rsi, 0
 
2783
        mov rax, qword ptr [-504+rbp]
 
2784
        mul qword ptr [-240+rbp]
 
2785
        add rcx, rax
 
2786
        adc rdi, rdx
 
2787
        adc rsi, 0
 
2788
        mov rax, qword ptr [-496+rbp]
 
2789
        mul qword ptr [-248+rbp]
 
2790
        add rcx, rax
 
2791
        adc rdi, rdx
 
2792
        adc rsi, 0
 
2793
        mov rax, qword ptr [-488+rbp]
 
2794
        mul qword ptr [-256+rbp]
 
2795
        add rcx, rax
 
2796
        adc rdi, rdx
 
2797
        adc rsi, 0
 
2798
        mov rax, qword ptr [-480+rbp]
 
2799
        mul qword ptr [-264+rbp]
 
2800
        add rcx, rax
 
2801
        adc rdi, rdx
 
2802
        adc rsi, 0
 
2803
        mov rax, qword ptr [-472+rbp]
 
2804
        mul qword ptr [-272+rbp]
 
2805
        add rcx, rax
 
2806
        adc rdi, rdx
 
2807
        adc rsi, 0
 
2808
        mov rax, qword ptr [-464+rbp]
 
2809
        mul qword ptr [-280+rbp]
 
2810
        add rcx, rax
 
2811
        adc rdi, rdx
 
2812
        adc rsi, 0
 
2813
        mov r10, rdi
 
2814
        mov r11, rsi
 
2815
        mov rax, qword ptr [-456+rbp]
 
2816
        mul qword ptr [-288+rbp]
 
2817
        add rcx, rax
 
2818
        adc r10, rdx
 
2819
        adc r11, 0
 
2820
        mov qword ptr [88+r9], rcx
 
2821
        mov rdi, r11
 
2822
        mov rsi, r10
 
2823
        mov rcx, r8
 
2824
        mov rax, qword ptr [-544+rbp]
 
2825
        mul qword ptr [-192+rbp]
 
2826
        add rsi, rax
 
2827
        adc rdi, rdx
 
2828
        adc rcx, 0
 
2829
        mov rax, qword ptr [-536+rbp]
 
2830
        mul qword ptr [-200+rbp]
 
2831
        add rsi, rax
 
2832
        adc rdi, rdx
 
2833
        adc rcx, 0
 
2834
        mov rax, qword ptr [-528+rbp]
 
2835
        mul qword ptr [-208+rbp]
 
2836
        add rsi, rax
 
2837
        adc rdi, rdx
 
2838
        adc rcx, 0
 
2839
        mov rax, qword ptr [-520+rbp]
 
2840
        mul qword ptr [-216+rbp]
 
2841
        add rsi, rax
 
2842
        adc rdi, rdx
 
2843
        adc rcx, 0
 
2844
        mov rax, qword ptr [-512+rbp]
 
2845
        mul qword ptr [-224+rbp]
 
2846
        add rsi, rax
 
2847
        adc rdi, rdx
 
2848
        adc rcx, 0
 
2849
        mov rax, qword ptr [-504+rbp]
 
2850
        mul qword ptr [-232+rbp]
 
2851
        add rsi, rax
 
2852
        adc rdi, rdx
 
2853
        adc rcx, 0
 
2854
        mov rax, qword ptr [-496+rbp]
 
2855
        mul qword ptr [-240+rbp]
 
2856
        add rsi, rax
 
2857
        adc rdi, rdx
 
2858
        adc rcx, 0
 
2859
        mov rax, qword ptr [-488+rbp]
 
2860
        mul qword ptr [-248+rbp]
 
2861
        add rsi, rax
 
2862
        adc rdi, rdx
 
2863
        adc rcx, 0
 
2864
        mov rax, qword ptr [-480+rbp]
 
2865
        mul qword ptr [-256+rbp]
 
2866
        add rsi, rax
 
2867
        adc rdi, rdx
 
2868
        adc rcx, 0
 
2869
        mov rax, qword ptr [-472+rbp]
 
2870
        mul qword ptr [-264+rbp]
 
2871
        add rsi, rax
 
2872
        adc rdi, rdx
 
2873
        adc rcx, 0
 
2874
        mov rax, qword ptr [-464+rbp]
 
2875
        mul qword ptr [-272+rbp]
 
2876
        add rsi, rax
 
2877
        adc rdi, rdx
 
2878
        adc rcx, 0
 
2879
        mov rax, qword ptr [-456+rbp]
 
2880
        mul qword ptr [-280+rbp]
 
2881
        add rsi, rax
 
2882
        adc rdi, rdx
 
2883
        adc rcx, 0
 
2884
        mov r10, rdi
 
2885
        mov r11, rcx
 
2886
        mov rax, qword ptr [-448+rbp]
 
2887
        mul qword ptr [-288+rbp]
 
2888
        add rsi, rax
 
2889
        adc r10, rdx
 
2890
        adc r11, 0
 
2891
        mov qword ptr [96+r9], rsi
 
2892
        mov rdi, r11
 
2893
        mov rcx, r10
 
2894
        mov rsi, r8
 
2895
        mov rax, qword ptr [-544+rbp]
 
2896
        mul qword ptr [-184+rbp]
 
2897
        add rcx, rax
 
2898
        adc rdi, rdx
 
2899
        adc rsi, 0
 
2900
        mov rax, qword ptr [-536+rbp]
 
2901
        mul qword ptr [-192+rbp]
 
2902
        add rcx, rax
 
2903
        adc rdi, rdx
 
2904
        adc rsi, 0
 
2905
        mov rax, qword ptr [-528+rbp]
 
2906
        mul qword ptr [-200+rbp]
 
2907
        add rcx, rax
 
2908
        adc rdi, rdx
 
2909
        adc rsi, 0
 
2910
        mov rax, qword ptr [-520+rbp]
 
2911
        mul qword ptr [-208+rbp]
 
2912
        add rcx, rax
 
2913
        adc rdi, rdx
 
2914
        adc rsi, 0
 
2915
        mov rax, qword ptr [-512+rbp]
 
2916
        mul qword ptr [-216+rbp]
 
2917
        add rcx, rax
 
2918
        adc rdi, rdx
 
2919
        adc rsi, 0
 
2920
        mov rax, qword ptr [-504+rbp]
 
2921
        mul qword ptr [-224+rbp]
 
2922
        add rcx, rax
 
2923
        adc rdi, rdx
 
2924
        adc rsi, 0
 
2925
        mov rax, qword ptr [-496+rbp]
 
2926
        mul qword ptr [-232+rbp]
 
2927
        add rcx, rax
 
2928
        adc rdi, rdx
 
2929
        adc rsi, 0
 
2930
        mov rax, qword ptr [-488+rbp]
 
2931
        mul qword ptr [-240+rbp]
 
2932
        add rcx, rax
 
2933
        adc rdi, rdx
 
2934
        adc rsi, 0
 
2935
        mov rax, qword ptr [-480+rbp]
 
2936
        mul qword ptr [-248+rbp]
 
2937
        add rcx, rax
 
2938
        adc rdi, rdx
 
2939
        adc rsi, 0
 
2940
        mov rax, qword ptr [-472+rbp]
 
2941
        mul qword ptr [-256+rbp]
 
2942
        add rcx, rax
 
2943
        adc rdi, rdx
 
2944
        adc rsi, 0
 
2945
        mov rax, qword ptr [-464+rbp]
 
2946
        mul qword ptr [-264+rbp]
 
2947
        add rcx, rax
 
2948
        adc rdi, rdx
 
2949
        adc rsi, 0
 
2950
        mov rax, qword ptr [-456+rbp]
 
2951
        mul qword ptr [-272+rbp]
 
2952
        add rcx, rax
 
2953
        adc rdi, rdx
 
2954
        adc rsi, 0
 
2955
        mov rax, qword ptr [-448+rbp]
 
2956
        mul qword ptr [-280+rbp]
 
2957
        add rcx, rax
 
2958
        adc rdi, rdx
 
2959
        adc rsi, 0
 
2960
        mov r10, rdi
 
2961
        mov r11, rsi
 
2962
        mov rax, qword ptr [-440+rbp]
 
2963
        mul qword ptr [-288+rbp]
 
2964
        add rcx, rax
 
2965
        adc r10, rdx
 
2966
        adc r11, 0
 
2967
        mov qword ptr [104+r9], rcx
 
2968
        mov rdi, r11
 
2969
        mov rsi, r10
 
2970
        mov rcx, r8
 
2971
        mov rax, qword ptr [-544+rbp]
 
2972
        mul qword ptr [-176+rbp]
 
2973
        add rsi, rax
 
2974
        adc rdi, rdx
 
2975
        adc rcx, 0
 
2976
        mov rax, qword ptr [-536+rbp]
 
2977
        mul qword ptr [-184+rbp]
 
2978
        add rsi, rax
 
2979
        adc rdi, rdx
 
2980
        adc rcx, 0
 
2981
        mov rax, qword ptr [-528+rbp]
 
2982
        mul qword ptr [-192+rbp]
 
2983
        add rsi, rax
 
2984
        adc rdi, rdx
 
2985
        adc rcx, 0
 
2986
        mov rax, qword ptr [-520+rbp]
 
2987
        mul qword ptr [-200+rbp]
 
2988
        add rsi, rax
 
2989
        adc rdi, rdx
 
2990
        adc rcx, 0
 
2991
        mov rax, qword ptr [-512+rbp]
 
2992
        mul qword ptr [-208+rbp]
 
2993
        add rsi, rax
 
2994
        adc rdi, rdx
 
2995
        adc rcx, 0
 
2996
        mov rax, qword ptr [-504+rbp]
 
2997
        mul qword ptr [-216+rbp]
 
2998
        add rsi, rax
 
2999
        adc rdi, rdx
 
3000
        adc rcx, 0
 
3001
        mov rax, qword ptr [-496+rbp]
 
3002
        mul qword ptr [-224+rbp]
 
3003
        add rsi, rax
 
3004
        adc rdi, rdx
 
3005
        adc rcx, 0
 
3006
        mov rax, qword ptr [-488+rbp]
 
3007
        mul qword ptr [-232+rbp]
 
3008
        add rsi, rax
 
3009
        adc rdi, rdx
 
3010
        adc rcx, 0
 
3011
        mov rax, qword ptr [-480+rbp]
 
3012
        mul qword ptr [-240+rbp]
 
3013
        add rsi, rax
 
3014
        adc rdi, rdx
 
3015
        adc rcx, 0
 
3016
        mov rax, qword ptr [-472+rbp]
 
3017
        mul qword ptr [-248+rbp]
 
3018
        add rsi, rax
 
3019
        adc rdi, rdx
 
3020
        adc rcx, 0
 
3021
        mov rax, qword ptr [-464+rbp]
 
3022
        mul qword ptr [-256+rbp]
 
3023
        add rsi, rax
 
3024
        adc rdi, rdx
 
3025
        adc rcx, 0
 
3026
        mov rax, qword ptr [-456+rbp]
 
3027
        mul qword ptr [-264+rbp]
 
3028
        add rsi, rax
 
3029
        adc rdi, rdx
 
3030
        adc rcx, 0
 
3031
        mov rax, qword ptr [-448+rbp]
 
3032
        mul qword ptr [-272+rbp]
 
3033
        add rsi, rax
 
3034
        adc rdi, rdx
 
3035
        adc rcx, 0
 
3036
        mov rax, qword ptr [-440+rbp]
 
3037
        mul qword ptr [-280+rbp]
 
3038
        add rsi, rax
 
3039
        adc rdi, rdx
 
3040
        adc rcx, 0
 
3041
        mov r10, rdi
 
3042
        mov r11, rcx
 
3043
        mov rax, qword ptr [-432+rbp]
 
3044
        mul qword ptr [-288+rbp]
 
3045
        add rsi, rax
 
3046
        adc r10, rdx
 
3047
        adc r11, 0
 
3048
        mov qword ptr [112+r9], rsi
 
3049
        mov rdi, r11
 
3050
        mov rcx, r10
 
3051
        mov rsi, r8
 
3052
        mov rax, qword ptr [-544+rbp]
 
3053
        mul qword ptr [-168+rbp]
 
3054
        add rcx, rax
 
3055
        adc rdi, rdx
 
3056
        adc rsi, 0
 
3057
        mov rax, qword ptr [-536+rbp]
 
3058
        mul qword ptr [-176+rbp]
 
3059
        add rcx, rax
 
3060
        adc rdi, rdx
 
3061
        adc rsi, 0
 
3062
        mov rax, qword ptr [-528+rbp]
 
3063
        mul qword ptr [-184+rbp]
 
3064
        add rcx, rax
 
3065
        adc rdi, rdx
 
3066
        adc rsi, 0
 
3067
        mov rax, qword ptr [-520+rbp]
 
3068
        mul qword ptr [-192+rbp]
 
3069
        add rcx, rax
 
3070
        adc rdi, rdx
 
3071
        adc rsi, 0
 
3072
        mov rax, qword ptr [-512+rbp]
 
3073
        mul qword ptr [-200+rbp]
 
3074
        add rcx, rax
 
3075
        adc rdi, rdx
 
3076
        adc rsi, 0
 
3077
        mov rax, qword ptr [-504+rbp]
 
3078
        mul qword ptr [-208+rbp]
 
3079
        add rcx, rax
 
3080
        adc rdi, rdx
 
3081
        adc rsi, 0
 
3082
        mov rax, qword ptr [-496+rbp]
 
3083
        mul qword ptr [-216+rbp]
 
3084
        add rcx, rax
 
3085
        adc rdi, rdx
 
3086
        adc rsi, 0
 
3087
        mov rax, qword ptr [-488+rbp]
 
3088
        mul qword ptr [-224+rbp]
 
3089
        add rcx, rax
 
3090
        adc rdi, rdx
 
3091
        adc rsi, 0
 
3092
        mov rax, qword ptr [-480+rbp]
 
3093
        mul qword ptr [-232+rbp]
 
3094
        add rcx, rax
 
3095
        adc rdi, rdx
 
3096
        adc rsi, 0
 
3097
        mov rax, qword ptr [-472+rbp]
 
3098
        mul qword ptr [-240+rbp]
 
3099
        add rcx, rax
 
3100
        adc rdi, rdx
 
3101
        adc rsi, 0
 
3102
        mov rax, qword ptr [-464+rbp]
 
3103
        mul qword ptr [-248+rbp]
 
3104
        add rcx, rax
 
3105
        adc rdi, rdx
 
3106
        adc rsi, 0
 
3107
        mov rax, qword ptr [-456+rbp]
 
3108
        mul qword ptr [-256+rbp]
 
3109
        add rcx, rax
 
3110
        adc rdi, rdx
 
3111
        adc rsi, 0
 
3112
        mov rax, qword ptr [-448+rbp]
 
3113
        mul qword ptr [-264+rbp]
 
3114
        add rcx, rax
 
3115
        adc rdi, rdx
 
3116
        adc rsi, 0
 
3117
        mov rax, qword ptr [-440+rbp]
 
3118
        mul qword ptr [-272+rbp]
 
3119
        add rcx, rax
 
3120
        adc rdi, rdx
 
3121
        adc rsi, 0
 
3122
        mov rax, qword ptr [-432+rbp]
 
3123
        mul qword ptr [-280+rbp]
 
3124
        add rcx, rax
 
3125
        adc rdi, rdx
 
3126
        adc rsi, 0
 
3127
        mov r10, rdi
 
3128
        mov r11, rsi
 
3129
        mov rax, qword ptr [-424+rbp]
 
3130
        mul qword ptr [-288+rbp]
 
3131
        add rcx, rax
 
3132
        adc r10, rdx
 
3133
        adc r11, 0
 
3134
        mov qword ptr [120+r9], rcx
 
3135
        mov rdi, r11
 
3136
        mov rsi, r10
 
3137
        mov rcx, r8
 
3138
        mov rax, qword ptr [-544+rbp]
 
3139
        mul qword ptr [-160+rbp]
 
3140
        add rsi, rax
 
3141
        adc rdi, rdx
 
3142
        adc rcx, 0
 
3143
        mov rax, qword ptr [-536+rbp]
 
3144
        mul qword ptr [-168+rbp]
 
3145
        add rsi, rax
 
3146
        adc rdi, rdx
 
3147
        adc rcx, 0
 
3148
        mov rax, qword ptr [-528+rbp]
 
3149
        mul qword ptr [-176+rbp]
 
3150
        add rsi, rax
 
3151
        adc rdi, rdx
 
3152
        adc rcx, 0
 
3153
        mov rax, qword ptr [-520+rbp]
 
3154
        mul qword ptr [-184+rbp]
 
3155
        add rsi, rax
 
3156
        adc rdi, rdx
 
3157
        adc rcx, 0
 
3158
        mov rax, qword ptr [-512+rbp]
 
3159
        mul qword ptr [-192+rbp]
 
3160
        add rsi, rax
 
3161
        adc rdi, rdx
 
3162
        adc rcx, 0
 
3163
        mov rax, qword ptr [-504+rbp]
 
3164
        mul qword ptr [-200+rbp]
 
3165
        add rsi, rax
 
3166
        adc rdi, rdx
 
3167
        adc rcx, 0
 
3168
        mov rax, qword ptr [-496+rbp]
 
3169
        mul qword ptr [-208+rbp]
 
3170
        add rsi, rax
 
3171
        adc rdi, rdx
 
3172
        adc rcx, 0
 
3173
        mov rax, qword ptr [-488+rbp]
 
3174
        mul qword ptr [-216+rbp]
 
3175
        add rsi, rax
 
3176
        adc rdi, rdx
 
3177
        adc rcx, 0
 
3178
        mov rax, qword ptr [-480+rbp]
 
3179
        mul qword ptr [-224+rbp]
 
3180
        add rsi, rax
 
3181
        adc rdi, rdx
 
3182
        adc rcx, 0
 
3183
        mov rax, qword ptr [-472+rbp]
 
3184
        mul qword ptr [-232+rbp]
 
3185
        add rsi, rax
 
3186
        adc rdi, rdx
 
3187
        adc rcx, 0
 
3188
        mov rax, qword ptr [-464+rbp]
 
3189
        mul qword ptr [-240+rbp]
 
3190
        add rsi, rax
 
3191
        adc rdi, rdx
 
3192
        adc rcx, 0
 
3193
        mov rax, qword ptr [-456+rbp]
 
3194
        mul qword ptr [-248+rbp]
 
3195
        add rsi, rax
 
3196
        adc rdi, rdx
 
3197
        adc rcx, 0
 
3198
        mov rax, qword ptr [-448+rbp]
 
3199
        mul qword ptr [-256+rbp]
 
3200
        add rsi, rax
 
3201
        adc rdi, rdx
 
3202
        adc rcx, 0
 
3203
        mov rax, qword ptr [-440+rbp]
 
3204
        mul qword ptr [-264+rbp]
 
3205
        add rsi, rax
 
3206
        adc rdi, rdx
 
3207
        adc rcx, 0
 
3208
        mov rax, qword ptr [-432+rbp]
 
3209
        mul qword ptr [-272+rbp]
 
3210
        add rsi, rax
 
3211
        adc rdi, rdx
 
3212
        adc rcx, 0
 
3213
        mov rax, qword ptr [-424+rbp]
 
3214
        mul qword ptr [-280+rbp]
 
3215
        add rsi, rax
 
3216
        adc rdi, rdx
 
3217
        adc rcx, 0
 
3218
        mov r10, rdi
 
3219
        mov r11, rcx
 
3220
        mov rax, qword ptr [-416+rbp]
 
3221
        mul qword ptr [-288+rbp]
 
3222
        add rsi, rax
 
3223
        adc r10, rdx
 
3224
        adc r11, 0
 
3225
        mov qword ptr [128+r9], rsi
 
3226
        mov rdi, r11
 
3227
        mov rcx, r10
 
3228
        mov rsi, r8
 
3229
        mov rax, qword ptr [-544+rbp]
 
3230
        mul qword ptr [-152+rbp]
 
3231
        add rcx, rax
 
3232
        adc rdi, rdx
 
3233
        adc rsi, 0
 
3234
        mov rax, qword ptr [-536+rbp]
 
3235
        mul qword ptr [-160+rbp]
 
3236
        add rcx, rax
 
3237
        adc rdi, rdx
 
3238
        adc rsi, 0
 
3239
        mov rax, qword ptr [-528+rbp]
 
3240
        mul qword ptr [-168+rbp]
 
3241
        add rcx, rax
 
3242
        adc rdi, rdx
 
3243
        adc rsi, 0
 
3244
        mov rax, qword ptr [-520+rbp]
 
3245
        mul qword ptr [-176+rbp]
 
3246
        add rcx, rax
 
3247
        adc rdi, rdx
 
3248
        adc rsi, 0
 
3249
        mov rax, qword ptr [-512+rbp]
 
3250
        mul qword ptr [-184+rbp]
 
3251
        add rcx, rax
 
3252
        adc rdi, rdx
 
3253
        adc rsi, 0
 
3254
        mov rax, qword ptr [-504+rbp]
 
3255
        mul qword ptr [-192+rbp]
 
3256
        add rcx, rax
 
3257
        adc rdi, rdx
 
3258
        adc rsi, 0
 
3259
        mov rax, qword ptr [-496+rbp]
 
3260
        mul qword ptr [-200+rbp]
 
3261
        add rcx, rax
 
3262
        adc rdi, rdx
 
3263
        adc rsi, 0
 
3264
        mov rax, qword ptr [-488+rbp]
 
3265
        mul qword ptr [-208+rbp]
 
3266
        add rcx, rax
 
3267
        adc rdi, rdx
 
3268
        adc rsi, 0
 
3269
        mov rax, qword ptr [-480+rbp]
 
3270
        mul qword ptr [-216+rbp]
 
3271
        add rcx, rax
 
3272
        adc rdi, rdx
 
3273
        adc rsi, 0
 
3274
        mov rax, qword ptr [-472+rbp]
 
3275
        mul qword ptr [-224+rbp]
 
3276
        add rcx, rax
 
3277
        adc rdi, rdx
 
3278
        adc rsi, 0
 
3279
        mov rax, qword ptr [-464+rbp]
 
3280
        mul qword ptr [-232+rbp]
 
3281
        add rcx, rax
 
3282
        adc rdi, rdx
 
3283
        adc rsi, 0
 
3284
        mov rax, qword ptr [-456+rbp]
 
3285
        mul qword ptr [-240+rbp]
 
3286
        add rcx, rax
 
3287
        adc rdi, rdx
 
3288
        adc rsi, 0
 
3289
        mov rax, qword ptr [-448+rbp]
 
3290
        mul qword ptr [-248+rbp]
 
3291
        add rcx, rax
 
3292
        adc rdi, rdx
 
3293
        adc rsi, 0
 
3294
        mov rax, qword ptr [-440+rbp]
 
3295
        mul qword ptr [-256+rbp]
 
3296
        add rcx, rax
 
3297
        adc rdi, rdx
 
3298
        adc rsi, 0
 
3299
        mov rax, qword ptr [-432+rbp]
 
3300
        mul qword ptr [-264+rbp]
 
3301
        add rcx, rax
 
3302
        adc rdi, rdx
 
3303
        adc rsi, 0
 
3304
        mov rax, qword ptr [-424+rbp]
 
3305
        mul qword ptr [-272+rbp]
 
3306
        add rcx, rax
 
3307
        adc rdi, rdx
 
3308
        adc rsi, 0
 
3309
        mov rax, qword ptr [-416+rbp]
 
3310
        mul qword ptr [-280+rbp]
 
3311
        add rcx, rax
 
3312
        adc rdi, rdx
 
3313
        adc rsi, 0
 
3314
        mov r10, rdi
 
3315
        mov r11, rsi
 
3316
        mov rax, qword ptr [-408+rbp]
 
3317
        mul qword ptr [-288+rbp]
 
3318
        add rcx, rax
 
3319
        adc r10, rdx
 
3320
        adc r11, 0
 
3321
        mov qword ptr [136+r9], rcx
 
3322
        mov rdi, r11
 
3323
        mov rsi, r10
 
3324
        mov rcx, r8
 
3325
        mov rax, qword ptr [-544+rbp]
 
3326
        mul qword ptr [-144+rbp]
 
3327
        add rsi, rax
 
3328
        adc rdi, rdx
 
3329
        adc rcx, 0
 
3330
        mov rax, qword ptr [-536+rbp]
 
3331
        mul qword ptr [-152+rbp]
 
3332
        add rsi, rax
 
3333
        adc rdi, rdx
 
3334
        adc rcx, 0
 
3335
        mov rax, qword ptr [-528+rbp]
 
3336
        mul qword ptr [-160+rbp]
 
3337
        add rsi, rax
 
3338
        adc rdi, rdx
 
3339
        adc rcx, 0
 
3340
        mov rax, qword ptr [-520+rbp]
 
3341
        mul qword ptr [-168+rbp]
 
3342
        add rsi, rax
 
3343
        adc rdi, rdx
 
3344
        adc rcx, 0
 
3345
        mov rax, qword ptr [-512+rbp]
 
3346
        mul qword ptr [-176+rbp]
 
3347
        add rsi, rax
 
3348
        adc rdi, rdx
 
3349
        adc rcx, 0
 
3350
        mov rax, qword ptr [-504+rbp]
 
3351
        mul qword ptr [-184+rbp]
 
3352
        add rsi, rax
 
3353
        adc rdi, rdx
 
3354
        adc rcx, 0
 
3355
        mov rax, qword ptr [-496+rbp]
 
3356
        mul qword ptr [-192+rbp]
 
3357
        add rsi, rax
 
3358
        adc rdi, rdx
 
3359
        adc rcx, 0
 
3360
        mov rax, qword ptr [-488+rbp]
 
3361
        mul qword ptr [-200+rbp]
 
3362
        add rsi, rax
 
3363
        adc rdi, rdx
 
3364
        adc rcx, 0
 
3365
        mov rax, qword ptr [-480+rbp]
 
3366
        mul qword ptr [-208+rbp]
 
3367
        add rsi, rax
 
3368
        adc rdi, rdx
 
3369
        adc rcx, 0
 
3370
        mov rax, qword ptr [-472+rbp]
 
3371
        mul qword ptr [-216+rbp]
 
3372
        add rsi, rax
 
3373
        adc rdi, rdx
 
3374
        adc rcx, 0
 
3375
        mov rax, qword ptr [-464+rbp]
 
3376
        mul qword ptr [-224+rbp]
 
3377
        add rsi, rax
 
3378
        adc rdi, rdx
 
3379
        adc rcx, 0
 
3380
        mov rax, qword ptr [-456+rbp]
 
3381
        mul qword ptr [-232+rbp]
 
3382
        add rsi, rax
 
3383
        adc rdi, rdx
 
3384
        adc rcx, 0
 
3385
        mov rax, qword ptr [-448+rbp]
 
3386
        mul qword ptr [-240+rbp]
 
3387
        add rsi, rax
 
3388
        adc rdi, rdx
 
3389
        adc rcx, 0
 
3390
        mov rax, qword ptr [-440+rbp]
 
3391
        mul qword ptr [-248+rbp]
 
3392
        add rsi, rax
 
3393
        adc rdi, rdx
 
3394
        adc rcx, 0
 
3395
        mov rax, qword ptr [-432+rbp]
 
3396
        mul qword ptr [-256+rbp]
 
3397
        add rsi, rax
 
3398
        adc rdi, rdx
 
3399
        adc rcx, 0
 
3400
        mov rax, qword ptr [-424+rbp]
 
3401
        mul qword ptr [-264+rbp]
 
3402
        add rsi, rax
 
3403
        adc rdi, rdx
 
3404
        adc rcx, 0
 
3405
        mov rax, qword ptr [-416+rbp]
 
3406
        mul qword ptr [-272+rbp]
 
3407
        add rsi, rax
 
3408
        adc rdi, rdx
 
3409
        adc rcx, 0
 
3410
        mov rax, qword ptr [-408+rbp]
 
3411
        mul qword ptr [-280+rbp]
 
3412
        add rsi, rax
 
3413
        adc rdi, rdx
 
3414
        adc rcx, 0
 
3415
        mov r10, rdi
 
3416
        mov r11, rcx
 
3417
        mov rax, qword ptr [-400+rbp]
 
3418
        mul qword ptr [-288+rbp]
 
3419
        add rsi, rax
 
3420
        adc r10, rdx
 
3421
        adc r11, 0
 
3422
        mov qword ptr [144+r9], rsi
 
3423
        mov rdi, r11
 
3424
        mov rcx, r10
 
3425
        mov rsi, r8
 
3426
        mov rax, qword ptr [-544+rbp]
 
3427
        mul qword ptr [-136+rbp]
 
3428
        add rcx, rax
 
3429
        adc rdi, rdx
 
3430
        adc rsi, 0
 
3431
        mov rax, qword ptr [-536+rbp]
 
3432
        mul qword ptr [-144+rbp]
 
3433
        add rcx, rax
 
3434
        adc rdi, rdx
 
3435
        adc rsi, 0
 
3436
        mov rax, qword ptr [-528+rbp]
 
3437
        mul qword ptr [-152+rbp]
 
3438
        add rcx, rax
 
3439
        adc rdi, rdx
 
3440
        adc rsi, 0
 
3441
        mov rax, qword ptr [-520+rbp]
 
3442
        mul qword ptr [-160+rbp]
 
3443
        add rcx, rax
 
3444
        adc rdi, rdx
 
3445
        adc rsi, 0
 
3446
        mov rax, qword ptr [-512+rbp]
 
3447
        mul qword ptr [-168+rbp]
 
3448
        add rcx, rax
 
3449
        adc rdi, rdx
 
3450
        adc rsi, 0
 
3451
        mov rax, qword ptr [-504+rbp]
 
3452
        mul qword ptr [-176+rbp]
 
3453
        add rcx, rax
 
3454
        adc rdi, rdx
 
3455
        adc rsi, 0
 
3456
        mov rax, qword ptr [-496+rbp]
 
3457
        mul qword ptr [-184+rbp]
 
3458
        add rcx, rax
 
3459
        adc rdi, rdx
 
3460
        adc rsi, 0
 
3461
        mov rax, qword ptr [-488+rbp]
 
3462
        mul qword ptr [-192+rbp]
 
3463
        add rcx, rax
 
3464
        adc rdi, rdx
 
3465
        adc rsi, 0
 
3466
        mov rax, qword ptr [-480+rbp]
 
3467
        mul qword ptr [-200+rbp]
 
3468
        add rcx, rax
 
3469
        adc rdi, rdx
 
3470
        adc rsi, 0
 
3471
        mov rax, qword ptr [-472+rbp]
 
3472
        mul qword ptr [-208+rbp]
 
3473
        add rcx, rax
 
3474
        adc rdi, rdx
 
3475
        adc rsi, 0
 
3476
        mov rax, qword ptr [-464+rbp]
 
3477
        mul qword ptr [-216+rbp]
 
3478
        add rcx, rax
 
3479
        adc rdi, rdx
 
3480
        adc rsi, 0
 
3481
        mov rax, qword ptr [-456+rbp]
 
3482
        mul qword ptr [-224+rbp]
 
3483
        add rcx, rax
 
3484
        adc rdi, rdx
 
3485
        adc rsi, 0
 
3486
        mov rax, qword ptr [-448+rbp]
 
3487
        mul qword ptr [-232+rbp]
 
3488
        add rcx, rax
 
3489
        adc rdi, rdx
 
3490
        adc rsi, 0
 
3491
        mov rax, qword ptr [-440+rbp]
 
3492
        mul qword ptr [-240+rbp]
 
3493
        add rcx, rax
 
3494
        adc rdi, rdx
 
3495
        adc rsi, 0
 
3496
        mov rax, qword ptr [-432+rbp]
 
3497
        mul qword ptr [-248+rbp]
 
3498
        add rcx, rax
 
3499
        adc rdi, rdx
 
3500
        adc rsi, 0
 
3501
        mov rax, qword ptr [-424+rbp]
 
3502
        mul qword ptr [-256+rbp]
 
3503
        add rcx, rax
 
3504
        adc rdi, rdx
 
3505
        adc rsi, 0
 
3506
        mov rax, qword ptr [-416+rbp]
 
3507
        mul qword ptr [-264+rbp]
 
3508
        add rcx, rax
 
3509
        adc rdi, rdx
 
3510
        adc rsi, 0
 
3511
        mov rax, qword ptr [-408+rbp]
 
3512
        mul qword ptr [-272+rbp]
 
3513
        add rcx, rax
 
3514
        adc rdi, rdx
 
3515
        adc rsi, 0
 
3516
        mov rax, qword ptr [-400+rbp]
 
3517
        mul qword ptr [-280+rbp]
 
3518
        add rcx, rax
 
3519
        adc rdi, rdx
 
3520
        adc rsi, 0
 
3521
        mov r10, rdi
 
3522
        mov r11, rsi
 
3523
        mov rax, qword ptr [-392+rbp]
 
3524
        mul qword ptr [-288+rbp]
 
3525
        add rcx, rax
 
3526
        adc r10, rdx
 
3527
        adc r11, 0
 
3528
        mov qword ptr [152+r9], rcx
 
3529
        mov rdi, r11
 
3530
        mov rsi, r10
 
3531
        mov rcx, r8
 
3532
        mov rax, qword ptr [-544+rbp]
 
3533
        mul qword ptr [-128+rbp]
 
3534
        add rsi, rax
 
3535
        adc rdi, rdx
 
3536
        adc rcx, 0
 
3537
        mov rax, qword ptr [-536+rbp]
 
3538
        mul qword ptr [-136+rbp]
 
3539
        add rsi, rax
 
3540
        adc rdi, rdx
 
3541
        adc rcx, 0
 
3542
        mov rax, qword ptr [-528+rbp]
 
3543
        mul qword ptr [-144+rbp]
 
3544
        add rsi, rax
 
3545
        adc rdi, rdx
 
3546
        adc rcx, 0
 
3547
        mov rax, qword ptr [-520+rbp]
 
3548
        mul qword ptr [-152+rbp]
 
3549
        add rsi, rax
 
3550
        adc rdi, rdx
 
3551
        adc rcx, 0
 
3552
        mov rax, qword ptr [-512+rbp]
 
3553
        mul qword ptr [-160+rbp]
 
3554
        add rsi, rax
 
3555
        adc rdi, rdx
 
3556
        adc rcx, 0
 
3557
        mov rax, qword ptr [-504+rbp]
 
3558
        mul qword ptr [-168+rbp]
 
3559
        add rsi, rax
 
3560
        adc rdi, rdx
 
3561
        adc rcx, 0
 
3562
        mov rax, qword ptr [-496+rbp]
 
3563
        mul qword ptr [-176+rbp]
 
3564
        add rsi, rax
 
3565
        adc rdi, rdx
 
3566
        adc rcx, 0
 
3567
        mov rax, qword ptr [-488+rbp]
 
3568
        mul qword ptr [-184+rbp]
 
3569
        add rsi, rax
 
3570
        adc rdi, rdx
 
3571
        adc rcx, 0
 
3572
        mov rax, qword ptr [-480+rbp]
 
3573
        mul qword ptr [-192+rbp]
 
3574
        add rsi, rax
 
3575
        adc rdi, rdx
 
3576
        adc rcx, 0
 
3577
        mov rax, qword ptr [-472+rbp]
 
3578
        mul qword ptr [-200+rbp]
 
3579
        add rsi, rax
 
3580
        adc rdi, rdx
 
3581
        adc rcx, 0
 
3582
        mov rax, qword ptr [-464+rbp]
 
3583
        mul qword ptr [-208+rbp]
 
3584
        add rsi, rax
 
3585
        adc rdi, rdx
 
3586
        adc rcx, 0
 
3587
        mov rax, qword ptr [-456+rbp]
 
3588
        mul qword ptr [-216+rbp]
 
3589
        add rsi, rax
 
3590
        adc rdi, rdx
 
3591
        adc rcx, 0
 
3592
        mov rax, qword ptr [-448+rbp]
 
3593
        mul qword ptr [-224+rbp]
 
3594
        add rsi, rax
 
3595
        adc rdi, rdx
 
3596
        adc rcx, 0
 
3597
        mov rax, qword ptr [-440+rbp]
 
3598
        mul qword ptr [-232+rbp]
 
3599
        add rsi, rax
 
3600
        adc rdi, rdx
 
3601
        adc rcx, 0
 
3602
        mov rax, qword ptr [-432+rbp]
 
3603
        mul qword ptr [-240+rbp]
 
3604
        add rsi, rax
 
3605
        adc rdi, rdx
 
3606
        adc rcx, 0
 
3607
        mov rax, qword ptr [-424+rbp]
 
3608
        mul qword ptr [-248+rbp]
 
3609
        add rsi, rax
 
3610
        adc rdi, rdx
 
3611
        adc rcx, 0
 
3612
        mov rax, qword ptr [-416+rbp]
 
3613
        mul qword ptr [-256+rbp]
 
3614
        add rsi, rax
 
3615
        adc rdi, rdx
 
3616
        adc rcx, 0
 
3617
        mov rax, qword ptr [-408+rbp]
 
3618
        mul qword ptr [-264+rbp]
 
3619
        add rsi, rax
 
3620
        adc rdi, rdx
 
3621
        adc rcx, 0
 
3622
        mov rax, qword ptr [-400+rbp]
 
3623
        mul qword ptr [-272+rbp]
 
3624
        add rsi, rax
 
3625
        adc rdi, rdx
 
3626
        adc rcx, 0
 
3627
        mov rax, qword ptr [-392+rbp]
 
3628
        mul qword ptr [-280+rbp]
 
3629
        add rsi, rax
 
3630
        adc rdi, rdx
 
3631
        adc rcx, 0
 
3632
        mov r10, rdi
 
3633
        mov r11, rcx
 
3634
        mov rax, qword ptr [-384+rbp]
 
3635
        mul qword ptr [-288+rbp]
 
3636
        add rsi, rax
 
3637
        adc r10, rdx
 
3638
        adc r11, 0
 
3639
        mov qword ptr [160+r9], rsi
 
3640
        mov rdi, r11
 
3641
        mov rcx, r10
 
3642
        mov rsi, r8
 
3643
        mov rax, qword ptr [-544+rbp]
 
3644
        mul qword ptr [-120+rbp]
 
3645
        add rcx, rax
 
3646
        adc rdi, rdx
 
3647
        adc rsi, 0
 
3648
        mov rax, qword ptr [-536+rbp]
 
3649
        mul qword ptr [-128+rbp]
 
3650
        add rcx, rax
 
3651
        adc rdi, rdx
 
3652
        adc rsi, 0
 
3653
        mov rax, qword ptr [-528+rbp]
 
3654
        mul qword ptr [-136+rbp]
 
3655
        add rcx, rax
 
3656
        adc rdi, rdx
 
3657
        adc rsi, 0
 
3658
        mov rax, qword ptr [-520+rbp]
 
3659
        mul qword ptr [-144+rbp]
 
3660
        add rcx, rax
 
3661
        adc rdi, rdx
 
3662
        adc rsi, 0
 
3663
        mov rax, qword ptr [-512+rbp]
 
3664
        mul qword ptr [-152+rbp]
 
3665
        add rcx, rax
 
3666
        adc rdi, rdx
 
3667
        adc rsi, 0
 
3668
        mov rax, qword ptr [-504+rbp]
 
3669
        mul qword ptr [-160+rbp]
 
3670
        add rcx, rax
 
3671
        adc rdi, rdx
 
3672
        adc rsi, 0
 
3673
        mov rax, qword ptr [-496+rbp]
 
3674
        mul qword ptr [-168+rbp]
 
3675
        add rcx, rax
 
3676
        adc rdi, rdx
 
3677
        adc rsi, 0
 
3678
        mov rax, qword ptr [-488+rbp]
 
3679
        mul qword ptr [-176+rbp]
 
3680
        add rcx, rax
 
3681
        adc rdi, rdx
 
3682
        adc rsi, 0
 
3683
        mov rax, qword ptr [-480+rbp]
 
3684
        mul qword ptr [-184+rbp]
 
3685
        add rcx, rax
 
3686
        adc rdi, rdx
 
3687
        adc rsi, 0
 
3688
        mov rax, qword ptr [-472+rbp]
 
3689
        mul qword ptr [-192+rbp]
 
3690
        add rcx, rax
 
3691
        adc rdi, rdx
 
3692
        adc rsi, 0
 
3693
        mov rax, qword ptr [-464+rbp]
 
3694
        mul qword ptr [-200+rbp]
 
3695
        add rcx, rax
 
3696
        adc rdi, rdx
 
3697
        adc rsi, 0
 
3698
        mov rax, qword ptr [-456+rbp]
 
3699
        mul qword ptr [-208+rbp]
 
3700
        add rcx, rax
 
3701
        adc rdi, rdx
 
3702
        adc rsi, 0
 
3703
        mov rax, qword ptr [-448+rbp]
 
3704
        mul qword ptr [-216+rbp]
 
3705
        add rcx, rax
 
3706
        adc rdi, rdx
 
3707
        adc rsi, 0
 
3708
        mov rax, qword ptr [-440+rbp]
 
3709
        mul qword ptr [-224+rbp]
 
3710
        add rcx, rax
 
3711
        adc rdi, rdx
 
3712
        adc rsi, 0
 
3713
        mov rax, qword ptr [-432+rbp]
 
3714
        mul qword ptr [-232+rbp]
 
3715
        add rcx, rax
 
3716
        adc rdi, rdx
 
3717
        adc rsi, 0
 
3718
        mov rax, qword ptr [-424+rbp]
 
3719
        mul qword ptr [-240+rbp]
 
3720
        add rcx, rax
 
3721
        adc rdi, rdx
 
3722
        adc rsi, 0
 
3723
        mov rax, qword ptr [-416+rbp]
 
3724
        mul qword ptr [-248+rbp]
 
3725
        add rcx, rax
 
3726
        adc rdi, rdx
 
3727
        adc rsi, 0
 
3728
        mov rax, qword ptr [-408+rbp]
 
3729
        mul qword ptr [-256+rbp]
 
3730
        add rcx, rax
 
3731
        adc rdi, rdx
 
3732
        adc rsi, 0
 
3733
        mov rax, qword ptr [-400+rbp]
 
3734
        mul qword ptr [-264+rbp]
 
3735
        add rcx, rax
 
3736
        adc rdi, rdx
 
3737
        adc rsi, 0
 
3738
        mov rax, qword ptr [-392+rbp]
 
3739
        mul qword ptr [-272+rbp]
 
3740
        add rcx, rax
 
3741
        adc rdi, rdx
 
3742
        adc rsi, 0
 
3743
        mov rax, qword ptr [-384+rbp]
 
3744
        mul qword ptr [-280+rbp]
 
3745
        add rcx, rax
 
3746
        adc rdi, rdx
 
3747
        adc rsi, 0
 
3748
        mov r10, rdi
 
3749
        mov r11, rsi
 
3750
        mov rax, qword ptr [-376+rbp]
 
3751
        mul qword ptr [-288+rbp]
 
3752
        add rcx, rax
 
3753
        adc r10, rdx
 
3754
        adc r11, 0
 
3755
        mov qword ptr [168+r9], rcx
 
3756
        mov rdi, r11
 
3757
        mov rsi, r10
 
3758
        mov rcx, r8
 
3759
        mov rax, qword ptr [-544+rbp]
 
3760
        mul qword ptr [-112+rbp]
 
3761
        add rsi, rax
 
3762
        adc rdi, rdx
 
3763
        adc rcx, 0
 
3764
        mov rax, qword ptr [-536+rbp]
 
3765
        mul qword ptr [-120+rbp]
 
3766
        add rsi, rax
 
3767
        adc rdi, rdx
 
3768
        adc rcx, 0
 
3769
        mov rax, qword ptr [-528+rbp]
 
3770
        mul qword ptr [-128+rbp]
 
3771
        add rsi, rax
 
3772
        adc rdi, rdx
 
3773
        adc rcx, 0
 
3774
        mov rax, qword ptr [-520+rbp]
 
3775
        mul qword ptr [-136+rbp]
 
3776
        add rsi, rax
 
3777
        adc rdi, rdx
 
3778
        adc rcx, 0
 
3779
        mov rax, qword ptr [-512+rbp]
 
3780
        mul qword ptr [-144+rbp]
 
3781
        add rsi, rax
 
3782
        adc rdi, rdx
 
3783
        adc rcx, 0
 
3784
        mov rax, qword ptr [-504+rbp]
 
3785
        mul qword ptr [-152+rbp]
 
3786
        add rsi, rax
 
3787
        adc rdi, rdx
 
3788
        adc rcx, 0
 
3789
        mov rax, qword ptr [-496+rbp]
 
3790
        mul qword ptr [-160+rbp]
 
3791
        add rsi, rax
 
3792
        adc rdi, rdx
 
3793
        adc rcx, 0
 
3794
        mov rax, qword ptr [-488+rbp]
 
3795
        mul qword ptr [-168+rbp]
 
3796
        add rsi, rax
 
3797
        adc rdi, rdx
 
3798
        adc rcx, 0
 
3799
        mov rax, qword ptr [-480+rbp]
 
3800
        mul qword ptr [-176+rbp]
 
3801
        add rsi, rax
 
3802
        adc rdi, rdx
 
3803
        adc rcx, 0
 
3804
        mov rax, qword ptr [-472+rbp]
 
3805
        mul qword ptr [-184+rbp]
 
3806
        add rsi, rax
 
3807
        adc rdi, rdx
 
3808
        adc rcx, 0
 
3809
        mov rax, qword ptr [-464+rbp]
 
3810
        mul qword ptr [-192+rbp]
 
3811
        add rsi, rax
 
3812
        adc rdi, rdx
 
3813
        adc rcx, 0
 
3814
        mov rax, qword ptr [-456+rbp]
 
3815
        mul qword ptr [-200+rbp]
 
3816
        add rsi, rax
 
3817
        adc rdi, rdx
 
3818
        adc rcx, 0
 
3819
        mov rax, qword ptr [-448+rbp]
 
3820
        mul qword ptr [-208+rbp]
 
3821
        add rsi, rax
 
3822
        adc rdi, rdx
 
3823
        adc rcx, 0
 
3824
        mov rax, qword ptr [-440+rbp]
 
3825
        mul qword ptr [-216+rbp]
 
3826
        add rsi, rax
 
3827
        adc rdi, rdx
 
3828
        adc rcx, 0
 
3829
        mov rax, qword ptr [-432+rbp]
 
3830
        mul qword ptr [-224+rbp]
 
3831
        add rsi, rax
 
3832
        adc rdi, rdx
 
3833
        adc rcx, 0
 
3834
        mov rax, qword ptr [-424+rbp]
 
3835
        mul qword ptr [-232+rbp]
 
3836
        add rsi, rax
 
3837
        adc rdi, rdx
 
3838
        adc rcx, 0
 
3839
        mov rax, qword ptr [-416+rbp]
 
3840
        mul qword ptr [-240+rbp]
 
3841
        add rsi, rax
 
3842
        adc rdi, rdx
 
3843
        adc rcx, 0
 
3844
        mov rax, qword ptr [-408+rbp]
 
3845
        mul qword ptr [-248+rbp]
 
3846
        add rsi, rax
 
3847
        adc rdi, rdx
 
3848
        adc rcx, 0
 
3849
        mov rax, qword ptr [-400+rbp]
 
3850
        mul qword ptr [-256+rbp]
 
3851
        add rsi, rax
 
3852
        adc rdi, rdx
 
3853
        adc rcx, 0
 
3854
        mov rax, qword ptr [-392+rbp]
 
3855
        mul qword ptr [-264+rbp]
 
3856
        add rsi, rax
 
3857
        adc rdi, rdx
 
3858
        adc rcx, 0
 
3859
        mov rax, qword ptr [-384+rbp]
 
3860
        mul qword ptr [-272+rbp]
 
3861
        add rsi, rax
 
3862
        adc rdi, rdx
 
3863
        adc rcx, 0
 
3864
        mov rax, qword ptr [-376+rbp]
 
3865
        mul qword ptr [-280+rbp]
 
3866
        add rsi, rax
 
3867
        adc rdi, rdx
 
3868
        adc rcx, 0
 
3869
        mov r10, rdi
 
3870
        mov r11, rcx
 
3871
        mov rax, qword ptr [-368+rbp]
 
3872
        mul qword ptr [-288+rbp]
 
3873
        add rsi, rax
 
3874
        adc r10, rdx
 
3875
        adc r11, 0
 
3876
        mov qword ptr [176+r9], rsi
 
3877
        mov rdi, r11
 
3878
        mov rcx, r10
 
3879
        mov rsi, r8
 
3880
        mov rax, qword ptr [-544+rbp]
 
3881
        mul qword ptr [-104+rbp]
 
3882
        add rcx, rax
 
3883
        adc rdi, rdx
 
3884
        adc rsi, 0
 
3885
        mov rax, qword ptr [-536+rbp]
 
3886
        mul qword ptr [-112+rbp]
 
3887
        add rcx, rax
 
3888
        adc rdi, rdx
 
3889
        adc rsi, 0
 
3890
        mov rax, qword ptr [-528+rbp]
 
3891
        mul qword ptr [-120+rbp]
 
3892
        add rcx, rax
 
3893
        adc rdi, rdx
 
3894
        adc rsi, 0
 
3895
        mov rax, qword ptr [-520+rbp]
 
3896
        mul qword ptr [-128+rbp]
 
3897
        add rcx, rax
 
3898
        adc rdi, rdx
 
3899
        adc rsi, 0
 
3900
        mov rax, qword ptr [-512+rbp]
 
3901
        mul qword ptr [-136+rbp]
 
3902
        add rcx, rax
 
3903
        adc rdi, rdx
 
3904
        adc rsi, 0
 
3905
        mov rax, qword ptr [-504+rbp]
 
3906
        mul qword ptr [-144+rbp]
 
3907
        add rcx, rax
 
3908
        adc rdi, rdx
 
3909
        adc rsi, 0
 
3910
        mov rax, qword ptr [-496+rbp]
 
3911
        mul qword ptr [-152+rbp]
 
3912
        add rcx, rax
 
3913
        adc rdi, rdx
 
3914
        adc rsi, 0
 
3915
        mov rax, qword ptr [-488+rbp]
 
3916
        mul qword ptr [-160+rbp]
 
3917
        add rcx, rax
 
3918
        adc rdi, rdx
 
3919
        adc rsi, 0
 
3920
        mov rax, qword ptr [-480+rbp]
 
3921
        mul qword ptr [-168+rbp]
 
3922
        add rcx, rax
 
3923
        adc rdi, rdx
 
3924
        adc rsi, 0
 
3925
        mov rax, qword ptr [-472+rbp]
 
3926
        mul qword ptr [-176+rbp]
 
3927
        add rcx, rax
 
3928
        adc rdi, rdx
 
3929
        adc rsi, 0
 
3930
        mov rax, qword ptr [-464+rbp]
 
3931
        mul qword ptr [-184+rbp]
 
3932
        add rcx, rax
 
3933
        adc rdi, rdx
 
3934
        adc rsi, 0
 
3935
        mov rax, qword ptr [-456+rbp]
 
3936
        mul qword ptr [-192+rbp]
 
3937
        add rcx, rax
 
3938
        adc rdi, rdx
 
3939
        adc rsi, 0
 
3940
        mov rax, qword ptr [-448+rbp]
 
3941
        mul qword ptr [-200+rbp]
 
3942
        add rcx, rax
 
3943
        adc rdi, rdx
 
3944
        adc rsi, 0
 
3945
        mov rax, qword ptr [-440+rbp]
 
3946
        mul qword ptr [-208+rbp]
 
3947
        add rcx, rax
 
3948
        adc rdi, rdx
 
3949
        adc rsi, 0
 
3950
        mov rax, qword ptr [-432+rbp]
 
3951
        mul qword ptr [-216+rbp]
 
3952
        add rcx, rax
 
3953
        adc rdi, rdx
 
3954
        adc rsi, 0
 
3955
        mov rax, qword ptr [-424+rbp]
 
3956
        mul qword ptr [-224+rbp]
 
3957
        add rcx, rax
 
3958
        adc rdi, rdx
 
3959
        adc rsi, 0
 
3960
        mov rax, qword ptr [-416+rbp]
 
3961
        mul qword ptr [-232+rbp]
 
3962
        add rcx, rax
 
3963
        adc rdi, rdx
 
3964
        adc rsi, 0
 
3965
        mov rax, qword ptr [-408+rbp]
 
3966
        mul qword ptr [-240+rbp]
 
3967
        add rcx, rax
 
3968
        adc rdi, rdx
 
3969
        adc rsi, 0
 
3970
        mov rax, qword ptr [-400+rbp]
 
3971
        mul qword ptr [-248+rbp]
 
3972
        add rcx, rax
 
3973
        adc rdi, rdx
 
3974
        adc rsi, 0
 
3975
        mov rax, qword ptr [-392+rbp]
 
3976
        mul qword ptr [-256+rbp]
 
3977
        add rcx, rax
 
3978
        adc rdi, rdx
 
3979
        adc rsi, 0
 
3980
        mov rax, qword ptr [-384+rbp]
 
3981
        mul qword ptr [-264+rbp]
 
3982
        add rcx, rax
 
3983
        adc rdi, rdx
 
3984
        adc rsi, 0
 
3985
        mov rax, qword ptr [-376+rbp]
 
3986
        mul qword ptr [-272+rbp]
 
3987
        add rcx, rax
 
3988
        adc rdi, rdx
 
3989
        adc rsi, 0
 
3990
        mov rax, qword ptr [-368+rbp]
 
3991
        mul qword ptr [-280+rbp]
 
3992
        add rcx, rax
 
3993
        adc rdi, rdx
 
3994
        adc rsi, 0
 
3995
        mov r10, rdi
 
3996
        mov r11, rsi
 
3997
        mov rax, qword ptr [-360+rbp]
 
3998
        mul qword ptr [-288+rbp]
 
3999
        add rcx, rax
 
4000
        adc r10, rdx
 
4001
        adc r11, 0
 
4002
        mov qword ptr [184+r9], rcx
 
4003
        mov rdi, r11
 
4004
        mov rsi, r10
 
4005
        mov rcx, r8
 
4006
        mov rax, qword ptr [-544+rbp]
 
4007
        mul qword ptr [-96+rbp]
 
4008
        add rsi, rax
 
4009
        adc rdi, rdx
 
4010
        adc rcx, 0
 
4011
        mov rax, qword ptr [-536+rbp]
 
4012
        mul qword ptr [-104+rbp]
 
4013
        add rsi, rax
 
4014
        adc rdi, rdx
 
4015
        adc rcx, 0
 
4016
        mov rax, qword ptr [-528+rbp]
 
4017
        mul qword ptr [-112+rbp]
 
4018
        add rsi, rax
 
4019
        adc rdi, rdx
 
4020
        adc rcx, 0
 
4021
        mov rax, qword ptr [-520+rbp]
 
4022
        mul qword ptr [-120+rbp]
 
4023
        add rsi, rax
 
4024
        adc rdi, rdx
 
4025
        adc rcx, 0
 
4026
        mov rax, qword ptr [-512+rbp]
 
4027
        mul qword ptr [-128+rbp]
 
4028
        add rsi, rax
 
4029
        adc rdi, rdx
 
4030
        adc rcx, 0
 
4031
        mov rax, qword ptr [-504+rbp]
 
4032
        mul qword ptr [-136+rbp]
 
4033
        add rsi, rax
 
4034
        adc rdi, rdx
 
4035
        adc rcx, 0
 
4036
        mov rax, qword ptr [-496+rbp]
 
4037
        mul qword ptr [-144+rbp]
 
4038
        add rsi, rax
 
4039
        adc rdi, rdx
 
4040
        adc rcx, 0
 
4041
        mov rax, qword ptr [-488+rbp]
 
4042
        mul qword ptr [-152+rbp]
 
4043
        add rsi, rax
 
4044
        adc rdi, rdx
 
4045
        adc rcx, 0
 
4046
        mov rax, qword ptr [-480+rbp]
 
4047
        mul qword ptr [-160+rbp]
 
4048
        add rsi, rax
 
4049
        adc rdi, rdx
 
4050
        adc rcx, 0
 
4051
        mov rax, qword ptr [-472+rbp]
 
4052
        mul qword ptr [-168+rbp]
 
4053
        add rsi, rax
 
4054
        adc rdi, rdx
 
4055
        adc rcx, 0
 
4056
        mov rax, qword ptr [-464+rbp]
 
4057
        mul qword ptr [-176+rbp]
 
4058
        add rsi, rax
 
4059
        adc rdi, rdx
 
4060
        adc rcx, 0
 
4061
        mov rax, qword ptr [-456+rbp]
 
4062
        mul qword ptr [-184+rbp]
 
4063
        add rsi, rax
 
4064
        adc rdi, rdx
 
4065
        adc rcx, 0
 
4066
        mov rax, qword ptr [-448+rbp]
 
4067
        mul qword ptr [-192+rbp]
 
4068
        add rsi, rax
 
4069
        adc rdi, rdx
 
4070
        adc rcx, 0
 
4071
        mov rax, qword ptr [-440+rbp]
 
4072
        mul qword ptr [-200+rbp]
 
4073
        add rsi, rax
 
4074
        adc rdi, rdx
 
4075
        adc rcx, 0
 
4076
        mov rax, qword ptr [-432+rbp]
 
4077
        mul qword ptr [-208+rbp]
 
4078
        add rsi, rax
 
4079
        adc rdi, rdx
 
4080
        adc rcx, 0
 
4081
        mov rax, qword ptr [-424+rbp]
 
4082
        mul qword ptr [-216+rbp]
 
4083
        add rsi, rax
 
4084
        adc rdi, rdx
 
4085
        adc rcx, 0
 
4086
        mov rax, qword ptr [-416+rbp]
 
4087
        mul qword ptr [-224+rbp]
 
4088
        add rsi, rax
 
4089
        adc rdi, rdx
 
4090
        adc rcx, 0
 
4091
        mov rax, qword ptr [-408+rbp]
 
4092
        mul qword ptr [-232+rbp]
 
4093
        add rsi, rax
 
4094
        adc rdi, rdx
 
4095
        adc rcx, 0
 
4096
        mov rax, qword ptr [-400+rbp]
 
4097
        mul qword ptr [-240+rbp]
 
4098
        add rsi, rax
 
4099
        adc rdi, rdx
 
4100
        adc rcx, 0
 
4101
        mov rax, qword ptr [-392+rbp]
 
4102
        mul qword ptr [-248+rbp]
 
4103
        add rsi, rax
 
4104
        adc rdi, rdx
 
4105
        adc rcx, 0
 
4106
        mov rax, qword ptr [-384+rbp]
 
4107
        mul qword ptr [-256+rbp]
 
4108
        add rsi, rax
 
4109
        adc rdi, rdx
 
4110
        adc rcx, 0
 
4111
        mov rax, qword ptr [-376+rbp]
 
4112
        mul qword ptr [-264+rbp]
 
4113
        add rsi, rax
 
4114
        adc rdi, rdx
 
4115
        adc rcx, 0
 
4116
        mov rax, qword ptr [-368+rbp]
 
4117
        mul qword ptr [-272+rbp]
 
4118
        add rsi, rax
 
4119
        adc rdi, rdx
 
4120
        adc rcx, 0
 
4121
        mov rax, qword ptr [-360+rbp]
 
4122
        mul qword ptr [-280+rbp]
 
4123
        add rsi, rax
 
4124
        adc rdi, rdx
 
4125
        adc rcx, 0
 
4126
        mov r10, rdi
 
4127
        mov r11, rcx
 
4128
        mov rax, qword ptr [-352+rbp]
 
4129
        mul qword ptr [-288+rbp]
 
4130
        add rsi, rax
 
4131
        adc r10, rdx
 
4132
        adc r11, 0
 
4133
        mov qword ptr [192+r9], rsi
 
4134
        mov rdi, r11
 
4135
        mov rcx, r10
 
4136
        mov rsi, r8
 
4137
        mov rax, qword ptr [-544+rbp]
 
4138
        mul qword ptr [-88+rbp]
 
4139
        add rcx, rax
 
4140
        adc rdi, rdx
 
4141
        adc rsi, 0
 
4142
        mov rax, qword ptr [-536+rbp]
 
4143
        mul qword ptr [-96+rbp]
 
4144
        add rcx, rax
 
4145
        adc rdi, rdx
 
4146
        adc rsi, 0
 
4147
        mov rax, qword ptr [-528+rbp]
 
4148
        mul qword ptr [-104+rbp]
 
4149
        add rcx, rax
 
4150
        adc rdi, rdx
 
4151
        adc rsi, 0
 
4152
        mov rax, qword ptr [-520+rbp]
 
4153
        mul qword ptr [-112+rbp]
 
4154
        add rcx, rax
 
4155
        adc rdi, rdx
 
4156
        adc rsi, 0
 
4157
        mov rax, qword ptr [-512+rbp]
 
4158
        mul qword ptr [-120+rbp]
 
4159
        add rcx, rax
 
4160
        adc rdi, rdx
 
4161
        adc rsi, 0
 
4162
        mov rax, qword ptr [-504+rbp]
 
4163
        mul qword ptr [-128+rbp]
 
4164
        add rcx, rax
 
4165
        adc rdi, rdx
 
4166
        adc rsi, 0
 
4167
        mov rax, qword ptr [-496+rbp]
 
4168
        mul qword ptr [-136+rbp]
 
4169
        add rcx, rax
 
4170
        adc rdi, rdx
 
4171
        adc rsi, 0
 
4172
        mov rax, qword ptr [-488+rbp]
 
4173
        mul qword ptr [-144+rbp]
 
4174
        add rcx, rax
 
4175
        adc rdi, rdx
 
4176
        adc rsi, 0
 
4177
        mov rax, qword ptr [-480+rbp]
 
4178
        mul qword ptr [-152+rbp]
 
4179
        add rcx, rax
 
4180
        adc rdi, rdx
 
4181
        adc rsi, 0
 
4182
        mov rax, qword ptr [-472+rbp]
 
4183
        mul qword ptr [-160+rbp]
 
4184
        add rcx, rax
 
4185
        adc rdi, rdx
 
4186
        adc rsi, 0
 
4187
        mov rax, qword ptr [-464+rbp]
 
4188
        mul qword ptr [-168+rbp]
 
4189
        add rcx, rax
 
4190
        adc rdi, rdx
 
4191
        adc rsi, 0
 
4192
        mov rax, qword ptr [-456+rbp]
 
4193
        mul qword ptr [-176+rbp]
 
4194
        add rcx, rax
 
4195
        adc rdi, rdx
 
4196
        adc rsi, 0
 
4197
        mov rax, qword ptr [-448+rbp]
 
4198
        mul qword ptr [-184+rbp]
 
4199
        add rcx, rax
 
4200
        adc rdi, rdx
 
4201
        adc rsi, 0
 
4202
        mov rax, qword ptr [-440+rbp]
 
4203
        mul qword ptr [-192+rbp]
 
4204
        add rcx, rax
 
4205
        adc rdi, rdx
 
4206
        adc rsi, 0
 
4207
        mov rax, qword ptr [-432+rbp]
 
4208
        mul qword ptr [-200+rbp]
 
4209
        add rcx, rax
 
4210
        adc rdi, rdx
 
4211
        adc rsi, 0
 
4212
        mov rax, qword ptr [-424+rbp]
 
4213
        mul qword ptr [-208+rbp]
 
4214
        add rcx, rax
 
4215
        adc rdi, rdx
 
4216
        adc rsi, 0
 
4217
        mov rax, qword ptr [-416+rbp]
 
4218
        mul qword ptr [-216+rbp]
 
4219
        add rcx, rax
 
4220
        adc rdi, rdx
 
4221
        adc rsi, 0
 
4222
        mov rax, qword ptr [-408+rbp]
 
4223
        mul qword ptr [-224+rbp]
 
4224
        add rcx, rax
 
4225
        adc rdi, rdx
 
4226
        adc rsi, 0
 
4227
        mov rax, qword ptr [-400+rbp]
 
4228
        mul qword ptr [-232+rbp]
 
4229
        add rcx, rax
 
4230
        adc rdi, rdx
 
4231
        adc rsi, 0
 
4232
        mov rax, qword ptr [-392+rbp]
 
4233
        mul qword ptr [-240+rbp]
 
4234
        add rcx, rax
 
4235
        adc rdi, rdx
 
4236
        adc rsi, 0
 
4237
        mov rax, qword ptr [-384+rbp]
 
4238
        mul qword ptr [-248+rbp]
 
4239
        add rcx, rax
 
4240
        adc rdi, rdx
 
4241
        adc rsi, 0
 
4242
        mov rax, qword ptr [-376+rbp]
 
4243
        mul qword ptr [-256+rbp]
 
4244
        add rcx, rax
 
4245
        adc rdi, rdx
 
4246
        adc rsi, 0
 
4247
        mov rax, qword ptr [-368+rbp]
 
4248
        mul qword ptr [-264+rbp]
 
4249
        add rcx, rax
 
4250
        adc rdi, rdx
 
4251
        adc rsi, 0
 
4252
        mov rax, qword ptr [-360+rbp]
 
4253
        mul qword ptr [-272+rbp]
 
4254
        add rcx, rax
 
4255
        adc rdi, rdx
 
4256
        adc rsi, 0
 
4257
        mov rax, qword ptr [-352+rbp]
 
4258
        mul qword ptr [-280+rbp]
 
4259
        add rcx, rax
 
4260
        adc rdi, rdx
 
4261
        adc rsi, 0
 
4262
        mov r10, rdi
 
4263
        mov r11, rsi
 
4264
        mov rax, qword ptr [-344+rbp]
 
4265
        mul qword ptr [-288+rbp]
 
4266
        add rcx, rax
 
4267
        adc r10, rdx
 
4268
        adc r11, 0
 
4269
        mov qword ptr [200+r9], rcx
 
4270
        mov rdi, r11
 
4271
        mov rsi, r10
 
4272
        mov rcx, r8
 
4273
        mov rax, qword ptr [-544+rbp]
 
4274
        mul qword ptr [-80+rbp]
 
4275
        add rsi, rax
 
4276
        adc rdi, rdx
 
4277
        adc rcx, 0
 
4278
        mov rax, qword ptr [-536+rbp]
 
4279
        mul qword ptr [-88+rbp]
 
4280
        add rsi, rax
 
4281
        adc rdi, rdx
 
4282
        adc rcx, 0
 
4283
        mov rax, qword ptr [-528+rbp]
 
4284
        mul qword ptr [-96+rbp]
 
4285
        add rsi, rax
 
4286
        adc rdi, rdx
 
4287
        adc rcx, 0
 
4288
        mov rax, qword ptr [-520+rbp]
 
4289
        mul qword ptr [-104+rbp]
 
4290
        add rsi, rax
 
4291
        adc rdi, rdx
 
4292
        adc rcx, 0
 
4293
        mov rax, qword ptr [-512+rbp]
 
4294
        mul qword ptr [-112+rbp]
 
4295
        add rsi, rax
 
4296
        adc rdi, rdx
 
4297
        adc rcx, 0
 
4298
        mov rax, qword ptr [-504+rbp]
 
4299
        mul qword ptr [-120+rbp]
 
4300
        add rsi, rax
 
4301
        adc rdi, rdx
 
4302
        adc rcx, 0
 
4303
        mov rax, qword ptr [-496+rbp]
 
4304
        mul qword ptr [-128+rbp]
 
4305
        add rsi, rax
 
4306
        adc rdi, rdx
 
4307
        adc rcx, 0
 
4308
        mov rax, qword ptr [-488+rbp]
 
4309
        mul qword ptr [-136+rbp]
 
4310
        add rsi, rax
 
4311
        adc rdi, rdx
 
4312
        adc rcx, 0
 
4313
        mov rax, qword ptr [-480+rbp]
 
4314
        mul qword ptr [-144+rbp]
 
4315
        add rsi, rax
 
4316
        adc rdi, rdx
 
4317
        adc rcx, 0
 
4318
        mov rax, qword ptr [-472+rbp]
 
4319
        mul qword ptr [-152+rbp]
 
4320
        add rsi, rax
 
4321
        adc rdi, rdx
 
4322
        adc rcx, 0
 
4323
        mov rax, qword ptr [-464+rbp]
 
4324
        mul qword ptr [-160+rbp]
 
4325
        add rsi, rax
 
4326
        adc rdi, rdx
 
4327
        adc rcx, 0
 
4328
        mov rax, qword ptr [-456+rbp]
 
4329
        mul qword ptr [-168+rbp]
 
4330
        add rsi, rax
 
4331
        adc rdi, rdx
 
4332
        adc rcx, 0
 
4333
        mov rax, qword ptr [-448+rbp]
 
4334
        mul qword ptr [-176+rbp]
 
4335
        add rsi, rax
 
4336
        adc rdi, rdx
 
4337
        adc rcx, 0
 
4338
        mov rax, qword ptr [-440+rbp]
 
4339
        mul qword ptr [-184+rbp]
 
4340
        add rsi, rax
 
4341
        adc rdi, rdx
 
4342
        adc rcx, 0
 
4343
        mov rax, qword ptr [-432+rbp]
 
4344
        mul qword ptr [-192+rbp]
 
4345
        add rsi, rax
 
4346
        adc rdi, rdx
 
4347
        adc rcx, 0
 
4348
        mov rax, qword ptr [-424+rbp]
 
4349
        mul qword ptr [-200+rbp]
 
4350
        add rsi, rax
 
4351
        adc rdi, rdx
 
4352
        adc rcx, 0
 
4353
        mov rax, qword ptr [-416+rbp]
 
4354
        mul qword ptr [-208+rbp]
 
4355
        add rsi, rax
 
4356
        adc rdi, rdx
 
4357
        adc rcx, 0
 
4358
        mov rax, qword ptr [-408+rbp]
 
4359
        mul qword ptr [-216+rbp]
 
4360
        add rsi, rax
 
4361
        adc rdi, rdx
 
4362
        adc rcx, 0
 
4363
        mov rax, qword ptr [-400+rbp]
 
4364
        mul qword ptr [-224+rbp]
 
4365
        add rsi, rax
 
4366
        adc rdi, rdx
 
4367
        adc rcx, 0
 
4368
        mov rax, qword ptr [-392+rbp]
 
4369
        mul qword ptr [-232+rbp]
 
4370
        add rsi, rax
 
4371
        adc rdi, rdx
 
4372
        adc rcx, 0
 
4373
        mov rax, qword ptr [-384+rbp]
 
4374
        mul qword ptr [-240+rbp]
 
4375
        add rsi, rax
 
4376
        adc rdi, rdx
 
4377
        adc rcx, 0
 
4378
        mov rax, qword ptr [-376+rbp]
 
4379
        mul qword ptr [-248+rbp]
 
4380
        add rsi, rax
 
4381
        adc rdi, rdx
 
4382
        adc rcx, 0
 
4383
        mov rax, qword ptr [-368+rbp]
 
4384
        mul qword ptr [-256+rbp]
 
4385
        add rsi, rax
 
4386
        adc rdi, rdx
 
4387
        adc rcx, 0
 
4388
        mov rax, qword ptr [-360+rbp]
 
4389
        mul qword ptr [-264+rbp]
 
4390
        add rsi, rax
 
4391
        adc rdi, rdx
 
4392
        adc rcx, 0
 
4393
        mov rax, qword ptr [-352+rbp]
 
4394
        mul qword ptr [-272+rbp]
 
4395
        add rsi, rax
 
4396
        adc rdi, rdx
 
4397
        adc rcx, 0
 
4398
        mov rax, qword ptr [-344+rbp]
 
4399
        mul qword ptr [-280+rbp]
 
4400
        add rsi, rax
 
4401
        adc rdi, rdx
 
4402
        adc rcx, 0
 
4403
        mov r10, rdi
 
4404
        mov r11, rcx
 
4405
        mov rax, qword ptr [-336+rbp]
 
4406
        mul qword ptr [-288+rbp]
 
4407
        add rsi, rax
 
4408
        adc r10, rdx
 
4409
        adc r11, 0
 
4410
        mov qword ptr [208+r9], rsi
 
4411
        mov rdi, r11
 
4412
        mov rcx, r10
 
4413
        mov rsi, r8
 
4414
        mov rax, qword ptr [-544+rbp]
 
4415
        mul qword ptr [-72+rbp]
 
4416
        add rcx, rax
 
4417
        adc rdi, rdx
 
4418
        adc rsi, 0
 
4419
        mov rax, qword ptr [-536+rbp]
 
4420
        mul qword ptr [-80+rbp]
 
4421
        add rcx, rax
 
4422
        adc rdi, rdx
 
4423
        adc rsi, 0
 
4424
        mov rax, qword ptr [-528+rbp]
 
4425
        mul qword ptr [-88+rbp]
 
4426
        add rcx, rax
 
4427
        adc rdi, rdx
 
4428
        adc rsi, 0
 
4429
        mov rax, qword ptr [-520+rbp]
 
4430
        mul qword ptr [-96+rbp]
 
4431
        add rcx, rax
 
4432
        adc rdi, rdx
 
4433
        adc rsi, 0
 
4434
        mov rax, qword ptr [-512+rbp]
 
4435
        mul qword ptr [-104+rbp]
 
4436
        add rcx, rax
 
4437
        adc rdi, rdx
 
4438
        adc rsi, 0
 
4439
        mov rax, qword ptr [-504+rbp]
 
4440
        mul qword ptr [-112+rbp]
 
4441
        add rcx, rax
 
4442
        adc rdi, rdx
 
4443
        adc rsi, 0
 
4444
        mov rax, qword ptr [-496+rbp]
 
4445
        mul qword ptr [-120+rbp]
 
4446
        add rcx, rax
 
4447
        adc rdi, rdx
 
4448
        adc rsi, 0
 
4449
        mov rax, qword ptr [-488+rbp]
 
4450
        mul qword ptr [-128+rbp]
 
4451
        add rcx, rax
 
4452
        adc rdi, rdx
 
4453
        adc rsi, 0
 
4454
        mov rax, qword ptr [-480+rbp]
 
4455
        mul qword ptr [-136+rbp]
 
4456
        add rcx, rax
 
4457
        adc rdi, rdx
 
4458
        adc rsi, 0
 
4459
        mov rax, qword ptr [-472+rbp]
 
4460
        mul qword ptr [-144+rbp]
 
4461
        add rcx, rax
 
4462
        adc rdi, rdx
 
4463
        adc rsi, 0
 
4464
        mov rax, qword ptr [-464+rbp]
 
4465
        mul qword ptr [-152+rbp]
 
4466
        add rcx, rax
 
4467
        adc rdi, rdx
 
4468
        adc rsi, 0
 
4469
        mov rax, qword ptr [-456+rbp]
 
4470
        mul qword ptr [-160+rbp]
 
4471
        add rcx, rax
 
4472
        adc rdi, rdx
 
4473
        adc rsi, 0
 
4474
        mov rax, qword ptr [-448+rbp]
 
4475
        mul qword ptr [-168+rbp]
 
4476
        add rcx, rax
 
4477
        adc rdi, rdx
 
4478
        adc rsi, 0
 
4479
        mov rax, qword ptr [-440+rbp]
 
4480
        mul qword ptr [-176+rbp]
 
4481
        add rcx, rax
 
4482
        adc rdi, rdx
 
4483
        adc rsi, 0
 
4484
        mov rax, qword ptr [-432+rbp]
 
4485
        mul qword ptr [-184+rbp]
 
4486
        add rcx, rax
 
4487
        adc rdi, rdx
 
4488
        adc rsi, 0
 
4489
        mov rax, qword ptr [-424+rbp]
 
4490
        mul qword ptr [-192+rbp]
 
4491
        add rcx, rax
 
4492
        adc rdi, rdx
 
4493
        adc rsi, 0
 
4494
        mov rax, qword ptr [-416+rbp]
 
4495
        mul qword ptr [-200+rbp]
 
4496
        add rcx, rax
 
4497
        adc rdi, rdx
 
4498
        adc rsi, 0
 
4499
        mov rax, qword ptr [-408+rbp]
 
4500
        mul qword ptr [-208+rbp]
 
4501
        add rcx, rax
 
4502
        adc rdi, rdx
 
4503
        adc rsi, 0
 
4504
        mov rax, qword ptr [-400+rbp]
 
4505
        mul qword ptr [-216+rbp]
 
4506
        add rcx, rax
 
4507
        adc rdi, rdx
 
4508
        adc rsi, 0
 
4509
        mov rax, qword ptr [-392+rbp]
 
4510
        mul qword ptr [-224+rbp]
 
4511
        add rcx, rax
 
4512
        adc rdi, rdx
 
4513
        adc rsi, 0
 
4514
        mov rax, qword ptr [-384+rbp]
 
4515
        mul qword ptr [-232+rbp]
 
4516
        add rcx, rax
 
4517
        adc rdi, rdx
 
4518
        adc rsi, 0
 
4519
        mov rax, qword ptr [-376+rbp]
 
4520
        mul qword ptr [-240+rbp]
 
4521
        add rcx, rax
 
4522
        adc rdi, rdx
 
4523
        adc rsi, 0
 
4524
        mov rax, qword ptr [-368+rbp]
 
4525
        mul qword ptr [-248+rbp]
 
4526
        add rcx, rax
 
4527
        adc rdi, rdx
 
4528
        adc rsi, 0
 
4529
        mov rax, qword ptr [-360+rbp]
 
4530
        mul qword ptr [-256+rbp]
 
4531
        add rcx, rax
 
4532
        adc rdi, rdx
 
4533
        adc rsi, 0
 
4534
        mov rax, qword ptr [-352+rbp]
 
4535
        mul qword ptr [-264+rbp]
 
4536
        add rcx, rax
 
4537
        adc rdi, rdx
 
4538
        adc rsi, 0
 
4539
        mov rax, qword ptr [-344+rbp]
 
4540
        mul qword ptr [-272+rbp]
 
4541
        add rcx, rax
 
4542
        adc rdi, rdx
 
4543
        adc rsi, 0
 
4544
        mov rax, qword ptr [-336+rbp]
 
4545
        mul qword ptr [-280+rbp]
 
4546
        add rcx, rax
 
4547
        adc rdi, rdx
 
4548
        adc rsi, 0
 
4549
        mov r10, rdi
 
4550
        mov r11, rsi
 
4551
        mov rax, qword ptr [-328+rbp]
 
4552
        mul qword ptr [-288+rbp]
 
4553
        add rcx, rax
 
4554
        adc r10, rdx
 
4555
        adc r11, 0
 
4556
        mov qword ptr [216+r9], rcx
 
4557
        mov rdi, r11
 
4558
        mov rsi, r10
 
4559
        mov rcx, r8
 
4560
        mov rax, qword ptr [-544+rbp]
 
4561
        mul qword ptr [-64+rbp]
 
4562
        add rsi, rax
 
4563
        adc rdi, rdx
 
4564
        adc rcx, 0
 
4565
        mov rax, qword ptr [-536+rbp]
 
4566
        mul qword ptr [-72+rbp]
 
4567
        add rsi, rax
 
4568
        adc rdi, rdx
 
4569
        adc rcx, 0
 
4570
        mov rax, qword ptr [-528+rbp]
 
4571
        mul qword ptr [-80+rbp]
 
4572
        add rsi, rax
 
4573
        adc rdi, rdx
 
4574
        adc rcx, 0
 
4575
        mov rax, qword ptr [-520+rbp]
 
4576
        mul qword ptr [-88+rbp]
 
4577
        add rsi, rax
 
4578
        adc rdi, rdx
 
4579
        adc rcx, 0
 
4580
        mov rax, qword ptr [-512+rbp]
 
4581
        mul qword ptr [-96+rbp]
 
4582
        add rsi, rax
 
4583
        adc rdi, rdx
 
4584
        adc rcx, 0
 
4585
        mov rax, qword ptr [-504+rbp]
 
4586
        mul qword ptr [-104+rbp]
 
4587
        add rsi, rax
 
4588
        adc rdi, rdx
 
4589
        adc rcx, 0
 
4590
        mov rax, qword ptr [-496+rbp]
 
4591
        mul qword ptr [-112+rbp]
 
4592
        add rsi, rax
 
4593
        adc rdi, rdx
 
4594
        adc rcx, 0
 
4595
        mov rax, qword ptr [-488+rbp]
 
4596
        mul qword ptr [-120+rbp]
 
4597
        add rsi, rax
 
4598
        adc rdi, rdx
 
4599
        adc rcx, 0
 
4600
        mov rax, qword ptr [-480+rbp]
 
4601
        mul qword ptr [-128+rbp]
 
4602
        add rsi, rax
 
4603
        adc rdi, rdx
 
4604
        adc rcx, 0
 
4605
        mov rax, qword ptr [-472+rbp]
 
4606
        mul qword ptr [-136+rbp]
 
4607
        add rsi, rax
 
4608
        adc rdi, rdx
 
4609
        adc rcx, 0
 
4610
        mov rax, qword ptr [-464+rbp]
 
4611
        mul qword ptr [-144+rbp]
 
4612
        add rsi, rax
 
4613
        adc rdi, rdx
 
4614
        adc rcx, 0
 
4615
        mov rax, qword ptr [-456+rbp]
 
4616
        mul qword ptr [-152+rbp]
 
4617
        add rsi, rax
 
4618
        adc rdi, rdx
 
4619
        adc rcx, 0
 
4620
        mov rax, qword ptr [-448+rbp]
 
4621
        mul qword ptr [-160+rbp]
 
4622
        add rsi, rax
 
4623
        adc rdi, rdx
 
4624
        adc rcx, 0
 
4625
        mov rax, qword ptr [-440+rbp]
 
4626
        mul qword ptr [-168+rbp]
 
4627
        add rsi, rax
 
4628
        adc rdi, rdx
 
4629
        adc rcx, 0
 
4630
        mov rax, qword ptr [-432+rbp]
 
4631
        mul qword ptr [-176+rbp]
 
4632
        add rsi, rax
 
4633
        adc rdi, rdx
 
4634
        adc rcx, 0
 
4635
        mov rax, qword ptr [-424+rbp]
 
4636
        mul qword ptr [-184+rbp]
 
4637
        add rsi, rax
 
4638
        adc rdi, rdx
 
4639
        adc rcx, 0
 
4640
        mov rax, qword ptr [-416+rbp]
 
4641
        mul qword ptr [-192+rbp]
 
4642
        add rsi, rax
 
4643
        adc rdi, rdx
 
4644
        adc rcx, 0
 
4645
        mov rax, qword ptr [-408+rbp]
 
4646
        mul qword ptr [-200+rbp]
 
4647
        add rsi, rax
 
4648
        adc rdi, rdx
 
4649
        adc rcx, 0
 
4650
        mov rax, qword ptr [-400+rbp]
 
4651
        mul qword ptr [-208+rbp]
 
4652
        add rsi, rax
 
4653
        adc rdi, rdx
 
4654
        adc rcx, 0
 
4655
        mov rax, qword ptr [-392+rbp]
 
4656
        mul qword ptr [-216+rbp]
 
4657
        add rsi, rax
 
4658
        adc rdi, rdx
 
4659
        adc rcx, 0
 
4660
        mov rax, qword ptr [-384+rbp]
 
4661
        mul qword ptr [-224+rbp]
 
4662
        add rsi, rax
 
4663
        adc rdi, rdx
 
4664
        adc rcx, 0
 
4665
        mov rax, qword ptr [-376+rbp]
 
4666
        mul qword ptr [-232+rbp]
 
4667
        add rsi, rax
 
4668
        adc rdi, rdx
 
4669
        adc rcx, 0
 
4670
        mov rax, qword ptr [-368+rbp]
 
4671
        mul qword ptr [-240+rbp]
 
4672
        add rsi, rax
 
4673
        adc rdi, rdx
 
4674
        adc rcx, 0
 
4675
        mov rax, qword ptr [-360+rbp]
 
4676
        mul qword ptr [-248+rbp]
 
4677
        add rsi, rax
 
4678
        adc rdi, rdx
 
4679
        adc rcx, 0
 
4680
        mov rax, qword ptr [-352+rbp]
 
4681
        mul qword ptr [-256+rbp]
 
4682
        add rsi, rax
 
4683
        adc rdi, rdx
 
4684
        adc rcx, 0
 
4685
        mov rax, qword ptr [-344+rbp]
 
4686
        mul qword ptr [-264+rbp]
 
4687
        add rsi, rax
 
4688
        adc rdi, rdx
 
4689
        adc rcx, 0
 
4690
        mov rax, qword ptr [-336+rbp]
 
4691
        mul qword ptr [-272+rbp]
 
4692
        add rsi, rax
 
4693
        adc rdi, rdx
 
4694
        adc rcx, 0
 
4695
        mov rax, qword ptr [-328+rbp]
 
4696
        mul qword ptr [-280+rbp]
 
4697
        add rsi, rax
 
4698
        adc rdi, rdx
 
4699
        adc rcx, 0
 
4700
        mov r10, rdi
 
4701
        mov r11, rcx
 
4702
        mov rax, qword ptr [-320+rbp]
 
4703
        mul qword ptr [-288+rbp]
 
4704
        add rsi, rax
 
4705
        adc r10, rdx
 
4706
        adc r11, 0
 
4707
        mov qword ptr [224+r9], rsi
 
4708
        mov rdi, r11
 
4709
        mov rcx, r10
 
4710
        mov rsi, r8
 
4711
        mov rax, qword ptr [-544+rbp]
 
4712
        mul qword ptr [-56+rbp]
 
4713
        add rcx, rax
 
4714
        adc rdi, rdx
 
4715
        adc rsi, 0
 
4716
        mov rax, qword ptr [-536+rbp]
 
4717
        mul qword ptr [-64+rbp]
 
4718
        add rcx, rax
 
4719
        adc rdi, rdx
 
4720
        adc rsi, 0
 
4721
        mov rax, qword ptr [-528+rbp]
 
4722
        mul qword ptr [-72+rbp]
 
4723
        add rcx, rax
 
4724
        adc rdi, rdx
 
4725
        adc rsi, 0
 
4726
        mov rax, qword ptr [-520+rbp]
 
4727
        mul qword ptr [-80+rbp]
 
4728
        add rcx, rax
 
4729
        adc rdi, rdx
 
4730
        adc rsi, 0
 
4731
        mov rax, qword ptr [-512+rbp]
 
4732
        mul qword ptr [-88+rbp]
 
4733
        add rcx, rax
 
4734
        adc rdi, rdx
 
4735
        adc rsi, 0
 
4736
        mov rax, qword ptr [-504+rbp]
 
4737
        mul qword ptr [-96+rbp]
 
4738
        add rcx, rax
 
4739
        adc rdi, rdx
 
4740
        adc rsi, 0
 
4741
        mov rax, qword ptr [-496+rbp]
 
4742
        mul qword ptr [-104+rbp]
 
4743
        add rcx, rax
 
4744
        adc rdi, rdx
 
4745
        adc rsi, 0
 
4746
        mov rax, qword ptr [-488+rbp]
 
4747
        mul qword ptr [-112+rbp]
 
4748
        add rcx, rax
 
4749
        adc rdi, rdx
 
4750
        adc rsi, 0
 
4751
        mov rax, qword ptr [-480+rbp]
 
4752
        mul qword ptr [-120+rbp]
 
4753
        add rcx, rax
 
4754
        adc rdi, rdx
 
4755
        adc rsi, 0
 
4756
        mov rax, qword ptr [-472+rbp]
 
4757
        mul qword ptr [-128+rbp]
 
4758
        add rcx, rax
 
4759
        adc rdi, rdx
 
4760
        adc rsi, 0
 
4761
        mov rax, qword ptr [-464+rbp]
 
4762
        mul qword ptr [-136+rbp]
 
4763
        add rcx, rax
 
4764
        adc rdi, rdx
 
4765
        adc rsi, 0
 
4766
        mov rax, qword ptr [-456+rbp]
 
4767
        mul qword ptr [-144+rbp]
 
4768
        add rcx, rax
 
4769
        adc rdi, rdx
 
4770
        adc rsi, 0
 
4771
        mov rax, qword ptr [-448+rbp]
 
4772
        mul qword ptr [-152+rbp]
 
4773
        add rcx, rax
 
4774
        adc rdi, rdx
 
4775
        adc rsi, 0
 
4776
        mov rax, qword ptr [-440+rbp]
 
4777
        mul qword ptr [-160+rbp]
 
4778
        add rcx, rax
 
4779
        adc rdi, rdx
 
4780
        adc rsi, 0
 
4781
        mov rax, qword ptr [-432+rbp]
 
4782
        mul qword ptr [-168+rbp]
 
4783
        add rcx, rax
 
4784
        adc rdi, rdx
 
4785
        adc rsi, 0
 
4786
        mov rax, qword ptr [-424+rbp]
 
4787
        mul qword ptr [-176+rbp]
 
4788
        add rcx, rax
 
4789
        adc rdi, rdx
 
4790
        adc rsi, 0
 
4791
        mov rax, qword ptr [-416+rbp]
 
4792
        mul qword ptr [-184+rbp]
 
4793
        add rcx, rax
 
4794
        adc rdi, rdx
 
4795
        adc rsi, 0
 
4796
        mov rax, qword ptr [-408+rbp]
 
4797
        mul qword ptr [-192+rbp]
 
4798
        add rcx, rax
 
4799
        adc rdi, rdx
 
4800
        adc rsi, 0
 
4801
        mov rax, qword ptr [-400+rbp]
 
4802
        mul qword ptr [-200+rbp]
 
4803
        add rcx, rax
 
4804
        adc rdi, rdx
 
4805
        adc rsi, 0
 
4806
        mov rax, qword ptr [-392+rbp]
 
4807
        mul qword ptr [-208+rbp]
 
4808
        add rcx, rax
 
4809
        adc rdi, rdx
 
4810
        adc rsi, 0
 
4811
        mov rax, qword ptr [-384+rbp]
 
4812
        mul qword ptr [-216+rbp]
 
4813
        add rcx, rax
 
4814
        adc rdi, rdx
 
4815
        adc rsi, 0
 
4816
        mov rax, qword ptr [-376+rbp]
 
4817
        mul qword ptr [-224+rbp]
 
4818
        add rcx, rax
 
4819
        adc rdi, rdx
 
4820
        adc rsi, 0
 
4821
        mov rax, qword ptr [-368+rbp]
 
4822
        mul qword ptr [-232+rbp]
 
4823
        add rcx, rax
 
4824
        adc rdi, rdx
 
4825
        adc rsi, 0
 
4826
        mov rax, qword ptr [-360+rbp]
 
4827
        mul qword ptr [-240+rbp]
 
4828
        add rcx, rax
 
4829
        adc rdi, rdx
 
4830
        adc rsi, 0
 
4831
        mov rax, qword ptr [-352+rbp]
 
4832
        mul qword ptr [-248+rbp]
 
4833
        add rcx, rax
 
4834
        adc rdi, rdx
 
4835
        adc rsi, 0
 
4836
        mov rax, qword ptr [-344+rbp]
 
4837
        mul qword ptr [-256+rbp]
 
4838
        add rcx, rax
 
4839
        adc rdi, rdx
 
4840
        adc rsi, 0
 
4841
        mov rax, qword ptr [-336+rbp]
 
4842
        mul qword ptr [-264+rbp]
 
4843
        add rcx, rax
 
4844
        adc rdi, rdx
 
4845
        adc rsi, 0
 
4846
        mov rax, qword ptr [-328+rbp]
 
4847
        mul qword ptr [-272+rbp]
 
4848
        add rcx, rax
 
4849
        adc rdi, rdx
 
4850
        adc rsi, 0
 
4851
        mov rax, qword ptr [-320+rbp]
 
4852
        mul qword ptr [-280+rbp]
 
4853
        add rcx, rax
 
4854
        adc rdi, rdx
 
4855
        adc rsi, 0
 
4856
        mov r10, rdi
 
4857
        mov r11, rsi
 
4858
        mov rax, qword ptr [-312+rbp]
 
4859
        mul qword ptr [-288+rbp]
 
4860
        add rcx, rax
 
4861
        adc r10, rdx
 
4862
        adc r11, 0
 
4863
        mov qword ptr [232+r9], rcx
 
4864
        mov rdi, r11
 
4865
        mov rsi, r10
 
4866
        mov rcx, r8
 
4867
        mov rax, qword ptr [-544+rbp]
 
4868
        mul qword ptr [-48+rbp]
 
4869
        add rsi, rax
 
4870
        adc rdi, rdx
 
4871
        adc rcx, 0
 
4872
        mov rax, qword ptr [-536+rbp]
 
4873
        mul qword ptr [-56+rbp]
 
4874
        add rsi, rax
 
4875
        adc rdi, rdx
 
4876
        adc rcx, 0
 
4877
        mov rax, qword ptr [-528+rbp]
 
4878
        mul qword ptr [-64+rbp]
 
4879
        add rsi, rax
 
4880
        adc rdi, rdx
 
4881
        adc rcx, 0
 
4882
        mov rax, qword ptr [-520+rbp]
 
4883
        mul qword ptr [-72+rbp]
 
4884
        add rsi, rax
 
4885
        adc rdi, rdx
 
4886
        adc rcx, 0
 
4887
        mov rax, qword ptr [-512+rbp]
 
4888
        mul qword ptr [-80+rbp]
 
4889
        add rsi, rax
 
4890
        adc rdi, rdx
 
4891
        adc rcx, 0
 
4892
        mov rax, qword ptr [-504+rbp]
 
4893
        mul qword ptr [-88+rbp]
 
4894
        add rsi, rax
 
4895
        adc rdi, rdx
 
4896
        adc rcx, 0
 
4897
        mov rax, qword ptr [-496+rbp]
 
4898
        mul qword ptr [-96+rbp]
 
4899
        add rsi, rax
 
4900
        adc rdi, rdx
 
4901
        adc rcx, 0
 
4902
        mov rax, qword ptr [-488+rbp]
 
4903
        mul qword ptr [-104+rbp]
 
4904
        add rsi, rax
 
4905
        adc rdi, rdx
 
4906
        adc rcx, 0
 
4907
        mov rax, qword ptr [-480+rbp]
 
4908
        mul qword ptr [-112+rbp]
 
4909
        add rsi, rax
 
4910
        adc rdi, rdx
 
4911
        adc rcx, 0
 
4912
        mov rax, qword ptr [-472+rbp]
 
4913
        mul qword ptr [-120+rbp]
 
4914
        add rsi, rax
 
4915
        adc rdi, rdx
 
4916
        adc rcx, 0
 
4917
        mov rax, qword ptr [-464+rbp]
 
4918
        mul qword ptr [-128+rbp]
 
4919
        add rsi, rax
 
4920
        adc rdi, rdx
 
4921
        adc rcx, 0
 
4922
        mov rax, qword ptr [-456+rbp]
 
4923
        mul qword ptr [-136+rbp]
 
4924
        add rsi, rax
 
4925
        adc rdi, rdx
 
4926
        adc rcx, 0
 
4927
        mov rax, qword ptr [-448+rbp]
 
4928
        mul qword ptr [-144+rbp]
 
4929
        add rsi, rax
 
4930
        adc rdi, rdx
 
4931
        adc rcx, 0
 
4932
        mov rax, qword ptr [-440+rbp]
 
4933
        mul qword ptr [-152+rbp]
 
4934
        add rsi, rax
 
4935
        adc rdi, rdx
 
4936
        adc rcx, 0
 
4937
        mov rax, qword ptr [-432+rbp]
 
4938
        mul qword ptr [-160+rbp]
 
4939
        add rsi, rax
 
4940
        adc rdi, rdx
 
4941
        adc rcx, 0
 
4942
        mov rax, qword ptr [-424+rbp]
 
4943
        mul qword ptr [-168+rbp]
 
4944
        add rsi, rax
 
4945
        adc rdi, rdx
 
4946
        adc rcx, 0
 
4947
        mov rax, qword ptr [-416+rbp]
 
4948
        mul qword ptr [-176+rbp]
 
4949
        add rsi, rax
 
4950
        adc rdi, rdx
 
4951
        adc rcx, 0
 
4952
        mov rax, qword ptr [-408+rbp]
 
4953
        mul qword ptr [-184+rbp]
 
4954
        add rsi, rax
 
4955
        adc rdi, rdx
 
4956
        adc rcx, 0
 
4957
        mov rax, qword ptr [-400+rbp]
 
4958
        mul qword ptr [-192+rbp]
 
4959
        add rsi, rax
 
4960
        adc rdi, rdx
 
4961
        adc rcx, 0
 
4962
        mov rax, qword ptr [-392+rbp]
 
4963
        mul qword ptr [-200+rbp]
 
4964
        add rsi, rax
 
4965
        adc rdi, rdx
 
4966
        adc rcx, 0
 
4967
        mov rax, qword ptr [-384+rbp]
 
4968
        mul qword ptr [-208+rbp]
 
4969
        add rsi, rax
 
4970
        adc rdi, rdx
 
4971
        adc rcx, 0
 
4972
        mov rax, qword ptr [-376+rbp]
 
4973
        mul qword ptr [-216+rbp]
 
4974
        add rsi, rax
 
4975
        adc rdi, rdx
 
4976
        adc rcx, 0
 
4977
        mov rax, qword ptr [-368+rbp]
 
4978
        mul qword ptr [-224+rbp]
 
4979
        add rsi, rax
 
4980
        adc rdi, rdx
 
4981
        adc rcx, 0
 
4982
        mov rax, qword ptr [-360+rbp]
 
4983
        mul qword ptr [-232+rbp]
 
4984
        add rsi, rax
 
4985
        adc rdi, rdx
 
4986
        adc rcx, 0
 
4987
        mov rax, qword ptr [-352+rbp]
 
4988
        mul qword ptr [-240+rbp]
 
4989
        add rsi, rax
 
4990
        adc rdi, rdx
 
4991
        adc rcx, 0
 
4992
        mov rax, qword ptr [-344+rbp]
 
4993
        mul qword ptr [-248+rbp]
 
4994
        add rsi, rax
 
4995
        adc rdi, rdx
 
4996
        adc rcx, 0
 
4997
        mov rax, qword ptr [-336+rbp]
 
4998
        mul qword ptr [-256+rbp]
 
4999
        add rsi, rax
 
5000
        adc rdi, rdx
 
5001
        adc rcx, 0
 
5002
        mov rax, qword ptr [-328+rbp]
 
5003
        mul qword ptr [-264+rbp]
 
5004
        add rsi, rax
 
5005
        adc rdi, rdx
 
5006
        adc rcx, 0
 
5007
        mov rax, qword ptr [-320+rbp]
 
5008
        mul qword ptr [-272+rbp]
 
5009
        add rsi, rax
 
5010
        adc rdi, rdx
 
5011
        adc rcx, 0
 
5012
        mov rax, qword ptr [-312+rbp]
 
5013
        mul qword ptr [-280+rbp]
 
5014
        add rsi, rax
 
5015
        adc rdi, rdx
 
5016
        adc rcx, 0
 
5017
        mov r10, rdi
 
5018
        mov r11, rcx
 
5019
        mov rax, qword ptr [-304+rbp]
 
5020
        mul qword ptr [-288+rbp]
 
5021
        add rsi, rax
 
5022
        adc r10, rdx
 
5023
        adc r11, 0
 
5024
        mov qword ptr [240+r9], rsi
 
5025
        mov rdi, r11
 
5026
        mov rcx, r10
 
5027
        mov rsi, r8
 
5028
        mov rax, qword ptr [-544+rbp]
 
5029
        mul qword ptr [-40+rbp]
 
5030
        add rcx, rax
 
5031
        adc rdi, rdx
 
5032
        adc rsi, 0
 
5033
        mov rax, qword ptr [-536+rbp]
 
5034
        mul qword ptr [-48+rbp]
 
5035
        add rcx, rax
 
5036
        adc rdi, rdx
 
5037
        adc rsi, 0
 
5038
        mov rax, qword ptr [-528+rbp]
 
5039
        mul qword ptr [-56+rbp]
 
5040
        add rcx, rax
 
5041
        adc rdi, rdx
 
5042
        adc rsi, 0
 
5043
        mov rax, qword ptr [-520+rbp]
 
5044
        mul qword ptr [-64+rbp]
 
5045
        add rcx, rax
 
5046
        adc rdi, rdx
 
5047
        adc rsi, 0
 
5048
        mov rax, qword ptr [-512+rbp]
 
5049
        mul qword ptr [-72+rbp]
 
5050
        add rcx, rax
 
5051
        adc rdi, rdx
 
5052
        adc rsi, 0
 
5053
        mov rax, qword ptr [-504+rbp]
 
5054
        mul qword ptr [-80+rbp]
 
5055
        add rcx, rax
 
5056
        adc rdi, rdx
 
5057
        adc rsi, 0
 
5058
        mov rax, qword ptr [-496+rbp]
 
5059
        mul qword ptr [-88+rbp]
 
5060
        add rcx, rax
 
5061
        adc rdi, rdx
 
5062
        adc rsi, 0
 
5063
        mov rax, qword ptr [-488+rbp]
 
5064
        mul qword ptr [-96+rbp]
 
5065
        add rcx, rax
 
5066
        adc rdi, rdx
 
5067
        adc rsi, 0
 
5068
        mov rax, qword ptr [-480+rbp]
 
5069
        mul qword ptr [-104+rbp]
 
5070
        add rcx, rax
 
5071
        adc rdi, rdx
 
5072
        adc rsi, 0
 
5073
        mov rax, qword ptr [-472+rbp]
 
5074
        mul qword ptr [-112+rbp]
 
5075
        add rcx, rax
 
5076
        adc rdi, rdx
 
5077
        adc rsi, 0
 
5078
        mov rax, qword ptr [-464+rbp]
 
5079
        mul qword ptr [-120+rbp]
 
5080
        add rcx, rax
 
5081
        adc rdi, rdx
 
5082
        adc rsi, 0
 
5083
        mov rax, qword ptr [-456+rbp]
 
5084
        mul qword ptr [-128+rbp]
 
5085
        add rcx, rax
 
5086
        adc rdi, rdx
 
5087
        adc rsi, 0
 
5088
        mov rax, qword ptr [-448+rbp]
 
5089
        mul qword ptr [-136+rbp]
 
5090
        add rcx, rax
 
5091
        adc rdi, rdx
 
5092
        adc rsi, 0
 
5093
        mov rax, qword ptr [-440+rbp]
 
5094
        mul qword ptr [-144+rbp]
 
5095
        add rcx, rax
 
5096
        adc rdi, rdx
 
5097
        adc rsi, 0
 
5098
        mov rax, qword ptr [-432+rbp]
 
5099
        mul qword ptr [-152+rbp]
 
5100
        add rcx, rax
 
5101
        adc rdi, rdx
 
5102
        adc rsi, 0
 
5103
        mov rax, qword ptr [-424+rbp]
 
5104
        mul qword ptr [-160+rbp]
 
5105
        add rcx, rax
 
5106
        adc rdi, rdx
 
5107
        adc rsi, 0
 
5108
        mov rax, qword ptr [-416+rbp]
 
5109
        mul qword ptr [-168+rbp]
 
5110
        add rcx, rax
 
5111
        adc rdi, rdx
 
5112
        adc rsi, 0
 
5113
        mov rax, qword ptr [-408+rbp]
 
5114
        mul qword ptr [-176+rbp]
 
5115
        add rcx, rax
 
5116
        adc rdi, rdx
 
5117
        adc rsi, 0
 
5118
        mov rax, qword ptr [-400+rbp]
 
5119
        mul qword ptr [-184+rbp]
 
5120
        add rcx, rax
 
5121
        adc rdi, rdx
 
5122
        adc rsi, 0
 
5123
        mov rax, qword ptr [-392+rbp]
 
5124
        mul qword ptr [-192+rbp]
 
5125
        add rcx, rax
 
5126
        adc rdi, rdx
 
5127
        adc rsi, 0
 
5128
        mov rax, qword ptr [-384+rbp]
 
5129
        mul qword ptr [-200+rbp]
 
5130
        add rcx, rax
 
5131
        adc rdi, rdx
 
5132
        adc rsi, 0
 
5133
        mov rax, qword ptr [-376+rbp]
 
5134
        mul qword ptr [-208+rbp]
 
5135
        add rcx, rax
 
5136
        adc rdi, rdx
 
5137
        adc rsi, 0
 
5138
        mov rax, qword ptr [-368+rbp]
 
5139
        mul qword ptr [-216+rbp]
 
5140
        add rcx, rax
 
5141
        adc rdi, rdx
 
5142
        adc rsi, 0
 
5143
        mov rax, qword ptr [-360+rbp]
 
5144
        mul qword ptr [-224+rbp]
 
5145
        add rcx, rax
 
5146
        adc rdi, rdx
 
5147
        adc rsi, 0
 
5148
        mov rax, qword ptr [-352+rbp]
 
5149
        mul qword ptr [-232+rbp]
 
5150
        add rcx, rax
 
5151
        adc rdi, rdx
 
5152
        adc rsi, 0
 
5153
        mov rax, qword ptr [-344+rbp]
 
5154
        mul qword ptr [-240+rbp]
 
5155
        add rcx, rax
 
5156
        adc rdi, rdx
 
5157
        adc rsi, 0
 
5158
        mov rax, qword ptr [-336+rbp]
 
5159
        mul qword ptr [-248+rbp]
 
5160
        add rcx, rax
 
5161
        adc rdi, rdx
 
5162
        adc rsi, 0
 
5163
        mov rax, qword ptr [-328+rbp]
 
5164
        mul qword ptr [-256+rbp]
 
5165
        add rcx, rax
 
5166
        adc rdi, rdx
 
5167
        adc rsi, 0
 
5168
        mov rax, qword ptr [-320+rbp]
 
5169
        mul qword ptr [-264+rbp]
 
5170
        add rcx, rax
 
5171
        adc rdi, rdx
 
5172
        adc rsi, 0
 
5173
        mov rax, qword ptr [-312+rbp]
 
5174
        mul qword ptr [-272+rbp]
 
5175
        add rcx, rax
 
5176
        adc rdi, rdx
 
5177
        adc rsi, 0
 
5178
        mov rax, qword ptr [-304+rbp]
 
5179
        mul qword ptr [-280+rbp]
 
5180
        add rcx, rax
 
5181
        adc rdi, rdx
 
5182
        adc rsi, 0
 
5183
        mov r10, rdi
 
5184
        mov r11, rsi
 
5185
        mov rax, qword ptr [-296+rbp]
 
5186
        mul qword ptr [-288+rbp]
 
5187
        add rcx, rax
 
5188
        adc r10, rdx
 
5189
        adc r11, 0
 
5190
        mov qword ptr [248+r9], rcx
 
5191
        mov rdi, r11
 
5192
        mov rsi, r10
 
5193
        mov rcx, r8
 
5194
        mov rax, qword ptr [-536+rbp]
 
5195
        mul qword ptr [-40+rbp]
 
5196
        add rsi, rax
 
5197
        adc rdi, rdx
 
5198
        adc rcx, 0
 
5199
        mov rax, qword ptr [-528+rbp]
 
5200
        mul qword ptr [-48+rbp]
 
5201
        add rsi, rax
 
5202
        adc rdi, rdx
 
5203
        adc rcx, 0
 
5204
        mov rax, qword ptr [-520+rbp]
 
5205
        mul qword ptr [-56+rbp]
 
5206
        add rsi, rax
 
5207
        adc rdi, rdx
 
5208
        adc rcx, 0
 
5209
        mov rax, qword ptr [-512+rbp]
 
5210
        mul qword ptr [-64+rbp]
 
5211
        add rsi, rax
 
5212
        adc rdi, rdx
 
5213
        adc rcx, 0
 
5214
        mov rax, qword ptr [-504+rbp]
 
5215
        mul qword ptr [-72+rbp]
 
5216
        add rsi, rax
 
5217
        adc rdi, rdx
 
5218
        adc rcx, 0
 
5219
        mov rax, qword ptr [-496+rbp]
 
5220
        mul qword ptr [-80+rbp]
 
5221
        add rsi, rax
 
5222
        adc rdi, rdx
 
5223
        adc rcx, 0
 
5224
        mov rax, qword ptr [-488+rbp]
 
5225
        mul qword ptr [-88+rbp]
 
5226
        add rsi, rax
 
5227
        adc rdi, rdx
 
5228
        adc rcx, 0
 
5229
        mov rax, qword ptr [-480+rbp]
 
5230
        mul qword ptr [-96+rbp]
 
5231
        add rsi, rax
 
5232
        adc rdi, rdx
 
5233
        adc rcx, 0
 
5234
        mov rax, qword ptr [-472+rbp]
 
5235
        mul qword ptr [-104+rbp]
 
5236
        add rsi, rax
 
5237
        adc rdi, rdx
 
5238
        adc rcx, 0
 
5239
        mov rax, qword ptr [-464+rbp]
 
5240
        mul qword ptr [-112+rbp]
 
5241
        add rsi, rax
 
5242
        adc rdi, rdx
 
5243
        adc rcx, 0
 
5244
        mov rax, qword ptr [-456+rbp]
 
5245
        mul qword ptr [-120+rbp]
 
5246
        add rsi, rax
 
5247
        adc rdi, rdx
 
5248
        adc rcx, 0
 
5249
        mov rax, qword ptr [-448+rbp]
 
5250
        mul qword ptr [-128+rbp]
 
5251
        add rsi, rax
 
5252
        adc rdi, rdx
 
5253
        adc rcx, 0
 
5254
        mov rax, qword ptr [-440+rbp]
 
5255
        mul qword ptr [-136+rbp]
 
5256
        add rsi, rax
 
5257
        adc rdi, rdx
 
5258
        adc rcx, 0
 
5259
        mov rax, qword ptr [-432+rbp]
 
5260
        mul qword ptr [-144+rbp]
 
5261
        add rsi, rax
 
5262
        adc rdi, rdx
 
5263
        adc rcx, 0
 
5264
        mov rax, qword ptr [-424+rbp]
 
5265
        mul qword ptr [-152+rbp]
 
5266
        add rsi, rax
 
5267
        adc rdi, rdx
 
5268
        adc rcx, 0
 
5269
        mov rax, qword ptr [-416+rbp]
 
5270
        mul qword ptr [-160+rbp]
 
5271
        add rsi, rax
 
5272
        adc rdi, rdx
 
5273
        adc rcx, 0
 
5274
        mov rax, qword ptr [-408+rbp]
 
5275
        mul qword ptr [-168+rbp]
 
5276
        add rsi, rax
 
5277
        adc rdi, rdx
 
5278
        adc rcx, 0
 
5279
        mov rax, qword ptr [-400+rbp]
 
5280
        mul qword ptr [-176+rbp]
 
5281
        add rsi, rax
 
5282
        adc rdi, rdx
 
5283
        adc rcx, 0
 
5284
        mov rax, qword ptr [-392+rbp]
 
5285
        mul qword ptr [-184+rbp]
 
5286
        add rsi, rax
 
5287
        adc rdi, rdx
 
5288
        adc rcx, 0
 
5289
        mov rax, qword ptr [-384+rbp]
 
5290
        mul qword ptr [-192+rbp]
 
5291
        add rsi, rax
 
5292
        adc rdi, rdx
 
5293
        adc rcx, 0
 
5294
        mov rax, qword ptr [-376+rbp]
 
5295
        mul qword ptr [-200+rbp]
 
5296
        add rsi, rax
 
5297
        adc rdi, rdx
 
5298
        adc rcx, 0
 
5299
        mov rax, qword ptr [-368+rbp]
 
5300
        mul qword ptr [-208+rbp]
 
5301
        add rsi, rax
 
5302
        adc rdi, rdx
 
5303
        adc rcx, 0
 
5304
        mov rax, qword ptr [-360+rbp]
 
5305
        mul qword ptr [-216+rbp]
 
5306
        add rsi, rax
 
5307
        adc rdi, rdx
 
5308
        adc rcx, 0
 
5309
        mov rax, qword ptr [-352+rbp]
 
5310
        mul qword ptr [-224+rbp]
 
5311
        add rsi, rax
 
5312
        adc rdi, rdx
 
5313
        adc rcx, 0
 
5314
        mov rax, qword ptr [-344+rbp]
 
5315
        mul qword ptr [-232+rbp]
 
5316
        add rsi, rax
 
5317
        adc rdi, rdx
 
5318
        adc rcx, 0
 
5319
        mov rax, qword ptr [-336+rbp]
 
5320
        mul qword ptr [-240+rbp]
 
5321
        add rsi, rax
 
5322
        adc rdi, rdx
 
5323
        adc rcx, 0
 
5324
        mov rax, qword ptr [-328+rbp]
 
5325
        mul qword ptr [-248+rbp]
 
5326
        add rsi, rax
 
5327
        adc rdi, rdx
 
5328
        adc rcx, 0
 
5329
        mov rax, qword ptr [-320+rbp]
 
5330
        mul qword ptr [-256+rbp]
 
5331
        add rsi, rax
 
5332
        adc rdi, rdx
 
5333
        adc rcx, 0
 
5334
        mov rax, qword ptr [-312+rbp]
 
5335
        mul qword ptr [-264+rbp]
 
5336
        add rsi, rax
 
5337
        adc rdi, rdx
 
5338
        adc rcx, 0
 
5339
        mov rax, qword ptr [-304+rbp]
 
5340
        mul qword ptr [-272+rbp]
 
5341
        add rsi, rax
 
5342
        adc rdi, rdx
 
5343
        adc rcx, 0
 
5344
        mov r10, rdi
 
5345
        mov r11, rcx
 
5346
        mov rax, qword ptr [-296+rbp]
 
5347
        mul qword ptr [-280+rbp]
 
5348
        add rsi, rax
 
5349
        adc r10, rdx
 
5350
        adc r11, 0
 
5351
        mov qword ptr [256+r9], rsi
 
5352
        mov rdi, r11
 
5353
        mov rcx, r10
 
5354
        mov rsi, r8
 
5355
        mov rax, qword ptr [-528+rbp]
 
5356
        mul qword ptr [-40+rbp]
 
5357
        add rcx, rax
 
5358
        adc rdi, rdx
 
5359
        adc rsi, 0
 
5360
        mov rax, qword ptr [-520+rbp]
 
5361
        mul qword ptr [-48+rbp]
 
5362
        add rcx, rax
 
5363
        adc rdi, rdx
 
5364
        adc rsi, 0
 
5365
        mov rax, qword ptr [-512+rbp]
 
5366
        mul qword ptr [-56+rbp]
 
5367
        add rcx, rax
 
5368
        adc rdi, rdx
 
5369
        adc rsi, 0
 
5370
        mov rax, qword ptr [-504+rbp]
 
5371
        mul qword ptr [-64+rbp]
 
5372
        add rcx, rax
 
5373
        adc rdi, rdx
 
5374
        adc rsi, 0
 
5375
        mov rax, qword ptr [-496+rbp]
 
5376
        mul qword ptr [-72+rbp]
 
5377
        add rcx, rax
 
5378
        adc rdi, rdx
 
5379
        adc rsi, 0
 
5380
        mov rax, qword ptr [-488+rbp]
 
5381
        mul qword ptr [-80+rbp]
 
5382
        add rcx, rax
 
5383
        adc rdi, rdx
 
5384
        adc rsi, 0
 
5385
        mov rax, qword ptr [-480+rbp]
 
5386
        mul qword ptr [-88+rbp]
 
5387
        add rcx, rax
 
5388
        adc rdi, rdx
 
5389
        adc rsi, 0
 
5390
        mov rax, qword ptr [-472+rbp]
 
5391
        mul qword ptr [-96+rbp]
 
5392
        add rcx, rax
 
5393
        adc rdi, rdx
 
5394
        adc rsi, 0
 
5395
        mov rax, qword ptr [-464+rbp]
 
5396
        mul qword ptr [-104+rbp]
 
5397
        add rcx, rax
 
5398
        adc rdi, rdx
 
5399
        adc rsi, 0
 
5400
        mov rax, qword ptr [-456+rbp]
 
5401
        mul qword ptr [-112+rbp]
 
5402
        add rcx, rax
 
5403
        adc rdi, rdx
 
5404
        adc rsi, 0
 
5405
        mov rax, qword ptr [-448+rbp]
 
5406
        mul qword ptr [-120+rbp]
 
5407
        add rcx, rax
 
5408
        adc rdi, rdx
 
5409
        adc rsi, 0
 
5410
        mov rax, qword ptr [-440+rbp]
 
5411
        mul qword ptr [-128+rbp]
 
5412
        add rcx, rax
 
5413
        adc rdi, rdx
 
5414
        adc rsi, 0
 
5415
        mov rax, qword ptr [-432+rbp]
 
5416
        mul qword ptr [-136+rbp]
 
5417
        add rcx, rax
 
5418
        adc rdi, rdx
 
5419
        adc rsi, 0
 
5420
        mov rax, qword ptr [-424+rbp]
 
5421
        mul qword ptr [-144+rbp]
 
5422
        add rcx, rax
 
5423
        adc rdi, rdx
 
5424
        adc rsi, 0
 
5425
        mov rax, qword ptr [-416+rbp]
 
5426
        mul qword ptr [-152+rbp]
 
5427
        add rcx, rax
 
5428
        adc rdi, rdx
 
5429
        adc rsi, 0
 
5430
        mov rax, qword ptr [-408+rbp]
 
5431
        mul qword ptr [-160+rbp]
 
5432
        add rcx, rax
 
5433
        adc rdi, rdx
 
5434
        adc rsi, 0
 
5435
        mov rax, qword ptr [-400+rbp]
 
5436
        mul qword ptr [-168+rbp]
 
5437
        add rcx, rax
 
5438
        adc rdi, rdx
 
5439
        adc rsi, 0
 
5440
        mov rax, qword ptr [-392+rbp]
 
5441
        mul qword ptr [-176+rbp]
 
5442
        add rcx, rax
 
5443
        adc rdi, rdx
 
5444
        adc rsi, 0
 
5445
        mov rax, qword ptr [-384+rbp]
 
5446
        mul qword ptr [-184+rbp]
 
5447
        add rcx, rax
 
5448
        adc rdi, rdx
 
5449
        adc rsi, 0
 
5450
        mov rax, qword ptr [-376+rbp]
 
5451
        mul qword ptr [-192+rbp]
 
5452
        add rcx, rax
 
5453
        adc rdi, rdx
 
5454
        adc rsi, 0
 
5455
        mov rax, qword ptr [-368+rbp]
 
5456
        mul qword ptr [-200+rbp]
 
5457
        add rcx, rax
 
5458
        adc rdi, rdx
 
5459
        adc rsi, 0
 
5460
        mov rax, qword ptr [-360+rbp]
 
5461
        mul qword ptr [-208+rbp]
 
5462
        add rcx, rax
 
5463
        adc rdi, rdx
 
5464
        adc rsi, 0
 
5465
        mov rax, qword ptr [-352+rbp]
 
5466
        mul qword ptr [-216+rbp]
 
5467
        add rcx, rax
 
5468
        adc rdi, rdx
 
5469
        adc rsi, 0
 
5470
        mov rax, qword ptr [-344+rbp]
 
5471
        mul qword ptr [-224+rbp]
 
5472
        add rcx, rax
 
5473
        adc rdi, rdx
 
5474
        adc rsi, 0
 
5475
        mov rax, qword ptr [-336+rbp]
 
5476
        mul qword ptr [-232+rbp]
 
5477
        add rcx, rax
 
5478
        adc rdi, rdx
 
5479
        adc rsi, 0
 
5480
        mov rax, qword ptr [-328+rbp]
 
5481
        mul qword ptr [-240+rbp]
 
5482
        add rcx, rax
 
5483
        adc rdi, rdx
 
5484
        adc rsi, 0
 
5485
        mov rax, qword ptr [-320+rbp]
 
5486
        mul qword ptr [-248+rbp]
 
5487
        add rcx, rax
 
5488
        adc rdi, rdx
 
5489
        adc rsi, 0
 
5490
        mov rax, qword ptr [-312+rbp]
 
5491
        mul qword ptr [-256+rbp]
 
5492
        add rcx, rax
 
5493
        adc rdi, rdx
 
5494
        adc rsi, 0
 
5495
        mov rax, qword ptr [-304+rbp]
 
5496
        mul qword ptr [-264+rbp]
 
5497
        add rcx, rax
 
5498
        adc rdi, rdx
 
5499
        adc rsi, 0
 
5500
        mov r10, rdi
 
5501
        mov r11, rsi
 
5502
        mov rax, qword ptr [-296+rbp]
 
5503
        mul qword ptr [-272+rbp]
 
5504
        add rcx, rax
 
5505
        adc r10, rdx
 
5506
        adc r11, 0
 
5507
        mov qword ptr [264+r9], rcx
 
5508
        mov rdi, r11
 
5509
        mov rsi, r10
 
5510
        mov rcx, r8
 
5511
        mov rax, qword ptr [-520+rbp]
 
5512
        mul qword ptr [-40+rbp]
 
5513
        add rsi, rax
 
5514
        adc rdi, rdx
 
5515
        adc rcx, 0
 
5516
        mov rax, qword ptr [-512+rbp]
 
5517
        mul qword ptr [-48+rbp]
 
5518
        add rsi, rax
 
5519
        adc rdi, rdx
 
5520
        adc rcx, 0
 
5521
        mov rax, qword ptr [-504+rbp]
 
5522
        mul qword ptr [-56+rbp]
 
5523
        add rsi, rax
 
5524
        adc rdi, rdx
 
5525
        adc rcx, 0
 
5526
        mov rax, qword ptr [-496+rbp]
 
5527
        mul qword ptr [-64+rbp]
 
5528
        add rsi, rax
 
5529
        adc rdi, rdx
 
5530
        adc rcx, 0
 
5531
        mov rax, qword ptr [-488+rbp]
 
5532
        mul qword ptr [-72+rbp]
 
5533
        add rsi, rax
 
5534
        adc rdi, rdx
 
5535
        adc rcx, 0
 
5536
        mov rax, qword ptr [-480+rbp]
 
5537
        mul qword ptr [-80+rbp]
 
5538
        add rsi, rax
 
5539
        adc rdi, rdx
 
5540
        adc rcx, 0
 
5541
        mov rax, qword ptr [-472+rbp]
 
5542
        mul qword ptr [-88+rbp]
 
5543
        add rsi, rax
 
5544
        adc rdi, rdx
 
5545
        adc rcx, 0
 
5546
        mov rax, qword ptr [-464+rbp]
 
5547
        mul qword ptr [-96+rbp]
 
5548
        add rsi, rax
 
5549
        adc rdi, rdx
 
5550
        adc rcx, 0
 
5551
        mov rax, qword ptr [-456+rbp]
 
5552
        mul qword ptr [-104+rbp]
 
5553
        add rsi, rax
 
5554
        adc rdi, rdx
 
5555
        adc rcx, 0
 
5556
        mov rax, qword ptr [-448+rbp]
 
5557
        mul qword ptr [-112+rbp]
 
5558
        add rsi, rax
 
5559
        adc rdi, rdx
 
5560
        adc rcx, 0
 
5561
        mov rax, qword ptr [-440+rbp]
 
5562
        mul qword ptr [-120+rbp]
 
5563
        add rsi, rax
 
5564
        adc rdi, rdx
 
5565
        adc rcx, 0
 
5566
        mov rax, qword ptr [-432+rbp]
 
5567
        mul qword ptr [-128+rbp]
 
5568
        add rsi, rax
 
5569
        adc rdi, rdx
 
5570
        adc rcx, 0
 
5571
        mov rax, qword ptr [-424+rbp]
 
5572
        mul qword ptr [-136+rbp]
 
5573
        add rsi, rax
 
5574
        adc rdi, rdx
 
5575
        adc rcx, 0
 
5576
        mov rax, qword ptr [-416+rbp]
 
5577
        mul qword ptr [-144+rbp]
 
5578
        add rsi, rax
 
5579
        adc rdi, rdx
 
5580
        adc rcx, 0
 
5581
        mov rax, qword ptr [-408+rbp]
 
5582
        mul qword ptr [-152+rbp]
 
5583
        add rsi, rax
 
5584
        adc rdi, rdx
 
5585
        adc rcx, 0
 
5586
        mov rax, qword ptr [-400+rbp]
 
5587
        mul qword ptr [-160+rbp]
 
5588
        add rsi, rax
 
5589
        adc rdi, rdx
 
5590
        adc rcx, 0
 
5591
        mov rax, qword ptr [-392+rbp]
 
5592
        mul qword ptr [-168+rbp]
 
5593
        add rsi, rax
 
5594
        adc rdi, rdx
 
5595
        adc rcx, 0
 
5596
        mov rax, qword ptr [-384+rbp]
 
5597
        mul qword ptr [-176+rbp]
 
5598
        add rsi, rax
 
5599
        adc rdi, rdx
 
5600
        adc rcx, 0
 
5601
        mov rax, qword ptr [-376+rbp]
 
5602
        mul qword ptr [-184+rbp]
 
5603
        add rsi, rax
 
5604
        adc rdi, rdx
 
5605
        adc rcx, 0
 
5606
        mov rax, qword ptr [-368+rbp]
 
5607
        mul qword ptr [-192+rbp]
 
5608
        add rsi, rax
 
5609
        adc rdi, rdx
 
5610
        adc rcx, 0
 
5611
        mov rax, qword ptr [-360+rbp]
 
5612
        mul qword ptr [-200+rbp]
 
5613
        add rsi, rax
 
5614
        adc rdi, rdx
 
5615
        adc rcx, 0
 
5616
        mov rax, qword ptr [-352+rbp]
 
5617
        mul qword ptr [-208+rbp]
 
5618
        add rsi, rax
 
5619
        adc rdi, rdx
 
5620
        adc rcx, 0
 
5621
        mov rax, qword ptr [-344+rbp]
 
5622
        mul qword ptr [-216+rbp]
 
5623
        add rsi, rax
 
5624
        adc rdi, rdx
 
5625
        adc rcx, 0
 
5626
        mov rax, qword ptr [-336+rbp]
 
5627
        mul qword ptr [-224+rbp]
 
5628
        add rsi, rax
 
5629
        adc rdi, rdx
 
5630
        adc rcx, 0
 
5631
        mov rax, qword ptr [-328+rbp]
 
5632
        mul qword ptr [-232+rbp]
 
5633
        add rsi, rax
 
5634
        adc rdi, rdx
 
5635
        adc rcx, 0
 
5636
        mov rax, qword ptr [-320+rbp]
 
5637
        mul qword ptr [-240+rbp]
 
5638
        add rsi, rax
 
5639
        adc rdi, rdx
 
5640
        adc rcx, 0
 
5641
        mov rax, qword ptr [-312+rbp]
 
5642
        mul qword ptr [-248+rbp]
 
5643
        add rsi, rax
 
5644
        adc rdi, rdx
 
5645
        adc rcx, 0
 
5646
        mov rax, qword ptr [-304+rbp]
 
5647
        mul qword ptr [-256+rbp]
 
5648
        add rsi, rax
 
5649
        adc rdi, rdx
 
5650
        adc rcx, 0
 
5651
        mov r10, rdi
 
5652
        mov r11, rcx
 
5653
        mov rax, qword ptr [-296+rbp]
 
5654
        mul qword ptr [-264+rbp]
 
5655
        add rsi, rax
 
5656
        adc r10, rdx
 
5657
        adc r11, 0
 
5658
        mov qword ptr [272+r9], rsi
 
5659
        mov rdi, r11
 
5660
        mov rcx, r10
 
5661
        mov rsi, r8
 
5662
        mov rax, qword ptr [-512+rbp]
 
5663
        mul qword ptr [-40+rbp]
 
5664
        add rcx, rax
 
5665
        adc rdi, rdx
 
5666
        adc rsi, 0
 
5667
        mov rax, qword ptr [-504+rbp]
 
5668
        mul qword ptr [-48+rbp]
 
5669
        add rcx, rax
 
5670
        adc rdi, rdx
 
5671
        adc rsi, 0
 
5672
        mov rax, qword ptr [-496+rbp]
 
5673
        mul qword ptr [-56+rbp]
 
5674
        add rcx, rax
 
5675
        adc rdi, rdx
 
5676
        adc rsi, 0
 
5677
        mov rax, qword ptr [-488+rbp]
 
5678
        mul qword ptr [-64+rbp]
 
5679
        add rcx, rax
 
5680
        adc rdi, rdx
 
5681
        adc rsi, 0
 
5682
        mov rax, qword ptr [-480+rbp]
 
5683
        mul qword ptr [-72+rbp]
 
5684
        add rcx, rax
 
5685
        adc rdi, rdx
 
5686
        adc rsi, 0
 
5687
        mov rax, qword ptr [-472+rbp]
 
5688
        mul qword ptr [-80+rbp]
 
5689
        add rcx, rax
 
5690
        adc rdi, rdx
 
5691
        adc rsi, 0
 
5692
        mov rax, qword ptr [-464+rbp]
 
5693
        mul qword ptr [-88+rbp]
 
5694
        add rcx, rax
 
5695
        adc rdi, rdx
 
5696
        adc rsi, 0
 
5697
        mov rax, qword ptr [-456+rbp]
 
5698
        mul qword ptr [-96+rbp]
 
5699
        add rcx, rax
 
5700
        adc rdi, rdx
 
5701
        adc rsi, 0
 
5702
        mov rax, qword ptr [-448+rbp]
 
5703
        mul qword ptr [-104+rbp]
 
5704
        add rcx, rax
 
5705
        adc rdi, rdx
 
5706
        adc rsi, 0
 
5707
        mov rax, qword ptr [-440+rbp]
 
5708
        mul qword ptr [-112+rbp]
 
5709
        add rcx, rax
 
5710
        adc rdi, rdx
 
5711
        adc rsi, 0
 
5712
        mov rax, qword ptr [-432+rbp]
 
5713
        mul qword ptr [-120+rbp]
 
5714
        add rcx, rax
 
5715
        adc rdi, rdx
 
5716
        adc rsi, 0
 
5717
        mov rax, qword ptr [-424+rbp]
 
5718
        mul qword ptr [-128+rbp]
 
5719
        add rcx, rax
 
5720
        adc rdi, rdx
 
5721
        adc rsi, 0
 
5722
        mov rax, qword ptr [-416+rbp]
 
5723
        mul qword ptr [-136+rbp]
 
5724
        add rcx, rax
 
5725
        adc rdi, rdx
 
5726
        adc rsi, 0
 
5727
        mov rax, qword ptr [-408+rbp]
 
5728
        mul qword ptr [-144+rbp]
 
5729
        add rcx, rax
 
5730
        adc rdi, rdx
 
5731
        adc rsi, 0
 
5732
        mov rax, qword ptr [-400+rbp]
 
5733
        mul qword ptr [-152+rbp]
 
5734
        add rcx, rax
 
5735
        adc rdi, rdx
 
5736
        adc rsi, 0
 
5737
        mov rax, qword ptr [-392+rbp]
 
5738
        mul qword ptr [-160+rbp]
 
5739
        add rcx, rax
 
5740
        adc rdi, rdx
 
5741
        adc rsi, 0
 
5742
        mov rax, qword ptr [-384+rbp]
 
5743
        mul qword ptr [-168+rbp]
 
5744
        add rcx, rax
 
5745
        adc rdi, rdx
 
5746
        adc rsi, 0
 
5747
        mov rax, qword ptr [-376+rbp]
 
5748
        mul qword ptr [-176+rbp]
 
5749
        add rcx, rax
 
5750
        adc rdi, rdx
 
5751
        adc rsi, 0
 
5752
        mov rax, qword ptr [-368+rbp]
 
5753
        mul qword ptr [-184+rbp]
 
5754
        add rcx, rax
 
5755
        adc rdi, rdx
 
5756
        adc rsi, 0
 
5757
        mov rax, qword ptr [-360+rbp]
 
5758
        mul qword ptr [-192+rbp]
 
5759
        add rcx, rax
 
5760
        adc rdi, rdx
 
5761
        adc rsi, 0
 
5762
        mov rax, qword ptr [-352+rbp]
 
5763
        mul qword ptr [-200+rbp]
 
5764
        add rcx, rax
 
5765
        adc rdi, rdx
 
5766
        adc rsi, 0
 
5767
        mov rax, qword ptr [-344+rbp]
 
5768
        mul qword ptr [-208+rbp]
 
5769
        add rcx, rax
 
5770
        adc rdi, rdx
 
5771
        adc rsi, 0
 
5772
        mov rax, qword ptr [-336+rbp]
 
5773
        mul qword ptr [-216+rbp]
 
5774
        add rcx, rax
 
5775
        adc rdi, rdx
 
5776
        adc rsi, 0
 
5777
        mov rax, qword ptr [-328+rbp]
 
5778
        mul qword ptr [-224+rbp]
 
5779
        add rcx, rax
 
5780
        adc rdi, rdx
 
5781
        adc rsi, 0
 
5782
        mov rax, qword ptr [-320+rbp]
 
5783
        mul qword ptr [-232+rbp]
 
5784
        add rcx, rax
 
5785
        adc rdi, rdx
 
5786
        adc rsi, 0
 
5787
        mov rax, qword ptr [-312+rbp]
 
5788
        mul qword ptr [-240+rbp]
 
5789
        add rcx, rax
 
5790
        adc rdi, rdx
 
5791
        adc rsi, 0
 
5792
        mov rax, qword ptr [-304+rbp]
 
5793
        mul qword ptr [-248+rbp]
 
5794
        add rcx, rax
 
5795
        adc rdi, rdx
 
5796
        adc rsi, 0
 
5797
        mov r10, rdi
 
5798
        mov r11, rsi
 
5799
        mov rax, qword ptr [-296+rbp]
 
5800
        mul qword ptr [-256+rbp]
 
5801
        add rcx, rax
 
5802
        adc r10, rdx
 
5803
        adc r11, 0
 
5804
        mov qword ptr [280+r9], rcx
 
5805
        mov rdi, r11
 
5806
        mov rsi, r10
 
5807
        mov rcx, r8
 
5808
        mov rax, qword ptr [-504+rbp]
 
5809
        mul qword ptr [-40+rbp]
 
5810
        add rsi, rax
 
5811
        adc rdi, rdx
 
5812
        adc rcx, 0
 
5813
        mov rax, qword ptr [-496+rbp]
 
5814
        mul qword ptr [-48+rbp]
 
5815
        add rsi, rax
 
5816
        adc rdi, rdx
 
5817
        adc rcx, 0
 
5818
        mov rax, qword ptr [-488+rbp]
 
5819
        mul qword ptr [-56+rbp]
 
5820
        add rsi, rax
 
5821
        adc rdi, rdx
 
5822
        adc rcx, 0
 
5823
        mov rax, qword ptr [-480+rbp]
 
5824
        mul qword ptr [-64+rbp]
 
5825
        add rsi, rax
 
5826
        adc rdi, rdx
 
5827
        adc rcx, 0
 
5828
        mov rax, qword ptr [-472+rbp]
 
5829
        mul qword ptr [-72+rbp]
 
5830
        add rsi, rax
 
5831
        adc rdi, rdx
 
5832
        adc rcx, 0
 
5833
        mov rax, qword ptr [-464+rbp]
 
5834
        mul qword ptr [-80+rbp]
 
5835
        add rsi, rax
 
5836
        adc rdi, rdx
 
5837
        adc rcx, 0
 
5838
        mov rax, qword ptr [-456+rbp]
 
5839
        mul qword ptr [-88+rbp]
 
5840
        add rsi, rax
 
5841
        adc rdi, rdx
 
5842
        adc rcx, 0
 
5843
        mov rax, qword ptr [-448+rbp]
 
5844
        mul qword ptr [-96+rbp]
 
5845
        add rsi, rax
 
5846
        adc rdi, rdx
 
5847
        adc rcx, 0
 
5848
        mov rax, qword ptr [-440+rbp]
 
5849
        mul qword ptr [-104+rbp]
 
5850
        add rsi, rax
 
5851
        adc rdi, rdx
 
5852
        adc rcx, 0
 
5853
        mov rax, qword ptr [-432+rbp]
 
5854
        mul qword ptr [-112+rbp]
 
5855
        add rsi, rax
 
5856
        adc rdi, rdx
 
5857
        adc rcx, 0
 
5858
        mov rax, qword ptr [-424+rbp]
 
5859
        mul qword ptr [-120+rbp]
 
5860
        add rsi, rax
 
5861
        adc rdi, rdx
 
5862
        adc rcx, 0
 
5863
        mov rax, qword ptr [-416+rbp]
 
5864
        mul qword ptr [-128+rbp]
 
5865
        add rsi, rax
 
5866
        adc rdi, rdx
 
5867
        adc rcx, 0
 
5868
        mov rax, qword ptr [-408+rbp]
 
5869
        mul qword ptr [-136+rbp]
 
5870
        add rsi, rax
 
5871
        adc rdi, rdx
 
5872
        adc rcx, 0
 
5873
        mov rax, qword ptr [-400+rbp]
 
5874
        mul qword ptr [-144+rbp]
 
5875
        add rsi, rax
 
5876
        adc rdi, rdx
 
5877
        adc rcx, 0
 
5878
        mov rax, qword ptr [-392+rbp]
 
5879
        mul qword ptr [-152+rbp]
 
5880
        add rsi, rax
 
5881
        adc rdi, rdx
 
5882
        adc rcx, 0
 
5883
        mov rax, qword ptr [-384+rbp]
 
5884
        mul qword ptr [-160+rbp]
 
5885
        add rsi, rax
 
5886
        adc rdi, rdx
 
5887
        adc rcx, 0
 
5888
        mov rax, qword ptr [-376+rbp]
 
5889
        mul qword ptr [-168+rbp]
 
5890
        add rsi, rax
 
5891
        adc rdi, rdx
 
5892
        adc rcx, 0
 
5893
        mov rax, qword ptr [-368+rbp]
 
5894
        mul qword ptr [-176+rbp]
 
5895
        add rsi, rax
 
5896
        adc rdi, rdx
 
5897
        adc rcx, 0
 
5898
        mov rax, qword ptr [-360+rbp]
 
5899
        mul qword ptr [-184+rbp]
 
5900
        add rsi, rax
 
5901
        adc rdi, rdx
 
5902
        adc rcx, 0
 
5903
        mov rax, qword ptr [-352+rbp]
 
5904
        mul qword ptr [-192+rbp]
 
5905
        add rsi, rax
 
5906
        adc rdi, rdx
 
5907
        adc rcx, 0
 
5908
        mov rax, qword ptr [-344+rbp]
 
5909
        mul qword ptr [-200+rbp]
 
5910
        add rsi, rax
 
5911
        adc rdi, rdx
 
5912
        adc rcx, 0
 
5913
        mov rax, qword ptr [-336+rbp]
 
5914
        mul qword ptr [-208+rbp]
 
5915
        add rsi, rax
 
5916
        adc rdi, rdx
 
5917
        adc rcx, 0
 
5918
        mov rax, qword ptr [-328+rbp]
 
5919
        mul qword ptr [-216+rbp]
 
5920
        add rsi, rax
 
5921
        adc rdi, rdx
 
5922
        adc rcx, 0
 
5923
        mov rax, qword ptr [-320+rbp]
 
5924
        mul qword ptr [-224+rbp]
 
5925
        add rsi, rax
 
5926
        adc rdi, rdx
 
5927
        adc rcx, 0
 
5928
        mov rax, qword ptr [-312+rbp]
 
5929
        mul qword ptr [-232+rbp]
 
5930
        add rsi, rax
 
5931
        adc rdi, rdx
 
5932
        adc rcx, 0
 
5933
        mov rax, qword ptr [-304+rbp]
 
5934
        mul qword ptr [-240+rbp]
 
5935
        add rsi, rax
 
5936
        adc rdi, rdx
 
5937
        adc rcx, 0
 
5938
        mov r10, rdi
 
5939
        mov r11, rcx
 
5940
        mov rax, qword ptr [-296+rbp]
 
5941
        mul qword ptr [-248+rbp]
 
5942
        add rsi, rax
 
5943
        adc r10, rdx
 
5944
        adc r11, 0
 
5945
        mov qword ptr [288+r9], rsi
 
5946
        mov rdi, r11
 
5947
        mov rcx, r10
 
5948
        mov rsi, r8
 
5949
        mov rax, qword ptr [-496+rbp]
 
5950
        mul qword ptr [-40+rbp]
 
5951
        add rcx, rax
 
5952
        adc rdi, rdx
 
5953
        adc rsi, 0
 
5954
        mov rax, qword ptr [-488+rbp]
 
5955
        mul qword ptr [-48+rbp]
 
5956
        add rcx, rax
 
5957
        adc rdi, rdx
 
5958
        adc rsi, 0
 
5959
        mov rax, qword ptr [-480+rbp]
 
5960
        mul qword ptr [-56+rbp]
 
5961
        add rcx, rax
 
5962
        adc rdi, rdx
 
5963
        adc rsi, 0
 
5964
        mov rax, qword ptr [-472+rbp]
 
5965
        mul qword ptr [-64+rbp]
 
5966
        add rcx, rax
 
5967
        adc rdi, rdx
 
5968
        adc rsi, 0
 
5969
        mov rax, qword ptr [-464+rbp]
 
5970
        mul qword ptr [-72+rbp]
 
5971
        add rcx, rax
 
5972
        adc rdi, rdx
 
5973
        adc rsi, 0
 
5974
        mov rax, qword ptr [-456+rbp]
 
5975
        mul qword ptr [-80+rbp]
 
5976
        add rcx, rax
 
5977
        adc rdi, rdx
 
5978
        adc rsi, 0
 
5979
        mov rax, qword ptr [-448+rbp]
 
5980
        mul qword ptr [-88+rbp]
 
5981
        add rcx, rax
 
5982
        adc rdi, rdx
 
5983
        adc rsi, 0
 
5984
        mov rax, qword ptr [-440+rbp]
 
5985
        mul qword ptr [-96+rbp]
 
5986
        add rcx, rax
 
5987
        adc rdi, rdx
 
5988
        adc rsi, 0
 
5989
        mov rax, qword ptr [-432+rbp]
 
5990
        mul qword ptr [-104+rbp]
 
5991
        add rcx, rax
 
5992
        adc rdi, rdx
 
5993
        adc rsi, 0
 
5994
        mov rax, qword ptr [-424+rbp]
 
5995
        mul qword ptr [-112+rbp]
 
5996
        add rcx, rax
 
5997
        adc rdi, rdx
 
5998
        adc rsi, 0
 
5999
        mov rax, qword ptr [-416+rbp]
 
6000
        mul qword ptr [-120+rbp]
 
6001
        add rcx, rax
 
6002
        adc rdi, rdx
 
6003
        adc rsi, 0
 
6004
        mov rax, qword ptr [-408+rbp]
 
6005
        mul qword ptr [-128+rbp]
 
6006
        add rcx, rax
 
6007
        adc rdi, rdx
 
6008
        adc rsi, 0
 
6009
        mov rax, qword ptr [-400+rbp]
 
6010
        mul qword ptr [-136+rbp]
 
6011
        add rcx, rax
 
6012
        adc rdi, rdx
 
6013
        adc rsi, 0
 
6014
        mov rax, qword ptr [-392+rbp]
 
6015
        mul qword ptr [-144+rbp]
 
6016
        add rcx, rax
 
6017
        adc rdi, rdx
 
6018
        adc rsi, 0
 
6019
        mov rax, qword ptr [-384+rbp]
 
6020
        mul qword ptr [-152+rbp]
 
6021
        add rcx, rax
 
6022
        adc rdi, rdx
 
6023
        adc rsi, 0
 
6024
        mov rax, qword ptr [-376+rbp]
 
6025
        mul qword ptr [-160+rbp]
 
6026
        add rcx, rax
 
6027
        adc rdi, rdx
 
6028
        adc rsi, 0
 
6029
        mov rax, qword ptr [-368+rbp]
 
6030
        mul qword ptr [-168+rbp]
 
6031
        add rcx, rax
 
6032
        adc rdi, rdx
 
6033
        adc rsi, 0
 
6034
        mov rax, qword ptr [-360+rbp]
 
6035
        mul qword ptr [-176+rbp]
 
6036
        add rcx, rax
 
6037
        adc rdi, rdx
 
6038
        adc rsi, 0
 
6039
        mov rax, qword ptr [-352+rbp]
 
6040
        mul qword ptr [-184+rbp]
 
6041
        add rcx, rax
 
6042
        adc rdi, rdx
 
6043
        adc rsi, 0
 
6044
        mov rax, qword ptr [-344+rbp]
 
6045
        mul qword ptr [-192+rbp]
 
6046
        add rcx, rax
 
6047
        adc rdi, rdx
 
6048
        adc rsi, 0
 
6049
        mov rax, qword ptr [-336+rbp]
 
6050
        mul qword ptr [-200+rbp]
 
6051
        add rcx, rax
 
6052
        adc rdi, rdx
 
6053
        adc rsi, 0
 
6054
        mov rax, qword ptr [-328+rbp]
 
6055
        mul qword ptr [-208+rbp]
 
6056
        add rcx, rax
 
6057
        adc rdi, rdx
 
6058
        adc rsi, 0
 
6059
        mov rax, qword ptr [-320+rbp]
 
6060
        mul qword ptr [-216+rbp]
 
6061
        add rcx, rax
 
6062
        adc rdi, rdx
 
6063
        adc rsi, 0
 
6064
        mov rax, qword ptr [-312+rbp]
 
6065
        mul qword ptr [-224+rbp]
 
6066
        add rcx, rax
 
6067
        adc rdi, rdx
 
6068
        adc rsi, 0
 
6069
        mov rax, qword ptr [-304+rbp]
 
6070
        mul qword ptr [-232+rbp]
 
6071
        add rcx, rax
 
6072
        adc rdi, rdx
 
6073
        adc rsi, 0
 
6074
        mov r10, rdi
 
6075
        mov r11, rsi
 
6076
        mov rax, qword ptr [-296+rbp]
 
6077
        mul qword ptr [-240+rbp]
 
6078
        add rcx, rax
 
6079
        adc r10, rdx
 
6080
        adc r11, 0
 
6081
        mov qword ptr [296+r9], rcx
 
6082
        mov rdi, r11
 
6083
        mov rsi, r10
 
6084
        mov rcx, r8
 
6085
        mov rax, qword ptr [-488+rbp]
 
6086
        mul qword ptr [-40+rbp]
 
6087
        add rsi, rax
 
6088
        adc rdi, rdx
 
6089
        adc rcx, 0
 
6090
        mov rax, qword ptr [-480+rbp]
 
6091
        mul qword ptr [-48+rbp]
 
6092
        add rsi, rax
 
6093
        adc rdi, rdx
 
6094
        adc rcx, 0
 
6095
        mov rax, qword ptr [-472+rbp]
 
6096
        mul qword ptr [-56+rbp]
 
6097
        add rsi, rax
 
6098
        adc rdi, rdx
 
6099
        adc rcx, 0
 
6100
        mov rax, qword ptr [-464+rbp]
 
6101
        mul qword ptr [-64+rbp]
 
6102
        add rsi, rax
 
6103
        adc rdi, rdx
 
6104
        adc rcx, 0
 
6105
        mov rax, qword ptr [-456+rbp]
 
6106
        mul qword ptr [-72+rbp]
 
6107
        add rsi, rax
 
6108
        adc rdi, rdx
 
6109
        adc rcx, 0
 
6110
        mov rax, qword ptr [-448+rbp]
 
6111
        mul qword ptr [-80+rbp]
 
6112
        add rsi, rax
 
6113
        adc rdi, rdx
 
6114
        adc rcx, 0
 
6115
        mov rax, qword ptr [-440+rbp]
 
6116
        mul qword ptr [-88+rbp]
 
6117
        add rsi, rax
 
6118
        adc rdi, rdx
 
6119
        adc rcx, 0
 
6120
        mov rax, qword ptr [-432+rbp]
 
6121
        mul qword ptr [-96+rbp]
 
6122
        add rsi, rax
 
6123
        adc rdi, rdx
 
6124
        adc rcx, 0
 
6125
        mov rax, qword ptr [-424+rbp]
 
6126
        mul qword ptr [-104+rbp]
 
6127
        add rsi, rax
 
6128
        adc rdi, rdx
 
6129
        adc rcx, 0
 
6130
        mov rax, qword ptr [-416+rbp]
 
6131
        mul qword ptr [-112+rbp]
 
6132
        add rsi, rax
 
6133
        adc rdi, rdx
 
6134
        adc rcx, 0
 
6135
        mov rax, qword ptr [-408+rbp]
 
6136
        mul qword ptr [-120+rbp]
 
6137
        add rsi, rax
 
6138
        adc rdi, rdx
 
6139
        adc rcx, 0
 
6140
        mov rax, qword ptr [-400+rbp]
 
6141
        mul qword ptr [-128+rbp]
 
6142
        add rsi, rax
 
6143
        adc rdi, rdx
 
6144
        adc rcx, 0
 
6145
        mov rax, qword ptr [-392+rbp]
 
6146
        mul qword ptr [-136+rbp]
 
6147
        add rsi, rax
 
6148
        adc rdi, rdx
 
6149
        adc rcx, 0
 
6150
        mov rax, qword ptr [-384+rbp]
 
6151
        mul qword ptr [-144+rbp]
 
6152
        add rsi, rax
 
6153
        adc rdi, rdx
 
6154
        adc rcx, 0
 
6155
        mov rax, qword ptr [-376+rbp]
 
6156
        mul qword ptr [-152+rbp]
 
6157
        add rsi, rax
 
6158
        adc rdi, rdx
 
6159
        adc rcx, 0
 
6160
        mov rax, qword ptr [-368+rbp]
 
6161
        mul qword ptr [-160+rbp]
 
6162
        add rsi, rax
 
6163
        adc rdi, rdx
 
6164
        adc rcx, 0
 
6165
        mov rax, qword ptr [-360+rbp]
 
6166
        mul qword ptr [-168+rbp]
 
6167
        add rsi, rax
 
6168
        adc rdi, rdx
 
6169
        adc rcx, 0
 
6170
        mov rax, qword ptr [-352+rbp]
 
6171
        mul qword ptr [-176+rbp]
 
6172
        add rsi, rax
 
6173
        adc rdi, rdx
 
6174
        adc rcx, 0
 
6175
        mov rax, qword ptr [-344+rbp]
 
6176
        mul qword ptr [-184+rbp]
 
6177
        add rsi, rax
 
6178
        adc rdi, rdx
 
6179
        adc rcx, 0
 
6180
        mov rax, qword ptr [-336+rbp]
 
6181
        mul qword ptr [-192+rbp]
 
6182
        add rsi, rax
 
6183
        adc rdi, rdx
 
6184
        adc rcx, 0
 
6185
        mov rax, qword ptr [-328+rbp]
 
6186
        mul qword ptr [-200+rbp]
 
6187
        add rsi, rax
 
6188
        adc rdi, rdx
 
6189
        adc rcx, 0
 
6190
        mov rax, qword ptr [-320+rbp]
 
6191
        mul qword ptr [-208+rbp]
 
6192
        add rsi, rax
 
6193
        adc rdi, rdx
 
6194
        adc rcx, 0
 
6195
        mov rax, qword ptr [-312+rbp]
 
6196
        mul qword ptr [-216+rbp]
 
6197
        add rsi, rax
 
6198
        adc rdi, rdx
 
6199
        adc rcx, 0
 
6200
        mov rax, qword ptr [-304+rbp]
 
6201
        mul qword ptr [-224+rbp]
 
6202
        add rsi, rax
 
6203
        adc rdi, rdx
 
6204
        adc rcx, 0
 
6205
        mov r10, rdi
 
6206
        mov r11, rcx
 
6207
        mov rax, qword ptr [-296+rbp]
 
6208
        mul qword ptr [-232+rbp]
 
6209
        add rsi, rax
 
6210
        adc r10, rdx
 
6211
        adc r11, 0
 
6212
        mov qword ptr [304+r9], rsi
 
6213
        mov rdi, r11
 
6214
        mov rcx, r10
 
6215
        mov rsi, r8
 
6216
        mov rax, qword ptr [-480+rbp]
 
6217
        mul qword ptr [-40+rbp]
 
6218
        add rcx, rax
 
6219
        adc rdi, rdx
 
6220
        adc rsi, 0
 
6221
        mov rax, qword ptr [-472+rbp]
 
6222
        mul qword ptr [-48+rbp]
 
6223
        add rcx, rax
 
6224
        adc rdi, rdx
 
6225
        adc rsi, 0
 
6226
        mov rax, qword ptr [-464+rbp]
 
6227
        mul qword ptr [-56+rbp]
 
6228
        add rcx, rax
 
6229
        adc rdi, rdx
 
6230
        adc rsi, 0
 
6231
        mov rax, qword ptr [-456+rbp]
 
6232
        mul qword ptr [-64+rbp]
 
6233
        add rcx, rax
 
6234
        adc rdi, rdx
 
6235
        adc rsi, 0
 
6236
        mov rax, qword ptr [-448+rbp]
 
6237
        mul qword ptr [-72+rbp]
 
6238
        add rcx, rax
 
6239
        adc rdi, rdx
 
6240
        adc rsi, 0
 
6241
        mov rax, qword ptr [-440+rbp]
 
6242
        mul qword ptr [-80+rbp]
 
6243
        add rcx, rax
 
6244
        adc rdi, rdx
 
6245
        adc rsi, 0
 
6246
        mov rax, qword ptr [-432+rbp]
 
6247
        mul qword ptr [-88+rbp]
 
6248
        add rcx, rax
 
6249
        adc rdi, rdx
 
6250
        adc rsi, 0
 
6251
        mov rax, qword ptr [-424+rbp]
 
6252
        mul qword ptr [-96+rbp]
 
6253
        add rcx, rax
 
6254
        adc rdi, rdx
 
6255
        adc rsi, 0
 
6256
        mov rax, qword ptr [-416+rbp]
 
6257
        mul qword ptr [-104+rbp]
 
6258
        add rcx, rax
 
6259
        adc rdi, rdx
 
6260
        adc rsi, 0
 
6261
        mov rax, qword ptr [-408+rbp]
 
6262
        mul qword ptr [-112+rbp]
 
6263
        add rcx, rax
 
6264
        adc rdi, rdx
 
6265
        adc rsi, 0
 
6266
        mov rax, qword ptr [-400+rbp]
 
6267
        mul qword ptr [-120+rbp]
 
6268
        add rcx, rax
 
6269
        adc rdi, rdx
 
6270
        adc rsi, 0
 
6271
        mov rax, qword ptr [-392+rbp]
 
6272
        mul qword ptr [-128+rbp]
 
6273
        add rcx, rax
 
6274
        adc rdi, rdx
 
6275
        adc rsi, 0
 
6276
        mov rax, qword ptr [-384+rbp]
 
6277
        mul qword ptr [-136+rbp]
 
6278
        add rcx, rax
 
6279
        adc rdi, rdx
 
6280
        adc rsi, 0
 
6281
        mov rax, qword ptr [-376+rbp]
 
6282
        mul qword ptr [-144+rbp]
 
6283
        add rcx, rax
 
6284
        adc rdi, rdx
 
6285
        adc rsi, 0
 
6286
        mov rax, qword ptr [-368+rbp]
 
6287
        mul qword ptr [-152+rbp]
 
6288
        add rcx, rax
 
6289
        adc rdi, rdx
 
6290
        adc rsi, 0
 
6291
        mov rax, qword ptr [-360+rbp]
 
6292
        mul qword ptr [-160+rbp]
 
6293
        add rcx, rax
 
6294
        adc rdi, rdx
 
6295
        adc rsi, 0
 
6296
        mov rax, qword ptr [-352+rbp]
 
6297
        mul qword ptr [-168+rbp]
 
6298
        add rcx, rax
 
6299
        adc rdi, rdx
 
6300
        adc rsi, 0
 
6301
        mov rax, qword ptr [-344+rbp]
 
6302
        mul qword ptr [-176+rbp]
 
6303
        add rcx, rax
 
6304
        adc rdi, rdx
 
6305
        adc rsi, 0
 
6306
        mov rax, qword ptr [-336+rbp]
 
6307
        mul qword ptr [-184+rbp]
 
6308
        add rcx, rax
 
6309
        adc rdi, rdx
 
6310
        adc rsi, 0
 
6311
        mov rax, qword ptr [-328+rbp]
 
6312
        mul qword ptr [-192+rbp]
 
6313
        add rcx, rax
 
6314
        adc rdi, rdx
 
6315
        adc rsi, 0
 
6316
        mov rax, qword ptr [-320+rbp]
 
6317
        mul qword ptr [-200+rbp]
 
6318
        add rcx, rax
 
6319
        adc rdi, rdx
 
6320
        adc rsi, 0
 
6321
        mov rax, qword ptr [-312+rbp]
 
6322
        mul qword ptr [-208+rbp]
 
6323
        add rcx, rax
 
6324
        adc rdi, rdx
 
6325
        adc rsi, 0
 
6326
        mov rax, qword ptr [-304+rbp]
 
6327
        mul qword ptr [-216+rbp]
 
6328
        add rcx, rax
 
6329
        adc rdi, rdx
 
6330
        adc rsi, 0
 
6331
        mov r10, rdi
 
6332
        mov r11, rsi
 
6333
        mov rax, qword ptr [-296+rbp]
 
6334
        mul qword ptr [-224+rbp]
 
6335
        add rcx, rax
 
6336
        adc r10, rdx
 
6337
        adc r11, 0
 
6338
        mov qword ptr [312+r9], rcx
 
6339
        mov rdi, r11
 
6340
        mov rsi, r10
 
6341
        mov rcx, r8
 
6342
        mov rax, qword ptr [-472+rbp]
 
6343
        mul qword ptr [-40+rbp]
 
6344
        add rsi, rax
 
6345
        adc rdi, rdx
 
6346
        adc rcx, 0
 
6347
        mov rax, qword ptr [-464+rbp]
 
6348
        mul qword ptr [-48+rbp]
 
6349
        add rsi, rax
 
6350
        adc rdi, rdx
 
6351
        adc rcx, 0
 
6352
        mov rax, qword ptr [-456+rbp]
 
6353
        mul qword ptr [-56+rbp]
 
6354
        add rsi, rax
 
6355
        adc rdi, rdx
 
6356
        adc rcx, 0
 
6357
        mov rax, qword ptr [-448+rbp]
 
6358
        mul qword ptr [-64+rbp]
 
6359
        add rsi, rax
 
6360
        adc rdi, rdx
 
6361
        adc rcx, 0
 
6362
        mov rax, qword ptr [-440+rbp]
 
6363
        mul qword ptr [-72+rbp]
 
6364
        add rsi, rax
 
6365
        adc rdi, rdx
 
6366
        adc rcx, 0
 
6367
        mov rax, qword ptr [-432+rbp]
 
6368
        mul qword ptr [-80+rbp]
 
6369
        add rsi, rax
 
6370
        adc rdi, rdx
 
6371
        adc rcx, 0
 
6372
        mov rax, qword ptr [-424+rbp]
 
6373
        mul qword ptr [-88+rbp]
 
6374
        add rsi, rax
 
6375
        adc rdi, rdx
 
6376
        adc rcx, 0
 
6377
        mov rax, qword ptr [-416+rbp]
 
6378
        mul qword ptr [-96+rbp]
 
6379
        add rsi, rax
 
6380
        adc rdi, rdx
 
6381
        adc rcx, 0
 
6382
        mov rax, qword ptr [-408+rbp]
 
6383
        mul qword ptr [-104+rbp]
 
6384
        add rsi, rax
 
6385
        adc rdi, rdx
 
6386
        adc rcx, 0
 
6387
        mov rax, qword ptr [-400+rbp]
 
6388
        mul qword ptr [-112+rbp]
 
6389
        add rsi, rax
 
6390
        adc rdi, rdx
 
6391
        adc rcx, 0
 
6392
        mov rax, qword ptr [-392+rbp]
 
6393
        mul qword ptr [-120+rbp]
 
6394
        add rsi, rax
 
6395
        adc rdi, rdx
 
6396
        adc rcx, 0
 
6397
        mov rax, qword ptr [-384+rbp]
 
6398
        mul qword ptr [-128+rbp]
 
6399
        add rsi, rax
 
6400
        adc rdi, rdx
 
6401
        adc rcx, 0
 
6402
        mov rax, qword ptr [-376+rbp]
 
6403
        mul qword ptr [-136+rbp]
 
6404
        add rsi, rax
 
6405
        adc rdi, rdx
 
6406
        adc rcx, 0
 
6407
        mov rax, qword ptr [-368+rbp]
 
6408
        mul qword ptr [-144+rbp]
 
6409
        add rsi, rax
 
6410
        adc rdi, rdx
 
6411
        adc rcx, 0
 
6412
        mov rax, qword ptr [-360+rbp]
 
6413
        mul qword ptr [-152+rbp]
 
6414
        add rsi, rax
 
6415
        adc rdi, rdx
 
6416
        adc rcx, 0
 
6417
        mov rax, qword ptr [-352+rbp]
 
6418
        mul qword ptr [-160+rbp]
 
6419
        add rsi, rax
 
6420
        adc rdi, rdx
 
6421
        adc rcx, 0
 
6422
        mov rax, qword ptr [-344+rbp]
 
6423
        mul qword ptr [-168+rbp]
 
6424
        add rsi, rax
 
6425
        adc rdi, rdx
 
6426
        adc rcx, 0
 
6427
        mov rax, qword ptr [-336+rbp]
 
6428
        mul qword ptr [-176+rbp]
 
6429
        add rsi, rax
 
6430
        adc rdi, rdx
 
6431
        adc rcx, 0
 
6432
        mov rax, qword ptr [-328+rbp]
 
6433
        mul qword ptr [-184+rbp]
 
6434
        add rsi, rax
 
6435
        adc rdi, rdx
 
6436
        adc rcx, 0
 
6437
        mov rax, qword ptr [-320+rbp]
 
6438
        mul qword ptr [-192+rbp]
 
6439
        add rsi, rax
 
6440
        adc rdi, rdx
 
6441
        adc rcx, 0
 
6442
        mov rax, qword ptr [-312+rbp]
 
6443
        mul qword ptr [-200+rbp]
 
6444
        add rsi, rax
 
6445
        adc rdi, rdx
 
6446
        adc rcx, 0
 
6447
        mov rax, qword ptr [-304+rbp]
 
6448
        mul qword ptr [-208+rbp]
 
6449
        add rsi, rax
 
6450
        adc rdi, rdx
 
6451
        adc rcx, 0
 
6452
        mov r10, rdi
 
6453
        mov r11, rcx
 
6454
        mov rax, qword ptr [-296+rbp]
 
6455
        mul qword ptr [-216+rbp]
 
6456
        add rsi, rax
 
6457
        adc r10, rdx
 
6458
        adc r11, 0
 
6459
        mov qword ptr [320+r9], rsi
 
6460
        mov rdi, r11
 
6461
        mov rcx, r10
 
6462
        mov rsi, r8
 
6463
        mov rax, qword ptr [-464+rbp]
 
6464
        mul qword ptr [-40+rbp]
 
6465
        add rcx, rax
 
6466
        adc rdi, rdx
 
6467
        adc rsi, 0
 
6468
        mov rax, qword ptr [-456+rbp]
 
6469
        mul qword ptr [-48+rbp]
 
6470
        add rcx, rax
 
6471
        adc rdi, rdx
 
6472
        adc rsi, 0
 
6473
        mov rax, qword ptr [-448+rbp]
 
6474
        mul qword ptr [-56+rbp]
 
6475
        add rcx, rax
 
6476
        adc rdi, rdx
 
6477
        adc rsi, 0
 
6478
        mov rax, qword ptr [-440+rbp]
 
6479
        mul qword ptr [-64+rbp]
 
6480
        add rcx, rax
 
6481
        adc rdi, rdx
 
6482
        adc rsi, 0
 
6483
        mov rax, qword ptr [-432+rbp]
 
6484
        mul qword ptr [-72+rbp]
 
6485
        add rcx, rax
 
6486
        adc rdi, rdx
 
6487
        adc rsi, 0
 
6488
        mov rax, qword ptr [-424+rbp]
 
6489
        mul qword ptr [-80+rbp]
 
6490
        add rcx, rax
 
6491
        adc rdi, rdx
 
6492
        adc rsi, 0
 
6493
        mov rax, qword ptr [-416+rbp]
 
6494
        mul qword ptr [-88+rbp]
 
6495
        add rcx, rax
 
6496
        adc rdi, rdx
 
6497
        adc rsi, 0
 
6498
        mov rax, qword ptr [-408+rbp]
 
6499
        mul qword ptr [-96+rbp]
 
6500
        add rcx, rax
 
6501
        adc rdi, rdx
 
6502
        adc rsi, 0
 
6503
        mov rax, qword ptr [-400+rbp]
 
6504
        mul qword ptr [-104+rbp]
 
6505
        add rcx, rax
 
6506
        adc rdi, rdx
 
6507
        adc rsi, 0
 
6508
        mov rax, qword ptr [-392+rbp]
 
6509
        mul qword ptr [-112+rbp]
 
6510
        add rcx, rax
 
6511
        adc rdi, rdx
 
6512
        adc rsi, 0
 
6513
        mov rax, qword ptr [-384+rbp]
 
6514
        mul qword ptr [-120+rbp]
 
6515
        add rcx, rax
 
6516
        adc rdi, rdx
 
6517
        adc rsi, 0
 
6518
        mov rax, qword ptr [-376+rbp]
 
6519
        mul qword ptr [-128+rbp]
 
6520
        add rcx, rax
 
6521
        adc rdi, rdx
 
6522
        adc rsi, 0
 
6523
        mov rax, qword ptr [-368+rbp]
 
6524
        mul qword ptr [-136+rbp]
 
6525
        add rcx, rax
 
6526
        adc rdi, rdx
 
6527
        adc rsi, 0
 
6528
        mov rax, qword ptr [-360+rbp]
 
6529
        mul qword ptr [-144+rbp]
 
6530
        add rcx, rax
 
6531
        adc rdi, rdx
 
6532
        adc rsi, 0
 
6533
        mov rax, qword ptr [-352+rbp]
 
6534
        mul qword ptr [-152+rbp]
 
6535
        add rcx, rax
 
6536
        adc rdi, rdx
 
6537
        adc rsi, 0
 
6538
        mov rax, qword ptr [-344+rbp]
 
6539
        mul qword ptr [-160+rbp]
 
6540
        add rcx, rax
 
6541
        adc rdi, rdx
 
6542
        adc rsi, 0
 
6543
        mov rax, qword ptr [-336+rbp]
 
6544
        mul qword ptr [-168+rbp]
 
6545
        add rcx, rax
 
6546
        adc rdi, rdx
 
6547
        adc rsi, 0
 
6548
        mov rax, qword ptr [-328+rbp]
 
6549
        mul qword ptr [-176+rbp]
 
6550
        add rcx, rax
 
6551
        adc rdi, rdx
 
6552
        adc rsi, 0
 
6553
        mov rax, qword ptr [-320+rbp]
 
6554
        mul qword ptr [-184+rbp]
 
6555
        add rcx, rax
 
6556
        adc rdi, rdx
 
6557
        adc rsi, 0
 
6558
        mov rax, qword ptr [-312+rbp]
 
6559
        mul qword ptr [-192+rbp]
 
6560
        add rcx, rax
 
6561
        adc rdi, rdx
 
6562
        adc rsi, 0
 
6563
        mov rax, qword ptr [-304+rbp]
 
6564
        mul qword ptr [-200+rbp]
 
6565
        add rcx, rax
 
6566
        adc rdi, rdx
 
6567
        adc rsi, 0
 
6568
        mov r10, rdi
 
6569
        mov r11, rsi
 
6570
        mov rax, qword ptr [-296+rbp]
 
6571
        mul qword ptr [-208+rbp]
 
6572
        add rcx, rax
 
6573
        adc r10, rdx
 
6574
        adc r11, 0
 
6575
        mov qword ptr [328+r9], rcx
 
6576
        mov rdi, r11
 
6577
        mov r11, r10
 
6578
        mov r10, r8
 
6579
        mov rax, qword ptr [-456+rbp]
 
6580
        mul qword ptr [-40+rbp]
 
6581
        add r11, rax
 
6582
        adc rdi, rdx
 
6583
        adc r10, 0
 
6584
        mov rax, qword ptr [-448+rbp]
 
6585
        mul qword ptr [-48+rbp]
 
6586
        add r11, rax
 
6587
        adc rdi, rdx
 
6588
        adc r10, 0
 
6589
        mov rax, qword ptr [-440+rbp]
 
6590
        mul qword ptr [-56+rbp]
 
6591
        add r11, rax
 
6592
        adc rdi, rdx
 
6593
        adc r10, 0
 
6594
        mov rax, qword ptr [-432+rbp]
 
6595
        mul qword ptr [-64+rbp]
 
6596
        add r11, rax
 
6597
        adc rdi, rdx
 
6598
        adc r10, 0
 
6599
        mov rax, qword ptr [-424+rbp]
 
6600
        mul qword ptr [-72+rbp]
 
6601
        add r11, rax
 
6602
        adc rdi, rdx
 
6603
        adc r10, 0
 
6604
        mov rax, qword ptr [-416+rbp]
 
6605
        mul qword ptr [-80+rbp]
 
6606
        add r11, rax
 
6607
        adc rdi, rdx
 
6608
        adc r10, 0
 
6609
        mov rax, qword ptr [-408+rbp]
 
6610
        mul qword ptr [-88+rbp]
 
6611
        add r11, rax
 
6612
        adc rdi, rdx
 
6613
        adc r10, 0
 
6614
        mov rax, qword ptr [-400+rbp]
 
6615
        mul qword ptr [-96+rbp]
 
6616
        add r11, rax
 
6617
        adc rdi, rdx
 
6618
        adc r10, 0
 
6619
        mov rax, qword ptr [-392+rbp]
 
6620
        mul qword ptr [-104+rbp]
 
6621
        add r11, rax
 
6622
        adc rdi, rdx
 
6623
        adc r10, 0
 
6624
        mov rax, qword ptr [-384+rbp]
 
6625
        mul qword ptr [-112+rbp]
 
6626
        add r11, rax
 
6627
        adc rdi, rdx
 
6628
        adc r10, 0
 
6629
        mov rax, qword ptr [-376+rbp]
 
6630
        mul qword ptr [-120+rbp]
 
6631
        add r11, rax
 
6632
        adc rdi, rdx
 
6633
        adc r10, 0
 
6634
        mov rax, qword ptr [-368+rbp]
 
6635
        mul qword ptr [-128+rbp]
 
6636
        add r11, rax
 
6637
        adc rdi, rdx
 
6638
        adc r10, 0
 
6639
        mov rax, qword ptr [-360+rbp]
 
6640
        mul qword ptr [-136+rbp]
 
6641
        add r11, rax
 
6642
        adc rdi, rdx
 
6643
        adc r10, 0
 
6644
        mov rax, qword ptr [-352+rbp]
 
6645
        mul qword ptr [-144+rbp]
 
6646
        add r11, rax
 
6647
        adc rdi, rdx
 
6648
        adc r10, 0
 
6649
        mov rax, qword ptr [-344+rbp]
 
6650
        mul qword ptr [-152+rbp]
 
6651
        add r11, rax
 
6652
        adc rdi, rdx
 
6653
        adc r10, 0
 
6654
        mov rax, qword ptr [-336+rbp]
 
6655
        mul qword ptr [-160+rbp]
 
6656
        add r11, rax
 
6657
        adc rdi, rdx
 
6658
        adc r10, 0
 
6659
        mov rax, qword ptr [-328+rbp]
 
6660
        mul qword ptr [-168+rbp]
 
6661
        add r11, rax
 
6662
        adc rdi, rdx
 
6663
        adc r10, 0
 
6664
        mov rax, qword ptr [-320+rbp]
 
6665
        mul qword ptr [-176+rbp]
 
6666
        add r11, rax
 
6667
        adc rdi, rdx
 
6668
        adc r10, 0
 
6669
        mov rax, qword ptr [-312+rbp]
 
6670
        mul qword ptr [-184+rbp]
 
6671
        add r11, rax
 
6672
        adc rdi, rdx
 
6673
        adc r10, 0
 
6674
        mov rax, qword ptr [-304+rbp]
 
6675
        mul qword ptr [-192+rbp]
 
6676
        add r11, rax
 
6677
        adc rdi, rdx
 
6678
        adc r10, 0
 
6679
        mov rax, qword ptr [-296+rbp]
 
6680
        mul qword ptr [-200+rbp]
 
6681
        add r11, rax
 
6682
        adc rdi, rdx
 
6683
        adc r10, 0
 
6684
        mov qword ptr [336+r9], r11
 
6685
        mov rsi, r10
 
6686
        mov r10, r8
 
6687
        mov rax, qword ptr [-448+rbp]
 
6688
        mul qword ptr [-40+rbp]
 
6689
        add rdi, rax
 
6690
        adc rsi, rdx
 
6691
        adc r10, 0
 
6692
        mov rcx, r10
 
6693
        mov rax, qword ptr [-440+rbp]
 
6694
        mul qword ptr [-48+rbp]
 
6695
        add rdi, rax
 
6696
        adc rsi, rdx
 
6697
        adc rcx, 0
 
6698
        mov rax, qword ptr [-432+rbp]
 
6699
        mul qword ptr [-56+rbp]
 
6700
        add rdi, rax
 
6701
        adc rsi, rdx
 
6702
        adc rcx, 0
 
6703
        mov rax, qword ptr [-424+rbp]
 
6704
        mul qword ptr [-64+rbp]
 
6705
        add rdi, rax
 
6706
        adc rsi, rdx
 
6707
        adc rcx, 0
 
6708
        mov rax, qword ptr [-416+rbp]
 
6709
        mul qword ptr [-72+rbp]
 
6710
        add rdi, rax
 
6711
        adc rsi, rdx
 
6712
        adc rcx, 0
 
6713
        mov rax, qword ptr [-408+rbp]
 
6714
        mul qword ptr [-80+rbp]
 
6715
        add rdi, rax
 
6716
        adc rsi, rdx
 
6717
        adc rcx, 0
 
6718
        mov rax, qword ptr [-400+rbp]
 
6719
        mul qword ptr [-88+rbp]
 
6720
        add rdi, rax
 
6721
        adc rsi, rdx
 
6722
        adc rcx, 0
 
6723
        mov rax, qword ptr [-392+rbp]
 
6724
        mul qword ptr [-96+rbp]
 
6725
        add rdi, rax
 
6726
        adc rsi, rdx
 
6727
        adc rcx, 0
 
6728
        mov rax, qword ptr [-384+rbp]
 
6729
        mul qword ptr [-104+rbp]
 
6730
        add rdi, rax
 
6731
        adc rsi, rdx
 
6732
        adc rcx, 0
 
6733
        mov rax, qword ptr [-376+rbp]
 
6734
        mul qword ptr [-112+rbp]
 
6735
        add rdi, rax
 
6736
        adc rsi, rdx
 
6737
        adc rcx, 0
 
6738
        mov rax, qword ptr [-368+rbp]
 
6739
        mul qword ptr [-120+rbp]
 
6740
        add rdi, rax
 
6741
        adc rsi, rdx
 
6742
        adc rcx, 0
 
6743
        mov rax, qword ptr [-360+rbp]
 
6744
        mul qword ptr [-128+rbp]
 
6745
        add rdi, rax
 
6746
        adc rsi, rdx
 
6747
        adc rcx, 0
 
6748
        mov rax, qword ptr [-352+rbp]
 
6749
        mul qword ptr [-136+rbp]
 
6750
        add rdi, rax
 
6751
        adc rsi, rdx
 
6752
        adc rcx, 0
 
6753
        mov rax, qword ptr [-344+rbp]
 
6754
        mul qword ptr [-144+rbp]
 
6755
        add rdi, rax
 
6756
        adc rsi, rdx
 
6757
        adc rcx, 0
 
6758
        mov rax, qword ptr [-336+rbp]
 
6759
        mul qword ptr [-152+rbp]
 
6760
        add rdi, rax
 
6761
        adc rsi, rdx
 
6762
        adc rcx, 0
 
6763
        mov rax, qword ptr [-328+rbp]
 
6764
        mul qword ptr [-160+rbp]
 
6765
        add rdi, rax
 
6766
        adc rsi, rdx
 
6767
        adc rcx, 0
 
6768
        mov rax, qword ptr [-320+rbp]
 
6769
        mul qword ptr [-168+rbp]
 
6770
        add rdi, rax
 
6771
        adc rsi, rdx
 
6772
        adc rcx, 0
 
6773
        mov rax, qword ptr [-312+rbp]
 
6774
        mul qword ptr [-176+rbp]
 
6775
        add rdi, rax
 
6776
        adc rsi, rdx
 
6777
        adc rcx, 0
 
6778
        mov rax, qword ptr [-304+rbp]
 
6779
        mul qword ptr [-184+rbp]
 
6780
        add rdi, rax
 
6781
        adc rsi, rdx
 
6782
        adc rcx, 0
 
6783
        mov r11, rsi
 
6784
        mov r10, rcx
 
6785
        mov rax, qword ptr [-296+rbp]
 
6786
        mul qword ptr [-192+rbp]
 
6787
        add rdi, rax
 
6788
        adc r11, rdx
 
6789
        adc r10, 0
 
6790
        mov qword ptr [344+r9], rdi
 
6791
        mov rcx, r11
 
6792
        mov rdi, r10
 
6793
        mov r11, r8
 
6794
        mov rax, qword ptr [-440+rbp]
 
6795
        mul qword ptr [-40+rbp]
 
6796
        add rcx, rax
 
6797
        adc rdi, rdx
 
6798
        adc r11, 0
 
6799
        mov rsi, r11
 
6800
        mov rax, qword ptr [-432+rbp]
 
6801
        mul qword ptr [-48+rbp]
 
6802
        add rcx, rax
 
6803
        adc rdi, rdx
 
6804
        adc rsi, 0
 
6805
        mov rax, qword ptr [-424+rbp]
 
6806
        mul qword ptr [-56+rbp]
 
6807
        add rcx, rax
 
6808
        adc rdi, rdx
 
6809
        adc rsi, 0
 
6810
        mov rax, qword ptr [-416+rbp]
 
6811
        mul qword ptr [-64+rbp]
 
6812
        add rcx, rax
 
6813
        adc rdi, rdx
 
6814
        adc rsi, 0
 
6815
        mov rax, qword ptr [-408+rbp]
 
6816
        mul qword ptr [-72+rbp]
 
6817
        add rcx, rax
 
6818
        adc rdi, rdx
 
6819
        adc rsi, 0
 
6820
        mov rax, qword ptr [-400+rbp]
 
6821
        mul qword ptr [-80+rbp]
 
6822
        add rcx, rax
 
6823
        adc rdi, rdx
 
6824
        adc rsi, 0
 
6825
        mov rax, qword ptr [-392+rbp]
 
6826
        mul qword ptr [-88+rbp]
 
6827
        add rcx, rax
 
6828
        adc rdi, rdx
 
6829
        adc rsi, 0
 
6830
        mov rax, qword ptr [-384+rbp]
 
6831
        mul qword ptr [-96+rbp]
 
6832
        add rcx, rax
 
6833
        adc rdi, rdx
 
6834
        adc rsi, 0
 
6835
        mov rax, qword ptr [-376+rbp]
 
6836
        mul qword ptr [-104+rbp]
 
6837
        add rcx, rax
 
6838
        adc rdi, rdx
 
6839
        adc rsi, 0
 
6840
        mov rax, qword ptr [-368+rbp]
 
6841
        mul qword ptr [-112+rbp]
 
6842
        add rcx, rax
 
6843
        adc rdi, rdx
 
6844
        adc rsi, 0
 
6845
        mov rax, qword ptr [-360+rbp]
 
6846
        mul qword ptr [-120+rbp]
 
6847
        add rcx, rax
 
6848
        adc rdi, rdx
 
6849
        adc rsi, 0
 
6850
        mov rax, qword ptr [-352+rbp]
 
6851
        mul qword ptr [-128+rbp]
 
6852
        add rcx, rax
 
6853
        adc rdi, rdx
 
6854
        adc rsi, 0
 
6855
        mov rax, qword ptr [-344+rbp]
 
6856
        mul qword ptr [-136+rbp]
 
6857
        add rcx, rax
 
6858
        adc rdi, rdx
 
6859
        adc rsi, 0
 
6860
        mov rax, qword ptr [-336+rbp]
 
6861
        mul qword ptr [-144+rbp]
 
6862
        add rcx, rax
 
6863
        adc rdi, rdx
 
6864
        adc rsi, 0
 
6865
        mov rax, qword ptr [-328+rbp]
 
6866
        mul qword ptr [-152+rbp]
 
6867
        add rcx, rax
 
6868
        adc rdi, rdx
 
6869
        adc rsi, 0
 
6870
        mov rax, qword ptr [-320+rbp]
 
6871
        mul qword ptr [-160+rbp]
 
6872
        add rcx, rax
 
6873
        adc rdi, rdx
 
6874
        adc rsi, 0
 
6875
        mov rax, qword ptr [-312+rbp]
 
6876
        mul qword ptr [-168+rbp]
 
6877
        add rcx, rax
 
6878
        adc rdi, rdx
 
6879
        adc rsi, 0
 
6880
        mov rax, qword ptr [-304+rbp]
 
6881
        mul qword ptr [-176+rbp]
 
6882
        add rcx, rax
 
6883
        adc rdi, rdx
 
6884
        adc rsi, 0
 
6885
        mov r10, rdi
 
6886
        mov r11, rsi
 
6887
        mov rax, qword ptr [-296+rbp]
 
6888
        mul qword ptr [-184+rbp]
 
6889
        add rcx, rax
 
6890
        adc r10, rdx
 
6891
        adc r11, 0
 
6892
        mov qword ptr [352+r9], rcx
 
6893
        mov rdi, r11
 
6894
        mov rsi, r10
 
6895
        mov rcx, r8
 
6896
        mov rax, qword ptr [-432+rbp]
 
6897
        mul qword ptr [-40+rbp]
 
6898
        add rsi, rax
 
6899
        adc rdi, rdx
 
6900
        adc rcx, 0
 
6901
        mov rax, qword ptr [-424+rbp]
 
6902
        mul qword ptr [-48+rbp]
 
6903
        add rsi, rax
 
6904
        adc rdi, rdx
 
6905
        adc rcx, 0
 
6906
        mov rax, qword ptr [-416+rbp]
 
6907
        mul qword ptr [-56+rbp]
 
6908
        add rsi, rax
 
6909
        adc rdi, rdx
 
6910
        adc rcx, 0
 
6911
        mov rax, qword ptr [-408+rbp]
 
6912
        mul qword ptr [-64+rbp]
 
6913
        add rsi, rax
 
6914
        adc rdi, rdx
 
6915
        adc rcx, 0
 
6916
        mov rax, qword ptr [-400+rbp]
 
6917
        mul qword ptr [-72+rbp]
 
6918
        add rsi, rax
 
6919
        adc rdi, rdx
 
6920
        adc rcx, 0
 
6921
        mov rax, qword ptr [-392+rbp]
 
6922
        mul qword ptr [-80+rbp]
 
6923
        add rsi, rax
 
6924
        adc rdi, rdx
 
6925
        adc rcx, 0
 
6926
        mov rax, qword ptr [-384+rbp]
 
6927
        mul qword ptr [-88+rbp]
 
6928
        add rsi, rax
 
6929
        adc rdi, rdx
 
6930
        adc rcx, 0
 
6931
        mov rax, qword ptr [-376+rbp]
 
6932
        mul qword ptr [-96+rbp]
 
6933
        add rsi, rax
 
6934
        adc rdi, rdx
 
6935
        adc rcx, 0
 
6936
        mov rax, qword ptr [-368+rbp]
 
6937
        mul qword ptr [-104+rbp]
 
6938
        add rsi, rax
 
6939
        adc rdi, rdx
 
6940
        adc rcx, 0
 
6941
        mov rax, qword ptr [-360+rbp]
 
6942
        mul qword ptr [-112+rbp]
 
6943
        add rsi, rax
 
6944
        adc rdi, rdx
 
6945
        adc rcx, 0
 
6946
        mov rax, qword ptr [-352+rbp]
 
6947
        mul qword ptr [-120+rbp]
 
6948
        add rsi, rax
 
6949
        adc rdi, rdx
 
6950
        adc rcx, 0
 
6951
        mov rax, qword ptr [-344+rbp]
 
6952
        mul qword ptr [-128+rbp]
 
6953
        add rsi, rax
 
6954
        adc rdi, rdx
 
6955
        adc rcx, 0
 
6956
        mov rax, qword ptr [-336+rbp]
 
6957
        mul qword ptr [-136+rbp]
 
6958
        add rsi, rax
 
6959
        adc rdi, rdx
 
6960
        adc rcx, 0
 
6961
        mov rax, qword ptr [-328+rbp]
 
6962
        mul qword ptr [-144+rbp]
 
6963
        add rsi, rax
 
6964
        adc rdi, rdx
 
6965
        adc rcx, 0
 
6966
        mov rax, qword ptr [-320+rbp]
 
6967
        mul qword ptr [-152+rbp]
 
6968
        add rsi, rax
 
6969
        adc rdi, rdx
 
6970
        adc rcx, 0
 
6971
        mov rax, qword ptr [-312+rbp]
 
6972
        mul qword ptr [-160+rbp]
 
6973
        add rsi, rax
 
6974
        adc rdi, rdx
 
6975
        adc rcx, 0
 
6976
        mov rax, qword ptr [-304+rbp]
 
6977
        mul qword ptr [-168+rbp]
 
6978
        add rsi, rax
 
6979
        adc rdi, rdx
 
6980
        adc rcx, 0
 
6981
        mov r10, rdi
 
6982
        mov r11, rcx
 
6983
        mov rax, qword ptr [-296+rbp]
 
6984
        mul qword ptr [-176+rbp]
 
6985
        add rsi, rax
 
6986
        adc r10, rdx
 
6987
        adc r11, 0
 
6988
        mov qword ptr [360+r9], rsi
 
6989
        mov rdi, r11
 
6990
        mov rcx, r10
 
6991
        mov rsi, r8
 
6992
        mov rax, qword ptr [-424+rbp]
 
6993
        mul qword ptr [-40+rbp]
 
6994
        add rcx, rax
 
6995
        adc rdi, rdx
 
6996
        adc rsi, 0
 
6997
        mov rax, qword ptr [-416+rbp]
 
6998
        mul qword ptr [-48+rbp]
 
6999
        add rcx, rax
 
7000
        adc rdi, rdx
 
7001
        adc rsi, 0
 
7002
        mov rax, qword ptr [-408+rbp]
 
7003
        mul qword ptr [-56+rbp]
 
7004
        add rcx, rax
 
7005
        adc rdi, rdx
 
7006
        adc rsi, 0
 
7007
        mov rax, qword ptr [-400+rbp]
 
7008
        mul qword ptr [-64+rbp]
 
7009
        add rcx, rax
 
7010
        adc rdi, rdx
 
7011
        adc rsi, 0
 
7012
        mov rax, qword ptr [-392+rbp]
 
7013
        mul qword ptr [-72+rbp]
 
7014
        add rcx, rax
 
7015
        adc rdi, rdx
 
7016
        adc rsi, 0
 
7017
        mov rax, qword ptr [-384+rbp]
 
7018
        mul qword ptr [-80+rbp]
 
7019
        add rcx, rax
 
7020
        adc rdi, rdx
 
7021
        adc rsi, 0
 
7022
        mov rax, qword ptr [-376+rbp]
 
7023
        mul qword ptr [-88+rbp]
 
7024
        add rcx, rax
 
7025
        adc rdi, rdx
 
7026
        adc rsi, 0
 
7027
        mov rax, qword ptr [-368+rbp]
 
7028
        mul qword ptr [-96+rbp]
 
7029
        add rcx, rax
 
7030
        adc rdi, rdx
 
7031
        adc rsi, 0
 
7032
        mov rax, qword ptr [-360+rbp]
 
7033
        mul qword ptr [-104+rbp]
 
7034
        add rcx, rax
 
7035
        adc rdi, rdx
 
7036
        adc rsi, 0
 
7037
        mov rax, qword ptr [-352+rbp]
 
7038
        mul qword ptr [-112+rbp]
 
7039
        add rcx, rax
 
7040
        adc rdi, rdx
 
7041
        adc rsi, 0
 
7042
        mov rax, qword ptr [-344+rbp]
 
7043
        mul qword ptr [-120+rbp]
 
7044
        add rcx, rax
 
7045
        adc rdi, rdx
 
7046
        adc rsi, 0
 
7047
        mov rax, qword ptr [-336+rbp]
 
7048
        mul qword ptr [-128+rbp]
 
7049
        add rcx, rax
 
7050
        adc rdi, rdx
 
7051
        adc rsi, 0
 
7052
        mov rax, qword ptr [-328+rbp]
 
7053
        mul qword ptr [-136+rbp]
 
7054
        add rcx, rax
 
7055
        adc rdi, rdx
 
7056
        adc rsi, 0
 
7057
        mov rax, qword ptr [-320+rbp]
 
7058
        mul qword ptr [-144+rbp]
 
7059
        add rcx, rax
 
7060
        adc rdi, rdx
 
7061
        adc rsi, 0
 
7062
        mov rax, qword ptr [-312+rbp]
 
7063
        mul qword ptr [-152+rbp]
 
7064
        add rcx, rax
 
7065
        adc rdi, rdx
 
7066
        adc rsi, 0
 
7067
        mov rax, qword ptr [-304+rbp]
 
7068
        mul qword ptr [-160+rbp]
 
7069
        add rcx, rax
 
7070
        adc rdi, rdx
 
7071
        adc rsi, 0
 
7072
        mov r10, rdi
 
7073
        mov r11, rsi
 
7074
        mov rax, qword ptr [-296+rbp]
 
7075
        mul qword ptr [-168+rbp]
 
7076
        add rcx, rax
 
7077
        adc r10, rdx
 
7078
        adc r11, 0
 
7079
        mov qword ptr [368+r9], rcx
 
7080
        mov rdi, r11
 
7081
        mov rsi, r10
 
7082
        mov rcx, r8
 
7083
        mov rax, qword ptr [-416+rbp]
 
7084
        mul qword ptr [-40+rbp]
 
7085
        add rsi, rax
 
7086
        adc rdi, rdx
 
7087
        adc rcx, 0
 
7088
        mov rax, qword ptr [-408+rbp]
 
7089
        mul qword ptr [-48+rbp]
 
7090
        add rsi, rax
 
7091
        adc rdi, rdx
 
7092
        adc rcx, 0
 
7093
        mov rax, qword ptr [-400+rbp]
 
7094
        mul qword ptr [-56+rbp]
 
7095
        add rsi, rax
 
7096
        adc rdi, rdx
 
7097
        adc rcx, 0
 
7098
        mov rax, qword ptr [-392+rbp]
 
7099
        mul qword ptr [-64+rbp]
 
7100
        add rsi, rax
 
7101
        adc rdi, rdx
 
7102
        adc rcx, 0
 
7103
        mov rax, qword ptr [-384+rbp]
 
7104
        mul qword ptr [-72+rbp]
 
7105
        add rsi, rax
 
7106
        adc rdi, rdx
 
7107
        adc rcx, 0
 
7108
        mov rax, qword ptr [-376+rbp]
 
7109
        mul qword ptr [-80+rbp]
 
7110
        add rsi, rax
 
7111
        adc rdi, rdx
 
7112
        adc rcx, 0
 
7113
        mov rax, qword ptr [-368+rbp]
 
7114
        mul qword ptr [-88+rbp]
 
7115
        add rsi, rax
 
7116
        adc rdi, rdx
 
7117
        adc rcx, 0
 
7118
        mov rax, qword ptr [-360+rbp]
 
7119
        mul qword ptr [-96+rbp]
 
7120
        add rsi, rax
 
7121
        adc rdi, rdx
 
7122
        adc rcx, 0
 
7123
        mov rax, qword ptr [-352+rbp]
 
7124
        mul qword ptr [-104+rbp]
 
7125
        add rsi, rax
 
7126
        adc rdi, rdx
 
7127
        adc rcx, 0
 
7128
        mov rax, qword ptr [-344+rbp]
 
7129
        mul qword ptr [-112+rbp]
 
7130
        add rsi, rax
 
7131
        adc rdi, rdx
 
7132
        adc rcx, 0
 
7133
        mov rax, qword ptr [-336+rbp]
 
7134
        mul qword ptr [-120+rbp]
 
7135
        add rsi, rax
 
7136
        adc rdi, rdx
 
7137
        adc rcx, 0
 
7138
        mov rax, qword ptr [-328+rbp]
 
7139
        mul qword ptr [-128+rbp]
 
7140
        add rsi, rax
 
7141
        adc rdi, rdx
 
7142
        adc rcx, 0
 
7143
        mov rax, qword ptr [-320+rbp]
 
7144
        mul qword ptr [-136+rbp]
 
7145
        add rsi, rax
 
7146
        adc rdi, rdx
 
7147
        adc rcx, 0
 
7148
        mov rax, qword ptr [-312+rbp]
 
7149
        mul qword ptr [-144+rbp]
 
7150
        add rsi, rax
 
7151
        adc rdi, rdx
 
7152
        adc rcx, 0
 
7153
        mov rax, qword ptr [-304+rbp]
 
7154
        mul qword ptr [-152+rbp]
 
7155
        add rsi, rax
 
7156
        adc rdi, rdx
 
7157
        adc rcx, 0
 
7158
        mov r10, rdi
 
7159
        mov r11, rcx
 
7160
        mov rax, qword ptr [-296+rbp]
 
7161
        mul qword ptr [-160+rbp]
 
7162
        add rsi, rax
 
7163
        adc r10, rdx
 
7164
        adc r11, 0
 
7165
        mov qword ptr [376+r9], rsi
 
7166
        mov rdi, r11
 
7167
        mov rcx, r10
 
7168
        mov rsi, r8
 
7169
        mov rax, qword ptr [-408+rbp]
 
7170
        mul qword ptr [-40+rbp]
 
7171
        add rcx, rax
 
7172
        adc rdi, rdx
 
7173
        adc rsi, 0
 
7174
        mov rax, qword ptr [-400+rbp]
 
7175
        mul qword ptr [-48+rbp]
 
7176
        add rcx, rax
 
7177
        adc rdi, rdx
 
7178
        adc rsi, 0
 
7179
        mov rax, qword ptr [-392+rbp]
 
7180
        mul qword ptr [-56+rbp]
 
7181
        add rcx, rax
 
7182
        adc rdi, rdx
 
7183
        adc rsi, 0
 
7184
        mov rax, qword ptr [-384+rbp]
 
7185
        mul qword ptr [-64+rbp]
 
7186
        add rcx, rax
 
7187
        adc rdi, rdx
 
7188
        adc rsi, 0
 
7189
        mov rax, qword ptr [-376+rbp]
 
7190
        mul qword ptr [-72+rbp]
 
7191
        add rcx, rax
 
7192
        adc rdi, rdx
 
7193
        adc rsi, 0
 
7194
        mov rax, qword ptr [-368+rbp]
 
7195
        mul qword ptr [-80+rbp]
 
7196
        add rcx, rax
 
7197
        adc rdi, rdx
 
7198
        adc rsi, 0
 
7199
        mov rax, qword ptr [-360+rbp]
 
7200
        mul qword ptr [-88+rbp]
 
7201
        add rcx, rax
 
7202
        adc rdi, rdx
 
7203
        adc rsi, 0
 
7204
        mov rax, qword ptr [-352+rbp]
 
7205
        mul qword ptr [-96+rbp]
 
7206
        add rcx, rax
 
7207
        adc rdi, rdx
 
7208
        adc rsi, 0
 
7209
        mov rax, qword ptr [-344+rbp]
 
7210
        mul qword ptr [-104+rbp]
 
7211
        add rcx, rax
 
7212
        adc rdi, rdx
 
7213
        adc rsi, 0
 
7214
        mov rax, qword ptr [-336+rbp]
 
7215
        mul qword ptr [-112+rbp]
 
7216
        add rcx, rax
 
7217
        adc rdi, rdx
 
7218
        adc rsi, 0
 
7219
        mov rax, qword ptr [-328+rbp]
 
7220
        mul qword ptr [-120+rbp]
 
7221
        add rcx, rax
 
7222
        adc rdi, rdx
 
7223
        adc rsi, 0
 
7224
        mov rax, qword ptr [-320+rbp]
 
7225
        mul qword ptr [-128+rbp]
 
7226
        add rcx, rax
 
7227
        adc rdi, rdx
 
7228
        adc rsi, 0
 
7229
        mov rax, qword ptr [-312+rbp]
 
7230
        mul qword ptr [-136+rbp]
 
7231
        add rcx, rax
 
7232
        adc rdi, rdx
 
7233
        adc rsi, 0
 
7234
        mov rax, qword ptr [-304+rbp]
 
7235
        mul qword ptr [-144+rbp]
 
7236
        add rcx, rax
 
7237
        adc rdi, rdx
 
7238
        adc rsi, 0
 
7239
        mov r10, rdi
 
7240
        mov r11, rsi
 
7241
        mov rax, qword ptr [-296+rbp]
 
7242
        mul qword ptr [-152+rbp]
 
7243
        add rcx, rax
 
7244
        adc r10, rdx
 
7245
        adc r11, 0
 
7246
        mov qword ptr [384+r9], rcx
 
7247
        mov rdi, r11
 
7248
        mov rsi, r10
 
7249
        mov rcx, r8
 
7250
        mov rax, qword ptr [-400+rbp]
 
7251
        mul qword ptr [-40+rbp]
 
7252
        add rsi, rax
 
7253
        adc rdi, rdx
 
7254
        adc rcx, 0
 
7255
        mov rax, qword ptr [-392+rbp]
 
7256
        mul qword ptr [-48+rbp]
 
7257
        add rsi, rax
 
7258
        adc rdi, rdx
 
7259
        adc rcx, 0
 
7260
        mov rax, qword ptr [-384+rbp]
 
7261
        mul qword ptr [-56+rbp]
 
7262
        add rsi, rax
 
7263
        adc rdi, rdx
 
7264
        adc rcx, 0
 
7265
        mov rax, qword ptr [-376+rbp]
 
7266
        mul qword ptr [-64+rbp]
 
7267
        add rsi, rax
 
7268
        adc rdi, rdx
 
7269
        adc rcx, 0
 
7270
        mov rax, qword ptr [-368+rbp]
 
7271
        mul qword ptr [-72+rbp]
 
7272
        add rsi, rax
 
7273
        adc rdi, rdx
 
7274
        adc rcx, 0
 
7275
        mov rax, qword ptr [-360+rbp]
 
7276
        mul qword ptr [-80+rbp]
 
7277
        add rsi, rax
 
7278
        adc rdi, rdx
 
7279
        adc rcx, 0
 
7280
        mov rax, qword ptr [-352+rbp]
 
7281
        mul qword ptr [-88+rbp]
 
7282
        add rsi, rax
 
7283
        adc rdi, rdx
 
7284
        adc rcx, 0
 
7285
        mov rax, qword ptr [-344+rbp]
 
7286
        mul qword ptr [-96+rbp]
 
7287
        add rsi, rax
 
7288
        adc rdi, rdx
 
7289
        adc rcx, 0
 
7290
        mov rax, qword ptr [-336+rbp]
 
7291
        mul qword ptr [-104+rbp]
 
7292
        add rsi, rax
 
7293
        adc rdi, rdx
 
7294
        adc rcx, 0
 
7295
        mov rax, qword ptr [-328+rbp]
 
7296
        mul qword ptr [-112+rbp]
 
7297
        add rsi, rax
 
7298
        adc rdi, rdx
 
7299
        adc rcx, 0
 
7300
        mov rax, qword ptr [-320+rbp]
 
7301
        mul qword ptr [-120+rbp]
 
7302
        add rsi, rax
 
7303
        adc rdi, rdx
 
7304
        adc rcx, 0
 
7305
        mov rax, qword ptr [-312+rbp]
 
7306
        mul qword ptr [-128+rbp]
 
7307
        add rsi, rax
 
7308
        adc rdi, rdx
 
7309
        adc rcx, 0
 
7310
        mov rax, qword ptr [-304+rbp]
 
7311
        mul qword ptr [-136+rbp]
 
7312
        add rsi, rax
 
7313
        adc rdi, rdx
 
7314
        adc rcx, 0
 
7315
        mov r10, rdi
 
7316
        mov r11, rcx
 
7317
        mov rax, qword ptr [-296+rbp]
 
7318
        mul qword ptr [-144+rbp]
 
7319
        add rsi, rax
 
7320
        adc r10, rdx
 
7321
        adc r11, 0
 
7322
        mov qword ptr [392+r9], rsi
 
7323
        mov rdi, r11
 
7324
        mov rcx, r10
 
7325
        mov rsi, r8
 
7326
        mov rax, qword ptr [-392+rbp]
 
7327
        mul qword ptr [-40+rbp]
 
7328
        add rcx, rax
 
7329
        adc rdi, rdx
 
7330
        adc rsi, 0
 
7331
        mov rax, qword ptr [-384+rbp]
 
7332
        mul qword ptr [-48+rbp]
 
7333
        add rcx, rax
 
7334
        adc rdi, rdx
 
7335
        adc rsi, 0
 
7336
        mov rax, qword ptr [-376+rbp]
 
7337
        mul qword ptr [-56+rbp]
 
7338
        add rcx, rax
 
7339
        adc rdi, rdx
 
7340
        adc rsi, 0
 
7341
        mov rax, qword ptr [-368+rbp]
 
7342
        mul qword ptr [-64+rbp]
 
7343
        add rcx, rax
 
7344
        adc rdi, rdx
 
7345
        adc rsi, 0
 
7346
        mov rax, qword ptr [-360+rbp]
 
7347
        mul qword ptr [-72+rbp]
 
7348
        add rcx, rax
 
7349
        adc rdi, rdx
 
7350
        adc rsi, 0
 
7351
        mov rax, qword ptr [-352+rbp]
 
7352
        mul qword ptr [-80+rbp]
 
7353
        add rcx, rax
 
7354
        adc rdi, rdx
 
7355
        adc rsi, 0
 
7356
        mov rax, qword ptr [-344+rbp]
 
7357
        mul qword ptr [-88+rbp]
 
7358
        add rcx, rax
 
7359
        adc rdi, rdx
 
7360
        adc rsi, 0
 
7361
        mov rax, qword ptr [-336+rbp]
 
7362
        mul qword ptr [-96+rbp]
 
7363
        add rcx, rax
 
7364
        adc rdi, rdx
 
7365
        adc rsi, 0
 
7366
        mov rax, qword ptr [-328+rbp]
 
7367
        mul qword ptr [-104+rbp]
 
7368
        add rcx, rax
 
7369
        adc rdi, rdx
 
7370
        adc rsi, 0
 
7371
        mov rax, qword ptr [-320+rbp]
 
7372
        mul qword ptr [-112+rbp]
 
7373
        add rcx, rax
 
7374
        adc rdi, rdx
 
7375
        adc rsi, 0
 
7376
        mov rax, qword ptr [-312+rbp]
 
7377
        mul qword ptr [-120+rbp]
 
7378
        add rcx, rax
 
7379
        adc rdi, rdx
 
7380
        adc rsi, 0
 
7381
        mov rax, qword ptr [-304+rbp]
 
7382
        mul qword ptr [-128+rbp]
 
7383
        add rcx, rax
 
7384
        adc rdi, rdx
 
7385
        adc rsi, 0
 
7386
        mov r10, rdi
 
7387
        mov r11, rsi
 
7388
        mov rax, qword ptr [-296+rbp]
 
7389
        mul qword ptr [-136+rbp]
 
7390
        add rcx, rax
 
7391
        adc r10, rdx
 
7392
        adc r11, 0
 
7393
        mov qword ptr [400+r9], rcx
 
7394
        mov rdi, r11
 
7395
        mov rsi, r10
 
7396
        mov rcx, r8
 
7397
        mov rax, qword ptr [-384+rbp]
 
7398
        mul qword ptr [-40+rbp]
 
7399
        add rsi, rax
 
7400
        adc rdi, rdx
 
7401
        adc rcx, 0
 
7402
        mov rax, qword ptr [-376+rbp]
 
7403
        mul qword ptr [-48+rbp]
 
7404
        add rsi, rax
 
7405
        adc rdi, rdx
 
7406
        adc rcx, 0
 
7407
        mov rax, qword ptr [-368+rbp]
 
7408
        mul qword ptr [-56+rbp]
 
7409
        add rsi, rax
 
7410
        adc rdi, rdx
 
7411
        adc rcx, 0
 
7412
        mov rax, qword ptr [-360+rbp]
 
7413
        mul qword ptr [-64+rbp]
 
7414
        add rsi, rax
 
7415
        adc rdi, rdx
 
7416
        adc rcx, 0
 
7417
        mov rax, qword ptr [-352+rbp]
 
7418
        mul qword ptr [-72+rbp]
 
7419
        add rsi, rax
 
7420
        adc rdi, rdx
 
7421
        adc rcx, 0
 
7422
        mov rax, qword ptr [-344+rbp]
 
7423
        mul qword ptr [-80+rbp]
 
7424
        add rsi, rax
 
7425
        adc rdi, rdx
 
7426
        adc rcx, 0
 
7427
        mov rax, qword ptr [-336+rbp]
 
7428
        mul qword ptr [-88+rbp]
 
7429
        add rsi, rax
 
7430
        adc rdi, rdx
 
7431
        adc rcx, 0
 
7432
        mov rax, qword ptr [-328+rbp]
 
7433
        mul qword ptr [-96+rbp]
 
7434
        add rsi, rax
 
7435
        adc rdi, rdx
 
7436
        adc rcx, 0
 
7437
        mov rax, qword ptr [-320+rbp]
 
7438
        mul qword ptr [-104+rbp]
 
7439
        add rsi, rax
 
7440
        adc rdi, rdx
 
7441
        adc rcx, 0
 
7442
        mov rax, qword ptr [-312+rbp]
 
7443
        mul qword ptr [-112+rbp]
 
7444
        add rsi, rax
 
7445
        adc rdi, rdx
 
7446
        adc rcx, 0
 
7447
        mov rax, qword ptr [-304+rbp]
 
7448
        mul qword ptr [-120+rbp]
 
7449
        add rsi, rax
 
7450
        adc rdi, rdx
 
7451
        adc rcx, 0
 
7452
        mov r10, rdi
 
7453
        mov r11, rcx
 
7454
        mov rax, qword ptr [-296+rbp]
 
7455
        mul qword ptr [-128+rbp]
 
7456
        add rsi, rax
 
7457
        adc r10, rdx
 
7458
        adc r11, 0
 
7459
        mov qword ptr [408+r9], rsi
 
7460
        mov rdi, r11
 
7461
        mov rcx, r10
 
7462
        mov rsi, r8
 
7463
        mov rax, qword ptr [-376+rbp]
 
7464
        mul qword ptr [-40+rbp]
 
7465
        add rcx, rax
 
7466
        adc rdi, rdx
 
7467
        adc rsi, 0
 
7468
        mov rax, qword ptr [-368+rbp]
 
7469
        mul qword ptr [-48+rbp]
 
7470
        add rcx, rax
 
7471
        adc rdi, rdx
 
7472
        adc rsi, 0
 
7473
        mov rax, qword ptr [-360+rbp]
 
7474
        mul qword ptr [-56+rbp]
 
7475
        add rcx, rax
 
7476
        adc rdi, rdx
 
7477
        adc rsi, 0
 
7478
        mov rax, qword ptr [-352+rbp]
 
7479
        mul qword ptr [-64+rbp]
 
7480
        add rcx, rax
 
7481
        adc rdi, rdx
 
7482
        adc rsi, 0
 
7483
        mov rax, qword ptr [-344+rbp]
 
7484
        mul qword ptr [-72+rbp]
 
7485
        add rcx, rax
 
7486
        adc rdi, rdx
 
7487
        adc rsi, 0
 
7488
        mov rax, qword ptr [-336+rbp]
 
7489
        mul qword ptr [-80+rbp]
 
7490
        add rcx, rax
 
7491
        adc rdi, rdx
 
7492
        adc rsi, 0
 
7493
        mov rax, qword ptr [-328+rbp]
 
7494
        mul qword ptr [-88+rbp]
 
7495
        add rcx, rax
 
7496
        adc rdi, rdx
 
7497
        adc rsi, 0
 
7498
        mov rax, qword ptr [-320+rbp]
 
7499
        mul qword ptr [-96+rbp]
 
7500
        add rcx, rax
 
7501
        adc rdi, rdx
 
7502
        adc rsi, 0
 
7503
        mov rax, qword ptr [-312+rbp]
 
7504
        mul qword ptr [-104+rbp]
 
7505
        add rcx, rax
 
7506
        adc rdi, rdx
 
7507
        adc rsi, 0
 
7508
        mov rax, qword ptr [-304+rbp]
 
7509
        mul qword ptr [-112+rbp]
 
7510
        add rcx, rax
 
7511
        adc rdi, rdx
 
7512
        adc rsi, 0
 
7513
        mov r10, rdi
 
7514
        mov r11, rsi
 
7515
        mov rax, qword ptr [-296+rbp]
 
7516
        mul qword ptr [-120+rbp]
 
7517
        add rcx, rax
 
7518
        adc r10, rdx
 
7519
        adc r11, 0
 
7520
        mov qword ptr [416+r9], rcx
 
7521
        mov rdi, r11
 
7522
        mov rsi, r10
 
7523
        mov rcx, r8
 
7524
        mov rax, qword ptr [-368+rbp]
 
7525
        mul qword ptr [-40+rbp]
 
7526
        add rsi, rax
 
7527
        adc rdi, rdx
 
7528
        adc rcx, 0
 
7529
        mov rax, qword ptr [-360+rbp]
 
7530
        mul qword ptr [-48+rbp]
 
7531
        add rsi, rax
 
7532
        adc rdi, rdx
 
7533
        adc rcx, 0
 
7534
        mov rax, qword ptr [-352+rbp]
 
7535
        mul qword ptr [-56+rbp]
 
7536
        add rsi, rax
 
7537
        adc rdi, rdx
 
7538
        adc rcx, 0
 
7539
        mov rax, qword ptr [-344+rbp]
 
7540
        mul qword ptr [-64+rbp]
 
7541
        add rsi, rax
 
7542
        adc rdi, rdx
 
7543
        adc rcx, 0
 
7544
        mov rax, qword ptr [-336+rbp]
 
7545
        mul qword ptr [-72+rbp]
 
7546
        add rsi, rax
 
7547
        adc rdi, rdx
 
7548
        adc rcx, 0
 
7549
        mov rax, qword ptr [-328+rbp]
 
7550
        mul qword ptr [-80+rbp]
 
7551
        add rsi, rax
 
7552
        adc rdi, rdx
 
7553
        adc rcx, 0
 
7554
        mov rax, qword ptr [-320+rbp]
 
7555
        mul qword ptr [-88+rbp]
 
7556
        add rsi, rax
 
7557
        adc rdi, rdx
 
7558
        adc rcx, 0
 
7559
        mov rax, qword ptr [-312+rbp]
 
7560
        mul qword ptr [-96+rbp]
 
7561
        add rsi, rax
 
7562
        adc rdi, rdx
 
7563
        adc rcx, 0
 
7564
        mov rax, qword ptr [-304+rbp]
 
7565
        mul qword ptr [-104+rbp]
 
7566
        add rsi, rax
 
7567
        adc rdi, rdx
 
7568
        adc rcx, 0
 
7569
        mov r10, rdi
 
7570
        mov r11, rcx
 
7571
        mov rax, qword ptr [-296+rbp]
 
7572
        mul qword ptr [-112+rbp]
 
7573
        add rsi, rax
 
7574
        adc r10, rdx
 
7575
        adc r11, 0
 
7576
        mov qword ptr [424+r9], rsi
 
7577
        mov rdi, r11
 
7578
        mov rcx, r10
 
7579
        mov rsi, r8
 
7580
        mov rax, qword ptr [-360+rbp]
 
7581
        mul qword ptr [-40+rbp]
 
7582
        add rcx, rax
 
7583
        adc rdi, rdx
 
7584
        adc rsi, 0
 
7585
        mov rax, qword ptr [-352+rbp]
 
7586
        mul qword ptr [-48+rbp]
 
7587
        add rcx, rax
 
7588
        adc rdi, rdx
 
7589
        adc rsi, 0
 
7590
        mov rax, qword ptr [-344+rbp]
 
7591
        mul qword ptr [-56+rbp]
 
7592
        add rcx, rax
 
7593
        adc rdi, rdx
 
7594
        adc rsi, 0
 
7595
        mov rax, qword ptr [-336+rbp]
 
7596
        mul qword ptr [-64+rbp]
 
7597
        add rcx, rax
 
7598
        adc rdi, rdx
 
7599
        adc rsi, 0
 
7600
        mov rax, qword ptr [-328+rbp]
 
7601
        mul qword ptr [-72+rbp]
 
7602
        add rcx, rax
 
7603
        adc rdi, rdx
 
7604
        adc rsi, 0
 
7605
        mov rax, qword ptr [-320+rbp]
 
7606
        mul qword ptr [-80+rbp]
 
7607
        add rcx, rax
 
7608
        adc rdi, rdx
 
7609
        adc rsi, 0
 
7610
        mov rax, qword ptr [-312+rbp]
 
7611
        mul qword ptr [-88+rbp]
 
7612
        add rcx, rax
 
7613
        adc rdi, rdx
 
7614
        adc rsi, 0
 
7615
        mov rax, qword ptr [-304+rbp]
 
7616
        mul qword ptr [-96+rbp]
 
7617
        add rcx, rax
 
7618
        adc rdi, rdx
 
7619
        adc rsi, 0
 
7620
        mov r10, rdi
 
7621
        mov r11, rsi
 
7622
        mov rax, qword ptr [-296+rbp]
 
7623
        mul qword ptr [-104+rbp]
 
7624
        add rcx, rax
 
7625
        adc r10, rdx
 
7626
        adc r11, 0
 
7627
        mov qword ptr [432+r9], rcx
 
7628
        mov rdi, r11
 
7629
        mov rsi, r10
 
7630
        mov rcx, r8
 
7631
        mov rax, qword ptr [-352+rbp]
 
7632
        mul qword ptr [-40+rbp]
 
7633
        add rsi, rax
 
7634
        adc rdi, rdx
 
7635
        adc rcx, 0
 
7636
        mov rax, qword ptr [-344+rbp]
 
7637
        mul qword ptr [-48+rbp]
 
7638
        add rsi, rax
 
7639
        adc rdi, rdx
 
7640
        adc rcx, 0
 
7641
        mov rax, qword ptr [-336+rbp]
 
7642
        mul qword ptr [-56+rbp]
 
7643
        add rsi, rax
 
7644
        adc rdi, rdx
 
7645
        adc rcx, 0
 
7646
        mov rax, qword ptr [-328+rbp]
 
7647
        mul qword ptr [-64+rbp]
 
7648
        add rsi, rax
 
7649
        adc rdi, rdx
 
7650
        adc rcx, 0
 
7651
        mov rax, qword ptr [-320+rbp]
 
7652
        mul qword ptr [-72+rbp]
 
7653
        add rsi, rax
 
7654
        adc rdi, rdx
 
7655
        adc rcx, 0
 
7656
        mov rax, qword ptr [-312+rbp]
 
7657
        mul qword ptr [-80+rbp]
 
7658
        add rsi, rax
 
7659
        adc rdi, rdx
 
7660
        adc rcx, 0
 
7661
        mov rax, qword ptr [-304+rbp]
 
7662
        mul qword ptr [-88+rbp]
 
7663
        add rsi, rax
 
7664
        adc rdi, rdx
 
7665
        adc rcx, 0
 
7666
        mov r10, rdi
 
7667
        mov r11, rcx
 
7668
        mov rax, qword ptr [-296+rbp]
 
7669
        mul qword ptr [-96+rbp]
 
7670
        add rsi, rax
 
7671
        adc r10, rdx
 
7672
        adc r11, 0
 
7673
        mov qword ptr [440+r9], rsi
 
7674
        mov rdi, r11
 
7675
        mov rcx, r10
 
7676
        mov rsi, r8
 
7677
        mov rax, qword ptr [-344+rbp]
 
7678
        mul qword ptr [-40+rbp]
 
7679
        add rcx, rax
 
7680
        adc rdi, rdx
 
7681
        adc rsi, 0
 
7682
        mov rax, qword ptr [-336+rbp]
 
7683
        mul qword ptr [-48+rbp]
 
7684
        add rcx, rax
 
7685
        adc rdi, rdx
 
7686
        adc rsi, 0
 
7687
        mov rax, qword ptr [-328+rbp]
 
7688
        mul qword ptr [-56+rbp]
 
7689
        add rcx, rax
 
7690
        adc rdi, rdx
 
7691
        adc rsi, 0
 
7692
        mov rax, qword ptr [-320+rbp]
 
7693
        mul qword ptr [-64+rbp]
 
7694
        add rcx, rax
 
7695
        adc rdi, rdx
 
7696
        adc rsi, 0
 
7697
        mov rax, qword ptr [-312+rbp]
 
7698
        mul qword ptr [-72+rbp]
 
7699
        add rcx, rax
 
7700
        adc rdi, rdx
 
7701
        adc rsi, 0
 
7702
        mov rax, qword ptr [-304+rbp]
 
7703
        mul qword ptr [-80+rbp]
 
7704
        add rcx, rax
 
7705
        adc rdi, rdx
 
7706
        adc rsi, 0
 
7707
        mov r10, rdi
 
7708
        mov r11, rsi
 
7709
        mov rax, qword ptr [-296+rbp]
 
7710
        mul qword ptr [-88+rbp]
 
7711
        add rcx, rax
 
7712
        adc r10, rdx
 
7713
        adc r11, 0
 
7714
        mov qword ptr [448+r9], rcx
 
7715
        mov rdi, r11
 
7716
        mov rsi, r10
 
7717
        mov rcx, r8
 
7718
        mov rax, qword ptr [-336+rbp]
 
7719
        mul qword ptr [-40+rbp]
 
7720
        add rsi, rax
 
7721
        adc rdi, rdx
 
7722
        adc rcx, 0
 
7723
        mov rax, qword ptr [-328+rbp]
 
7724
        mul qword ptr [-48+rbp]
 
7725
        add rsi, rax
 
7726
        adc rdi, rdx
 
7727
        adc rcx, 0
 
7728
        mov rax, qword ptr [-320+rbp]
 
7729
        mul qword ptr [-56+rbp]
 
7730
        add rsi, rax
 
7731
        adc rdi, rdx
 
7732
        adc rcx, 0
 
7733
        mov rax, qword ptr [-312+rbp]
 
7734
        mul qword ptr [-64+rbp]
 
7735
        add rsi, rax
 
7736
        adc rdi, rdx
 
7737
        adc rcx, 0
 
7738
        mov rax, qword ptr [-304+rbp]
 
7739
        mul qword ptr [-72+rbp]
 
7740
        add rsi, rax
 
7741
        adc rdi, rdx
 
7742
        adc rcx, 0
 
7743
        mov r10, rdi
 
7744
        mov r11, rcx
 
7745
        mov rax, qword ptr [-296+rbp]
 
7746
        mul qword ptr [-80+rbp]
 
7747
        add rsi, rax
 
7748
        adc r10, rdx
 
7749
        adc r11, 0
 
7750
        mov qword ptr [456+r9], rsi
 
7751
        mov rdi, r11
 
7752
        mov rcx, r10
 
7753
        mov rsi, r8
 
7754
        mov rax, qword ptr [-328+rbp]
 
7755
        mul qword ptr [-40+rbp]
 
7756
        add rcx, rax
 
7757
        adc rdi, rdx
 
7758
        adc rsi, 0
 
7759
        mov rax, qword ptr [-320+rbp]
 
7760
        mul qword ptr [-48+rbp]
 
7761
        add rcx, rax
 
7762
        adc rdi, rdx
 
7763
        adc rsi, 0
 
7764
        mov rax, qword ptr [-312+rbp]
 
7765
        mul qword ptr [-56+rbp]
 
7766
        add rcx, rax
 
7767
        adc rdi, rdx
 
7768
        adc rsi, 0
 
7769
        mov rax, qword ptr [-304+rbp]
 
7770
        mul qword ptr [-64+rbp]
 
7771
        add rcx, rax
 
7772
        adc rdi, rdx
 
7773
        adc rsi, 0
 
7774
        mov r10, rdi
 
7775
        mov r11, rsi
 
7776
        mov rax, qword ptr [-296+rbp]
 
7777
        mul qword ptr [-72+rbp]
 
7778
        add rcx, rax
 
7779
        adc r10, rdx
 
7780
        adc r11, 0
 
7781
        mov qword ptr [464+r9], rcx
 
7782
        mov rdi, r11
 
7783
        mov rsi, r10
 
7784
        mov rcx, r8
 
7785
        mov rax, qword ptr [-320+rbp]
 
7786
        mul qword ptr [-40+rbp]
 
7787
        add rsi, rax
 
7788
        adc rdi, rdx
 
7789
        adc rcx, 0
 
7790
        mov rax, qword ptr [-312+rbp]
 
7791
        mul qword ptr [-48+rbp]
 
7792
        add rsi, rax
 
7793
        adc rdi, rdx
 
7794
        adc rcx, 0
 
7795
        mov rax, qword ptr [-304+rbp]
 
7796
        mul qword ptr [-56+rbp]
 
7797
        add rsi, rax
 
7798
        adc rdi, rdx
 
7799
        adc rcx, 0
 
7800
        mov r10, rdi
 
7801
        mov r11, rcx
 
7802
        mov rax, qword ptr [-296+rbp]
 
7803
        mul qword ptr [-64+rbp]
 
7804
        add rsi, rax
 
7805
        adc r10, rdx
 
7806
        adc r11, 0
 
7807
        mov qword ptr [472+r9], rsi
 
7808
        mov rdi, r11
 
7809
        mov rcx, r10
 
7810
        mov rsi, r8
 
7811
        mov rax, qword ptr [-312+rbp]
 
7812
        mul qword ptr [-40+rbp]
 
7813
        add rcx, rax
 
7814
        adc rdi, rdx
 
7815
        adc rsi, 0
 
7816
        mov rax, qword ptr [-304+rbp]
 
7817
        mul qword ptr [-48+rbp]
 
7818
        add rcx, rax
 
7819
        adc rdi, rdx
 
7820
        adc rsi, 0
 
7821
        mov r10, rdi
 
7822
        mov r11, rsi
 
7823
        mov rax, qword ptr [-296+rbp]
 
7824
        mul qword ptr [-56+rbp]
 
7825
        add rcx, rax
 
7826
        adc r10, rdx
 
7827
        adc r11, 0
 
7828
        mov qword ptr [480+r9], rcx
 
7829
        mov rdi, r11
 
7830
        mov rsi, r10
 
7831
        mov rcx, r8
 
7832
        mov rax, qword ptr [-304+rbp]
 
7833
        mul qword ptr [-40+rbp]
 
7834
        add rsi, rax
 
7835
        adc rdi, rdx
 
7836
        adc rcx, 0
 
7837
        mov r11, rcx
 
7838
        mov r10, rdi
 
7839
        mov rax, qword ptr [-296+rbp]
 
7840
        mul qword ptr [-48+rbp]
 
7841
        add rsi, rax
 
7842
        adc r10, rdx
 
7843
        adc r11, 0
 
7844
        mov qword ptr [488+r9], rsi
 
7845
        mov rcx, r10
 
7846
        mov rsi, r11
 
7847
        mov rax, qword ptr [-296+rbp]
 
7848
        mul qword ptr [-40+rbp]
 
7849
        add rcx, rax
 
7850
        adc rsi, rdx
 
7851
        adc r8, 0
 
7852
        mov qword ptr [496+r9], rcx
 
7853
        mov ecx, dword ptr [r12]
 
7854
        xor ecx, dword ptr [rbx]
 
7855
        test rsi, rsi
 
7856
        mov qword ptr [504+r9], rsi
 
7857
        mov dword ptr [8+r13], 64
 
7858
        jne L149
 
7859
        ALIGN 16
 
7860
L157:
 
7861
        mov edx, dword ptr [8+r13]
 
7862
        lea ebx, dword ptr [-1+rdx]
 
7863
        test ebx, ebx
 
7864
        mov dword ptr [8+r13], ebx
 
7865
        je L149
 
7866
        lea r12d, dword ptr [-2+rdx]
 
7867
        cmp dword ptr [r9+r12*8], 0
 
7868
        je L157
 
7869
L149:
 
7870
        mov r9d, dword ptr [8+r13]
 
7871
        xor edx, edx
 
7872
        test r9d, r9d
 
7873
        cmovne edx, ecx
 
7874
        mov dword ptr [r13], edx
 
7875
        add rsp, 520+32                 ; +32 for "home" storage
 
7876
        pop rbx
 
7877
        pop r12
 
7878
        pop r13
 
7879
        pop rbp
 
7880
        pop rsi
 
7881
        pop rdi
 
7882
 
 
7883
        ret
 
7884
 
 
7885
s_mp_mul_comba_32 ENDP
 
7886
 
 
7887
 
 
7888
; void s_mp_sqr_comba_4(const mp_int *A, mp_int *B);
 
7889
 
 
7890
        ALIGN 16
 
7891
s_mp_sqr_comba_4 PROC
 
7892
 
 
7893
        push rdi
 
7894
        push rsi
 
7895
 
 
7896
        mov rdi, rcx
 
7897
        mov rsi, rdx
 
7898
 
 
7899
        push rbp
 
7900
        sub rsp, 80
 
7901
        mov r11, rsi
 
7902
        xor esi, esi
 
7903
        mov r10, rsi
 
7904
        mov rbp, rsi
 
7905
        mov r8, rsi
 
7906
        push rbx
 
7907
        mov rbx, rsi
 
7908
        mov rcx, qword ptr [16+rdi]
 
7909
        mov rdi, rsi
 
7910
        mov rax, qword ptr [rcx]
 
7911
        mul rax
 
7912
        add r10, rax
 
7913
        adc rbx, rdx
 
7914
        adc rdi, 0
 
7915
        mov qword ptr [-72+80+rsp], r10
 
7916
        mov rax, qword ptr [rcx]
 
7917
        mul qword ptr [8+rcx]
 
7918
        add rbx, rax
 
7919
        adc rdi, rdx
 
7920
        adc rbp, 0
 
7921
        add rbx, rax
 
7922
        adc rdi, rdx
 
7923
        adc rbp, 0
 
7924
        mov qword ptr [-64+80+rsp], rbx
 
7925
        mov rax, qword ptr [rcx]
 
7926
        mul qword ptr [16+rcx]
 
7927
        add rdi, rax
 
7928
        adc rbp, rdx
 
7929
        adc r8, 0
 
7930
        add rdi, rax
 
7931
        adc rbp, rdx
 
7932
        adc r8, 0
 
7933
        mov rbx, rbp
 
7934
        mov rbp, r8
 
7935
        mov rax, qword ptr [8+rcx]
 
7936
        mul rax
 
7937
        add rdi, rax
 
7938
        adc rbx, rdx
 
7939
        adc rbp, 0
 
7940
        mov qword ptr [-56+80+rsp], rdi
 
7941
        mov r9, rbp
 
7942
        mov r8, rbx
 
7943
        mov rdi, rsi
 
7944
        mov rax, qword ptr [rcx]
 
7945
        mul qword ptr [24+rcx]
 
7946
        add r8, rax
 
7947
        adc r9, rdx
 
7948
        adc rdi, 0
 
7949
        add r8, rax
 
7950
        adc r9, rdx
 
7951
        adc rdi, 0
 
7952
        mov rbx, r9
 
7953
        mov rbp, rdi
 
7954
        mov rax, qword ptr [8+rcx]
 
7955
        mul qword ptr [16+rcx]
 
7956
        add r8, rax
 
7957
        adc rbx, rdx
 
7958
        adc rbp, 0
 
7959
        add r8, rax
 
7960
        adc rbx, rdx
 
7961
        adc rbp, 0
 
7962
        mov qword ptr [-48+80+rsp], r8
 
7963
        mov r9, rbp
 
7964
        mov rdi, rbx
 
7965
        mov r8, rsi
 
7966
        mov dword ptr [8+r11], 8
 
7967
        mov dword ptr [r11], 0
 
7968
        mov rax, qword ptr [8+rcx]
 
7969
        mul qword ptr [24+rcx]
 
7970
        add rdi, rax
 
7971
        adc r9, rdx
 
7972
        adc r8, 0
 
7973
        add rdi, rax
 
7974
        adc r9, rdx
 
7975
        adc r8, 0
 
7976
        mov rbx, r9
 
7977
        mov rbp, r8
 
7978
        mov rax, qword ptr [16+rcx]
 
7979
        mul rax
 
7980
        add rdi, rax
 
7981
        adc rbx, rdx
 
7982
        adc rbp, 0
 
7983
        mov rax, rbp
 
7984
        mov qword ptr [-40+80+rsp], rdi
 
7985
        mov rbp, rbx
 
7986
        mov rdi, rax
 
7987
        mov rbx, rsi
 
7988
        mov rax, qword ptr [16+rcx]
 
7989
        mul qword ptr [24+rcx]
 
7990
        add rbp, rax
 
7991
        adc rdi, rdx
 
7992
        adc rbx, 0
 
7993
        add rbp, rax
 
7994
        adc rdi, rdx
 
7995
        adc rbx, 0
 
7996
        mov qword ptr [-32+80+rsp], rbp
 
7997
        mov r9, rbx
 
7998
        mov rax, qword ptr [24+rcx]
 
7999
        mul rax
 
8000
        add rdi, rax
 
8001
        adc r9, rdx
 
8002
        adc rsi, 0
 
8003
        mov rdx, qword ptr [16+r11]
 
8004
        mov qword ptr [-24+80+rsp], rdi
 
8005
        mov qword ptr [-16+80+rsp], r9
 
8006
        mov qword ptr [rdx], r10
 
8007
        mov r8, qword ptr [-64+80+rsp]
 
8008
        mov qword ptr [8+rdx], r8
 
8009
        mov rbp, qword ptr [-56+80+rsp]
 
8010
        mov qword ptr [16+rdx], rbp
 
8011
        mov rdi, qword ptr [-48+80+rsp]
 
8012
        mov qword ptr [24+rdx], rdi
 
8013
        mov rsi, qword ptr [-40+80+rsp]
 
8014
        mov qword ptr [32+rdx], rsi
 
8015
        mov rbx, qword ptr [-32+80+rsp]
 
8016
        mov qword ptr [40+rdx], rbx
 
8017
        mov rcx, qword ptr [-24+80+rsp]
 
8018
        mov qword ptr [48+rdx], rcx
 
8019
        mov rax, qword ptr [-16+80+rsp]
 
8020
        mov qword ptr [56+rdx], rax
 
8021
        mov edx, dword ptr [8+r11]
 
8022
        test edx, edx
 
8023
        je L168
 
8024
        lea ecx, dword ptr [-1+rdx]
 
8025
        mov rsi, qword ptr [16+r11]
 
8026
        mov r10d, ecx
 
8027
        cmp dword ptr [rsi+r10*8], 0
 
8028
        jne L166
 
8029
        mov edx, ecx
 
8030
        ALIGN 16
 
8031
L167:
 
8032
        test edx, edx
 
8033
        mov ecx, edx
 
8034
        je L171
 
8035
        dec edx
 
8036
        mov eax, edx
 
8037
        cmp dword ptr [rsi+rax*8], 0
 
8038
        je L167
 
8039
        mov dword ptr [8+r11], ecx
 
8040
        mov edx, ecx
 
8041
L166:
 
8042
        test edx, edx
 
8043
        je L168
 
8044
        mov eax, dword ptr [r11]
 
8045
        jmp L169
 
8046
 
 
8047
L171:
 
8048
        mov dword ptr [8+r11], edx
 
8049
L168:
 
8050
        xor eax, eax
 
8051
L169:
 
8052
        add rsp, 80
 
8053
        pop rbx
 
8054
        pop rbp
 
8055
        mov dword ptr [r11], eax
 
8056
 
 
8057
        pop rsi
 
8058
        pop rdi
 
8059
 
 
8060
        ret
 
8061
 
 
8062
s_mp_sqr_comba_4 ENDP
 
8063
 
 
8064
 
 
8065
; void s_mp_sqr_comba_8(const mp_int *A, mp_int *B);
 
8066
 
 
8067
        ALIGN 16
 
8068
s_mp_sqr_comba_8 PROC
 
8069
 
 
8070
        push rdi
 
8071
        push rsi
 
8072
 
 
8073
        mov rdi, rcx
 
8074
        mov rsi, rdx
 
8075
        mov rdx, r8
 
8076
        mov rcx, r9
 
8077
 
 
8078
        push r14
 
8079
        xor r9d, r9d
 
8080
        mov r14, r9
 
8081
        mov r10, r9
 
8082
        push r13
 
8083
        mov r13, r9
 
8084
        push r12
 
8085
        mov r12, r9
 
8086
        push rbp
 
8087
        mov rbp, rsi
 
8088
        mov rsi, r9
 
8089
        push rbx
 
8090
        mov rbx, r9
 
8091
        sub rsp, 8+128
 
8092
        mov rcx, qword ptr [16+rdi]
 
8093
        mov rax, qword ptr [rcx]
 
8094
        mul rax
 
8095
        add r14, rax
 
8096
        adc rbx, rdx
 
8097
        adc r12, 0
 
8098
        mov qword ptr [-120+128+rsp], r14
 
8099
        mov rax, qword ptr [rcx]
 
8100
        mul qword ptr [8+rcx]
 
8101
        add rbx, rax
 
8102
        adc r12, rdx
 
8103
        adc r10, 0
 
8104
        add rbx, rax
 
8105
        adc r12, rdx
 
8106
        adc r10, 0
 
8107
        mov qword ptr [-112+128+rsp], rbx
 
8108
        mov rax, qword ptr [rcx]
 
8109
        mul qword ptr [16+rcx]
 
8110
        add r12, rax
 
8111
        adc r10, rdx
 
8112
        adc r13, 0
 
8113
        add r12, rax
 
8114
        adc r10, rdx
 
8115
        adc r13, 0
 
8116
        mov rbx, r10
 
8117
        mov r10, r13
 
8118
        mov r13, r9
 
8119
        mov rax, qword ptr [8+rcx]
 
8120
        mul rax
 
8121
        add r12, rax
 
8122
        adc rbx, rdx
 
8123
        adc r10, 0
 
8124
        mov qword ptr [-104+128+rsp], r12
 
8125
        mov rdi, r10
 
8126
        mov r11, rbx
 
8127
        mov rax, qword ptr [rcx]
 
8128
        mul qword ptr [24+rcx]
 
8129
        add r11, rax
 
8130
        adc rdi, rdx
 
8131
        adc rsi, 0
 
8132
        add r11, rax
 
8133
        adc rdi, rdx
 
8134
        adc rsi, 0
 
8135
        mov rbx, rdi
 
8136
        mov r10, rsi
 
8137
        mov rdi, r9
 
8138
        mov rax, qword ptr [8+rcx]
 
8139
        mul qword ptr [16+rcx]
 
8140
        add r11, rax
 
8141
        adc rbx, rdx
 
8142
        adc r10, 0
 
8143
        add r11, rax
 
8144
        adc rbx, rdx
 
8145
        adc r10, 0
 
8146
        mov rsi, r9
 
8147
        mov qword ptr [-96+128+rsp], r11
 
8148
        mov r8, r10
 
8149
        mov r12, rbx
 
8150
        mov r11, r9
 
8151
        mov rax, qword ptr [rcx]
 
8152
        mul qword ptr [32+rcx]
 
8153
        add r12, rax
 
8154
        adc r8, rdx
 
8155
        adc r13, 0
 
8156
        add r12, rax
 
8157
        adc r8, rdx
 
8158
        adc r13, 0
 
8159
        mov rax, qword ptr [8+rcx]
 
8160
        mul qword ptr [24+rcx]
 
8161
        add r12, rax
 
8162
        adc r8, rdx
 
8163
        adc r13, 0
 
8164
        add r12, rax
 
8165
        adc r8, rdx
 
8166
        adc r13, 0
 
8167
        mov rbx, r8
 
8168
        mov r10, r13
 
8169
        mov r8, r9
 
8170
        mov rax, qword ptr [16+rcx]
 
8171
        mul rax
 
8172
        add r12, rax
 
8173
        adc rbx, rdx
 
8174
        adc r10, 0
 
8175
        mov qword ptr [-88+128+rsp], r12
 
8176
        mov rax, qword ptr [rcx]
 
8177
        mul qword ptr [40+rcx]
 
8178
        mov r8, rax
 
8179
        mov rdi, rdx
 
8180
        xor rsi, rsi
 
8181
        mov rax, qword ptr [8+rcx]
 
8182
        mul qword ptr [32+rcx]
 
8183
        add r8, rax
 
8184
        adc rdi, rdx
 
8185
        adc rsi, 0
 
8186
        mov rax, qword ptr [16+rcx]
 
8187
        mul qword ptr [24+rcx]
 
8188
        add r8, rax
 
8189
        adc rdi, rdx
 
8190
        adc rsi, 0
 
8191
        add rbx, r8
 
8192
        adc r10, rdi
 
8193
        adc r11, rsi
 
8194
        add rbx, r8
 
8195
        adc r10, rdi
 
8196
        adc r11, rsi
 
8197
        mov qword ptr [-80+128+rsp], rbx
 
8198
        mov rax, qword ptr [rcx]
 
8199
        mul qword ptr [48+rcx]
 
8200
        mov r8, rax
 
8201
        mov rdi, rdx
 
8202
        xor rsi, rsi
 
8203
        mov rax, qword ptr [8+rcx]
 
8204
        mul qword ptr [40+rcx]
 
8205
        add r8, rax
 
8206
        adc rdi, rdx
 
8207
        adc rsi, 0
 
8208
        mov rax, qword ptr [16+rcx]
 
8209
        mul qword ptr [32+rcx]
 
8210
        add r8, rax
 
8211
        adc rdi, rdx
 
8212
        adc rsi, 0
 
8213
        mov rax, r9
 
8214
        mov r13, rdi
 
8215
        mov r12, rsi
 
8216
        add r10, r8
 
8217
        adc r11, r13
 
8218
        adc rax, r12
 
8219
        add r10, r8
 
8220
        adc r11, r13
 
8221
        adc rax, r12
 
8222
        mov rdx, rax
 
8223
        mov rbx, r11
 
8224
        mov rdi, r13
 
8225
        mov r11, rdx
 
8226
        mov rsi, r12
 
8227
        mov rax, qword ptr [24+rcx]
 
8228
        mul rax
 
8229
        add r10, rax
 
8230
        adc rbx, rdx
 
8231
        adc r11, 0
 
8232
        mov qword ptr [-72+128+rsp], r10
 
8233
        mov r10, r11
 
8234
        mov rax, qword ptr [rcx]
 
8235
        mul qword ptr [56+rcx]
 
8236
        mov r8, rax
 
8237
        mov rdi, rdx
 
8238
        xor rsi, rsi
 
8239
        mov rax, qword ptr [8+rcx]
 
8240
        mul qword ptr [48+rcx]
 
8241
        add r8, rax
 
8242
        adc rdi, rdx
 
8243
        adc rsi, 0
 
8244
        mov rax, qword ptr [16+rcx]
 
8245
        mul qword ptr [40+rcx]
 
8246
        add r8, rax
 
8247
        adc rdi, rdx
 
8248
        adc rsi, 0
 
8249
        mov rax, qword ptr [24+rcx]
 
8250
        mul qword ptr [32+rcx]
 
8251
        add r8, rax
 
8252
        adc rdi, rdx
 
8253
        adc rsi, 0
 
8254
        mov rax, r9
 
8255
        add rbx, r8
 
8256
        adc r10, rdi
 
8257
        adc rax, rsi
 
8258
        add rbx, r8
 
8259
        adc r10, rdi
 
8260
        adc rax, rsi
 
8261
        mov qword ptr [-64+128+rsp], rbx
 
8262
        mov r11, rax
 
8263
        mov rbx, r9
 
8264
        mov rax, qword ptr [8+rcx]
 
8265
        mul qword ptr [56+rcx]
 
8266
        mov r8, rax
 
8267
        mov rdi, rdx
 
8268
        xor rsi, rsi
 
8269
        mov rax, qword ptr [16+rcx]
 
8270
        mul qword ptr [48+rcx]
 
8271
        add r8, rax
 
8272
        adc rdi, rdx
 
8273
        adc rsi, 0
 
8274
        mov rax, qword ptr [24+rcx]
 
8275
        mul qword ptr [40+rcx]
 
8276
        add r8, rax
 
8277
        adc rdi, rdx
 
8278
        adc rsi, 0
 
8279
        mov r13, rdi
 
8280
        mov r12, rsi
 
8281
        add r10, r8
 
8282
        adc r11, r13
 
8283
        adc rbx, r12
 
8284
        add r10, r8
 
8285
        adc r11, r13
 
8286
        adc rbx, r12
 
8287
        mov rsi, rbx
 
8288
        mov rdi, r13
 
8289
        mov rbx, r11
 
8290
        mov r13, r12
 
8291
        mov r11, rsi
 
8292
        mov rax, qword ptr [32+rcx]
 
8293
        mul rax
 
8294
        add r10, rax
 
8295
        adc rbx, rdx
 
8296
        adc r11, 0
 
8297
        mov qword ptr [-56+128+rsp], r10
 
8298
        mov r10, r9
 
8299
        mov rax, qword ptr [16+rcx]
 
8300
        mul qword ptr [56+rcx]
 
8301
        mov r8, rax
 
8302
        mov rdi, rdx
 
8303
        xor r13, r13
 
8304
        mov rax, qword ptr [24+rcx]
 
8305
        mul qword ptr [48+rcx]
 
8306
        add r8, rax
 
8307
        adc rdi, rdx
 
8308
        adc r13, 0
 
8309
        mov rax, qword ptr [32+rcx]
 
8310
        mul qword ptr [40+rcx]
 
8311
        add r8, rax
 
8312
        adc rdi, rdx
 
8313
        adc r13, 0
 
8314
        mov r12, rdi
 
8315
        mov rax, r13
 
8316
        add rbx, r8
 
8317
        adc r11, r12
 
8318
        adc r10, rax
 
8319
        add rbx, r8
 
8320
        adc r11, r12
 
8321
        adc r10, rax
 
8322
        mov qword ptr [-48+128+rsp], rbx
 
8323
        mov r12, r11
 
8324
        mov rsi, r10
 
8325
        mov rbx, r9
 
8326
        mov r11, r9
 
8327
        mov rax, qword ptr [24+rcx]
 
8328
        mul qword ptr [56+rcx]
 
8329
        add r12, rax
 
8330
        adc rsi, rdx
 
8331
        adc rbx, 0
 
8332
        add r12, rax
 
8333
        adc rsi, rdx
 
8334
        adc rbx, 0
 
8335
        mov r13, rbx
 
8336
        mov rax, qword ptr [32+rcx]
 
8337
        mul qword ptr [48+rcx]
 
8338
        add r12, rax
 
8339
        adc rsi, rdx
 
8340
        adc r13, 0
 
8341
        add r12, rax
 
8342
        adc rsi, rdx
 
8343
        adc r13, 0
 
8344
        mov r10, rsi
 
8345
        mov rbx, r13
 
8346
        mov r13, r9
 
8347
        mov rax, qword ptr [40+rcx]
 
8348
        mul rax
 
8349
        add r12, rax
 
8350
        adc r10, rdx
 
8351
        adc rbx, 0
 
8352
        mov qword ptr [-40+128+rsp], r12
 
8353
        mov r8, rbx
 
8354
        mov rdi, r10
 
8355
        mov rax, qword ptr [32+rcx]
 
8356
        mul qword ptr [56+rcx]
 
8357
        add rdi, rax
 
8358
        adc r8, rdx
 
8359
        adc r11, 0
 
8360
        add rdi, rax
 
8361
        adc r8, rdx
 
8362
        adc r11, 0
 
8363
        mov r10, r8
 
8364
        mov rbx, r11
 
8365
        mov rax, qword ptr [40+rcx]
 
8366
        mul qword ptr [48+rcx]
 
8367
        add rdi, rax
 
8368
        adc r10, rdx
 
8369
        adc rbx, 0
 
8370
        add rdi, rax
 
8371
        adc r10, rdx
 
8372
        adc rbx, 0
 
8373
        mov qword ptr [-32+128+rsp], rdi
 
8374
        mov rsi, rbx
 
8375
        mov r12, r10
 
8376
        mov rax, qword ptr [40+rcx]
 
8377
        mul qword ptr [56+rcx]
 
8378
        add r12, rax
 
8379
        adc rsi, rdx
 
8380
        adc r13, 0
 
8381
        add r12, rax
 
8382
        adc rsi, rdx
 
8383
        adc r13, 0
 
8384
        mov r10, rsi
 
8385
        mov rbx, r13
 
8386
        mov rax, qword ptr [48+rcx]
 
8387
        mul rax
 
8388
        add r12, rax
 
8389
        adc r10, rdx
 
8390
        adc rbx, 0
 
8391
        mov qword ptr [-24+128+rsp], r12
 
8392
        mov rdi, r10
 
8393
        mov rsi, rbx
 
8394
        mov r10, r9
 
8395
        mov dword ptr [8+rbp], 16
 
8396
        mov dword ptr [rbp], 0
 
8397
        mov rax, qword ptr [48+rcx]
 
8398
        mul qword ptr [56+rcx]
 
8399
        add rdi, rax
 
8400
        adc rsi, rdx
 
8401
        adc r10, 0
 
8402
        add rdi, rax
 
8403
        adc rsi, rdx
 
8404
        adc r10, 0
 
8405
        mov qword ptr [-16+128+rsp], rdi
 
8406
        mov r8, r10
 
8407
        mov rax, qword ptr [56+rcx]
 
8408
        mul rax
 
8409
        add rsi, rax
 
8410
        adc r8, rdx
 
8411
        adc r9, 0
 
8412
        mov rax, qword ptr [16+rbp]
 
8413
        mov qword ptr [-8+128+rsp], rsi
 
8414
        mov qword ptr [128+rsp], r8
 
8415
        mov qword ptr [rax], r14
 
8416
        mov rbx, qword ptr [-112+128+rsp]
 
8417
        mov qword ptr [8+rax], rbx
 
8418
        mov rcx, qword ptr [-104+128+rsp]
 
8419
        mov qword ptr [16+rax], rcx
 
8420
        mov rdx, qword ptr [-96+128+rsp]
 
8421
        mov qword ptr [24+rax], rdx
 
8422
        mov r14, qword ptr [-88+128+rsp]
 
8423
        mov qword ptr [32+rax], r14
 
8424
        mov r13, qword ptr [-80+128+rsp]
 
8425
        mov qword ptr [40+rax], r13
 
8426
        mov r12, qword ptr [-72+128+rsp]
 
8427
        mov qword ptr [48+rax], r12
 
8428
        mov r11, qword ptr [-64+128+rsp]
 
8429
        mov qword ptr [56+rax], r11
 
8430
        mov r10, qword ptr [-56+128+rsp]
 
8431
        mov qword ptr [64+rax], r10
 
8432
        mov r9, qword ptr [-48+128+rsp]
 
8433
        mov qword ptr [72+rax], r9
 
8434
        mov r8, qword ptr [-40+128+rsp]
 
8435
        mov qword ptr [80+rax], r8
 
8436
        mov rdi, qword ptr [-32+128+rsp]
 
8437
        mov qword ptr [88+rax], rdi
 
8438
        mov rsi, qword ptr [-24+128+rsp]
 
8439
        mov qword ptr [96+rax], rsi
 
8440
        mov rbx, qword ptr [-16+128+rsp]
 
8441
        mov qword ptr [104+rax], rbx
 
8442
        mov rcx, qword ptr [-8+128+rsp]
 
8443
        mov qword ptr [112+rax], rcx
 
8444
        mov rdx, qword ptr [128+rsp]
 
8445
        mov qword ptr [120+rax], rdx
 
8446
        mov edx, dword ptr [8+rbp]
 
8447
        test edx, edx
 
8448
        je L192
 
8449
        lea ecx, dword ptr [-1+rdx]
 
8450
        mov rsi, qword ptr [16+rbp]
 
8451
        mov r14d, ecx
 
8452
        cmp dword ptr [rsi+r14*8], 0
 
8453
        jne L190
 
8454
        mov edx, ecx
 
8455
        ALIGN 16
 
8456
L191:
 
8457
        test edx, edx
 
8458
        mov ecx, edx
 
8459
        je L195
 
8460
        dec edx
 
8461
        mov r9d, edx
 
8462
        cmp dword ptr [rsi+r9*8], 0
 
8463
        je L191
 
8464
        mov dword ptr [8+rbp], ecx
 
8465
        mov edx, ecx
 
8466
L190:
 
8467
        test edx, edx
 
8468
        je L192
 
8469
        mov eax, dword ptr [rbp]
 
8470
        jmp L193
 
8471
 
 
8472
L195:
 
8473
        mov dword ptr [8+rbp], edx
 
8474
L192:
 
8475
        xor eax, eax
 
8476
L193:
 
8477
        mov dword ptr [rbp], eax
 
8478
        add rsp, 8+128
 
8479
        pop rbx
 
8480
        pop rbp
 
8481
        pop r12
 
8482
        pop r13
 
8483
        pop r14
 
8484
 
 
8485
        pop rsi
 
8486
        pop rdi
 
8487
 
 
8488
        ret
 
8489
 
 
8490
s_mp_sqr_comba_8 ENDP
 
8491
 
 
8492
 
 
8493
; void s_mp_sqr_comba_16(const mp_int *A, mp_int *B)
 
8494
 
 
8495
        ALIGN 16
 
8496
s_mp_sqr_comba_16 PROC ; A "FRAME" function
 
8497
 
 
8498
        push rdi
 
8499
        push rsi
 
8500
 
 
8501
        mov rdi, rcx
 
8502
        mov rsi, rdx
 
8503
 
 
8504
        push rbp
 
8505
        xor r9d, r9d
 
8506
        mov r8, r9
 
8507
        mov r11, r9
 
8508
        mov rbp, rsp
 
8509
        push r14
 
8510
        mov r14, rsi
 
8511
        mov rsi, r9
 
8512
        push r13
 
8513
        mov r13, r9
 
8514
        push r12
 
8515
        mov r12, r9
 
8516
        push rbx
 
8517
        mov rbx, r9
 
8518
        sub rsp, 256+32                 ; +32 for "home" storage
 
8519
        mov rcx, qword ptr [16+rdi]
 
8520
        mov rax, qword ptr [rcx]
 
8521
        mul rax
 
8522
        add r8, rax
 
8523
        adc rbx, rdx
 
8524
        adc rsi, 0
 
8525
        mov qword ptr [-288+rbp], r8
 
8526
        mov rax, qword ptr [rcx]
 
8527
        mul qword ptr [8+rcx]
 
8528
        add rbx, rax
 
8529
        adc rsi, rdx
 
8530
        adc r12, 0
 
8531
        add rbx, rax
 
8532
        adc rsi, rdx
 
8533
        adc r12, 0
 
8534
        mov qword ptr [-280+rbp], rbx
 
8535
        mov rax, qword ptr [rcx]
 
8536
        mul qword ptr [16+rcx]
 
8537
        add rsi, rax
 
8538
        adc r12, rdx
 
8539
        adc r13, 0
 
8540
        add rsi, rax
 
8541
        adc r12, rdx
 
8542
        adc r13, 0
 
8543
        mov rbx, r12
 
8544
        mov r10, r13
 
8545
        mov rax, qword ptr [8+rcx]
 
8546
        mul rax
 
8547
        add rsi, rax
 
8548
        adc rbx, rdx
 
8549
        adc r10, 0
 
8550
        mov qword ptr [-272+rbp], rsi
 
8551
        mov rdi, r10
 
8552
        mov rsi, r9
 
8553
        mov r10, rbx
 
8554
        mov rax, qword ptr [rcx]
 
8555
        mul qword ptr [24+rcx]
 
8556
        add r10, rax
 
8557
        adc rdi, rdx
 
8558
        adc r11, 0
 
8559
        add r10, rax
 
8560
        adc rdi, rdx
 
8561
        adc r11, 0
 
8562
        mov r12, rdi
 
8563
        mov rbx, r11
 
8564
        mov rdi, r9
 
8565
        mov rax, qword ptr [8+rcx]
 
8566
        mul qword ptr [16+rcx]
 
8567
        add r10, rax
 
8568
        adc r12, rdx
 
8569
        adc rbx, 0
 
8570
        add r10, rax
 
8571
        adc r12, rdx
 
8572
        adc rbx, 0
 
8573
        mov r11, r9
 
8574
        mov qword ptr [-264+rbp], r10
 
8575
        mov r8, rbx
 
8576
        mov r13, r12
 
8577
        mov r12, r9
 
8578
        mov rax, qword ptr [rcx]
 
8579
        mul qword ptr [32+rcx]
 
8580
        add r13, rax
 
8581
        adc r8, rdx
 
8582
        adc r12, 0
 
8583
        add r13, rax
 
8584
        adc r8, rdx
 
8585
        adc r12, 0
 
8586
        mov rax, qword ptr [8+rcx]
 
8587
        mul qword ptr [24+rcx]
 
8588
        add r13, rax
 
8589
        adc r8, rdx
 
8590
        adc r12, 0
 
8591
        add r13, rax
 
8592
        adc r8, rdx
 
8593
        adc r12, 0
 
8594
        mov rbx, r8
 
8595
        mov r10, r12
 
8596
        mov r8, r9
 
8597
        mov rax, qword ptr [16+rcx]
 
8598
        mul rax
 
8599
        add r13, rax
 
8600
        adc rbx, rdx
 
8601
        adc r10, 0
 
8602
        mov qword ptr [-256+rbp], r13
 
8603
        mov rax, qword ptr [rcx]
 
8604
        mul qword ptr [40+rcx]
 
8605
        mov r8, rax
 
8606
        mov rdi, rdx
 
8607
        xor rsi, rsi
 
8608
        mov rax, qword ptr [8+rcx]
 
8609
        mul qword ptr [32+rcx]
 
8610
        add r8, rax
 
8611
        adc rdi, rdx
 
8612
        adc rsi, 0
 
8613
        mov rax, qword ptr [16+rcx]
 
8614
        mul qword ptr [24+rcx]
 
8615
        add r8, rax
 
8616
        adc rdi, rdx
 
8617
        adc rsi, 0
 
8618
        add rbx, r8
 
8619
        adc r10, rdi
 
8620
        adc r11, rsi
 
8621
        add rbx, r8
 
8622
        adc r10, rdi
 
8623
        adc r11, rsi
 
8624
        mov qword ptr [-248+rbp], rbx
 
8625
        mov rax, qword ptr [rcx]
 
8626
        mul qword ptr [48+rcx]
 
8627
        mov r8, rax
 
8628
        mov rdi, rdx
 
8629
        xor rsi, rsi
 
8630
        mov rax, qword ptr [8+rcx]
 
8631
        mul qword ptr [40+rcx]
 
8632
        add r8, rax
 
8633
        adc rdi, rdx
 
8634
        adc rsi, 0
 
8635
        mov rax, qword ptr [16+rcx]
 
8636
        mul qword ptr [32+rcx]
 
8637
        add r8, rax
 
8638
        adc rdi, rdx
 
8639
        adc rsi, 0
 
8640
        mov rax, r9
 
8641
        mov r13, rdi
 
8642
        mov r12, rsi
 
8643
        add r10, r8
 
8644
        adc r11, r13
 
8645
        adc rax, r12
 
8646
        add r10, r8
 
8647
        adc r11, r13
 
8648
        adc rax, r12
 
8649
        mov rdx, rax
 
8650
        mov rbx, r11
 
8651
        mov rdi, r13
 
8652
        mov r11, rdx
 
8653
        mov rsi, r12
 
8654
        mov rax, qword ptr [24+rcx]
 
8655
        mul rax
 
8656
        add r10, rax
 
8657
        adc rbx, rdx
 
8658
        adc r11, 0
 
8659
        mov qword ptr [-240+rbp], r10
 
8660
        mov r10, r11
 
8661
        mov rax, qword ptr [rcx]
 
8662
        mul qword ptr [56+rcx]
 
8663
        mov r8, rax
 
8664
        mov rdi, rdx
 
8665
        xor rsi, rsi
 
8666
        mov rax, qword ptr [8+rcx]
 
8667
        mul qword ptr [48+rcx]
 
8668
        add r8, rax
 
8669
        adc rdi, rdx
 
8670
        adc rsi, 0
 
8671
        mov rax, qword ptr [16+rcx]
 
8672
        mul qword ptr [40+rcx]
 
8673
        add r8, rax
 
8674
        adc rdi, rdx
 
8675
        adc rsi, 0
 
8676
        mov rax, qword ptr [24+rcx]
 
8677
        mul qword ptr [32+rcx]
 
8678
        add r8, rax
 
8679
        adc rdi, rdx
 
8680
        adc rsi, 0
 
8681
        mov rdx, r9
 
8682
        add rbx, r8
 
8683
        adc r10, rdi
 
8684
        adc rdx, rsi
 
8685
        add rbx, r8
 
8686
        adc r10, rdi
 
8687
        adc rdx, rsi
 
8688
        mov r11, rdx
 
8689
        mov qword ptr [-232+rbp], rbx
 
8690
        mov rbx, r9
 
8691
        mov rax, qword ptr [rcx]
 
8692
        mul qword ptr [64+rcx]
 
8693
        mov r8, rax
 
8694
        mov rdi, rdx
 
8695
        xor rsi, rsi
 
8696
        mov rax, qword ptr [8+rcx]
 
8697
        mul qword ptr [56+rcx]
 
8698
        add r8, rax
 
8699
        adc rdi, rdx
 
8700
        adc rsi, 0
 
8701
        mov rax, qword ptr [16+rcx]
 
8702
        mul qword ptr [48+rcx]
 
8703
        add r8, rax
 
8704
        adc rdi, rdx
 
8705
        adc rsi, 0
 
8706
        mov rax, qword ptr [24+rcx]
 
8707
        mul qword ptr [40+rcx]
 
8708
        add r8, rax
 
8709
        adc rdi, rdx
 
8710
        adc rsi, 0
 
8711
        mov r13, rdi
 
8712
        mov r12, rsi
 
8713
        add r10, r8
 
8714
        adc r11, r13
 
8715
        adc rbx, r12
 
8716
        add r10, r8
 
8717
        adc r11, r13
 
8718
        adc rbx, r12
 
8719
        mov rax, qword ptr [32+rcx]
 
8720
        mul rax
 
8721
        add r10, rax
 
8722
        adc r11, rdx
 
8723
        adc rbx, 0
 
8724
        mov rdi, r13
 
8725
        mov qword ptr [-224+rbp], r10
 
8726
        mov rsi, r12
 
8727
        mov r10, rbx
 
8728
        mov r12, r9
 
8729
        mov rax, qword ptr [rcx]
 
8730
        mul qword ptr [72+rcx]
 
8731
        mov r8, rax
 
8732
        mov rdi, rdx
 
8733
        xor rsi, rsi
 
8734
        mov rax, qword ptr [8+rcx]
 
8735
        mul qword ptr [64+rcx]
 
8736
        add r8, rax
 
8737
        adc rdi, rdx
 
8738
        adc rsi, 0
 
8739
        mov rax, qword ptr [16+rcx]
 
8740
        mul qword ptr [56+rcx]
 
8741
        add r8, rax
 
8742
        adc rdi, rdx
 
8743
        adc rsi, 0
 
8744
        mov rax, qword ptr [24+rcx]
 
8745
        mul qword ptr [48+rcx]
 
8746
        add r8, rax
 
8747
        adc rdi, rdx
 
8748
        adc rsi, 0
 
8749
        mov rax, qword ptr [32+rcx]
 
8750
        mul qword ptr [40+rcx]
 
8751
        add r8, rax
 
8752
        adc rdi, rdx
 
8753
        adc rsi, 0
 
8754
        add r11, r8
 
8755
        adc r10, rdi
 
8756
        adc r12, rsi
 
8757
        add r11, r8
 
8758
        adc r10, rdi
 
8759
        adc r12, rsi
 
8760
        mov qword ptr [-216+rbp], r11
 
8761
        mov rbx, r12
 
8762
        mov rax, qword ptr [rcx]
 
8763
        mul qword ptr [80+rcx]
 
8764
        mov r8, rax
 
8765
        mov rdi, rdx
 
8766
        xor rsi, rsi
 
8767
        mov rax, qword ptr [8+rcx]
 
8768
        mul qword ptr [72+rcx]
 
8769
        add r8, rax
 
8770
        adc rdi, rdx
 
8771
        adc rsi, 0
 
8772
        mov rax, qword ptr [16+rcx]
 
8773
        mul qword ptr [64+rcx]
 
8774
        add r8, rax
 
8775
        adc rdi, rdx
 
8776
        adc rsi, 0
 
8777
        mov rax, qword ptr [24+rcx]
 
8778
        mul qword ptr [56+rcx]
 
8779
        add r8, rax
 
8780
        adc rdi, rdx
 
8781
        adc rsi, 0
 
8782
        mov rax, qword ptr [32+rcx]
 
8783
        mul qword ptr [48+rcx]
 
8784
        add r8, rax
 
8785
        adc rdi, rdx
 
8786
        adc rsi, 0
 
8787
        mov rax, r9
 
8788
        mov r13, rdi
 
8789
        mov r12, rsi
 
8790
        add r10, r8
 
8791
        adc rbx, r13
 
8792
        adc rax, r12
 
8793
        add r10, r8
 
8794
        adc rbx, r13
 
8795
        adc rax, r12
 
8796
        mov rdx, rax
 
8797
        mov r11, rbx
 
8798
        mov rdi, r13
 
8799
        mov rbx, rdx
 
8800
        mov rsi, r12
 
8801
        mov rax, qword ptr [40+rcx]
 
8802
        mul rax
 
8803
        add r10, rax
 
8804
        adc r11, rdx
 
8805
        adc rbx, 0
 
8806
        mov qword ptr [-208+rbp], r10
 
8807
        mov r10, rbx
 
8808
        mov rax, qword ptr [rcx]
 
8809
        mul qword ptr [88+rcx]
 
8810
        mov r8, rax
 
8811
        mov rdi, rdx
 
8812
        xor rsi, rsi
 
8813
        mov rax, qword ptr [8+rcx]
 
8814
        mul qword ptr [80+rcx]
 
8815
        add r8, rax
 
8816
        adc rdi, rdx
 
8817
        adc rsi, 0
 
8818
        mov rax, qword ptr [16+rcx]
 
8819
        mul qword ptr [72+rcx]
 
8820
        add r8, rax
 
8821
        adc rdi, rdx
 
8822
        adc rsi, 0
 
8823
        mov rax, qword ptr [24+rcx]
 
8824
        mul qword ptr [64+rcx]
 
8825
        add r8, rax
 
8826
        adc rdi, rdx
 
8827
        adc rsi, 0
 
8828
        mov rax, qword ptr [32+rcx]
 
8829
        mul qword ptr [56+rcx]
 
8830
        add r8, rax
 
8831
        adc rdi, rdx
 
8832
        adc rsi, 0
 
8833
        mov rax, qword ptr [40+rcx]
 
8834
        mul qword ptr [48+rcx]
 
8835
        add r8, rax
 
8836
        adc rdi, rdx
 
8837
        adc rsi, 0
 
8838
        mov rdx, r9
 
8839
        add r11, r8
 
8840
        adc r10, rdi
 
8841
        adc rdx, rsi
 
8842
        add r11, r8
 
8843
        adc r10, rdi
 
8844
        adc rdx, rsi
 
8845
        mov r13, rdx
 
8846
        mov qword ptr [-200+rbp], r11
 
8847
        mov r12, r13
 
8848
        mov rax, qword ptr [rcx]
 
8849
        mul qword ptr [96+rcx]
 
8850
        mov r8, rax
 
8851
        mov rdi, rdx
 
8852
        xor rsi, rsi
 
8853
        mov rax, qword ptr [8+rcx]
 
8854
        mul qword ptr [88+rcx]
 
8855
        add r8, rax
 
8856
        adc rdi, rdx
 
8857
        adc rsi, 0
 
8858
        mov rax, qword ptr [16+rcx]
 
8859
        mul qword ptr [80+rcx]
 
8860
        add r8, rax
 
8861
        adc rdi, rdx
 
8862
        adc rsi, 0
 
8863
        mov rax, qword ptr [24+rcx]
 
8864
        mul qword ptr [72+rcx]
 
8865
        add r8, rax
 
8866
        adc rdi, rdx
 
8867
        adc rsi, 0
 
8868
        mov rax, qword ptr [32+rcx]
 
8869
        mul qword ptr [64+rcx]
 
8870
        add r8, rax
 
8871
        adc rdi, rdx
 
8872
        adc rsi, 0
 
8873
        mov rax, qword ptr [40+rcx]
 
8874
        mul qword ptr [56+rcx]
 
8875
        add r8, rax
 
8876
        adc rdi, rdx
 
8877
        adc rsi, 0
 
8878
        mov rax, r9
 
8879
        mov rdx, rdi
 
8880
        mov r11, rsi
 
8881
        add r10, r8
 
8882
        adc r12, rdx
 
8883
        adc rax, r11
 
8884
        add r10, r8
 
8885
        adc r12, rdx
 
8886
        adc rax, r11
 
8887
        mov rbx, rdx
 
8888
        mov r13, rax
 
8889
        mov rsi, r11
 
8890
        mov rax, qword ptr [48+rcx]
 
8891
        mul rax
 
8892
        add r10, rax
 
8893
        adc r12, rdx
 
8894
        adc r13, 0
 
8895
        mov rdi, rbx
 
8896
        mov qword ptr [-192+rbp], r10
 
8897
        mov r10, r13
 
8898
        mov rax, qword ptr [rcx]
 
8899
        mul qword ptr [104+rcx]
 
8900
        mov r8, rax
 
8901
        mov rdi, rdx
 
8902
        xor rsi, rsi
 
8903
        mov r13, r9
 
8904
        mov rax, qword ptr [8+rcx]
 
8905
        mul qword ptr [96+rcx]
 
8906
        add r8, rax
 
8907
        adc rdi, rdx
 
8908
        adc rsi, 0
 
8909
        mov rax, qword ptr [16+rcx]
 
8910
        mul qword ptr [88+rcx]
 
8911
        add r8, rax
 
8912
        adc rdi, rdx
 
8913
        adc rsi, 0
 
8914
        mov rax, qword ptr [24+rcx]
 
8915
        mul qword ptr [80+rcx]
 
8916
        add r8, rax
 
8917
        adc rdi, rdx
 
8918
        adc rsi, 0
 
8919
        mov rax, qword ptr [32+rcx]
 
8920
        mul qword ptr [72+rcx]
 
8921
        add r8, rax
 
8922
        adc rdi, rdx
 
8923
        adc rsi, 0
 
8924
        mov rax, qword ptr [40+rcx]
 
8925
        mul qword ptr [64+rcx]
 
8926
        add r8, rax
 
8927
        adc rdi, rdx
 
8928
        adc rsi, 0
 
8929
        mov rax, qword ptr [48+rcx]
 
8930
        mul qword ptr [56+rcx]
 
8931
        add r8, rax
 
8932
        adc rdi, rdx
 
8933
        adc rsi, 0
 
8934
        add r12, r8
 
8935
        adc r10, rdi
 
8936
        adc r13, rsi
 
8937
        add r12, r8
 
8938
        adc r10, rdi
 
8939
        adc r13, rsi
 
8940
        mov qword ptr [-184+rbp], r12
 
8941
        mov r12, r13
 
8942
        mov rax, qword ptr [rcx]
 
8943
        mul qword ptr [112+rcx]
 
8944
        mov r8, rax
 
8945
        mov rdi, rdx
 
8946
        xor rsi, rsi
 
8947
        mov rax, qword ptr [8+rcx]
 
8948
        mul qword ptr [104+rcx]
 
8949
        add r8, rax
 
8950
        adc rdi, rdx
 
8951
        adc rsi, 0
 
8952
        mov rax, qword ptr [16+rcx]
 
8953
        mul qword ptr [96+rcx]
 
8954
        add r8, rax
 
8955
        adc rdi, rdx
 
8956
        adc rsi, 0
 
8957
        mov rax, qword ptr [24+rcx]
 
8958
        mul qword ptr [88+rcx]
 
8959
        add r8, rax
 
8960
        adc rdi, rdx
 
8961
        adc rsi, 0
 
8962
        mov rax, qword ptr [32+rcx]
 
8963
        mul qword ptr [80+rcx]
 
8964
        add r8, rax
 
8965
        adc rdi, rdx
 
8966
        adc rsi, 0
 
8967
        mov rax, qword ptr [40+rcx]
 
8968
        mul qword ptr [72+rcx]
 
8969
        add r8, rax
 
8970
        adc rdi, rdx
 
8971
        adc rsi, 0
 
8972
        mov rax, qword ptr [48+rcx]
 
8973
        mul qword ptr [64+rcx]
 
8974
        add r8, rax
 
8975
        adc rdi, rdx
 
8976
        adc rsi, 0
 
8977
        mov rax, r9
 
8978
        mov rbx, rdi
 
8979
        mov rdx, rsi
 
8980
        add r10, r8
 
8981
        adc r12, rbx
 
8982
        adc rax, rdx
 
8983
        add r10, r8
 
8984
        adc r12, rbx
 
8985
        adc rax, rdx
 
8986
        mov r11, rdx
 
8987
        mov r13, rax
 
8988
        mov rdi, rbx
 
8989
        mov rax, qword ptr [56+rcx]
 
8990
        mul rax
 
8991
        add r10, rax
 
8992
        adc r12, rdx
 
8993
        adc r13, 0
 
8994
        mov rsi, r11
 
8995
        mov qword ptr [-176+rbp], r10
 
8996
        mov r10, r13
 
8997
        mov rax, qword ptr [rcx]
 
8998
        mul qword ptr [120+rcx]
 
8999
        mov r8, rax
 
9000
        mov rdi, rdx
 
9001
        xor rsi, rsi
 
9002
        mov r13, r9
 
9003
        mov rax, qword ptr [8+rcx]
 
9004
        mul qword ptr [112+rcx]
 
9005
        add r8, rax
 
9006
        adc rdi, rdx
 
9007
        adc rsi, 0
 
9008
        mov rax, qword ptr [16+rcx]
 
9009
        mul qword ptr [104+rcx]
 
9010
        add r8, rax
 
9011
        adc rdi, rdx
 
9012
        adc rsi, 0
 
9013
        mov rax, qword ptr [24+rcx]
 
9014
        mul qword ptr [96+rcx]
 
9015
        add r8, rax
 
9016
        adc rdi, rdx
 
9017
        adc rsi, 0
 
9018
        mov rax, qword ptr [32+rcx]
 
9019
        mul qword ptr [88+rcx]
 
9020
        add r8, rax
 
9021
        adc rdi, rdx
 
9022
        adc rsi, 0
 
9023
        mov rax, qword ptr [40+rcx]
 
9024
        mul qword ptr [80+rcx]
 
9025
        add r8, rax
 
9026
        adc rdi, rdx
 
9027
        adc rsi, 0
 
9028
        mov rax, qword ptr [48+rcx]
 
9029
        mul qword ptr [72+rcx]
 
9030
        add r8, rax
 
9031
        adc rdi, rdx
 
9032
        adc rsi, 0
 
9033
        mov rax, qword ptr [56+rcx]
 
9034
        mul qword ptr [64+rcx]
 
9035
        add r8, rax
 
9036
        adc rdi, rdx
 
9037
        adc rsi, 0
 
9038
        add r12, r8
 
9039
        adc r10, rdi
 
9040
        adc r13, rsi
 
9041
        add r12, r8
 
9042
        adc r10, rdi
 
9043
        adc r13, rsi
 
9044
        mov qword ptr [-168+rbp], r12
 
9045
        mov r12, r13
 
9046
        mov rax, qword ptr [8+rcx]
 
9047
        mul qword ptr [120+rcx]
 
9048
        mov r8, rax
 
9049
        mov rdi, rdx
 
9050
        xor rsi, rsi
 
9051
        mov rax, qword ptr [16+rcx]
 
9052
        mul qword ptr [112+rcx]
 
9053
        add r8, rax
 
9054
        adc rdi, rdx
 
9055
        adc rsi, 0
 
9056
        mov rax, qword ptr [24+rcx]
 
9057
        mul qword ptr [104+rcx]
 
9058
        add r8, rax
 
9059
        adc rdi, rdx
 
9060
        adc rsi, 0
 
9061
        mov rax, qword ptr [32+rcx]
 
9062
        mul qword ptr [96+rcx]
 
9063
        add r8, rax
 
9064
        adc rdi, rdx
 
9065
        adc rsi, 0
 
9066
        mov rax, qword ptr [40+rcx]
 
9067
        mul qword ptr [88+rcx]
 
9068
        add r8, rax
 
9069
        adc rdi, rdx
 
9070
        adc rsi, 0
 
9071
        mov rax, qword ptr [48+rcx]
 
9072
        mul qword ptr [80+rcx]
 
9073
        add r8, rax
 
9074
        adc rdi, rdx
 
9075
        adc rsi, 0
 
9076
        mov rax, qword ptr [56+rcx]
 
9077
        mul qword ptr [72+rcx]
 
9078
        add r8, rax
 
9079
        adc rdi, rdx
 
9080
        adc rsi, 0
 
9081
        mov rax, r9
 
9082
        mov rbx, rdi
 
9083
        mov rdx, rsi
 
9084
        add r10, r8
 
9085
        adc r12, rbx
 
9086
        adc rax, rdx
 
9087
        add r10, r8
 
9088
        adc r12, rbx
 
9089
        adc rax, rdx
 
9090
        mov r11, rdx
 
9091
        mov r13, rax
 
9092
        mov rdi, rbx
 
9093
        mov rax, qword ptr [64+rcx]
 
9094
        mul rax
 
9095
        add r10, rax
 
9096
        adc r12, rdx
 
9097
        adc r13, 0
 
9098
        mov rsi, r11
 
9099
        mov qword ptr [-160+rbp], r10
 
9100
        mov r11, r9
 
9101
        mov rax, qword ptr [16+rcx]
 
9102
        mul qword ptr [120+rcx]
 
9103
        mov r8, rax
 
9104
        mov rdi, rdx
 
9105
        xor rsi, rsi
 
9106
        mov r10, r13
 
9107
        mov rbx, r9
 
9108
        mov rax, qword ptr [24+rcx]
 
9109
        mul qword ptr [112+rcx]
 
9110
        add r8, rax
 
9111
        adc rdi, rdx
 
9112
        adc rsi, 0
 
9113
        mov rax, qword ptr [32+rcx]
 
9114
        mul qword ptr [104+rcx]
 
9115
        add r8, rax
 
9116
        adc rdi, rdx
 
9117
        adc rsi, 0
 
9118
        mov rax, qword ptr [40+rcx]
 
9119
        mul qword ptr [96+rcx]
 
9120
        add r8, rax
 
9121
        adc rdi, rdx
 
9122
        adc rsi, 0
 
9123
        mov rax, qword ptr [48+rcx]
 
9124
        mul qword ptr [88+rcx]
 
9125
        add r8, rax
 
9126
        adc rdi, rdx
 
9127
        adc rsi, 0
 
9128
        mov rax, qword ptr [56+rcx]
 
9129
        mul qword ptr [80+rcx]
 
9130
        add r8, rax
 
9131
        adc rdi, rdx
 
9132
        adc rsi, 0
 
9133
        mov rax, qword ptr [64+rcx]
 
9134
        mul qword ptr [72+rcx]
 
9135
        add r8, rax
 
9136
        adc rdi, rdx
 
9137
        adc rsi, 0
 
9138
        add r12, r8
 
9139
        adc r10, rdi
 
9140
        adc r11, rsi
 
9141
        add r12, r8
 
9142
        adc r10, rdi
 
9143
        adc r11, rsi
 
9144
        mov qword ptr [-152+rbp], r12
 
9145
        mov rax, qword ptr [24+rcx]
 
9146
        mul qword ptr [120+rcx]
 
9147
        mov r8, rax
 
9148
        mov rdi, rdx
 
9149
        xor rsi, rsi
 
9150
        mov rax, qword ptr [32+rcx]
 
9151
        mul qword ptr [112+rcx]
 
9152
        add r8, rax
 
9153
        adc rdi, rdx
 
9154
        adc rsi, 0
 
9155
        mov rax, qword ptr [40+rcx]
 
9156
        mul qword ptr [104+rcx]
 
9157
        add r8, rax
 
9158
        adc rdi, rdx
 
9159
        adc rsi, 0
 
9160
        mov rax, qword ptr [48+rcx]
 
9161
        mul qword ptr [96+rcx]
 
9162
        add r8, rax
 
9163
        adc rdi, rdx
 
9164
        adc rsi, 0
 
9165
        mov rax, qword ptr [56+rcx]
 
9166
        mul qword ptr [88+rcx]
 
9167
        add r8, rax
 
9168
        adc rdi, rdx
 
9169
        adc rsi, 0
 
9170
        mov rax, qword ptr [64+rcx]
 
9171
        mul qword ptr [80+rcx]
 
9172
        add r8, rax
 
9173
        adc rdi, rdx
 
9174
        adc rsi, 0
 
9175
        mov r13, rdi
 
9176
        mov r12, rsi
 
9177
        add r10, r8
 
9178
        adc r11, r13
 
9179
        adc rbx, r12
 
9180
        add r10, r8
 
9181
        adc r11, r13
 
9182
        adc rbx, r12
 
9183
        mov rdx, rbx
 
9184
        mov rdi, r13
 
9185
        mov rbx, r11
 
9186
        mov rsi, r12
 
9187
        mov r11, rdx
 
9188
        mov r12, r9
 
9189
        mov rax, qword ptr [72+rcx]
 
9190
        mul rax
 
9191
        add r10, rax
 
9192
        adc rbx, rdx
 
9193
        adc r11, 0
 
9194
        mov qword ptr [-144+rbp], r10
 
9195
        mov r10, r11
 
9196
        mov rax, qword ptr [32+rcx]
 
9197
        mul qword ptr [120+rcx]
 
9198
        mov r8, rax
 
9199
        mov rdi, rdx
 
9200
        xor rsi, rsi
 
9201
        mov rax, qword ptr [40+rcx]
 
9202
        mul qword ptr [112+rcx]
 
9203
        add r8, rax
 
9204
        adc rdi, rdx
 
9205
        adc rsi, 0
 
9206
        mov rax, qword ptr [48+rcx]
 
9207
        mul qword ptr [104+rcx]
 
9208
        add r8, rax
 
9209
        adc rdi, rdx
 
9210
        adc rsi, 0
 
9211
        mov rax, qword ptr [56+rcx]
 
9212
        mul qword ptr [96+rcx]
 
9213
        add r8, rax
 
9214
        adc rdi, rdx
 
9215
        adc rsi, 0
 
9216
        mov rax, qword ptr [64+rcx]
 
9217
        mul qword ptr [88+rcx]
 
9218
        add r8, rax
 
9219
        adc rdi, rdx
 
9220
        adc rsi, 0
 
9221
        mov rax, qword ptr [72+rcx]
 
9222
        mul qword ptr [80+rcx]
 
9223
        add r8, rax
 
9224
        adc rdi, rdx
 
9225
        adc rsi, 0
 
9226
        add rbx, r8
 
9227
        adc r10, rdi
 
9228
        adc r12, rsi
 
9229
        add rbx, r8
 
9230
        adc r10, rdi
 
9231
        adc r12, rsi
 
9232
        mov qword ptr [-136+rbp], rbx
 
9233
        mov r11, r12
 
9234
        mov rax, qword ptr [40+rcx]
 
9235
        mul qword ptr [120+rcx]
 
9236
        mov r8, rax
 
9237
        mov rdi, rdx
 
9238
        xor rsi, rsi
 
9239
        mov rax, qword ptr [48+rcx]
 
9240
        mul qword ptr [112+rcx]
 
9241
        add r8, rax
 
9242
        adc rdi, rdx
 
9243
        adc rsi, 0
 
9244
        mov rax, qword ptr [56+rcx]
 
9245
        mul qword ptr [104+rcx]
 
9246
        add r8, rax
 
9247
        adc rdi, rdx
 
9248
        adc rsi, 0
 
9249
        mov rax, qword ptr [64+rcx]
 
9250
        mul qword ptr [96+rcx]
 
9251
        add r8, rax
 
9252
        adc rdi, rdx
 
9253
        adc rsi, 0
 
9254
        mov rax, qword ptr [72+rcx]
 
9255
        mul qword ptr [88+rcx]
 
9256
        add r8, rax
 
9257
        adc rdi, rdx
 
9258
        adc rsi, 0
 
9259
        mov rax, r9
 
9260
        mov r13, rdi
 
9261
        mov r12, rsi
 
9262
        add r10, r8
 
9263
        adc r11, r13
 
9264
        adc rax, r12
 
9265
        add r10, r8
 
9266
        adc r11, r13
 
9267
        adc rax, r12
 
9268
        mov rdx, rax
 
9269
        mov rbx, r11
 
9270
        mov rdi, r13
 
9271
        mov r11, rdx
 
9272
        mov rsi, r12
 
9273
        mov rax, qword ptr [80+rcx]
 
9274
        mul rax
 
9275
        add r10, rax
 
9276
        adc rbx, rdx
 
9277
        adc r11, 0
 
9278
        mov qword ptr [-128+rbp], r10
 
9279
        mov r10, r11
 
9280
        mov rax, qword ptr [48+rcx]
 
9281
        mul qword ptr [120+rcx]
 
9282
        mov r8, rax
 
9283
        mov rdi, rdx
 
9284
        xor rsi, rsi
 
9285
        mov rax, qword ptr [56+rcx]
 
9286
        mul qword ptr [112+rcx]
 
9287
        add r8, rax
 
9288
        adc rdi, rdx
 
9289
        adc rsi, 0
 
9290
        mov rax, qword ptr [64+rcx]
 
9291
        mul qword ptr [104+rcx]
 
9292
        add r8, rax
 
9293
        adc rdi, rdx
 
9294
        adc rsi, 0
 
9295
        mov rax, qword ptr [72+rcx]
 
9296
        mul qword ptr [96+rcx]
 
9297
        add r8, rax
 
9298
        adc rdi, rdx
 
9299
        adc rsi, 0
 
9300
        mov rax, qword ptr [80+rcx]
 
9301
        mul qword ptr [88+rcx]
 
9302
        add r8, rax
 
9303
        adc rdi, rdx
 
9304
        adc rsi, 0
 
9305
        mov rdx, r9
 
9306
        add rbx, r8
 
9307
        adc r10, rdi
 
9308
        adc rdx, rsi
 
9309
        add rbx, r8
 
9310
        adc r10, rdi
 
9311
        adc rdx, rsi
 
9312
        mov qword ptr [-120+rbp], rbx
 
9313
        mov r11, rdx
 
9314
        mov rbx, r9
 
9315
        mov rax, qword ptr [56+rcx]
 
9316
        mul qword ptr [120+rcx]
 
9317
        mov r8, rax
 
9318
        mov rdi, rdx
 
9319
        xor rsi, rsi
 
9320
        mov rax, qword ptr [64+rcx]
 
9321
        mul qword ptr [112+rcx]
 
9322
        add r8, rax
 
9323
        adc rdi, rdx
 
9324
        adc rsi, 0
 
9325
        mov rax, qword ptr [72+rcx]
 
9326
        mul qword ptr [104+rcx]
 
9327
        add r8, rax
 
9328
        adc rdi, rdx
 
9329
        adc rsi, 0
 
9330
        mov rax, qword ptr [80+rcx]
 
9331
        mul qword ptr [96+rcx]
 
9332
        add r8, rax
 
9333
        adc rdi, rdx
 
9334
        adc rsi, 0
 
9335
        mov r13, rdi
 
9336
        mov r12, rsi
 
9337
        add r10, r8
 
9338
        adc r11, r13
 
9339
        adc rbx, r12
 
9340
        add r10, r8
 
9341
        adc r11, r13
 
9342
        adc rbx, r12
 
9343
        mov rdx, rbx
 
9344
        mov rdi, r13
 
9345
        mov rbx, r11
 
9346
        mov rsi, r12
 
9347
        mov r11, rdx
 
9348
        mov r12, r9
 
9349
        mov rax, qword ptr [88+rcx]
 
9350
        mul rax
 
9351
        add r10, rax
 
9352
        adc rbx, rdx
 
9353
        adc r11, 0
 
9354
        mov qword ptr [-112+rbp], r10
 
9355
        mov r10, r11
 
9356
        mov rax, qword ptr [64+rcx]
 
9357
        mul qword ptr [120+rcx]
 
9358
        mov r8, rax
 
9359
        mov rdi, rdx
 
9360
        xor rsi, rsi
 
9361
        mov rax, qword ptr [72+rcx]
 
9362
        mul qword ptr [112+rcx]
 
9363
        add r8, rax
 
9364
        adc rdi, rdx
 
9365
        adc rsi, 0
 
9366
        mov rax, qword ptr [80+rcx]
 
9367
        mul qword ptr [104+rcx]
 
9368
        add r8, rax
 
9369
        adc rdi, rdx
 
9370
        adc rsi, 0
 
9371
        mov rax, qword ptr [88+rcx]
 
9372
        mul qword ptr [96+rcx]
 
9373
        add r8, rax
 
9374
        adc rdi, rdx
 
9375
        adc rsi, 0
 
9376
        add rbx, r8
 
9377
        adc r10, rdi
 
9378
        adc r12, rsi
 
9379
        add rbx, r8
 
9380
        adc r10, rdi
 
9381
        adc r12, rsi
 
9382
        mov qword ptr [-104+rbp], rbx
 
9383
        mov r11, r12
 
9384
        mov rax, qword ptr [72+rcx]
 
9385
        mul qword ptr [120+rcx]
 
9386
        mov r8, rax
 
9387
        mov rdi, rdx
 
9388
        xor rsi, rsi
 
9389
        mov rax, qword ptr [80+rcx]
 
9390
        mul qword ptr [112+rcx]
 
9391
        add r8, rax
 
9392
        adc rdi, rdx
 
9393
        adc rsi, 0
 
9394
        mov rax, qword ptr [88+rcx]
 
9395
        mul qword ptr [104+rcx]
 
9396
        add r8, rax
 
9397
        adc rdi, rdx
 
9398
        adc rsi, 0
 
9399
        mov rax, r9
 
9400
        mov r13, rdi
 
9401
        mov r12, rsi
 
9402
        add r10, r8
 
9403
        adc r11, r13
 
9404
        adc rax, r12
 
9405
        add r10, r8
 
9406
        adc r11, r13
 
9407
        adc rax, r12
 
9408
        mov rdx, rax
 
9409
        mov rbx, r11
 
9410
        mov rdi, r13
 
9411
        mov r11, rdx
 
9412
        mov rsi, r12
 
9413
        mov rax, qword ptr [96+rcx]
 
9414
        mul rax
 
9415
        add r10, rax
 
9416
        adc rbx, rdx
 
9417
        adc r11, 0
 
9418
        mov qword ptr [-96+rbp], r10
 
9419
        mov r10, r9
 
9420
        mov rax, qword ptr [80+rcx]
 
9421
        mul qword ptr [120+rcx]
 
9422
        mov r8, rax
 
9423
        mov rdi, rdx
 
9424
        xor rsi, rsi
 
9425
        mov rax, qword ptr [88+rcx]
 
9426
        mul qword ptr [112+rcx]
 
9427
        add r8, rax
 
9428
        adc rdi, rdx
 
9429
        adc rsi, 0
 
9430
        mov rax, qword ptr [96+rcx]
 
9431
        mul qword ptr [104+rcx]
 
9432
        add r8, rax
 
9433
        adc rdi, rdx
 
9434
        adc rsi, 0
 
9435
        mov r12, rdi
 
9436
        mov rax, rsi
 
9437
        mov rsi, r9
 
9438
        add rbx, r8
 
9439
        adc r11, r12
 
9440
        adc r10, rax
 
9441
        add rbx, r8
 
9442
        adc r11, r12
 
9443
        adc r10, rax
 
9444
        mov r12, r9
 
9445
        mov qword ptr [-88+rbp], rbx
 
9446
        mov r13, r11
 
9447
        mov r11, r10
 
9448
        mov rax, qword ptr [88+rcx]
 
9449
        mul qword ptr [120+rcx]
 
9450
        add r13, rax
 
9451
        adc r11, rdx
 
9452
        adc r12, 0
 
9453
        add r13, rax
 
9454
        adc r11, rdx
 
9455
        adc r12, 0
 
9456
        mov rdi, r12
 
9457
        mov rax, qword ptr [96+rcx]
 
9458
        mul qword ptr [112+rcx]
 
9459
        add r13, rax
 
9460
        adc r11, rdx
 
9461
        adc rdi, 0
 
9462
        add r13, rax
 
9463
        adc r11, rdx
 
9464
        adc rdi, 0
 
9465
        mov rbx, r11
 
9466
        mov r10, rdi
 
9467
        mov r11, r9
 
9468
        mov rax, qword ptr [104+rcx]
 
9469
        mul rax
 
9470
        add r13, rax
 
9471
        adc rbx, rdx
 
9472
        adc r10, 0
 
9473
        mov qword ptr [-80+rbp], r13
 
9474
        mov r8, r10
 
9475
        mov r10, rbx
 
9476
        mov rax, qword ptr [96+rcx]
 
9477
        mul qword ptr [120+rcx]
 
9478
        add r10, rax
 
9479
        adc r8, rdx
 
9480
        adc rsi, 0
 
9481
        add r10, rax
 
9482
        adc r8, rdx
 
9483
        adc rsi, 0
 
9484
        mov r12, r8
 
9485
        mov rbx, rsi
 
9486
        mov rax, qword ptr [104+rcx]
 
9487
        mul qword ptr [112+rcx]
 
9488
        add r10, rax
 
9489
        adc r12, rdx
 
9490
        adc rbx, 0
 
9491
        add r10, rax
 
9492
        adc r12, rdx
 
9493
        adc rbx, 0
 
9494
        mov qword ptr [-72+rbp], r10
 
9495
        mov r13, rbx
 
9496
        mov rbx, r12
 
9497
        mov rax, qword ptr [104+rcx]
 
9498
        mul qword ptr [120+rcx]
 
9499
        add rbx, rax
 
9500
        adc r13, rdx
 
9501
        adc r11, 0
 
9502
        add rbx, rax
 
9503
        adc r13, rdx
 
9504
        adc r11, 0
 
9505
        mov r12, r11
 
9506
        mov r10, r13
 
9507
        mov rax, qword ptr [112+rcx]
 
9508
        mul rax
 
9509
        add rbx, rax
 
9510
        adc r10, rdx
 
9511
        adc r12, 0
 
9512
        mov qword ptr [-64+rbp], rbx
 
9513
        mov rdi, r10
 
9514
        mov rbx, r9
 
9515
        mov rsi, r12
 
9516
        mov rax, qword ptr [112+rcx]
 
9517
        mul qword ptr [120+rcx]
 
9518
        add rdi, rax
 
9519
        adc rsi, rdx
 
9520
        adc rbx, 0
 
9521
        add rdi, rax
 
9522
        adc rsi, rdx
 
9523
        adc rbx, 0
 
9524
        mov qword ptr [-56+rbp], rdi
 
9525
        mov r8, rbx
 
9526
        mov rax, qword ptr [120+rcx]
 
9527
        mul rax
 
9528
        add rsi, rax
 
9529
        adc r8, rdx
 
9530
        adc r9, 0
 
9531
        mov qword ptr [-48+rbp], rsi
 
9532
        mov qword ptr [-40+rbp], r8
 
9533
        mov dword ptr [8+r14], 32
 
9534
        mov dword ptr [r14], 0
 
9535
;        mov rdi, qword ptr [16+r14]
 
9536
;        lea rsi, qword ptr [-288+rbp]
 
9537
;        mov edx, 256
 
9538
        mov rcx, qword ptr [16+r14]
 
9539
        lea rdx, qword ptr [-288+rbp]
 
9540
        mov r8d, 256
 
9541
        call memcpy
 
9542
        mov edx, dword ptr [8+r14]
 
9543
        test edx, edx
 
9544
        je L232
 
9545
        lea ecx, dword ptr [-1+rdx]
 
9546
        mov rsi, qword ptr [16+r14]
 
9547
        mov r9d, ecx
 
9548
        cmp dword ptr [rsi+r9*8], 0
 
9549
        jne L230
 
9550
        mov edx, ecx
 
9551
        ALIGN 16
 
9552
L231:
 
9553
        test edx, edx
 
9554
        mov ecx, edx
 
9555
        je L235
 
9556
        dec edx
 
9557
        mov eax, edx
 
9558
        cmp dword ptr [rsi+rax*8], 0
 
9559
        je L231
 
9560
        mov dword ptr [8+r14], ecx
 
9561
        mov edx, ecx
 
9562
L230:
 
9563
        test edx, edx
 
9564
        je L232
 
9565
        mov eax, dword ptr [r14]
 
9566
        jmp L233
 
9567
 
 
9568
L235:
 
9569
        mov dword ptr [8+r14], edx
 
9570
L232:
 
9571
        xor eax, eax
 
9572
L233:
 
9573
        mov dword ptr [r14], eax
 
9574
        add rsp, 256+32                 ; +32 for "home" storage
 
9575
        pop rbx
 
9576
        pop r12
 
9577
        pop r13
 
9578
        pop r14
 
9579
        pop rbp
 
9580
        pop rsi
 
9581
        pop rdi
 
9582
 
 
9583
        ret
 
9584
 
 
9585
s_mp_sqr_comba_16 ENDP
 
9586
 
 
9587
 
 
9588
; void s_mp_sqr_comba_32(const mp_int *A, mp_int *B);
 
9589
 
 
9590
        ALIGN 16
 
9591
s_mp_sqr_comba_32 PROC ; A "FRAME" function
 
9592
 
 
9593
        push rdi
 
9594
        push rsi
 
9595
 
 
9596
        mov rdi, rcx
 
9597
        mov rsi, rdx
 
9598
 
 
9599
        push rbp
 
9600
        xor r10d, r10d
 
9601
        mov r8, r10
 
9602
        mov r11, r10
 
9603
        mov rbp, rsp
 
9604
        push r14
 
9605
        mov r14, rsi
 
9606
        mov rsi, r10
 
9607
        push r13
 
9608
        mov r13, r10
 
9609
        push r12
 
9610
        mov r12, r10
 
9611
        push rbx
 
9612
        mov rbx, r10
 
9613
        sub rsp, 512+32                 ; +32 for "home" storage
 
9614
        mov rcx, qword ptr [16+rdi]
 
9615
        mov rax, qword ptr [rcx]
 
9616
        mul rax
 
9617
        add r8, rax
 
9618
        adc rbx, rdx
 
9619
        adc rsi, 0
 
9620
        mov qword ptr [-544+rbp], r8
 
9621
        mov rax, qword ptr [rcx]
 
9622
        mul qword ptr [8+rcx]
 
9623
        add rbx, rax
 
9624
        adc rsi, rdx
 
9625
        adc r12, 0
 
9626
        add rbx, rax
 
9627
        adc rsi, rdx
 
9628
        adc r12, 0
 
9629
        mov qword ptr [-536+rbp], rbx
 
9630
        mov rax, qword ptr [rcx]
 
9631
        mul qword ptr [16+rcx]
 
9632
        add rsi, rax
 
9633
        adc r12, rdx
 
9634
        adc r13, 0
 
9635
        add rsi, rax
 
9636
        adc r12, rdx
 
9637
        adc r13, 0
 
9638
        mov rbx, r12
 
9639
        mov r9, r13
 
9640
        mov rax, qword ptr [8+rcx]
 
9641
        mul rax
 
9642
        add rsi, rax
 
9643
        adc rbx, rdx
 
9644
        adc r9, 0
 
9645
        mov qword ptr [-528+rbp], rsi
 
9646
        mov rdi, r9
 
9647
        mov rsi, r10
 
9648
        mov r9, rbx
 
9649
        mov rax, qword ptr [rcx]
 
9650
        mul qword ptr [24+rcx]
 
9651
        add r9, rax
 
9652
        adc rdi, rdx
 
9653
        adc r11, 0
 
9654
        add r9, rax
 
9655
        adc rdi, rdx
 
9656
        adc r11, 0
 
9657
        mov r12, rdi
 
9658
        mov r13, r11
 
9659
        mov rdi, r10
 
9660
        mov rax, qword ptr [8+rcx]
 
9661
        mul qword ptr [16+rcx]
 
9662
        add r9, rax
 
9663
        adc r12, rdx
 
9664
        adc r13, 0
 
9665
        add r9, rax
 
9666
        adc r12, rdx
 
9667
        adc r13, 0
 
9668
        mov r11, r10
 
9669
        mov qword ptr [-520+rbp], r9
 
9670
        mov r8, r13
 
9671
        mov r13, r12
 
9672
        mov r12, r10
 
9673
        mov rax, qword ptr [rcx]
 
9674
        mul qword ptr [32+rcx]
 
9675
        add r13, rax
 
9676
        adc r8, rdx
 
9677
        adc r12, 0
 
9678
        add r13, rax
 
9679
        adc r8, rdx
 
9680
        adc r12, 0
 
9681
        mov rax, qword ptr [8+rcx]
 
9682
        mul qword ptr [24+rcx]
 
9683
        add r13, rax
 
9684
        adc r8, rdx
 
9685
        adc r12, 0
 
9686
        add r13, rax
 
9687
        adc r8, rdx
 
9688
        adc r12, 0
 
9689
        mov rbx, r8
 
9690
        mov r9, r12
 
9691
        mov r8, r10
 
9692
        mov rax, qword ptr [16+rcx]
 
9693
        mul rax
 
9694
        add r13, rax
 
9695
        adc rbx, rdx
 
9696
        adc r9, 0
 
9697
        mov qword ptr [-512+rbp], r13
 
9698
        mov rax, qword ptr [rcx]
 
9699
        mul qword ptr [40+rcx]
 
9700
        mov r8, rax
 
9701
        mov rdi, rdx
 
9702
        xor rsi, rsi
 
9703
        mov rax, qword ptr [8+rcx]
 
9704
        mul qword ptr [32+rcx]
 
9705
        add r8, rax
 
9706
        adc rdi, rdx
 
9707
        adc rsi, 0
 
9708
        mov rax, qword ptr [16+rcx]
 
9709
        mul qword ptr [24+rcx]
 
9710
        add r8, rax
 
9711
        adc rdi, rdx
 
9712
        adc rsi, 0
 
9713
        add rbx, r8
 
9714
        adc r9, rdi
 
9715
        adc r11, rsi
 
9716
        add rbx, r8
 
9717
        adc r9, rdi
 
9718
        adc r11, rsi
 
9719
        mov qword ptr [-504+rbp], rbx
 
9720
        mov rax, qword ptr [rcx]
 
9721
        mul qword ptr [48+rcx]
 
9722
        mov r8, rax
 
9723
        mov rdi, rdx
 
9724
        xor rsi, rsi
 
9725
        mov rax, qword ptr [8+rcx]
 
9726
        mul qword ptr [40+rcx]
 
9727
        add r8, rax
 
9728
        adc rdi, rdx
 
9729
        adc rsi, 0
 
9730
        mov rax, qword ptr [16+rcx]
 
9731
        mul qword ptr [32+rcx]
 
9732
        add r8, rax
 
9733
        adc rdi, rdx
 
9734
        adc rsi, 0
 
9735
        mov rax, r10
 
9736
        mov r13, rdi
 
9737
        mov r12, rsi
 
9738
        add r9, r8
 
9739
        adc r11, r13
 
9740
        adc rax, r12
 
9741
        add r9, r8
 
9742
        adc r11, r13
 
9743
        adc rax, r12
 
9744
        mov rdx, rax
 
9745
        mov rbx, r11
 
9746
        mov rdi, r13
 
9747
        mov r11, rdx
 
9748
        mov rsi, r12
 
9749
        mov rax, qword ptr [24+rcx]
 
9750
        mul rax
 
9751
        add r9, rax
 
9752
        adc rbx, rdx
 
9753
        adc r11, 0
 
9754
        mov qword ptr [-496+rbp], r9
 
9755
        mov r9, r11
 
9756
        mov rax, qword ptr [rcx]
 
9757
        mul qword ptr [56+rcx]
 
9758
        mov r8, rax
 
9759
        mov rdi, rdx
 
9760
        xor rsi, rsi
 
9761
        mov rax, qword ptr [8+rcx]
 
9762
        mul qword ptr [48+rcx]
 
9763
        add r8, rax
 
9764
        adc rdi, rdx
 
9765
        adc rsi, 0
 
9766
        mov rax, qword ptr [16+rcx]
 
9767
        mul qword ptr [40+rcx]
 
9768
        add r8, rax
 
9769
        adc rdi, rdx
 
9770
        adc rsi, 0
 
9771
        mov rax, qword ptr [24+rcx]
 
9772
        mul qword ptr [32+rcx]
 
9773
        add r8, rax
 
9774
        adc rdi, rdx
 
9775
        adc rsi, 0
 
9776
        mov rdx, r10
 
9777
        add rbx, r8
 
9778
        adc r9, rdi
 
9779
        adc rdx, rsi
 
9780
        add rbx, r8
 
9781
        adc r9, rdi
 
9782
        adc rdx, rsi
 
9783
        mov r11, rdx
 
9784
        mov qword ptr [-488+rbp], rbx
 
9785
        mov rbx, r10
 
9786
        mov rax, qword ptr [rcx]
 
9787
        mul qword ptr [64+rcx]
 
9788
        mov r8, rax
 
9789
        mov rdi, rdx
 
9790
        xor rsi, rsi
 
9791
        mov rax, qword ptr [8+rcx]
 
9792
        mul qword ptr [56+rcx]
 
9793
        add r8, rax
 
9794
        adc rdi, rdx
 
9795
        adc rsi, 0
 
9796
        mov rax, qword ptr [16+rcx]
 
9797
        mul qword ptr [48+rcx]
 
9798
        add r8, rax
 
9799
        adc rdi, rdx
 
9800
        adc rsi, 0
 
9801
        mov rax, qword ptr [24+rcx]
 
9802
        mul qword ptr [40+rcx]
 
9803
        add r8, rax
 
9804
        adc rdi, rdx
 
9805
        adc rsi, 0
 
9806
        mov r13, rdi
 
9807
        mov r12, rsi
 
9808
        add r9, r8
 
9809
        adc r11, r13
 
9810
        adc rbx, r12
 
9811
        add r9, r8
 
9812
        adc r11, r13
 
9813
        adc rbx, r12
 
9814
        mov rax, qword ptr [32+rcx]
 
9815
        mul rax
 
9816
        add r9, rax
 
9817
        adc r11, rdx
 
9818
        adc rbx, 0
 
9819
        mov rdi, r13
 
9820
        mov qword ptr [-480+rbp], r9
 
9821
        mov rsi, r12
 
9822
        mov r9, rbx
 
9823
        mov r12, r10
 
9824
        mov rax, qword ptr [rcx]
 
9825
        mul qword ptr [72+rcx]
 
9826
        mov r8, rax
 
9827
        mov rdi, rdx
 
9828
        xor rsi, rsi
 
9829
        mov rax, qword ptr [8+rcx]
 
9830
        mul qword ptr [64+rcx]
 
9831
        add r8, rax
 
9832
        adc rdi, rdx
 
9833
        adc rsi, 0
 
9834
        mov rax, qword ptr [16+rcx]
 
9835
        mul qword ptr [56+rcx]
 
9836
        add r8, rax
 
9837
        adc rdi, rdx
 
9838
        adc rsi, 0
 
9839
        mov rax, qword ptr [24+rcx]
 
9840
        mul qword ptr [48+rcx]
 
9841
        add r8, rax
 
9842
        adc rdi, rdx
 
9843
        adc rsi, 0
 
9844
        mov rax, qword ptr [32+rcx]
 
9845
        mul qword ptr [40+rcx]
 
9846
        add r8, rax
 
9847
        adc rdi, rdx
 
9848
        adc rsi, 0
 
9849
        add r11, r8
 
9850
        adc r9, rdi
 
9851
        adc r12, rsi
 
9852
        add r11, r8
 
9853
        adc r9, rdi
 
9854
        adc r12, rsi
 
9855
        mov qword ptr [-472+rbp], r11
 
9856
        mov rbx, r12
 
9857
        mov rax, qword ptr [rcx]
 
9858
        mul qword ptr [80+rcx]
 
9859
        mov r8, rax
 
9860
        mov rdi, rdx
 
9861
        xor rsi, rsi
 
9862
        mov rax, qword ptr [8+rcx]
 
9863
        mul qword ptr [72+rcx]
 
9864
        add r8, rax
 
9865
        adc rdi, rdx
 
9866
        adc rsi, 0
 
9867
        mov rax, qword ptr [16+rcx]
 
9868
        mul qword ptr [64+rcx]
 
9869
        add r8, rax
 
9870
        adc rdi, rdx
 
9871
        adc rsi, 0
 
9872
        mov rax, qword ptr [24+rcx]
 
9873
        mul qword ptr [56+rcx]
 
9874
        add r8, rax
 
9875
        adc rdi, rdx
 
9876
        adc rsi, 0
 
9877
        mov rax, qword ptr [32+rcx]
 
9878
        mul qword ptr [48+rcx]
 
9879
        add r8, rax
 
9880
        adc rdi, rdx
 
9881
        adc rsi, 0
 
9882
        mov rax, r10
 
9883
        mov r13, rdi
 
9884
        mov r12, rsi
 
9885
        add r9, r8
 
9886
        adc rbx, r13
 
9887
        adc rax, r12
 
9888
        add r9, r8
 
9889
        adc rbx, r13
 
9890
        adc rax, r12
 
9891
        mov rdx, rax
 
9892
        mov r11, rbx
 
9893
        mov rdi, r13
 
9894
        mov rbx, rdx
 
9895
        mov rsi, r12
 
9896
        mov rax, qword ptr [40+rcx]
 
9897
        mul rax
 
9898
        add r9, rax
 
9899
        adc r11, rdx
 
9900
        adc rbx, 0
 
9901
        mov qword ptr [-464+rbp], r9
 
9902
        mov r9, rbx
 
9903
        mov rax, qword ptr [rcx]
 
9904
        mul qword ptr [88+rcx]
 
9905
        mov r8, rax
 
9906
        mov rdi, rdx
 
9907
        xor rsi, rsi
 
9908
        mov rax, qword ptr [8+rcx]
 
9909
        mul qword ptr [80+rcx]
 
9910
        add r8, rax
 
9911
        adc rdi, rdx
 
9912
        adc rsi, 0
 
9913
        mov rax, qword ptr [16+rcx]
 
9914
        mul qword ptr [72+rcx]
 
9915
        add r8, rax
 
9916
        adc rdi, rdx
 
9917
        adc rsi, 0
 
9918
        mov rax, qword ptr [24+rcx]
 
9919
        mul qword ptr [64+rcx]
 
9920
        add r8, rax
 
9921
        adc rdi, rdx
 
9922
        adc rsi, 0
 
9923
        mov rax, qword ptr [32+rcx]
 
9924
        mul qword ptr [56+rcx]
 
9925
        add r8, rax
 
9926
        adc rdi, rdx
 
9927
        adc rsi, 0
 
9928
        mov rax, qword ptr [40+rcx]
 
9929
        mul qword ptr [48+rcx]
 
9930
        add r8, rax
 
9931
        adc rdi, rdx
 
9932
        adc rsi, 0
 
9933
        mov rdx, r10
 
9934
        add r11, r8
 
9935
        adc r9, rdi
 
9936
        adc rdx, rsi
 
9937
        add r11, r8
 
9938
        adc r9, rdi
 
9939
        adc rdx, rsi
 
9940
        mov r13, rdx
 
9941
        mov qword ptr [-456+rbp], r11
 
9942
        mov r12, r13
 
9943
        mov r13, r10
 
9944
        mov rax, qword ptr [rcx]
 
9945
        mul qword ptr [96+rcx]
 
9946
        mov r8, rax
 
9947
        mov rdi, rdx
 
9948
        xor rsi, rsi
 
9949
        mov rax, qword ptr [8+rcx]
 
9950
        mul qword ptr [88+rcx]
 
9951
        add r8, rax
 
9952
        adc rdi, rdx
 
9953
        adc rsi, 0
 
9954
        mov rax, qword ptr [16+rcx]
 
9955
        mul qword ptr [80+rcx]
 
9956
        add r8, rax
 
9957
        adc rdi, rdx
 
9958
        adc rsi, 0
 
9959
        mov rax, qword ptr [24+rcx]
 
9960
        mul qword ptr [72+rcx]
 
9961
        add r8, rax
 
9962
        adc rdi, rdx
 
9963
        adc rsi, 0
 
9964
        mov rax, qword ptr [32+rcx]
 
9965
        mul qword ptr [64+rcx]
 
9966
        add r8, rax
 
9967
        adc rdi, rdx
 
9968
        adc rsi, 0
 
9969
        mov rax, qword ptr [40+rcx]
 
9970
        mul qword ptr [56+rcx]
 
9971
        add r8, rax
 
9972
        adc rdi, rdx
 
9973
        adc rsi, 0
 
9974
        mov rax, rdi
 
9975
        mov r11, rsi
 
9976
        add r9, r8
 
9977
        adc r12, rax
 
9978
        adc r13, r11
 
9979
        add r9, r8
 
9980
        adc r12, rax
 
9981
        adc r13, r11
 
9982
        mov rbx, rax
 
9983
        mov rsi, r11
 
9984
        mov rax, qword ptr [48+rcx]
 
9985
        mul rax
 
9986
        add r9, rax
 
9987
        adc r12, rdx
 
9988
        adc r13, 0
 
9989
        mov rdi, rbx
 
9990
        mov qword ptr [-448+rbp], r9
 
9991
        mov r9, r13
 
9992
        mov rax, qword ptr [rcx]
 
9993
        mul qword ptr [104+rcx]
 
9994
        mov r8, rax
 
9995
        mov rdi, rdx
 
9996
        xor rsi, rsi
 
9997
        mov r13, r10
 
9998
        mov rax, qword ptr [8+rcx]
 
9999
        mul qword ptr [96+rcx]
 
10000
        add r8, rax
 
10001
        adc rdi, rdx
 
10002
        adc rsi, 0
 
10003
        mov rax, qword ptr [16+rcx]
 
10004
        mul qword ptr [88+rcx]
 
10005
        add r8, rax
 
10006
        adc rdi, rdx
 
10007
        adc rsi, 0
 
10008
        mov rax, qword ptr [24+rcx]
 
10009
        mul qword ptr [80+rcx]
 
10010
        add r8, rax
 
10011
        adc rdi, rdx
 
10012
        adc rsi, 0
 
10013
        mov rax, qword ptr [32+rcx]
 
10014
        mul qword ptr [72+rcx]
 
10015
        add r8, rax
 
10016
        adc rdi, rdx
 
10017
        adc rsi, 0
 
10018
        mov rax, qword ptr [40+rcx]
 
10019
        mul qword ptr [64+rcx]
 
10020
        add r8, rax
 
10021
        adc rdi, rdx
 
10022
        adc rsi, 0
 
10023
        mov rax, qword ptr [48+rcx]
 
10024
        mul qword ptr [56+rcx]
 
10025
        add r8, rax
 
10026
        adc rdi, rdx
 
10027
        adc rsi, 0
 
10028
        add r12, r8
 
10029
        adc r9, rdi
 
10030
        adc r13, rsi
 
10031
        add r12, r8
 
10032
        adc r9, rdi
 
10033
        adc r13, rsi
 
10034
        mov qword ptr [-440+rbp], r12
 
10035
        mov r12, r10
 
10036
        mov rax, qword ptr [rcx]
 
10037
        mul qword ptr [112+rcx]
 
10038
        mov r8, rax
 
10039
        mov rdi, rdx
 
10040
        xor rsi, rsi
 
10041
        mov rax, qword ptr [8+rcx]
 
10042
        mul qword ptr [104+rcx]
 
10043
        add r8, rax
 
10044
        adc rdi, rdx
 
10045
        adc rsi, 0
 
10046
        mov rax, qword ptr [16+rcx]
 
10047
        mul qword ptr [96+rcx]
 
10048
        add r8, rax
 
10049
        adc rdi, rdx
 
10050
        adc rsi, 0
 
10051
        mov rax, qword ptr [24+rcx]
 
10052
        mul qword ptr [88+rcx]
 
10053
        add r8, rax
 
10054
        adc rdi, rdx
 
10055
        adc rsi, 0
 
10056
        mov rax, qword ptr [32+rcx]
 
10057
        mul qword ptr [80+rcx]
 
10058
        add r8, rax
 
10059
        adc rdi, rdx
 
10060
        adc rsi, 0
 
10061
        mov rax, qword ptr [40+rcx]
 
10062
        mul qword ptr [72+rcx]
 
10063
        add r8, rax
 
10064
        adc rdi, rdx
 
10065
        adc rsi, 0
 
10066
        mov rax, qword ptr [48+rcx]
 
10067
        mul qword ptr [64+rcx]
 
10068
        add r8, rax
 
10069
        adc rdi, rdx
 
10070
        adc rsi, 0
 
10071
        mov rdx, r13
 
10072
        mov rbx, rdi
 
10073
        mov r13, rsi
 
10074
        add r9, r8
 
10075
        adc rdx, rbx
 
10076
        adc r12, r13
 
10077
        add r9, r8
 
10078
        adc rdx, rbx
 
10079
        adc r12, r13
 
10080
        mov rax, r12
 
10081
        mov r11, r13
 
10082
        mov r12, rdx
 
10083
        mov r13, rax
 
10084
        mov rdi, rbx
 
10085
        mov rsi, r11
 
10086
        mov rax, qword ptr [56+rcx]
 
10087
        mul rax
 
10088
        add r9, rax
 
10089
        adc r12, rdx
 
10090
        adc r13, 0
 
10091
        mov qword ptr [-432+rbp], r9
 
10092
        mov r9, r13
 
10093
        mov r13, r10
 
10094
        mov rax, qword ptr [rcx]
 
10095
        mul qword ptr [120+rcx]
 
10096
        mov r8, rax
 
10097
        mov rdi, rdx
 
10098
        xor rsi, rsi
 
10099
        mov rax, qword ptr [8+rcx]
 
10100
        mul qword ptr [112+rcx]
 
10101
        add r8, rax
 
10102
        adc rdi, rdx
 
10103
        adc rsi, 0
 
10104
        mov rax, qword ptr [16+rcx]
 
10105
        mul qword ptr [104+rcx]
 
10106
        add r8, rax
 
10107
        adc rdi, rdx
 
10108
        adc rsi, 0
 
10109
        mov rax, qword ptr [24+rcx]
 
10110
        mul qword ptr [96+rcx]
 
10111
        add r8, rax
 
10112
        adc rdi, rdx
 
10113
        adc rsi, 0
 
10114
        mov rax, qword ptr [32+rcx]
 
10115
        mul qword ptr [88+rcx]
 
10116
        add r8, rax
 
10117
        adc rdi, rdx
 
10118
        adc rsi, 0
 
10119
        mov rax, qword ptr [40+rcx]
 
10120
        mul qword ptr [80+rcx]
 
10121
        add r8, rax
 
10122
        adc rdi, rdx
 
10123
        adc rsi, 0
 
10124
        mov rax, qword ptr [48+rcx]
 
10125
        mul qword ptr [72+rcx]
 
10126
        add r8, rax
 
10127
        adc rdi, rdx
 
10128
        adc rsi, 0
 
10129
        mov rax, qword ptr [56+rcx]
 
10130
        mul qword ptr [64+rcx]
 
10131
        add r8, rax
 
10132
        adc rdi, rdx
 
10133
        adc rsi, 0
 
10134
        mov rax, r8
 
10135
        mov rdx, rdi
 
10136
        mov rbx, rsi
 
10137
        add r12, rax
 
10138
        adc r9, rdx
 
10139
        adc r13, rbx
 
10140
        add r12, rax
 
10141
        adc r9, rdx
 
10142
        adc r13, rbx
 
10143
        mov qword ptr [-424+rbp], r12
 
10144
        mov r8, rdx
 
10145
        mov rsi, rax
 
10146
        mov rdi, rbx
 
10147
        mov r12, r13
 
10148
        mov r13, r10
 
10149
        mov rax, qword ptr [rcx]
 
10150
        mul qword ptr [128+rcx]
 
10151
        mov rsi, rax
 
10152
        mov r8, rdx
 
10153
        xor rdi, rdi
 
10154
        mov rax, qword ptr [8+rcx]
 
10155
        mul qword ptr [120+rcx]
 
10156
        add rsi, rax
 
10157
        adc r8, rdx
 
10158
        adc rdi, 0
 
10159
        mov rax, qword ptr [16+rcx]
 
10160
        mul qword ptr [112+rcx]
 
10161
        add rsi, rax
 
10162
        adc r8, rdx
 
10163
        adc rdi, 0
 
10164
        mov rax, qword ptr [24+rcx]
 
10165
        mul qword ptr [104+rcx]
 
10166
        add rsi, rax
 
10167
        adc r8, rdx
 
10168
        adc rdi, 0
 
10169
        mov rax, qword ptr [32+rcx]
 
10170
        mul qword ptr [96+rcx]
 
10171
        add rsi, rax
 
10172
        adc r8, rdx
 
10173
        adc rdi, 0
 
10174
        mov rax, qword ptr [40+rcx]
 
10175
        mul qword ptr [88+rcx]
 
10176
        add rsi, rax
 
10177
        adc r8, rdx
 
10178
        adc rdi, 0
 
10179
        mov rax, qword ptr [48+rcx]
 
10180
        mul qword ptr [80+rcx]
 
10181
        add rsi, rax
 
10182
        adc r8, rdx
 
10183
        adc rdi, 0
 
10184
        mov rax, qword ptr [56+rcx]
 
10185
        mul qword ptr [72+rcx]
 
10186
        add rsi, rax
 
10187
        adc r8, rdx
 
10188
        adc rdi, 0
 
10189
        mov rax, rsi
 
10190
        mov rbx, r8
 
10191
        mov rdx, rdi
 
10192
        add r9, rax
 
10193
        adc r12, rbx
 
10194
        adc r13, rdx
 
10195
        add r9, rax
 
10196
        adc r12, rbx
 
10197
        adc r13, rdx
 
10198
        mov r11, rdx
 
10199
        mov r8, rax
 
10200
        mov rdi, rbx
 
10201
        mov rax, qword ptr [64+rcx]
 
10202
        mul rax
 
10203
        add r9, rax
 
10204
        adc r12, rdx
 
10205
        adc r13, 0
 
10206
        mov rsi, r11
 
10207
        mov qword ptr [-416+rbp], r9
 
10208
        mov r9, r13
 
10209
        mov rax, qword ptr [rcx]
 
10210
        mul qword ptr [136+rcx]
 
10211
        mov r8, rax
 
10212
        mov rdi, rdx
 
10213
        xor rsi, rsi
 
10214
        mov r13, r10
 
10215
        mov rax, qword ptr [8+rcx]
 
10216
        mul qword ptr [128+rcx]
 
10217
        add r8, rax
 
10218
        adc rdi, rdx
 
10219
        adc rsi, 0
 
10220
        mov rax, qword ptr [16+rcx]
 
10221
        mul qword ptr [120+rcx]
 
10222
        add r8, rax
 
10223
        adc rdi, rdx
 
10224
        adc rsi, 0
 
10225
        mov rax, qword ptr [24+rcx]
 
10226
        mul qword ptr [112+rcx]
 
10227
        add r8, rax
 
10228
        adc rdi, rdx
 
10229
        adc rsi, 0
 
10230
        mov rax, qword ptr [32+rcx]
 
10231
        mul qword ptr [104+rcx]
 
10232
        add r8, rax
 
10233
        adc rdi, rdx
 
10234
        adc rsi, 0
 
10235
        mov rax, qword ptr [40+rcx]
 
10236
        mul qword ptr [96+rcx]
 
10237
        add r8, rax
 
10238
        adc rdi, rdx
 
10239
        adc rsi, 0
 
10240
        mov rax, qword ptr [48+rcx]
 
10241
        mul qword ptr [88+rcx]
 
10242
        add r8, rax
 
10243
        adc rdi, rdx
 
10244
        adc rsi, 0
 
10245
        mov rax, qword ptr [56+rcx]
 
10246
        mul qword ptr [80+rcx]
 
10247
        add r8, rax
 
10248
        adc rdi, rdx
 
10249
        adc rsi, 0
 
10250
        mov rax, qword ptr [64+rcx]
 
10251
        mul qword ptr [72+rcx]
 
10252
        add r8, rax
 
10253
        adc rdi, rdx
 
10254
        adc rsi, 0
 
10255
        mov rbx, r8
 
10256
        mov rax, rdi
 
10257
        mov rdx, rsi
 
10258
        add r12, rbx
 
10259
        adc r9, rax
 
10260
        adc r13, rdx
 
10261
        add r12, rbx
 
10262
        adc r9, rax
 
10263
        adc r13, rdx
 
10264
        mov qword ptr [-408+rbp], r12
 
10265
        mov rdi, rdx
 
10266
        mov r8, rax
 
10267
        mov rsi, rbx
 
10268
        mov r12, r13
 
10269
        mov r13, r10
 
10270
        mov rax, qword ptr [rcx]
 
10271
        mul qword ptr [144+rcx]
 
10272
        mov rsi, rax
 
10273
        mov r8, rdx
 
10274
        xor rdi, rdi
 
10275
        mov rax, qword ptr [8+rcx]
 
10276
        mul qword ptr [136+rcx]
 
10277
        add rsi, rax
 
10278
        adc r8, rdx
 
10279
        adc rdi, 0
 
10280
        mov rax, qword ptr [16+rcx]
 
10281
        mul qword ptr [128+rcx]
 
10282
        add rsi, rax
 
10283
        adc r8, rdx
 
10284
        adc rdi, 0
 
10285
        mov rax, qword ptr [24+rcx]
 
10286
        mul qword ptr [120+rcx]
 
10287
        add rsi, rax
 
10288
        adc r8, rdx
 
10289
        adc rdi, 0
 
10290
        mov rax, qword ptr [32+rcx]
 
10291
        mul qword ptr [112+rcx]
 
10292
        add rsi, rax
 
10293
        adc r8, rdx
 
10294
        adc rdi, 0
 
10295
        mov rax, qword ptr [40+rcx]
 
10296
        mul qword ptr [104+rcx]
 
10297
        add rsi, rax
 
10298
        adc r8, rdx
 
10299
        adc rdi, 0
 
10300
        mov rax, qword ptr [48+rcx]
 
10301
        mul qword ptr [96+rcx]
 
10302
        add rsi, rax
 
10303
        adc r8, rdx
 
10304
        adc rdi, 0
 
10305
        mov rax, qword ptr [56+rcx]
 
10306
        mul qword ptr [88+rcx]
 
10307
        add rsi, rax
 
10308
        adc r8, rdx
 
10309
        adc rdi, 0
 
10310
        mov rax, qword ptr [64+rcx]
 
10311
        mul qword ptr [80+rcx]
 
10312
        add rsi, rax
 
10313
        adc r8, rdx
 
10314
        adc rdi, 0
 
10315
        mov rax, rsi
 
10316
        mov rbx, r8
 
10317
        mov rdx, rdi
 
10318
        add r9, rax
 
10319
        adc r12, rbx
 
10320
        adc r13, rdx
 
10321
        add r9, rax
 
10322
        adc r12, rbx
 
10323
        adc r13, rdx
 
10324
        mov r11, rdx
 
10325
        mov r8, rax
 
10326
        mov rdi, rbx
 
10327
        mov rax, qword ptr [72+rcx]
 
10328
        mul rax
 
10329
        add r9, rax
 
10330
        adc r12, rdx
 
10331
        adc r13, 0
 
10332
        mov rsi, r11
 
10333
        mov qword ptr [-400+rbp], r9
 
10334
        mov r9, r13
 
10335
        mov rax, qword ptr [rcx]
 
10336
        mul qword ptr [152+rcx]
 
10337
        mov r8, rax
 
10338
        mov rdi, rdx
 
10339
        xor rsi, rsi
 
10340
        mov r13, r10
 
10341
        mov rax, qword ptr [8+rcx]
 
10342
        mul qword ptr [144+rcx]
 
10343
        add r8, rax
 
10344
        adc rdi, rdx
 
10345
        adc rsi, 0
 
10346
        mov rax, qword ptr [16+rcx]
 
10347
        mul qword ptr [136+rcx]
 
10348
        add r8, rax
 
10349
        adc rdi, rdx
 
10350
        adc rsi, 0
 
10351
        mov rax, qword ptr [24+rcx]
 
10352
        mul qword ptr [128+rcx]
 
10353
        add r8, rax
 
10354
        adc rdi, rdx
 
10355
        adc rsi, 0
 
10356
        mov rax, qword ptr [32+rcx]
 
10357
        mul qword ptr [120+rcx]
 
10358
        add r8, rax
 
10359
        adc rdi, rdx
 
10360
        adc rsi, 0
 
10361
        mov rax, qword ptr [40+rcx]
 
10362
        mul qword ptr [112+rcx]
 
10363
        add r8, rax
 
10364
        adc rdi, rdx
 
10365
        adc rsi, 0
 
10366
        mov rax, qword ptr [48+rcx]
 
10367
        mul qword ptr [104+rcx]
 
10368
        add r8, rax
 
10369
        adc rdi, rdx
 
10370
        adc rsi, 0
 
10371
        mov rax, qword ptr [56+rcx]
 
10372
        mul qword ptr [96+rcx]
 
10373
        add r8, rax
 
10374
        adc rdi, rdx
 
10375
        adc rsi, 0
 
10376
        mov rax, qword ptr [64+rcx]
 
10377
        mul qword ptr [88+rcx]
 
10378
        add r8, rax
 
10379
        adc rdi, rdx
 
10380
        adc rsi, 0
 
10381
        mov rax, qword ptr [72+rcx]
 
10382
        mul qword ptr [80+rcx]
 
10383
        add r8, rax
 
10384
        adc rdi, rdx
 
10385
        adc rsi, 0
 
10386
        mov rbx, r8
 
10387
        mov rax, rdi
 
10388
        mov rdx, rsi
 
10389
        add r12, rbx
 
10390
        adc r9, rax
 
10391
        adc r13, rdx
 
10392
        add r12, rbx
 
10393
        adc r9, rax
 
10394
        adc r13, rdx
 
10395
        mov qword ptr [-392+rbp], r12
 
10396
        mov rdi, rdx
 
10397
        mov r8, rax
 
10398
        mov rsi, rbx
 
10399
        mov r12, r13
 
10400
        mov r13, r10
 
10401
        mov rax, qword ptr [rcx]
 
10402
        mul qword ptr [160+rcx]
 
10403
        mov rsi, rax
 
10404
        mov r8, rdx
 
10405
        xor rdi, rdi
 
10406
        mov rax, qword ptr [8+rcx]
 
10407
        mul qword ptr [152+rcx]
 
10408
        add rsi, rax
 
10409
        adc r8, rdx
 
10410
        adc rdi, 0
 
10411
        mov rax, qword ptr [16+rcx]
 
10412
        mul qword ptr [144+rcx]
 
10413
        add rsi, rax
 
10414
        adc r8, rdx
 
10415
        adc rdi, 0
 
10416
        mov rax, qword ptr [24+rcx]
 
10417
        mul qword ptr [136+rcx]
 
10418
        add rsi, rax
 
10419
        adc r8, rdx
 
10420
        adc rdi, 0
 
10421
        mov rax, qword ptr [32+rcx]
 
10422
        mul qword ptr [128+rcx]
 
10423
        add rsi, rax
 
10424
        adc r8, rdx
 
10425
        adc rdi, 0
 
10426
        mov rax, qword ptr [40+rcx]
 
10427
        mul qword ptr [120+rcx]
 
10428
        add rsi, rax
 
10429
        adc r8, rdx
 
10430
        adc rdi, 0
 
10431
        mov rax, qword ptr [48+rcx]
 
10432
        mul qword ptr [112+rcx]
 
10433
        add rsi, rax
 
10434
        adc r8, rdx
 
10435
        adc rdi, 0
 
10436
        mov rax, qword ptr [56+rcx]
 
10437
        mul qword ptr [104+rcx]
 
10438
        add rsi, rax
 
10439
        adc r8, rdx
 
10440
        adc rdi, 0
 
10441
        mov rax, qword ptr [64+rcx]
 
10442
        mul qword ptr [96+rcx]
 
10443
        add rsi, rax
 
10444
        adc r8, rdx
 
10445
        adc rdi, 0
 
10446
        mov rax, qword ptr [72+rcx]
 
10447
        mul qword ptr [88+rcx]
 
10448
        add rsi, rax
 
10449
        adc r8, rdx
 
10450
        adc rdi, 0
 
10451
        mov rax, rsi
 
10452
        mov rbx, r8
 
10453
        mov rdx, rdi
 
10454
        add r9, rax
 
10455
        adc r12, rbx
 
10456
        adc r13, rdx
 
10457
        add r9, rax
 
10458
        adc r12, rbx
 
10459
        adc r13, rdx
 
10460
        mov r11, rdx
 
10461
        mov r8, rax
 
10462
        mov rdi, rbx
 
10463
        mov rax, qword ptr [80+rcx]
 
10464
        mul rax
 
10465
        add r9, rax
 
10466
        adc r12, rdx
 
10467
        adc r13, 0
 
10468
        mov rsi, r11
 
10469
        mov qword ptr [-384+rbp], r9
 
10470
        mov r9, r13
 
10471
        mov rax, qword ptr [rcx]
 
10472
        mul qword ptr [168+rcx]
 
10473
        mov r8, rax
 
10474
        mov rdi, rdx
 
10475
        xor rsi, rsi
 
10476
        mov r13, r10
 
10477
        mov rax, qword ptr [8+rcx]
 
10478
        mul qword ptr [160+rcx]
 
10479
        add r8, rax
 
10480
        adc rdi, rdx
 
10481
        adc rsi, 0
 
10482
        mov rax, qword ptr [16+rcx]
 
10483
        mul qword ptr [152+rcx]
 
10484
        add r8, rax
 
10485
        adc rdi, rdx
 
10486
        adc rsi, 0
 
10487
        mov rax, qword ptr [24+rcx]
 
10488
        mul qword ptr [144+rcx]
 
10489
        add r8, rax
 
10490
        adc rdi, rdx
 
10491
        adc rsi, 0
 
10492
        mov rax, qword ptr [32+rcx]
 
10493
        mul qword ptr [136+rcx]
 
10494
        add r8, rax
 
10495
        adc rdi, rdx
 
10496
        adc rsi, 0
 
10497
        mov rax, qword ptr [40+rcx]
 
10498
        mul qword ptr [128+rcx]
 
10499
        add r8, rax
 
10500
        adc rdi, rdx
 
10501
        adc rsi, 0
 
10502
        mov rax, qword ptr [48+rcx]
 
10503
        mul qword ptr [120+rcx]
 
10504
        add r8, rax
 
10505
        adc rdi, rdx
 
10506
        adc rsi, 0
 
10507
        mov rax, qword ptr [56+rcx]
 
10508
        mul qword ptr [112+rcx]
 
10509
        add r8, rax
 
10510
        adc rdi, rdx
 
10511
        adc rsi, 0
 
10512
        mov rax, qword ptr [64+rcx]
 
10513
        mul qword ptr [104+rcx]
 
10514
        add r8, rax
 
10515
        adc rdi, rdx
 
10516
        adc rsi, 0
 
10517
        mov rax, qword ptr [72+rcx]
 
10518
        mul qword ptr [96+rcx]
 
10519
        add r8, rax
 
10520
        adc rdi, rdx
 
10521
        adc rsi, 0
 
10522
        mov rax, qword ptr [80+rcx]
 
10523
        mul qword ptr [88+rcx]
 
10524
        add r8, rax
 
10525
        adc rdi, rdx
 
10526
        adc rsi, 0
 
10527
        mov rbx, r8
 
10528
        mov rax, rdi
 
10529
        mov rdx, rsi
 
10530
        add r12, rbx
 
10531
        adc r9, rax
 
10532
        adc r13, rdx
 
10533
        add r12, rbx
 
10534
        adc r9, rax
 
10535
        adc r13, rdx
 
10536
        mov qword ptr [-376+rbp], r12
 
10537
        mov rdi, rdx
 
10538
        mov r8, rax
 
10539
        mov rsi, rbx
 
10540
        mov r12, r13
 
10541
        mov r13, r10
 
10542
        mov rax, qword ptr [rcx]
 
10543
        mul qword ptr [176+rcx]
 
10544
        mov rsi, rax
 
10545
        mov r8, rdx
 
10546
        xor rdi, rdi
 
10547
        mov rax, qword ptr [8+rcx]
 
10548
        mul qword ptr [168+rcx]
 
10549
        add rsi, rax
 
10550
        adc r8, rdx
 
10551
        adc rdi, 0
 
10552
        mov rax, qword ptr [16+rcx]
 
10553
        mul qword ptr [160+rcx]
 
10554
        add rsi, rax
 
10555
        adc r8, rdx
 
10556
        adc rdi, 0
 
10557
        mov rax, qword ptr [24+rcx]
 
10558
        mul qword ptr [152+rcx]
 
10559
        add rsi, rax
 
10560
        adc r8, rdx
 
10561
        adc rdi, 0
 
10562
        mov rax, qword ptr [32+rcx]
 
10563
        mul qword ptr [144+rcx]
 
10564
        add rsi, rax
 
10565
        adc r8, rdx
 
10566
        adc rdi, 0
 
10567
        mov rax, qword ptr [40+rcx]
 
10568
        mul qword ptr [136+rcx]
 
10569
        add rsi, rax
 
10570
        adc r8, rdx
 
10571
        adc rdi, 0
 
10572
        mov rax, qword ptr [48+rcx]
 
10573
        mul qword ptr [128+rcx]
 
10574
        add rsi, rax
 
10575
        adc r8, rdx
 
10576
        adc rdi, 0
 
10577
        mov rax, qword ptr [56+rcx]
 
10578
        mul qword ptr [120+rcx]
 
10579
        add rsi, rax
 
10580
        adc r8, rdx
 
10581
        adc rdi, 0
 
10582
        mov rax, qword ptr [64+rcx]
 
10583
        mul qword ptr [112+rcx]
 
10584
        add rsi, rax
 
10585
        adc r8, rdx
 
10586
        adc rdi, 0
 
10587
        mov rax, qword ptr [72+rcx]
 
10588
        mul qword ptr [104+rcx]
 
10589
        add rsi, rax
 
10590
        adc r8, rdx
 
10591
        adc rdi, 0
 
10592
        mov rax, qword ptr [80+rcx]
 
10593
        mul qword ptr [96+rcx]
 
10594
        add rsi, rax
 
10595
        adc r8, rdx
 
10596
        adc rdi, 0
 
10597
        mov rax, rsi
 
10598
        mov rbx, r8
 
10599
        mov rdx, rdi
 
10600
        add r9, rax
 
10601
        adc r12, rbx
 
10602
        adc r13, rdx
 
10603
        add r9, rax
 
10604
        adc r12, rbx
 
10605
        adc r13, rdx
 
10606
        mov r11, rdx
 
10607
        mov r8, rax
 
10608
        mov rdi, rbx
 
10609
        mov rax, qword ptr [88+rcx]
 
10610
        mul rax
 
10611
        add r9, rax
 
10612
        adc r12, rdx
 
10613
        adc r13, 0
 
10614
        mov rsi, r11
 
10615
        mov qword ptr [-368+rbp], r9
 
10616
        mov r9, r13
 
10617
        mov rax, qword ptr [rcx]
 
10618
        mul qword ptr [184+rcx]
 
10619
        mov r8, rax
 
10620
        mov rdi, rdx
 
10621
        xor rsi, rsi
 
10622
        mov r13, r10
 
10623
        mov rax, qword ptr [8+rcx]
 
10624
        mul qword ptr [176+rcx]
 
10625
        add r8, rax
 
10626
        adc rdi, rdx
 
10627
        adc rsi, 0
 
10628
        mov rax, qword ptr [16+rcx]
 
10629
        mul qword ptr [168+rcx]
 
10630
        add r8, rax
 
10631
        adc rdi, rdx
 
10632
        adc rsi, 0
 
10633
        mov rax, qword ptr [24+rcx]
 
10634
        mul qword ptr [160+rcx]
 
10635
        add r8, rax
 
10636
        adc rdi, rdx
 
10637
        adc rsi, 0
 
10638
        mov rax, qword ptr [32+rcx]
 
10639
        mul qword ptr [152+rcx]
 
10640
        add r8, rax
 
10641
        adc rdi, rdx
 
10642
        adc rsi, 0
 
10643
        mov rax, qword ptr [40+rcx]
 
10644
        mul qword ptr [144+rcx]
 
10645
        add r8, rax
 
10646
        adc rdi, rdx
 
10647
        adc rsi, 0
 
10648
        mov rax, qword ptr [48+rcx]
 
10649
        mul qword ptr [136+rcx]
 
10650
        add r8, rax
 
10651
        adc rdi, rdx
 
10652
        adc rsi, 0
 
10653
        mov rax, qword ptr [56+rcx]
 
10654
        mul qword ptr [128+rcx]
 
10655
        add r8, rax
 
10656
        adc rdi, rdx
 
10657
        adc rsi, 0
 
10658
        mov rax, qword ptr [64+rcx]
 
10659
        mul qword ptr [120+rcx]
 
10660
        add r8, rax
 
10661
        adc rdi, rdx
 
10662
        adc rsi, 0
 
10663
        mov rax, qword ptr [72+rcx]
 
10664
        mul qword ptr [112+rcx]
 
10665
        add r8, rax
 
10666
        adc rdi, rdx
 
10667
        adc rsi, 0
 
10668
        mov rax, qword ptr [80+rcx]
 
10669
        mul qword ptr [104+rcx]
 
10670
        add r8, rax
 
10671
        adc rdi, rdx
 
10672
        adc rsi, 0
 
10673
        mov rax, qword ptr [88+rcx]
 
10674
        mul qword ptr [96+rcx]
 
10675
        add r8, rax
 
10676
        adc rdi, rdx
 
10677
        adc rsi, 0
 
10678
        mov rbx, r8
 
10679
        mov rax, rdi
 
10680
        mov rdx, rsi
 
10681
        add r12, rbx
 
10682
        adc r9, rax
 
10683
        adc r13, rdx
 
10684
        add r12, rbx
 
10685
        adc r9, rax
 
10686
        adc r13, rdx
 
10687
        mov rdi, rdx
 
10688
        mov qword ptr [-360+rbp], r12
 
10689
        mov r8, rax
 
10690
        mov rsi, rbx
 
10691
        mov r12, r13
 
10692
        mov r13, r10
 
10693
        mov rax, qword ptr [rcx]
 
10694
        mul qword ptr [192+rcx]
 
10695
        mov rsi, rax
 
10696
        mov r8, rdx
 
10697
        xor rdi, rdi
 
10698
        mov rax, qword ptr [8+rcx]
 
10699
        mul qword ptr [184+rcx]
 
10700
        add rsi, rax
 
10701
        adc r8, rdx
 
10702
        adc rdi, 0
 
10703
        mov rax, qword ptr [16+rcx]
 
10704
        mul qword ptr [176+rcx]
 
10705
        add rsi, rax
 
10706
        adc r8, rdx
 
10707
        adc rdi, 0
 
10708
        mov rax, qword ptr [24+rcx]
 
10709
        mul qword ptr [168+rcx]
 
10710
        add rsi, rax
 
10711
        adc r8, rdx
 
10712
        adc rdi, 0
 
10713
        mov rax, qword ptr [32+rcx]
 
10714
        mul qword ptr [160+rcx]
 
10715
        add rsi, rax
 
10716
        adc r8, rdx
 
10717
        adc rdi, 0
 
10718
        mov rax, qword ptr [40+rcx]
 
10719
        mul qword ptr [152+rcx]
 
10720
        add rsi, rax
 
10721
        adc r8, rdx
 
10722
        adc rdi, 0
 
10723
        mov rax, qword ptr [48+rcx]
 
10724
        mul qword ptr [144+rcx]
 
10725
        add rsi, rax
 
10726
        adc r8, rdx
 
10727
        adc rdi, 0
 
10728
        mov rax, qword ptr [56+rcx]
 
10729
        mul qword ptr [136+rcx]
 
10730
        add rsi, rax
 
10731
        adc r8, rdx
 
10732
        adc rdi, 0
 
10733
        mov rax, qword ptr [64+rcx]
 
10734
        mul qword ptr [128+rcx]
 
10735
        add rsi, rax
 
10736
        adc r8, rdx
 
10737
        adc rdi, 0
 
10738
        mov rax, qword ptr [72+rcx]
 
10739
        mul qword ptr [120+rcx]
 
10740
        add rsi, rax
 
10741
        adc r8, rdx
 
10742
        adc rdi, 0
 
10743
        mov rax, qword ptr [80+rcx]
 
10744
        mul qword ptr [112+rcx]
 
10745
        add rsi, rax
 
10746
        adc r8, rdx
 
10747
        adc rdi, 0
 
10748
        mov rax, qword ptr [88+rcx]
 
10749
        mul qword ptr [104+rcx]
 
10750
        add rsi, rax
 
10751
        adc r8, rdx
 
10752
        adc rdi, 0
 
10753
        mov rbx, r8
 
10754
        mov rax, rdi
 
10755
        add r9, rsi
 
10756
        adc r12, rbx
 
10757
        adc r13, rax
 
10758
        add r9, rsi
 
10759
        adc r12, rbx
 
10760
        adc r13, rax
 
10761
        mov r11, rax
 
10762
        mov r8, rbx
 
10763
        mov rax, qword ptr [96+rcx]
 
10764
        mul rax
 
10765
        add r9, rax
 
10766
        adc r12, rdx
 
10767
        adc r13, 0
 
10768
        mov rdi, r11
 
10769
        mov qword ptr [-352+rbp], r9
 
10770
        mov r9, r13
 
10771
        mov rax, qword ptr [rcx]
 
10772
        mul qword ptr [200+rcx]
 
10773
        mov rsi, rax
 
10774
        mov r8, rdx
 
10775
        xor rdi, rdi
 
10776
        mov r13, r10
 
10777
        mov rax, qword ptr [8+rcx]
 
10778
        mul qword ptr [192+rcx]
 
10779
        add rsi, rax
 
10780
        adc r8, rdx
 
10781
        adc rdi, 0
 
10782
        mov rax, qword ptr [16+rcx]
 
10783
        mul qword ptr [184+rcx]
 
10784
        add rsi, rax
 
10785
        adc r8, rdx
 
10786
        adc rdi, 0
 
10787
        mov rax, qword ptr [24+rcx]
 
10788
        mul qword ptr [176+rcx]
 
10789
        add rsi, rax
 
10790
        adc r8, rdx
 
10791
        adc rdi, 0
 
10792
        mov rax, qword ptr [32+rcx]
 
10793
        mul qword ptr [168+rcx]
 
10794
        add rsi, rax
 
10795
        adc r8, rdx
 
10796
        adc rdi, 0
 
10797
        mov rax, qword ptr [40+rcx]
 
10798
        mul qword ptr [160+rcx]
 
10799
        add rsi, rax
 
10800
        adc r8, rdx
 
10801
        adc rdi, 0
 
10802
        mov rax, qword ptr [48+rcx]
 
10803
        mul qword ptr [152+rcx]
 
10804
        add rsi, rax
 
10805
        adc r8, rdx
 
10806
        adc rdi, 0
 
10807
        mov rax, qword ptr [56+rcx]
 
10808
        mul qword ptr [144+rcx]
 
10809
        add rsi, rax
 
10810
        adc r8, rdx
 
10811
        adc rdi, 0
 
10812
        mov rax, qword ptr [64+rcx]
 
10813
        mul qword ptr [136+rcx]
 
10814
        add rsi, rax
 
10815
        adc r8, rdx
 
10816
        adc rdi, 0
 
10817
        mov rax, qword ptr [72+rcx]
 
10818
        mul qword ptr [128+rcx]
 
10819
        add rsi, rax
 
10820
        adc r8, rdx
 
10821
        adc rdi, 0
 
10822
        mov rax, qword ptr [80+rcx]
 
10823
        mul qword ptr [120+rcx]
 
10824
        add rsi, rax
 
10825
        adc r8, rdx
 
10826
        adc rdi, 0
 
10827
        mov rax, qword ptr [88+rcx]
 
10828
        mul qword ptr [112+rcx]
 
10829
        add rsi, rax
 
10830
        adc r8, rdx
 
10831
        adc rdi, 0
 
10832
        mov rax, qword ptr [96+rcx]
 
10833
        mul qword ptr [104+rcx]
 
10834
        add rsi, rax
 
10835
        adc r8, rdx
 
10836
        adc rdi, 0
 
10837
        add r12, rsi
 
10838
        adc r9, r8
 
10839
        adc r13, rdi
 
10840
        add r12, rsi
 
10841
        adc r9, r8
 
10842
        adc r13, rdi
 
10843
        mov qword ptr [-344+rbp], r12
 
10844
        mov r12, r10
 
10845
        mov rax, qword ptr [rcx]
 
10846
        mul qword ptr [208+rcx]
 
10847
        mov rsi, rax
 
10848
        mov r8, rdx
 
10849
        xor rdi, rdi
 
10850
        mov rax, qword ptr [8+rcx]
 
10851
        mul qword ptr [200+rcx]
 
10852
        add rsi, rax
 
10853
        adc r8, rdx
 
10854
        adc rdi, 0
 
10855
        mov rax, qword ptr [16+rcx]
 
10856
        mul qword ptr [192+rcx]
 
10857
        add rsi, rax
 
10858
        adc r8, rdx
 
10859
        adc rdi, 0
 
10860
        mov rax, qword ptr [24+rcx]
 
10861
        mul qword ptr [184+rcx]
 
10862
        add rsi, rax
 
10863
        adc r8, rdx
 
10864
        adc rdi, 0
 
10865
        mov rax, qword ptr [32+rcx]
 
10866
        mul qword ptr [176+rcx]
 
10867
        add rsi, rax
 
10868
        adc r8, rdx
 
10869
        adc rdi, 0
 
10870
        mov rax, qword ptr [40+rcx]
 
10871
        mul qword ptr [168+rcx]
 
10872
        add rsi, rax
 
10873
        adc r8, rdx
 
10874
        adc rdi, 0
 
10875
        mov rax, qword ptr [48+rcx]
 
10876
        mul qword ptr [160+rcx]
 
10877
        add rsi, rax
 
10878
        adc r8, rdx
 
10879
        adc rdi, 0
 
10880
        mov rax, qword ptr [56+rcx]
 
10881
        mul qword ptr [152+rcx]
 
10882
        add rsi, rax
 
10883
        adc r8, rdx
 
10884
        adc rdi, 0
 
10885
        mov rax, qword ptr [64+rcx]
 
10886
        mul qword ptr [144+rcx]
 
10887
        add rsi, rax
 
10888
        adc r8, rdx
 
10889
        adc rdi, 0
 
10890
        mov rax, qword ptr [72+rcx]
 
10891
        mul qword ptr [136+rcx]
 
10892
        add rsi, rax
 
10893
        adc r8, rdx
 
10894
        adc rdi, 0
 
10895
        mov rax, qword ptr [80+rcx]
 
10896
        mul qword ptr [128+rcx]
 
10897
        add rsi, rax
 
10898
        adc r8, rdx
 
10899
        adc rdi, 0
 
10900
        mov rax, qword ptr [88+rcx]
 
10901
        mul qword ptr [120+rcx]
 
10902
        add rsi, rax
 
10903
        adc r8, rdx
 
10904
        adc rdi, 0
 
10905
        mov rax, qword ptr [96+rcx]
 
10906
        mul qword ptr [112+rcx]
 
10907
        add rsi, rax
 
10908
        adc r8, rdx
 
10909
        adc rdi, 0
 
10910
        mov rdx, r13
 
10911
        mov rbx, r8
 
10912
        mov r13, rdi
 
10913
        add r9, rsi
 
10914
        adc rdx, rbx
 
10915
        adc r12, r13
 
10916
        add r9, rsi
 
10917
        adc rdx, rbx
 
10918
        adc r12, r13
 
10919
        mov rax, r12
 
10920
        mov r11, r13
 
10921
        mov r12, rdx
 
10922
        mov r13, rax
 
10923
        mov r8, rbx
 
10924
        mov rdi, r11
 
10925
        mov rax, qword ptr [104+rcx]
 
10926
        mul rax
 
10927
        add r9, rax
 
10928
        adc r12, rdx
 
10929
        adc r13, 0
 
10930
        mov qword ptr [-336+rbp], r9
 
10931
        mov r9, r13
 
10932
        mov r13, r10
 
10933
        mov rax, qword ptr [rcx]
 
10934
        mul qword ptr [216+rcx]
 
10935
        mov rsi, rax
 
10936
        mov r8, rdx
 
10937
        xor rdi, rdi
 
10938
        mov rax, qword ptr [8+rcx]
 
10939
        mul qword ptr [208+rcx]
 
10940
        add rsi, rax
 
10941
        adc r8, rdx
 
10942
        adc rdi, 0
 
10943
        mov rax, qword ptr [16+rcx]
 
10944
        mul qword ptr [200+rcx]
 
10945
        add rsi, rax
 
10946
        adc r8, rdx
 
10947
        adc rdi, 0
 
10948
        mov rax, qword ptr [24+rcx]
 
10949
        mul qword ptr [192+rcx]
 
10950
        add rsi, rax
 
10951
        adc r8, rdx
 
10952
        adc rdi, 0
 
10953
        mov rax, qword ptr [32+rcx]
 
10954
        mul qword ptr [184+rcx]
 
10955
        add rsi, rax
 
10956
        adc r8, rdx
 
10957
        adc rdi, 0
 
10958
        mov rax, qword ptr [40+rcx]
 
10959
        mul qword ptr [176+rcx]
 
10960
        add rsi, rax
 
10961
        adc r8, rdx
 
10962
        adc rdi, 0
 
10963
        mov rax, qword ptr [48+rcx]
 
10964
        mul qword ptr [168+rcx]
 
10965
        add rsi, rax
 
10966
        adc r8, rdx
 
10967
        adc rdi, 0
 
10968
        mov rax, qword ptr [56+rcx]
 
10969
        mul qword ptr [160+rcx]
 
10970
        add rsi, rax
 
10971
        adc r8, rdx
 
10972
        adc rdi, 0
 
10973
        mov rax, qword ptr [64+rcx]
 
10974
        mul qword ptr [152+rcx]
 
10975
        add rsi, rax
 
10976
        adc r8, rdx
 
10977
        adc rdi, 0
 
10978
        mov rax, qword ptr [72+rcx]
 
10979
        mul qword ptr [144+rcx]
 
10980
        add rsi, rax
 
10981
        adc r8, rdx
 
10982
        adc rdi, 0
 
10983
        mov rax, qword ptr [80+rcx]
 
10984
        mul qword ptr [136+rcx]
 
10985
        add rsi, rax
 
10986
        adc r8, rdx
 
10987
        adc rdi, 0
 
10988
        mov rax, qword ptr [88+rcx]
 
10989
        mul qword ptr [128+rcx]
 
10990
        add rsi, rax
 
10991
        adc r8, rdx
 
10992
        adc rdi, 0
 
10993
        mov rax, qword ptr [96+rcx]
 
10994
        mul qword ptr [120+rcx]
 
10995
        add rsi, rax
 
10996
        adc r8, rdx
 
10997
        adc rdi, 0
 
10998
        mov rax, qword ptr [104+rcx]
 
10999
        mul qword ptr [112+rcx]
 
11000
        add rsi, rax
 
11001
        adc r8, rdx
 
11002
        adc rdi, 0
 
11003
        add r12, rsi
 
11004
        adc r9, r8
 
11005
        adc r13, rdi
 
11006
        add r12, rsi
 
11007
        adc r9, r8
 
11008
        adc r13, rdi
 
11009
        mov qword ptr [-328+rbp], r12
 
11010
        mov rax, qword ptr [rcx]
 
11011
        mul qword ptr [224+rcx]
 
11012
        mov rsi, rax
 
11013
        mov r8, rdx
 
11014
        xor rdi, rdi
 
11015
        mov rax, qword ptr [8+rcx]
 
11016
        mul qword ptr [216+rcx]
 
11017
        add rsi, rax
 
11018
        adc r8, rdx
 
11019
        adc rdi, 0
 
11020
        mov rax, qword ptr [16+rcx]
 
11021
        mul qword ptr [208+rcx]
 
11022
        add rsi, rax
 
11023
        adc r8, rdx
 
11024
        adc rdi, 0
 
11025
        mov rax, qword ptr [24+rcx]
 
11026
        mul qword ptr [200+rcx]
 
11027
        add rsi, rax
 
11028
        adc r8, rdx
 
11029
        adc rdi, 0
 
11030
        mov rax, qword ptr [32+rcx]
 
11031
        mul qword ptr [192+rcx]
 
11032
        add rsi, rax
 
11033
        adc r8, rdx
 
11034
        adc rdi, 0
 
11035
        mov rax, qword ptr [40+rcx]
 
11036
        mul qword ptr [184+rcx]
 
11037
        add rsi, rax
 
11038
        adc r8, rdx
 
11039
        adc rdi, 0
 
11040
        mov rax, qword ptr [48+rcx]
 
11041
        mul qword ptr [176+rcx]
 
11042
        add rsi, rax
 
11043
        adc r8, rdx
 
11044
        adc rdi, 0
 
11045
        mov rax, qword ptr [56+rcx]
 
11046
        mul qword ptr [168+rcx]
 
11047
        add rsi, rax
 
11048
        adc r8, rdx
 
11049
        adc rdi, 0
 
11050
        mov rax, qword ptr [64+rcx]
 
11051
        mul qword ptr [160+rcx]
 
11052
        add rsi, rax
 
11053
        adc r8, rdx
 
11054
        adc rdi, 0
 
11055
        mov rax, qword ptr [72+rcx]
 
11056
        mul qword ptr [152+rcx]
 
11057
        add rsi, rax
 
11058
        adc r8, rdx
 
11059
        adc rdi, 0
 
11060
        mov rax, qword ptr [80+rcx]
 
11061
        mul qword ptr [144+rcx]
 
11062
        add rsi, rax
 
11063
        adc r8, rdx
 
11064
        adc rdi, 0
 
11065
        mov rax, qword ptr [88+rcx]
 
11066
        mul qword ptr [136+rcx]
 
11067
        add rsi, rax
 
11068
        adc r8, rdx
 
11069
        adc rdi, 0
 
11070
        mov rax, qword ptr [96+rcx]
 
11071
        mul qword ptr [128+rcx]
 
11072
        add rsi, rax
 
11073
        adc r8, rdx
 
11074
        adc rdi, 0
 
11075
        mov rax, qword ptr [104+rcx]
 
11076
        mul qword ptr [120+rcx]
 
11077
        add rsi, rax
 
11078
        adc r8, rdx
 
11079
        adc rdi, 0
 
11080
        mov rax, r13
 
11081
        mov rdx, r10
 
11082
        mov rbx, r8
 
11083
        mov r12, rdi
 
11084
        add r9, rsi
 
11085
        adc rax, rbx
 
11086
        adc rdx, r12
 
11087
        add r9, rsi
 
11088
        adc rax, rbx
 
11089
        adc rdx, r12
 
11090
        mov rdi, rdx
 
11091
        mov r11, r12
 
11092
        mov r8, rbx
 
11093
        mov r12, rax
 
11094
        mov r13, rdi
 
11095
        mov rdi, r11
 
11096
        mov rax, qword ptr [112+rcx]
 
11097
        mul rax
 
11098
        add r9, rax
 
11099
        adc r12, rdx
 
11100
        adc r13, 0
 
11101
        mov qword ptr [-320+rbp], r9
 
11102
        mov rbx, r13
 
11103
        mov r9, r10
 
11104
        mov rax, qword ptr [rcx]
 
11105
        mul qword ptr [232+rcx]
 
11106
        mov rsi, rax
 
11107
        mov r8, rdx
 
11108
        xor rdi, rdi
 
11109
        mov rax, qword ptr [8+rcx]
 
11110
        mul qword ptr [224+rcx]
 
11111
        add rsi, rax
 
11112
        adc r8, rdx
 
11113
        adc rdi, 0
 
11114
        mov rax, qword ptr [16+rcx]
 
11115
        mul qword ptr [216+rcx]
 
11116
        add rsi, rax
 
11117
        adc r8, rdx
 
11118
        adc rdi, 0
 
11119
        mov rax, qword ptr [24+rcx]
 
11120
        mul qword ptr [208+rcx]
 
11121
        add rsi, rax
 
11122
        adc r8, rdx
 
11123
        adc rdi, 0
 
11124
        mov rax, qword ptr [32+rcx]
 
11125
        mul qword ptr [200+rcx]
 
11126
        add rsi, rax
 
11127
        adc r8, rdx
 
11128
        adc rdi, 0
 
11129
        mov rax, qword ptr [40+rcx]
 
11130
        mul qword ptr [192+rcx]
 
11131
        add rsi, rax
 
11132
        adc r8, rdx
 
11133
        adc rdi, 0
 
11134
        mov rax, qword ptr [48+rcx]
 
11135
        mul qword ptr [184+rcx]
 
11136
        add rsi, rax
 
11137
        adc r8, rdx
 
11138
        adc rdi, 0
 
11139
        mov rax, qword ptr [56+rcx]
 
11140
        mul qword ptr [176+rcx]
 
11141
        add rsi, rax
 
11142
        adc r8, rdx
 
11143
        adc rdi, 0
 
11144
        mov rax, qword ptr [64+rcx]
 
11145
        mul qword ptr [168+rcx]
 
11146
        add rsi, rax
 
11147
        adc r8, rdx
 
11148
        adc rdi, 0
 
11149
        mov rax, qword ptr [72+rcx]
 
11150
        mul qword ptr [160+rcx]
 
11151
        add rsi, rax
 
11152
        adc r8, rdx
 
11153
        adc rdi, 0
 
11154
        mov rax, qword ptr [80+rcx]
 
11155
        mul qword ptr [152+rcx]
 
11156
        add rsi, rax
 
11157
        adc r8, rdx
 
11158
        adc rdi, 0
 
11159
        mov rax, qword ptr [88+rcx]
 
11160
        mul qword ptr [144+rcx]
 
11161
        add rsi, rax
 
11162
        adc r8, rdx
 
11163
        adc rdi, 0
 
11164
        mov rax, qword ptr [96+rcx]
 
11165
        mul qword ptr [136+rcx]
 
11166
        add rsi, rax
 
11167
        adc r8, rdx
 
11168
        adc rdi, 0
 
11169
        mov rax, qword ptr [104+rcx]
 
11170
        mul qword ptr [128+rcx]
 
11171
        add rsi, rax
 
11172
        adc r8, rdx
 
11173
        adc rdi, 0
 
11174
        mov rax, qword ptr [112+rcx]
 
11175
        mul qword ptr [120+rcx]
 
11176
        add rsi, rax
 
11177
        adc r8, rdx
 
11178
        adc rdi, 0
 
11179
        add r12, rsi
 
11180
        adc rbx, r8
 
11181
        adc r9, rdi
 
11182
        add r12, rsi
 
11183
        adc rbx, r8
 
11184
        adc r9, rdi
 
11185
        mov qword ptr [-312+rbp], r12
 
11186
        mov r13, r9
 
11187
        mov rax, qword ptr [rcx]
 
11188
        mul qword ptr [240+rcx]
 
11189
        mov rsi, rax
 
11190
        mov r8, rdx
 
11191
        xor rdi, rdi
 
11192
        mov rax, qword ptr [8+rcx]
 
11193
        mul qword ptr [232+rcx]
 
11194
        add rsi, rax
 
11195
        adc r8, rdx
 
11196
        adc rdi, 0
 
11197
        mov rax, qword ptr [16+rcx]
 
11198
        mul qword ptr [224+rcx]
 
11199
        add rsi, rax
 
11200
        adc r8, rdx
 
11201
        adc rdi, 0
 
11202
        mov rax, qword ptr [24+rcx]
 
11203
        mul qword ptr [216+rcx]
 
11204
        add rsi, rax
 
11205
        adc r8, rdx
 
11206
        adc rdi, 0
 
11207
        mov rax, qword ptr [32+rcx]
 
11208
        mul qword ptr [208+rcx]
 
11209
        add rsi, rax
 
11210
        adc r8, rdx
 
11211
        adc rdi, 0
 
11212
        mov rax, qword ptr [40+rcx]
 
11213
        mul qword ptr [200+rcx]
 
11214
        add rsi, rax
 
11215
        adc r8, rdx
 
11216
        adc rdi, 0
 
11217
        mov rax, qword ptr [48+rcx]
 
11218
        mul qword ptr [192+rcx]
 
11219
        add rsi, rax
 
11220
        adc r8, rdx
 
11221
        adc rdi, 0
 
11222
        mov rax, qword ptr [56+rcx]
 
11223
        mul qword ptr [184+rcx]
 
11224
        add rsi, rax
 
11225
        adc r8, rdx
 
11226
        adc rdi, 0
 
11227
        mov rax, qword ptr [64+rcx]
 
11228
        mul qword ptr [176+rcx]
 
11229
        add rsi, rax
 
11230
        adc r8, rdx
 
11231
        adc rdi, 0
 
11232
        mov rax, qword ptr [72+rcx]
 
11233
        mul qword ptr [168+rcx]
 
11234
        add rsi, rax
 
11235
        adc r8, rdx
 
11236
        adc rdi, 0
 
11237
        mov rax, qword ptr [80+rcx]
 
11238
        mul qword ptr [160+rcx]
 
11239
        add rsi, rax
 
11240
        adc r8, rdx
 
11241
        adc rdi, 0
 
11242
        mov rax, qword ptr [88+rcx]
 
11243
        mul qword ptr [152+rcx]
 
11244
        add rsi, rax
 
11245
        adc r8, rdx
 
11246
        adc rdi, 0
 
11247
        mov rax, qword ptr [96+rcx]
 
11248
        mul qword ptr [144+rcx]
 
11249
        add rsi, rax
 
11250
        adc r8, rdx
 
11251
        adc rdi, 0
 
11252
        mov rax, qword ptr [104+rcx]
 
11253
        mul qword ptr [136+rcx]
 
11254
        add rsi, rax
 
11255
        adc r8, rdx
 
11256
        adc rdi, 0
 
11257
        mov rax, qword ptr [112+rcx]
 
11258
        mul qword ptr [128+rcx]
 
11259
        add rsi, rax
 
11260
        adc r8, rdx
 
11261
        adc rdi, 0
 
11262
        mov rax, r10
 
11263
        mov r11, r8
 
11264
        mov rdx, rdi
 
11265
        add rbx, rsi
 
11266
        adc r13, r11
 
11267
        adc rax, rdx
 
11268
        add rbx, rsi
 
11269
        adc r13, r11
 
11270
        adc rax, rdx
 
11271
        mov r9, rdx
 
11272
        mov rdx, rax
 
11273
        mov r12, r13
 
11274
        mov r8, r11
 
11275
        mov r13, rdx
 
11276
        mov rdi, r9
 
11277
        mov rax, qword ptr [120+rcx]
 
11278
        mul rax
 
11279
        add rbx, rax
 
11280
        adc r12, rdx
 
11281
        adc r13, 0
 
11282
        mov qword ptr [-304+rbp], rbx
 
11283
        mov rbx, r13
 
11284
        mov r13, r10
 
11285
        mov rax, qword ptr [rcx]
 
11286
        mul qword ptr [248+rcx]
 
11287
        mov rsi, rax
 
11288
        mov r8, rdx
 
11289
        xor rdi, rdi
 
11290
        mov rax, qword ptr [8+rcx]
 
11291
        mul qword ptr [240+rcx]
 
11292
        add rsi, rax
 
11293
        adc r8, rdx
 
11294
        adc rdi, 0
 
11295
        mov rax, qword ptr [16+rcx]
 
11296
        mul qword ptr [232+rcx]
 
11297
        add rsi, rax
 
11298
        adc r8, rdx
 
11299
        adc rdi, 0
 
11300
        mov rax, qword ptr [24+rcx]
 
11301
        mul qword ptr [224+rcx]
 
11302
        add rsi, rax
 
11303
        adc r8, rdx
 
11304
        adc rdi, 0
 
11305
        mov rax, qword ptr [32+rcx]
 
11306
        mul qword ptr [216+rcx]
 
11307
        add rsi, rax
 
11308
        adc r8, rdx
 
11309
        adc rdi, 0
 
11310
        mov rax, qword ptr [40+rcx]
 
11311
        mul qword ptr [208+rcx]
 
11312
        add rsi, rax
 
11313
        adc r8, rdx
 
11314
        adc rdi, 0
 
11315
        mov rax, qword ptr [48+rcx]
 
11316
        mul qword ptr [200+rcx]
 
11317
        add rsi, rax
 
11318
        adc r8, rdx
 
11319
        adc rdi, 0
 
11320
        mov rax, qword ptr [56+rcx]
 
11321
        mul qword ptr [192+rcx]
 
11322
        add rsi, rax
 
11323
        adc r8, rdx
 
11324
        adc rdi, 0
 
11325
        mov rax, qword ptr [64+rcx]
 
11326
        mul qword ptr [184+rcx]
 
11327
        add rsi, rax
 
11328
        adc r8, rdx
 
11329
        adc rdi, 0
 
11330
        mov rax, qword ptr [72+rcx]
 
11331
        mul qword ptr [176+rcx]
 
11332
        add rsi, rax
 
11333
        adc r8, rdx
 
11334
        adc rdi, 0
 
11335
        mov rax, qword ptr [80+rcx]
 
11336
        mul qword ptr [168+rcx]
 
11337
        add rsi, rax
 
11338
        adc r8, rdx
 
11339
        adc rdi, 0
 
11340
        mov rax, qword ptr [88+rcx]
 
11341
        mul qword ptr [160+rcx]
 
11342
        add rsi, rax
 
11343
        adc r8, rdx
 
11344
        adc rdi, 0
 
11345
        mov rax, qword ptr [96+rcx]
 
11346
        mul qword ptr [152+rcx]
 
11347
        add rsi, rax
 
11348
        adc r8, rdx
 
11349
        adc rdi, 0
 
11350
        mov rax, qword ptr [104+rcx]
 
11351
        mul qword ptr [144+rcx]
 
11352
        add rsi, rax
 
11353
        adc r8, rdx
 
11354
        adc rdi, 0
 
11355
        mov rax, qword ptr [112+rcx]
 
11356
        mul qword ptr [136+rcx]
 
11357
        add rsi, rax
 
11358
        adc r8, rdx
 
11359
        adc rdi, 0
 
11360
        mov rax, qword ptr [120+rcx]
 
11361
        mul qword ptr [128+rcx]
 
11362
        add rsi, rax
 
11363
        adc r8, rdx
 
11364
        adc rdi, 0
 
11365
        add r12, rsi
 
11366
        adc rbx, r8
 
11367
        adc r13, rdi
 
11368
        add r12, rsi
 
11369
        adc rbx, r8
 
11370
        adc r13, rdi
 
11371
        mov qword ptr [-296+rbp], r12
 
11372
        mov r12, r13
 
11373
        mov r13, r10
 
11374
        mov rax, qword ptr [8+rcx]
 
11375
        mul qword ptr [248+rcx]
 
11376
        mov rsi, rax
 
11377
        mov r8, rdx
 
11378
        xor rdi, rdi
 
11379
        mov rax, qword ptr [16+rcx]
 
11380
        mul qword ptr [240+rcx]
 
11381
        add rsi, rax
 
11382
        adc r8, rdx
 
11383
        adc rdi, 0
 
11384
        mov rax, qword ptr [24+rcx]
 
11385
        mul qword ptr [232+rcx]
 
11386
        add rsi, rax
 
11387
        adc r8, rdx
 
11388
        adc rdi, 0
 
11389
        mov rax, qword ptr [32+rcx]
 
11390
        mul qword ptr [224+rcx]
 
11391
        add rsi, rax
 
11392
        adc r8, rdx
 
11393
        adc rdi, 0
 
11394
        mov rax, qword ptr [40+rcx]
 
11395
        mul qword ptr [216+rcx]
 
11396
        add rsi, rax
 
11397
        adc r8, rdx
 
11398
        adc rdi, 0
 
11399
        mov rax, qword ptr [48+rcx]
 
11400
        mul qword ptr [208+rcx]
 
11401
        add rsi, rax
 
11402
        adc r8, rdx
 
11403
        adc rdi, 0
 
11404
        mov rax, qword ptr [56+rcx]
 
11405
        mul qword ptr [200+rcx]
 
11406
        add rsi, rax
 
11407
        adc r8, rdx
 
11408
        adc rdi, 0
 
11409
        mov rax, qword ptr [64+rcx]
 
11410
        mul qword ptr [192+rcx]
 
11411
        add rsi, rax
 
11412
        adc r8, rdx
 
11413
        adc rdi, 0
 
11414
        mov rax, qword ptr [72+rcx]
 
11415
        mul qword ptr [184+rcx]
 
11416
        add rsi, rax
 
11417
        adc r8, rdx
 
11418
        adc rdi, 0
 
11419
        mov rax, qword ptr [80+rcx]
 
11420
        mul qword ptr [176+rcx]
 
11421
        add rsi, rax
 
11422
        adc r8, rdx
 
11423
        adc rdi, 0
 
11424
        mov rax, qword ptr [88+rcx]
 
11425
        mul qword ptr [168+rcx]
 
11426
        add rsi, rax
 
11427
        adc r8, rdx
 
11428
        adc rdi, 0
 
11429
        mov rax, qword ptr [96+rcx]
 
11430
        mul qword ptr [160+rcx]
 
11431
        add rsi, rax
 
11432
        adc r8, rdx
 
11433
        adc rdi, 0
 
11434
        mov rax, qword ptr [104+rcx]
 
11435
        mul qword ptr [152+rcx]
 
11436
        add rsi, rax
 
11437
        adc r8, rdx
 
11438
        adc rdi, 0
 
11439
        mov rax, qword ptr [112+rcx]
 
11440
        mul qword ptr [144+rcx]
 
11441
        add rsi, rax
 
11442
        adc r8, rdx
 
11443
        adc rdi, 0
 
11444
        mov rax, qword ptr [120+rcx]
 
11445
        mul qword ptr [136+rcx]
 
11446
        add rsi, rax
 
11447
        adc r8, rdx
 
11448
        adc rdi, 0
 
11449
        mov r11, r8
 
11450
        mov rax, rdi
 
11451
        add rbx, rsi
 
11452
        adc r12, r11
 
11453
        adc r13, rax
 
11454
        add rbx, rsi
 
11455
        adc r12, r11
 
11456
        adc r13, rax
 
11457
        mov r9, rax
 
11458
        mov r8, r11
 
11459
        mov rax, qword ptr [128+rcx]
 
11460
        mul rax
 
11461
        add rbx, rax
 
11462
        adc r12, rdx
 
11463
        adc r13, 0
 
11464
        mov rdi, r9
 
11465
        mov qword ptr [-288+rbp], rbx
 
11466
        mov r9, r13
 
11467
        mov rax, qword ptr [16+rcx]
 
11468
        mul qword ptr [248+rcx]
 
11469
        mov rsi, rax
 
11470
        mov r8, rdx
 
11471
        xor rdi, rdi
 
11472
        mov r13, r10
 
11473
        mov rax, qword ptr [24+rcx]
 
11474
        mul qword ptr [240+rcx]
 
11475
        add rsi, rax
 
11476
        adc r8, rdx
 
11477
        adc rdi, 0
 
11478
        mov rax, qword ptr [32+rcx]
 
11479
        mul qword ptr [232+rcx]
 
11480
        add rsi, rax
 
11481
        adc r8, rdx
 
11482
        adc rdi, 0
 
11483
        mov rax, qword ptr [40+rcx]
 
11484
        mul qword ptr [224+rcx]
 
11485
        add rsi, rax
 
11486
        adc r8, rdx
 
11487
        adc rdi, 0
 
11488
        mov rax, qword ptr [48+rcx]
 
11489
        mul qword ptr [216+rcx]
 
11490
        add rsi, rax
 
11491
        adc r8, rdx
 
11492
        adc rdi, 0
 
11493
        mov rax, qword ptr [56+rcx]
 
11494
        mul qword ptr [208+rcx]
 
11495
        add rsi, rax
 
11496
        adc r8, rdx
 
11497
        adc rdi, 0
 
11498
        mov rax, qword ptr [64+rcx]
 
11499
        mul qword ptr [200+rcx]
 
11500
        add rsi, rax
 
11501
        adc r8, rdx
 
11502
        adc rdi, 0
 
11503
        mov rax, qword ptr [72+rcx]
 
11504
        mul qword ptr [192+rcx]
 
11505
        add rsi, rax
 
11506
        adc r8, rdx
 
11507
        adc rdi, 0
 
11508
        mov rax, qword ptr [80+rcx]
 
11509
        mul qword ptr [184+rcx]
 
11510
        add rsi, rax
 
11511
        adc r8, rdx
 
11512
        adc rdi, 0
 
11513
        mov rax, qword ptr [88+rcx]
 
11514
        mul qword ptr [176+rcx]
 
11515
        add rsi, rax
 
11516
        adc r8, rdx
 
11517
        adc rdi, 0
 
11518
        mov rax, qword ptr [96+rcx]
 
11519
        mul qword ptr [168+rcx]
 
11520
        add rsi, rax
 
11521
        adc r8, rdx
 
11522
        adc rdi, 0
 
11523
        mov rax, qword ptr [104+rcx]
 
11524
        mul qword ptr [160+rcx]
 
11525
        add rsi, rax
 
11526
        adc r8, rdx
 
11527
        adc rdi, 0
 
11528
        mov rax, qword ptr [112+rcx]
 
11529
        mul qword ptr [152+rcx]
 
11530
        add rsi, rax
 
11531
        adc r8, rdx
 
11532
        adc rdi, 0
 
11533
        mov rax, qword ptr [120+rcx]
 
11534
        mul qword ptr [144+rcx]
 
11535
        add rsi, rax
 
11536
        adc r8, rdx
 
11537
        adc rdi, 0
 
11538
        mov rax, qword ptr [128+rcx]
 
11539
        mul qword ptr [136+rcx]
 
11540
        add rsi, rax
 
11541
        adc r8, rdx
 
11542
        adc rdi, 0
 
11543
        add r12, rsi
 
11544
        adc r9, r8
 
11545
        adc r13, rdi
 
11546
        add r12, rsi
 
11547
        adc r9, r8
 
11548
        adc r13, rdi
 
11549
        mov qword ptr [-280+rbp], r12
 
11550
        mov r12, r10
 
11551
        mov rax, qword ptr [24+rcx]
 
11552
        mul qword ptr [248+rcx]
 
11553
        mov rsi, rax
 
11554
        mov r8, rdx
 
11555
        xor rdi, rdi
 
11556
        mov rax, qword ptr [32+rcx]
 
11557
        mul qword ptr [240+rcx]
 
11558
        add rsi, rax
 
11559
        adc r8, rdx
 
11560
        adc rdi, 0
 
11561
        mov rax, qword ptr [40+rcx]
 
11562
        mul qword ptr [232+rcx]
 
11563
        add rsi, rax
 
11564
        adc r8, rdx
 
11565
        adc rdi, 0
 
11566
        mov rax, qword ptr [48+rcx]
 
11567
        mul qword ptr [224+rcx]
 
11568
        add rsi, rax
 
11569
        adc r8, rdx
 
11570
        adc rdi, 0
 
11571
        mov rax, qword ptr [56+rcx]
 
11572
        mul qword ptr [216+rcx]
 
11573
        add rsi, rax
 
11574
        adc r8, rdx
 
11575
        adc rdi, 0
 
11576
        mov rax, qword ptr [64+rcx]
 
11577
        mul qword ptr [208+rcx]
 
11578
        add rsi, rax
 
11579
        adc r8, rdx
 
11580
        adc rdi, 0
 
11581
        mov rax, qword ptr [72+rcx]
 
11582
        mul qword ptr [200+rcx]
 
11583
        add rsi, rax
 
11584
        adc r8, rdx
 
11585
        adc rdi, 0
 
11586
        mov rax, qword ptr [80+rcx]
 
11587
        mul qword ptr [192+rcx]
 
11588
        add rsi, rax
 
11589
        adc r8, rdx
 
11590
        adc rdi, 0
 
11591
        mov rax, qword ptr [88+rcx]
 
11592
        mul qword ptr [184+rcx]
 
11593
        add rsi, rax
 
11594
        adc r8, rdx
 
11595
        adc rdi, 0
 
11596
        mov rax, qword ptr [96+rcx]
 
11597
        mul qword ptr [176+rcx]
 
11598
        add rsi, rax
 
11599
        adc r8, rdx
 
11600
        adc rdi, 0
 
11601
        mov rax, qword ptr [104+rcx]
 
11602
        mul qword ptr [168+rcx]
 
11603
        add rsi, rax
 
11604
        adc r8, rdx
 
11605
        adc rdi, 0
 
11606
        mov rax, qword ptr [112+rcx]
 
11607
        mul qword ptr [160+rcx]
 
11608
        add rsi, rax
 
11609
        adc r8, rdx
 
11610
        adc rdi, 0
 
11611
        mov rax, qword ptr [120+rcx]
 
11612
        mul qword ptr [152+rcx]
 
11613
        add rsi, rax
 
11614
        adc r8, rdx
 
11615
        adc rdi, 0
 
11616
        mov rax, qword ptr [128+rcx]
 
11617
        mul qword ptr [144+rcx]
 
11618
        add rsi, rax
 
11619
        adc r8, rdx
 
11620
        adc rdi, 0
 
11621
        mov rdx, r13
 
11622
        mov rbx, r8
 
11623
        mov r13, rdi
 
11624
        add r9, rsi
 
11625
        adc rdx, rbx
 
11626
        adc r12, r13
 
11627
        add r9, rsi
 
11628
        adc rdx, rbx
 
11629
        adc r12, r13
 
11630
        mov rax, r12
 
11631
        mov r11, r13
 
11632
        mov r12, rdx
 
11633
        mov r13, rax
 
11634
        mov r8, rbx
 
11635
        mov rdi, r11
 
11636
        mov rax, qword ptr [136+rcx]
 
11637
        mul rax
 
11638
        add r9, rax
 
11639
        adc r12, rdx
 
11640
        adc r13, 0
 
11641
        mov qword ptr [-272+rbp], r9
 
11642
        mov r9, r13
 
11643
        mov r13, r10
 
11644
        mov rax, qword ptr [32+rcx]
 
11645
        mul qword ptr [248+rcx]
 
11646
        mov rsi, rax
 
11647
        mov r8, rdx
 
11648
        xor rdi, rdi
 
11649
        mov rax, qword ptr [40+rcx]
 
11650
        mul qword ptr [240+rcx]
 
11651
        add rsi, rax
 
11652
        adc r8, rdx
 
11653
        adc rdi, 0
 
11654
        mov rax, qword ptr [48+rcx]
 
11655
        mul qword ptr [232+rcx]
 
11656
        add rsi, rax
 
11657
        adc r8, rdx
 
11658
        adc rdi, 0
 
11659
        mov rax, qword ptr [56+rcx]
 
11660
        mul qword ptr [224+rcx]
 
11661
        add rsi, rax
 
11662
        adc r8, rdx
 
11663
        adc rdi, 0
 
11664
        mov rax, qword ptr [64+rcx]
 
11665
        mul qword ptr [216+rcx]
 
11666
        add rsi, rax
 
11667
        adc r8, rdx
 
11668
        adc rdi, 0
 
11669
        mov rax, qword ptr [72+rcx]
 
11670
        mul qword ptr [208+rcx]
 
11671
        add rsi, rax
 
11672
        adc r8, rdx
 
11673
        adc rdi, 0
 
11674
        mov rax, qword ptr [80+rcx]
 
11675
        mul qword ptr [200+rcx]
 
11676
        add rsi, rax
 
11677
        adc r8, rdx
 
11678
        adc rdi, 0
 
11679
        mov rax, qword ptr [88+rcx]
 
11680
        mul qword ptr [192+rcx]
 
11681
        add rsi, rax
 
11682
        adc r8, rdx
 
11683
        adc rdi, 0
 
11684
        mov rax, qword ptr [96+rcx]
 
11685
        mul qword ptr [184+rcx]
 
11686
        add rsi, rax
 
11687
        adc r8, rdx
 
11688
        adc rdi, 0
 
11689
        mov rax, qword ptr [104+rcx]
 
11690
        mul qword ptr [176+rcx]
 
11691
        add rsi, rax
 
11692
        adc r8, rdx
 
11693
        adc rdi, 0
 
11694
        mov rax, qword ptr [112+rcx]
 
11695
        mul qword ptr [168+rcx]
 
11696
        add rsi, rax
 
11697
        adc r8, rdx
 
11698
        adc rdi, 0
 
11699
        mov rax, qword ptr [120+rcx]
 
11700
        mul qword ptr [160+rcx]
 
11701
        add rsi, rax
 
11702
        adc r8, rdx
 
11703
        adc rdi, 0
 
11704
        mov rax, qword ptr [128+rcx]
 
11705
        mul qword ptr [152+rcx]
 
11706
        add rsi, rax
 
11707
        adc r8, rdx
 
11708
        adc rdi, 0
 
11709
        mov rax, qword ptr [136+rcx]
 
11710
        mul qword ptr [144+rcx]
 
11711
        add rsi, rax
 
11712
        adc r8, rdx
 
11713
        adc rdi, 0
 
11714
        add r12, rsi
 
11715
        adc r9, r8
 
11716
        adc r13, rdi
 
11717
        add r12, rsi
 
11718
        adc r9, r8
 
11719
        adc r13, rdi
 
11720
        mov qword ptr [-264+rbp], r12
 
11721
        mov rax, qword ptr [40+rcx]
 
11722
        mul qword ptr [248+rcx]
 
11723
        mov rsi, rax
 
11724
        mov r8, rdx
 
11725
        xor rdi, rdi
 
11726
        mov rax, qword ptr [48+rcx]
 
11727
        mul qword ptr [240+rcx]
 
11728
        add rsi, rax
 
11729
        adc r8, rdx
 
11730
        adc rdi, 0
 
11731
        mov rax, qword ptr [56+rcx]
 
11732
        mul qword ptr [232+rcx]
 
11733
        add rsi, rax
 
11734
        adc r8, rdx
 
11735
        adc rdi, 0
 
11736
        mov rax, qword ptr [64+rcx]
 
11737
        mul qword ptr [224+rcx]
 
11738
        add rsi, rax
 
11739
        adc r8, rdx
 
11740
        adc rdi, 0
 
11741
        mov rax, qword ptr [72+rcx]
 
11742
        mul qword ptr [216+rcx]
 
11743
        add rsi, rax
 
11744
        adc r8, rdx
 
11745
        adc rdi, 0
 
11746
        mov rax, qword ptr [80+rcx]
 
11747
        mul qword ptr [208+rcx]
 
11748
        add rsi, rax
 
11749
        adc r8, rdx
 
11750
        adc rdi, 0
 
11751
        mov rax, qword ptr [88+rcx]
 
11752
        mul qword ptr [200+rcx]
 
11753
        add rsi, rax
 
11754
        adc r8, rdx
 
11755
        adc rdi, 0
 
11756
        mov rax, qword ptr [96+rcx]
 
11757
        mul qword ptr [192+rcx]
 
11758
        add rsi, rax
 
11759
        adc r8, rdx
 
11760
        adc rdi, 0
 
11761
        mov rax, qword ptr [104+rcx]
 
11762
        mul qword ptr [184+rcx]
 
11763
        add rsi, rax
 
11764
        adc r8, rdx
 
11765
        adc rdi, 0
 
11766
        mov rax, qword ptr [112+rcx]
 
11767
        mul qword ptr [176+rcx]
 
11768
        add rsi, rax
 
11769
        adc r8, rdx
 
11770
        adc rdi, 0
 
11771
        mov rax, qword ptr [120+rcx]
 
11772
        mul qword ptr [168+rcx]
 
11773
        add rsi, rax
 
11774
        adc r8, rdx
 
11775
        adc rdi, 0
 
11776
        mov rax, qword ptr [128+rcx]
 
11777
        mul qword ptr [160+rcx]
 
11778
        add rsi, rax
 
11779
        adc r8, rdx
 
11780
        adc rdi, 0
 
11781
        mov rax, qword ptr [136+rcx]
 
11782
        mul qword ptr [152+rcx]
 
11783
        add rsi, rax
 
11784
        adc r8, rdx
 
11785
        adc rdi, 0
 
11786
        mov rax, r13
 
11787
        mov rdx, r10
 
11788
        mov rbx, r8
 
11789
        mov r12, rdi
 
11790
        add r9, rsi
 
11791
        adc rax, rbx
 
11792
        adc rdx, r12
 
11793
        add r9, rsi
 
11794
        adc rax, rbx
 
11795
        adc rdx, r12
 
11796
        mov rdi, rdx
 
11797
        mov r11, r12
 
11798
        mov r8, rbx
 
11799
        mov r12, rax
 
11800
        mov r13, rdi
 
11801
        mov rdi, r11
 
11802
        mov rax, qword ptr [144+rcx]
 
11803
        mul rax
 
11804
        add r9, rax
 
11805
        adc r12, rdx
 
11806
        adc r13, 0
 
11807
        mov r11, r10
 
11808
        mov qword ptr [-256+rbp], r9
 
11809
        mov r9, r13
 
11810
        mov rax, qword ptr [48+rcx]
 
11811
        mul qword ptr [248+rcx]
 
11812
        mov rsi, rax
 
11813
        mov r8, rdx
 
11814
        xor rdi, rdi
 
11815
        mov rax, qword ptr [56+rcx]
 
11816
        mul qword ptr [240+rcx]
 
11817
        add rsi, rax
 
11818
        adc r8, rdx
 
11819
        adc rdi, 0
 
11820
        mov rax, qword ptr [64+rcx]
 
11821
        mul qword ptr [232+rcx]
 
11822
        add rsi, rax
 
11823
        adc r8, rdx
 
11824
        adc rdi, 0
 
11825
        mov rax, qword ptr [72+rcx]
 
11826
        mul qword ptr [224+rcx]
 
11827
        add rsi, rax
 
11828
        adc r8, rdx
 
11829
        adc rdi, 0
 
11830
        mov rax, qword ptr [80+rcx]
 
11831
        mul qword ptr [216+rcx]
 
11832
        add rsi, rax
 
11833
        adc r8, rdx
 
11834
        adc rdi, 0
 
11835
        mov rax, qword ptr [88+rcx]
 
11836
        mul qword ptr [208+rcx]
 
11837
        add rsi, rax
 
11838
        adc r8, rdx
 
11839
        adc rdi, 0
 
11840
        mov rax, qword ptr [96+rcx]
 
11841
        mul qword ptr [200+rcx]
 
11842
        add rsi, rax
 
11843
        adc r8, rdx
 
11844
        adc rdi, 0
 
11845
        mov rax, qword ptr [104+rcx]
 
11846
        mul qword ptr [192+rcx]
 
11847
        add rsi, rax
 
11848
        adc r8, rdx
 
11849
        adc rdi, 0
 
11850
        mov rax, qword ptr [112+rcx]
 
11851
        mul qword ptr [184+rcx]
 
11852
        add rsi, rax
 
11853
        adc r8, rdx
 
11854
        adc rdi, 0
 
11855
        mov rax, qword ptr [120+rcx]
 
11856
        mul qword ptr [176+rcx]
 
11857
        add rsi, rax
 
11858
        adc r8, rdx
 
11859
        adc rdi, 0
 
11860
        mov rax, qword ptr [128+rcx]
 
11861
        mul qword ptr [168+rcx]
 
11862
        add rsi, rax
 
11863
        adc r8, rdx
 
11864
        adc rdi, 0
 
11865
        mov rax, qword ptr [136+rcx]
 
11866
        mul qword ptr [160+rcx]
 
11867
        add rsi, rax
 
11868
        adc r8, rdx
 
11869
        adc rdi, 0
 
11870
        mov rax, qword ptr [144+rcx]
 
11871
        mul qword ptr [152+rcx]
 
11872
        add rsi, rax
 
11873
        adc r8, rdx
 
11874
        adc rdi, 0
 
11875
        add r12, rsi
 
11876
        adc r9, r8
 
11877
        adc r11, rdi
 
11878
        add r12, rsi
 
11879
        adc r9, r8
 
11880
        adc r11, rdi
 
11881
        mov qword ptr [-248+rbp], r12
 
11882
        mov r13, r11
 
11883
        mov rax, qword ptr [56+rcx]
 
11884
        mul qword ptr [248+rcx]
 
11885
        mov rsi, rax
 
11886
        mov r8, rdx
 
11887
        xor rdi, rdi
 
11888
        mov rax, qword ptr [64+rcx]
 
11889
        mul qword ptr [240+rcx]
 
11890
        add rsi, rax
 
11891
        adc r8, rdx
 
11892
        adc rdi, 0
 
11893
        mov rax, qword ptr [72+rcx]
 
11894
        mul qword ptr [232+rcx]
 
11895
        add rsi, rax
 
11896
        adc r8, rdx
 
11897
        adc rdi, 0
 
11898
        mov rax, qword ptr [80+rcx]
 
11899
        mul qword ptr [224+rcx]
 
11900
        add rsi, rax
 
11901
        adc r8, rdx
 
11902
        adc rdi, 0
 
11903
        mov rax, qword ptr [88+rcx]
 
11904
        mul qword ptr [216+rcx]
 
11905
        add rsi, rax
 
11906
        adc r8, rdx
 
11907
        adc rdi, 0
 
11908
        mov rax, qword ptr [96+rcx]
 
11909
        mul qword ptr [208+rcx]
 
11910
        add rsi, rax
 
11911
        adc r8, rdx
 
11912
        adc rdi, 0
 
11913
        mov rax, qword ptr [104+rcx]
 
11914
        mul qword ptr [200+rcx]
 
11915
        add rsi, rax
 
11916
        adc r8, rdx
 
11917
        adc rdi, 0
 
11918
        mov rax, qword ptr [112+rcx]
 
11919
        mul qword ptr [192+rcx]
 
11920
        add rsi, rax
 
11921
        adc r8, rdx
 
11922
        adc rdi, 0
 
11923
        mov rax, qword ptr [120+rcx]
 
11924
        mul qword ptr [184+rcx]
 
11925
        add rsi, rax
 
11926
        adc r8, rdx
 
11927
        adc rdi, 0
 
11928
        mov rax, qword ptr [128+rcx]
 
11929
        mul qword ptr [176+rcx]
 
11930
        add rsi, rax
 
11931
        adc r8, rdx
 
11932
        adc rdi, 0
 
11933
        mov rax, qword ptr [136+rcx]
 
11934
        mul qword ptr [168+rcx]
 
11935
        add rsi, rax
 
11936
        adc r8, rdx
 
11937
        adc rdi, 0
 
11938
        mov rax, qword ptr [144+rcx]
 
11939
        mul qword ptr [160+rcx]
 
11940
        add rsi, rax
 
11941
        adc r8, rdx
 
11942
        adc rdi, 0
 
11943
        mov rax, r10
 
11944
        mov rdx, rsi
 
11945
        mov rbx, r8
 
11946
        mov r12, rdi
 
11947
        add r9, rdx
 
11948
        adc r13, rbx
 
11949
        adc rax, r12
 
11950
        add r9, rdx
 
11951
        adc r13, rbx
 
11952
        adc rax, r12
 
11953
        mov r11, r12
 
11954
        mov r8, rdx
 
11955
        mov rdx, rax
 
11956
        mov r12, r13
 
11957
        mov rdi, rbx
 
11958
        mov r13, rdx
 
11959
        mov rsi, r11
 
11960
        mov rax, qword ptr [152+rcx]
 
11961
        mul rax
 
11962
        add r9, rax
 
11963
        adc r12, rdx
 
11964
        adc r13, 0
 
11965
        mov qword ptr [-240+rbp], r9
 
11966
        mov r9, r13
 
11967
        mov r13, r10
 
11968
        mov rax, qword ptr [64+rcx]
 
11969
        mul qword ptr [248+rcx]
 
11970
        mov r8, rax
 
11971
        mov rdi, rdx
 
11972
        xor rsi, rsi
 
11973
        mov rax, qword ptr [72+rcx]
 
11974
        mul qword ptr [240+rcx]
 
11975
        add r8, rax
 
11976
        adc rdi, rdx
 
11977
        adc rsi, 0
 
11978
        mov rax, qword ptr [80+rcx]
 
11979
        mul qword ptr [232+rcx]
 
11980
        add r8, rax
 
11981
        adc rdi, rdx
 
11982
        adc rsi, 0
 
11983
        mov rax, qword ptr [88+rcx]
 
11984
        mul qword ptr [224+rcx]
 
11985
        add r8, rax
 
11986
        adc rdi, rdx
 
11987
        adc rsi, 0
 
11988
        mov rax, qword ptr [96+rcx]
 
11989
        mul qword ptr [216+rcx]
 
11990
        add r8, rax
 
11991
        adc rdi, rdx
 
11992
        adc rsi, 0
 
11993
        mov rax, qword ptr [104+rcx]
 
11994
        mul qword ptr [208+rcx]
 
11995
        add r8, rax
 
11996
        adc rdi, rdx
 
11997
        adc rsi, 0
 
11998
        mov rax, qword ptr [112+rcx]
 
11999
        mul qword ptr [200+rcx]
 
12000
        add r8, rax
 
12001
        adc rdi, rdx
 
12002
        adc rsi, 0
 
12003
        mov rax, qword ptr [120+rcx]
 
12004
        mul qword ptr [192+rcx]
 
12005
        add r8, rax
 
12006
        adc rdi, rdx
 
12007
        adc rsi, 0
 
12008
        mov rax, qword ptr [128+rcx]
 
12009
        mul qword ptr [184+rcx]
 
12010
        add r8, rax
 
12011
        adc rdi, rdx
 
12012
        adc rsi, 0
 
12013
        mov rax, qword ptr [136+rcx]
 
12014
        mul qword ptr [176+rcx]
 
12015
        add r8, rax
 
12016
        adc rdi, rdx
 
12017
        adc rsi, 0
 
12018
        mov rax, qword ptr [144+rcx]
 
12019
        mul qword ptr [168+rcx]
 
12020
        add r8, rax
 
12021
        adc rdi, rdx
 
12022
        adc rsi, 0
 
12023
        mov rax, qword ptr [152+rcx]
 
12024
        mul qword ptr [160+rcx]
 
12025
        add r8, rax
 
12026
        adc rdi, rdx
 
12027
        adc rsi, 0
 
12028
        mov rax, r8
 
12029
        mov rdx, rdi
 
12030
        mov rbx, rsi
 
12031
        add r12, rax
 
12032
        adc r9, rdx
 
12033
        adc r13, rbx
 
12034
        add r12, rax
 
12035
        adc r9, rdx
 
12036
        adc r13, rbx
 
12037
        mov qword ptr [-232+rbp], r12
 
12038
        mov r8, rdx
 
12039
        mov rsi, rax
 
12040
        mov rdi, rbx
 
12041
        mov r12, r13
 
12042
        mov r13, r10
 
12043
        mov rax, qword ptr [72+rcx]
 
12044
        mul qword ptr [248+rcx]
 
12045
        mov rsi, rax
 
12046
        mov r8, rdx
 
12047
        xor rdi, rdi
 
12048
        mov rax, qword ptr [80+rcx]
 
12049
        mul qword ptr [240+rcx]
 
12050
        add rsi, rax
 
12051
        adc r8, rdx
 
12052
        adc rdi, 0
 
12053
        mov rax, qword ptr [88+rcx]
 
12054
        mul qword ptr [232+rcx]
 
12055
        add rsi, rax
 
12056
        adc r8, rdx
 
12057
        adc rdi, 0
 
12058
        mov rax, qword ptr [96+rcx]
 
12059
        mul qword ptr [224+rcx]
 
12060
        add rsi, rax
 
12061
        adc r8, rdx
 
12062
        adc rdi, 0
 
12063
        mov rax, qword ptr [104+rcx]
 
12064
        mul qword ptr [216+rcx]
 
12065
        add rsi, rax
 
12066
        adc r8, rdx
 
12067
        adc rdi, 0
 
12068
        mov rax, qword ptr [112+rcx]
 
12069
        mul qword ptr [208+rcx]
 
12070
        add rsi, rax
 
12071
        adc r8, rdx
 
12072
        adc rdi, 0
 
12073
        mov rax, qword ptr [120+rcx]
 
12074
        mul qword ptr [200+rcx]
 
12075
        add rsi, rax
 
12076
        adc r8, rdx
 
12077
        adc rdi, 0
 
12078
        mov rax, qword ptr [128+rcx]
 
12079
        mul qword ptr [192+rcx]
 
12080
        add rsi, rax
 
12081
        adc r8, rdx
 
12082
        adc rdi, 0
 
12083
        mov rax, qword ptr [136+rcx]
 
12084
        mul qword ptr [184+rcx]
 
12085
        add rsi, rax
 
12086
        adc r8, rdx
 
12087
        adc rdi, 0
 
12088
        mov rax, qword ptr [144+rcx]
 
12089
        mul qword ptr [176+rcx]
 
12090
        add rsi, rax
 
12091
        adc r8, rdx
 
12092
        adc rdi, 0
 
12093
        mov rax, qword ptr [152+rcx]
 
12094
        mul qword ptr [168+rcx]
 
12095
        add rsi, rax
 
12096
        adc r8, rdx
 
12097
        adc rdi, 0
 
12098
        mov rax, rsi
 
12099
        mov rbx, r8
 
12100
        mov rdx, rdi
 
12101
        add r9, rax
 
12102
        adc r12, rbx
 
12103
        adc r13, rdx
 
12104
        add r9, rax
 
12105
        adc r12, rbx
 
12106
        adc r13, rdx
 
12107
        mov r11, rdx
 
12108
        mov r8, rax
 
12109
        mov rdi, rbx
 
12110
        mov rax, qword ptr [160+rcx]
 
12111
        mul rax
 
12112
        add r9, rax
 
12113
        adc r12, rdx
 
12114
        adc r13, 0
 
12115
        mov rsi, r11
 
12116
        mov qword ptr [-224+rbp], r9
 
12117
        mov r9, r13
 
12118
        mov rax, qword ptr [80+rcx]
 
12119
        mul qword ptr [248+rcx]
 
12120
        mov r8, rax
 
12121
        mov rdi, rdx
 
12122
        xor rsi, rsi
 
12123
        mov r13, r10
 
12124
        mov rax, qword ptr [88+rcx]
 
12125
        mul qword ptr [240+rcx]
 
12126
        add r8, rax
 
12127
        adc rdi, rdx
 
12128
        adc rsi, 0
 
12129
        mov rax, qword ptr [96+rcx]
 
12130
        mul qword ptr [232+rcx]
 
12131
        add r8, rax
 
12132
        adc rdi, rdx
 
12133
        adc rsi, 0
 
12134
        mov rax, qword ptr [104+rcx]
 
12135
        mul qword ptr [224+rcx]
 
12136
        add r8, rax
 
12137
        adc rdi, rdx
 
12138
        adc rsi, 0
 
12139
        mov rax, qword ptr [112+rcx]
 
12140
        mul qword ptr [216+rcx]
 
12141
        add r8, rax
 
12142
        adc rdi, rdx
 
12143
        adc rsi, 0
 
12144
        mov rax, qword ptr [120+rcx]
 
12145
        mul qword ptr [208+rcx]
 
12146
        add r8, rax
 
12147
        adc rdi, rdx
 
12148
        adc rsi, 0
 
12149
        mov rax, qword ptr [128+rcx]
 
12150
        mul qword ptr [200+rcx]
 
12151
        add r8, rax
 
12152
        adc rdi, rdx
 
12153
        adc rsi, 0
 
12154
        mov rax, qword ptr [136+rcx]
 
12155
        mul qword ptr [192+rcx]
 
12156
        add r8, rax
 
12157
        adc rdi, rdx
 
12158
        adc rsi, 0
 
12159
        mov rax, qword ptr [144+rcx]
 
12160
        mul qword ptr [184+rcx]
 
12161
        add r8, rax
 
12162
        adc rdi, rdx
 
12163
        adc rsi, 0
 
12164
        mov rax, qword ptr [152+rcx]
 
12165
        mul qword ptr [176+rcx]
 
12166
        add r8, rax
 
12167
        adc rdi, rdx
 
12168
        adc rsi, 0
 
12169
        mov rax, qword ptr [160+rcx]
 
12170
        mul qword ptr [168+rcx]
 
12171
        add r8, rax
 
12172
        adc rdi, rdx
 
12173
        adc rsi, 0
 
12174
        mov rbx, r8
 
12175
        mov rax, rdi
 
12176
        mov rdx, rsi
 
12177
        add r12, rbx
 
12178
        adc r9, rax
 
12179
        adc r13, rdx
 
12180
        add r12, rbx
 
12181
        adc r9, rax
 
12182
        adc r13, rdx
 
12183
        mov qword ptr [-216+rbp], r12
 
12184
        mov rdi, rdx
 
12185
        mov r8, rax
 
12186
        mov rsi, rbx
 
12187
        mov r12, r13
 
12188
        mov r13, r10
 
12189
        mov rax, qword ptr [88+rcx]
 
12190
        mul qword ptr [248+rcx]
 
12191
        mov rsi, rax
 
12192
        mov r8, rdx
 
12193
        xor rdi, rdi
 
12194
        mov rax, qword ptr [96+rcx]
 
12195
        mul qword ptr [240+rcx]
 
12196
        add rsi, rax
 
12197
        adc r8, rdx
 
12198
        adc rdi, 0
 
12199
        mov rax, qword ptr [104+rcx]
 
12200
        mul qword ptr [232+rcx]
 
12201
        add rsi, rax
 
12202
        adc r8, rdx
 
12203
        adc rdi, 0
 
12204
        mov rax, qword ptr [112+rcx]
 
12205
        mul qword ptr [224+rcx]
 
12206
        add rsi, rax
 
12207
        adc r8, rdx
 
12208
        adc rdi, 0
 
12209
        mov rax, qword ptr [120+rcx]
 
12210
        mul qword ptr [216+rcx]
 
12211
        add rsi, rax
 
12212
        adc r8, rdx
 
12213
        adc rdi, 0
 
12214
        mov rax, qword ptr [128+rcx]
 
12215
        mul qword ptr [208+rcx]
 
12216
        add rsi, rax
 
12217
        adc r8, rdx
 
12218
        adc rdi, 0
 
12219
        mov rax, qword ptr [136+rcx]
 
12220
        mul qword ptr [200+rcx]
 
12221
        add rsi, rax
 
12222
        adc r8, rdx
 
12223
        adc rdi, 0
 
12224
        mov rax, qword ptr [144+rcx]
 
12225
        mul qword ptr [192+rcx]
 
12226
        add rsi, rax
 
12227
        adc r8, rdx
 
12228
        adc rdi, 0
 
12229
        mov rax, qword ptr [152+rcx]
 
12230
        mul qword ptr [184+rcx]
 
12231
        add rsi, rax
 
12232
        adc r8, rdx
 
12233
        adc rdi, 0
 
12234
        mov rax, qword ptr [160+rcx]
 
12235
        mul qword ptr [176+rcx]
 
12236
        add rsi, rax
 
12237
        adc r8, rdx
 
12238
        adc rdi, 0
 
12239
        mov rax, rsi
 
12240
        mov rbx, r8
 
12241
        mov rdx, rdi
 
12242
        add r9, rax
 
12243
        adc r12, rbx
 
12244
        adc r13, rdx
 
12245
        add r9, rax
 
12246
        adc r12, rbx
 
12247
        adc r13, rdx
 
12248
        mov r11, rdx
 
12249
        mov r8, rax
 
12250
        mov rdi, rbx
 
12251
        mov rax, qword ptr [168+rcx]
 
12252
        mul rax
 
12253
        add r9, rax
 
12254
        adc r12, rdx
 
12255
        adc r13, 0
 
12256
        mov rsi, r11
 
12257
        mov qword ptr [-208+rbp], r9
 
12258
        mov r9, r13
 
12259
        mov rax, qword ptr [96+rcx]
 
12260
        mul qword ptr [248+rcx]
 
12261
        mov r8, rax
 
12262
        mov rdi, rdx
 
12263
        xor rsi, rsi
 
12264
        mov r13, r10
 
12265
        mov rax, qword ptr [104+rcx]
 
12266
        mul qword ptr [240+rcx]
 
12267
        add r8, rax
 
12268
        adc rdi, rdx
 
12269
        adc rsi, 0
 
12270
        mov rax, qword ptr [112+rcx]
 
12271
        mul qword ptr [232+rcx]
 
12272
        add r8, rax
 
12273
        adc rdi, rdx
 
12274
        adc rsi, 0
 
12275
        mov rax, qword ptr [120+rcx]
 
12276
        mul qword ptr [224+rcx]
 
12277
        add r8, rax
 
12278
        adc rdi, rdx
 
12279
        adc rsi, 0
 
12280
        mov rax, qword ptr [128+rcx]
 
12281
        mul qword ptr [216+rcx]
 
12282
        add r8, rax
 
12283
        adc rdi, rdx
 
12284
        adc rsi, 0
 
12285
        mov rax, qword ptr [136+rcx]
 
12286
        mul qword ptr [208+rcx]
 
12287
        add r8, rax
 
12288
        adc rdi, rdx
 
12289
        adc rsi, 0
 
12290
        mov rax, qword ptr [144+rcx]
 
12291
        mul qword ptr [200+rcx]
 
12292
        add r8, rax
 
12293
        adc rdi, rdx
 
12294
        adc rsi, 0
 
12295
        mov rax, qword ptr [152+rcx]
 
12296
        mul qword ptr [192+rcx]
 
12297
        add r8, rax
 
12298
        adc rdi, rdx
 
12299
        adc rsi, 0
 
12300
        mov rax, qword ptr [160+rcx]
 
12301
        mul qword ptr [184+rcx]
 
12302
        add r8, rax
 
12303
        adc rdi, rdx
 
12304
        adc rsi, 0
 
12305
        mov rax, qword ptr [168+rcx]
 
12306
        mul qword ptr [176+rcx]
 
12307
        add r8, rax
 
12308
        adc rdi, rdx
 
12309
        adc rsi, 0
 
12310
        mov rbx, r8
 
12311
        mov rax, rdi
 
12312
        mov rdx, rsi
 
12313
        add r12, rbx
 
12314
        adc r9, rax
 
12315
        adc r13, rdx
 
12316
        add r12, rbx
 
12317
        adc r9, rax
 
12318
        adc r13, rdx
 
12319
        mov qword ptr [-200+rbp], r12
 
12320
        mov rdi, rdx
 
12321
        mov r8, rax
 
12322
        mov rsi, rbx
 
12323
        mov r12, r13
 
12324
        mov r13, r10
 
12325
        mov rax, qword ptr [104+rcx]
 
12326
        mul qword ptr [248+rcx]
 
12327
        mov rsi, rax
 
12328
        mov r8, rdx
 
12329
        xor rdi, rdi
 
12330
        mov rax, qword ptr [112+rcx]
 
12331
        mul qword ptr [240+rcx]
 
12332
        add rsi, rax
 
12333
        adc r8, rdx
 
12334
        adc rdi, 0
 
12335
        mov rax, qword ptr [120+rcx]
 
12336
        mul qword ptr [232+rcx]
 
12337
        add rsi, rax
 
12338
        adc r8, rdx
 
12339
        adc rdi, 0
 
12340
        mov rax, qword ptr [128+rcx]
 
12341
        mul qword ptr [224+rcx]
 
12342
        add rsi, rax
 
12343
        adc r8, rdx
 
12344
        adc rdi, 0
 
12345
        mov rax, qword ptr [136+rcx]
 
12346
        mul qword ptr [216+rcx]
 
12347
        add rsi, rax
 
12348
        adc r8, rdx
 
12349
        adc rdi, 0
 
12350
        mov rax, qword ptr [144+rcx]
 
12351
        mul qword ptr [208+rcx]
 
12352
        add rsi, rax
 
12353
        adc r8, rdx
 
12354
        adc rdi, 0
 
12355
        mov rax, qword ptr [152+rcx]
 
12356
        mul qword ptr [200+rcx]
 
12357
        add rsi, rax
 
12358
        adc r8, rdx
 
12359
        adc rdi, 0
 
12360
        mov rax, qword ptr [160+rcx]
 
12361
        mul qword ptr [192+rcx]
 
12362
        add rsi, rax
 
12363
        adc r8, rdx
 
12364
        adc rdi, 0
 
12365
        mov rax, qword ptr [168+rcx]
 
12366
        mul qword ptr [184+rcx]
 
12367
        add rsi, rax
 
12368
        adc r8, rdx
 
12369
        adc rdi, 0
 
12370
        mov rax, rsi
 
12371
        mov rbx, r8
 
12372
        mov rdx, rdi
 
12373
        add r9, rax
 
12374
        adc r12, rbx
 
12375
        adc r13, rdx
 
12376
        add r9, rax
 
12377
        adc r12, rbx
 
12378
        adc r13, rdx
 
12379
        mov r11, rdx
 
12380
        mov r8, rax
 
12381
        mov rdi, rbx
 
12382
        mov rax, qword ptr [176+rcx]
 
12383
        mul rax
 
12384
        add r9, rax
 
12385
        adc r12, rdx
 
12386
        adc r13, 0
 
12387
        mov rsi, r11
 
12388
        mov qword ptr [-192+rbp], r9
 
12389
        mov r9, r13
 
12390
        mov rax, qword ptr [112+rcx]
 
12391
        mul qword ptr [248+rcx]
 
12392
        mov r8, rax
 
12393
        mov rdi, rdx
 
12394
        xor rsi, rsi
 
12395
        mov r13, r10
 
12396
        mov rax, qword ptr [120+rcx]
 
12397
        mul qword ptr [240+rcx]
 
12398
        add r8, rax
 
12399
        adc rdi, rdx
 
12400
        adc rsi, 0
 
12401
        mov rax, qword ptr [128+rcx]
 
12402
        mul qword ptr [232+rcx]
 
12403
        add r8, rax
 
12404
        adc rdi, rdx
 
12405
        adc rsi, 0
 
12406
        mov rax, qword ptr [136+rcx]
 
12407
        mul qword ptr [224+rcx]
 
12408
        add r8, rax
 
12409
        adc rdi, rdx
 
12410
        adc rsi, 0
 
12411
        mov rax, qword ptr [144+rcx]
 
12412
        mul qword ptr [216+rcx]
 
12413
        add r8, rax
 
12414
        adc rdi, rdx
 
12415
        adc rsi, 0
 
12416
        mov rax, qword ptr [152+rcx]
 
12417
        mul qword ptr [208+rcx]
 
12418
        add r8, rax
 
12419
        adc rdi, rdx
 
12420
        adc rsi, 0
 
12421
        mov rax, qword ptr [160+rcx]
 
12422
        mul qword ptr [200+rcx]
 
12423
        add r8, rax
 
12424
        adc rdi, rdx
 
12425
        adc rsi, 0
 
12426
        mov rax, qword ptr [168+rcx]
 
12427
        mul qword ptr [192+rcx]
 
12428
        add r8, rax
 
12429
        adc rdi, rdx
 
12430
        adc rsi, 0
 
12431
        mov rax, qword ptr [176+rcx]
 
12432
        mul qword ptr [184+rcx]
 
12433
        add r8, rax
 
12434
        adc rdi, rdx
 
12435
        adc rsi, 0
 
12436
        mov rbx, r8
 
12437
        mov rax, rdi
 
12438
        mov rdx, rsi
 
12439
        add r12, rbx
 
12440
        adc r9, rax
 
12441
        adc r13, rdx
 
12442
        add r12, rbx
 
12443
        adc r9, rax
 
12444
        adc r13, rdx
 
12445
        mov qword ptr [-184+rbp], r12
 
12446
        mov rdi, rdx
 
12447
        mov r8, rax
 
12448
        mov rsi, rbx
 
12449
        mov r12, r13
 
12450
        mov r13, r10
 
12451
        mov rax, qword ptr [120+rcx]
 
12452
        mul qword ptr [248+rcx]
 
12453
        mov rsi, rax
 
12454
        mov r8, rdx
 
12455
        xor rdi, rdi
 
12456
        mov rax, qword ptr [128+rcx]
 
12457
        mul qword ptr [240+rcx]
 
12458
        add rsi, rax
 
12459
        adc r8, rdx
 
12460
        adc rdi, 0
 
12461
        mov rax, qword ptr [136+rcx]
 
12462
        mul qword ptr [232+rcx]
 
12463
        add rsi, rax
 
12464
        adc r8, rdx
 
12465
        adc rdi, 0
 
12466
        mov rax, qword ptr [144+rcx]
 
12467
        mul qword ptr [224+rcx]
 
12468
        add rsi, rax
 
12469
        adc r8, rdx
 
12470
        adc rdi, 0
 
12471
        mov rax, qword ptr [152+rcx]
 
12472
        mul qword ptr [216+rcx]
 
12473
        add rsi, rax
 
12474
        adc r8, rdx
 
12475
        adc rdi, 0
 
12476
        mov rax, qword ptr [160+rcx]
 
12477
        mul qword ptr [208+rcx]
 
12478
        add rsi, rax
 
12479
        adc r8, rdx
 
12480
        adc rdi, 0
 
12481
        mov rax, qword ptr [168+rcx]
 
12482
        mul qword ptr [200+rcx]
 
12483
        add rsi, rax
 
12484
        adc r8, rdx
 
12485
        adc rdi, 0
 
12486
        mov rax, qword ptr [176+rcx]
 
12487
        mul qword ptr [192+rcx]
 
12488
        add rsi, rax
 
12489
        adc r8, rdx
 
12490
        adc rdi, 0
 
12491
        mov rax, rsi
 
12492
        mov rbx, r8
 
12493
        mov rdx, rdi
 
12494
        add r9, rax
 
12495
        adc r12, rbx
 
12496
        adc r13, rdx
 
12497
        add r9, rax
 
12498
        adc r12, rbx
 
12499
        adc r13, rdx
 
12500
        mov r11, rdx
 
12501
        mov r8, rax
 
12502
        mov rdi, rbx
 
12503
        mov rax, qword ptr [184+rcx]
 
12504
        mul rax
 
12505
        add r9, rax
 
12506
        adc r12, rdx
 
12507
        adc r13, 0
 
12508
        mov rsi, r11
 
12509
        mov qword ptr [-176+rbp], r9
 
12510
        mov r9, r13
 
12511
        mov rax, qword ptr [128+rcx]
 
12512
        mul qword ptr [248+rcx]
 
12513
        mov r8, rax
 
12514
        mov rdi, rdx
 
12515
        xor rsi, rsi
 
12516
        mov r13, r10
 
12517
        mov rax, qword ptr [136+rcx]
 
12518
        mul qword ptr [240+rcx]
 
12519
        add r8, rax
 
12520
        adc rdi, rdx
 
12521
        adc rsi, 0
 
12522
        mov rax, qword ptr [144+rcx]
 
12523
        mul qword ptr [232+rcx]
 
12524
        add r8, rax
 
12525
        adc rdi, rdx
 
12526
        adc rsi, 0
 
12527
        mov rax, qword ptr [152+rcx]
 
12528
        mul qword ptr [224+rcx]
 
12529
        add r8, rax
 
12530
        adc rdi, rdx
 
12531
        adc rsi, 0
 
12532
        mov rax, qword ptr [160+rcx]
 
12533
        mul qword ptr [216+rcx]
 
12534
        add r8, rax
 
12535
        adc rdi, rdx
 
12536
        adc rsi, 0
 
12537
        mov rax, qword ptr [168+rcx]
 
12538
        mul qword ptr [208+rcx]
 
12539
        add r8, rax
 
12540
        adc rdi, rdx
 
12541
        adc rsi, 0
 
12542
        mov rax, qword ptr [176+rcx]
 
12543
        mul qword ptr [200+rcx]
 
12544
        add r8, rax
 
12545
        adc rdi, rdx
 
12546
        adc rsi, 0
 
12547
        mov rax, qword ptr [184+rcx]
 
12548
        mul qword ptr [192+rcx]
 
12549
        add r8, rax
 
12550
        adc rdi, rdx
 
12551
        adc rsi, 0
 
12552
        add r12, r8
 
12553
        adc r9, rdi
 
12554
        adc r13, rsi
 
12555
        add r12, r8
 
12556
        adc r9, rdi
 
12557
        adc r13, rsi
 
12558
        mov qword ptr [-168+rbp], r12
 
12559
        mov r12, r13
 
12560
        mov r13, r10
 
12561
        mov rax, qword ptr [136+rcx]
 
12562
        mul qword ptr [248+rcx]
 
12563
        mov r8, rax
 
12564
        mov rdi, rdx
 
12565
        xor rsi, rsi
 
12566
        mov rax, qword ptr [144+rcx]
 
12567
        mul qword ptr [240+rcx]
 
12568
        add r8, rax
 
12569
        adc rdi, rdx
 
12570
        adc rsi, 0
 
12571
        mov rax, qword ptr [152+rcx]
 
12572
        mul qword ptr [232+rcx]
 
12573
        add r8, rax
 
12574
        adc rdi, rdx
 
12575
        adc rsi, 0
 
12576
        mov rax, qword ptr [160+rcx]
 
12577
        mul qword ptr [224+rcx]
 
12578
        add r8, rax
 
12579
        adc rdi, rdx
 
12580
        adc rsi, 0
 
12581
        mov rax, qword ptr [168+rcx]
 
12582
        mul qword ptr [216+rcx]
 
12583
        add r8, rax
 
12584
        adc rdi, rdx
 
12585
        adc rsi, 0
 
12586
        mov rax, qword ptr [176+rcx]
 
12587
        mul qword ptr [208+rcx]
 
12588
        add r8, rax
 
12589
        adc rdi, rdx
 
12590
        adc rsi, 0
 
12591
        mov rax, qword ptr [184+rcx]
 
12592
        mul qword ptr [200+rcx]
 
12593
        add r8, rax
 
12594
        adc rdi, rdx
 
12595
        adc rsi, 0
 
12596
        mov rbx, rdi
 
12597
        mov rax, rsi
 
12598
        add r9, r8
 
12599
        adc r12, rbx
 
12600
        adc r13, rax
 
12601
        add r9, r8
 
12602
        adc r12, rbx
 
12603
        adc r13, rax
 
12604
        mov r11, rax
 
12605
        mov rdi, rbx
 
12606
        mov rbx, r10
 
12607
        mov rax, qword ptr [192+rcx]
 
12608
        mul rax
 
12609
        add r9, rax
 
12610
        adc r12, rdx
 
12611
        adc r13, 0
 
12612
        mov rsi, r11
 
12613
        mov qword ptr [-160+rbp], r9
 
12614
        mov r9, r13
 
12615
        mov rax, qword ptr [144+rcx]
 
12616
        mul qword ptr [248+rcx]
 
12617
        mov r8, rax
 
12618
        mov rdi, rdx
 
12619
        xor rsi, rsi
 
12620
        mov rax, qword ptr [152+rcx]
 
12621
        mul qword ptr [240+rcx]
 
12622
        add r8, rax
 
12623
        adc rdi, rdx
 
12624
        adc rsi, 0
 
12625
        mov rax, qword ptr [160+rcx]
 
12626
        mul qword ptr [232+rcx]
 
12627
        add r8, rax
 
12628
        adc rdi, rdx
 
12629
        adc rsi, 0
 
12630
        mov rax, qword ptr [168+rcx]
 
12631
        mul qword ptr [224+rcx]
 
12632
        add r8, rax
 
12633
        adc rdi, rdx
 
12634
        adc rsi, 0
 
12635
        mov rax, qword ptr [176+rcx]
 
12636
        mul qword ptr [216+rcx]
 
12637
        add r8, rax
 
12638
        adc rdi, rdx
 
12639
        adc rsi, 0
 
12640
        mov rax, qword ptr [184+rcx]
 
12641
        mul qword ptr [208+rcx]
 
12642
        add r8, rax
 
12643
        adc rdi, rdx
 
12644
        adc rsi, 0
 
12645
        mov rax, qword ptr [192+rcx]
 
12646
        mul qword ptr [200+rcx]
 
12647
        add r8, rax
 
12648
        adc rdi, rdx
 
12649
        adc rsi, 0
 
12650
        add r12, r8
 
12651
        adc r9, rdi
 
12652
        adc rbx, rsi
 
12653
        add r12, r8
 
12654
        adc r9, rdi
 
12655
        adc rbx, rsi
 
12656
        mov qword ptr [-152+rbp], r12
 
12657
        mov rax, qword ptr [152+rcx]
 
12658
        mul qword ptr [248+rcx]
 
12659
        mov r8, rax
 
12660
        mov rdi, rdx
 
12661
        xor rsi, rsi
 
12662
        mov rax, qword ptr [160+rcx]
 
12663
        mul qword ptr [240+rcx]
 
12664
        add r8, rax
 
12665
        adc rdi, rdx
 
12666
        adc rsi, 0
 
12667
        mov rax, qword ptr [168+rcx]
 
12668
        mul qword ptr [232+rcx]
 
12669
        add r8, rax
 
12670
        adc rdi, rdx
 
12671
        adc rsi, 0
 
12672
        mov rax, qword ptr [176+rcx]
 
12673
        mul qword ptr [224+rcx]
 
12674
        add r8, rax
 
12675
        adc rdi, rdx
 
12676
        adc rsi, 0
 
12677
        mov rax, qword ptr [184+rcx]
 
12678
        mul qword ptr [216+rcx]
 
12679
        add r8, rax
 
12680
        adc rdi, rdx
 
12681
        adc rsi, 0
 
12682
        mov rax, qword ptr [192+rcx]
 
12683
        mul qword ptr [208+rcx]
 
12684
        add r8, rax
 
12685
        adc rdi, rdx
 
12686
        adc rsi, 0
 
12687
        mov rdx, r10
 
12688
        mov r13, rdi
 
12689
        mov r12, rsi
 
12690
        add r9, r8
 
12691
        adc rbx, r13
 
12692
        adc rdx, r12
 
12693
        add r9, r8
 
12694
        adc rbx, r13
 
12695
        adc rdx, r12
 
12696
        mov rax, rdx
 
12697
        mov rdi, r13
 
12698
        mov rsi, r12
 
12699
        mov r11, rax
 
12700
        mov r12, r10
 
12701
        mov rax, qword ptr [200+rcx]
 
12702
        mul rax
 
12703
        add r9, rax
 
12704
        adc rbx, rdx
 
12705
        adc r11, 0
 
12706
        mov qword ptr [-144+rbp], r9
 
12707
        mov r9, r11
 
12708
        mov rax, qword ptr [160+rcx]
 
12709
        mul qword ptr [248+rcx]
 
12710
        mov r8, rax
 
12711
        mov rdi, rdx
 
12712
        xor rsi, rsi
 
12713
        mov rax, qword ptr [168+rcx]
 
12714
        mul qword ptr [240+rcx]
 
12715
        add r8, rax
 
12716
        adc rdi, rdx
 
12717
        adc rsi, 0
 
12718
        mov rax, qword ptr [176+rcx]
 
12719
        mul qword ptr [232+rcx]
 
12720
        add r8, rax
 
12721
        adc rdi, rdx
 
12722
        adc rsi, 0
 
12723
        mov rax, qword ptr [184+rcx]
 
12724
        mul qword ptr [224+rcx]
 
12725
        add r8, rax
 
12726
        adc rdi, rdx
 
12727
        adc rsi, 0
 
12728
        mov rax, qword ptr [192+rcx]
 
12729
        mul qword ptr [216+rcx]
 
12730
        add r8, rax
 
12731
        adc rdi, rdx
 
12732
        adc rsi, 0
 
12733
        mov rax, qword ptr [200+rcx]
 
12734
        mul qword ptr [208+rcx]
 
12735
        add r8, rax
 
12736
        adc rdi, rdx
 
12737
        adc rsi, 0
 
12738
        add rbx, r8
 
12739
        adc r9, rdi
 
12740
        adc r12, rsi
 
12741
        add rbx, r8
 
12742
        adc r9, rdi
 
12743
        adc r12, rsi
 
12744
        mov qword ptr [-136+rbp], rbx
 
12745
        mov r11, r12
 
12746
        mov rax, qword ptr [168+rcx]
 
12747
        mul qword ptr [248+rcx]
 
12748
        mov r8, rax
 
12749
        mov rdi, rdx
 
12750
        xor rsi, rsi
 
12751
        mov rax, qword ptr [176+rcx]
 
12752
        mul qword ptr [240+rcx]
 
12753
        add r8, rax
 
12754
        adc rdi, rdx
 
12755
        adc rsi, 0
 
12756
        mov rax, qword ptr [184+rcx]
 
12757
        mul qword ptr [232+rcx]
 
12758
        add r8, rax
 
12759
        adc rdi, rdx
 
12760
        adc rsi, 0
 
12761
        mov rax, qword ptr [192+rcx]
 
12762
        mul qword ptr [224+rcx]
 
12763
        add r8, rax
 
12764
        adc rdi, rdx
 
12765
        adc rsi, 0
 
12766
        mov rax, qword ptr [200+rcx]
 
12767
        mul qword ptr [216+rcx]
 
12768
        add r8, rax
 
12769
        adc rdi, rdx
 
12770
        adc rsi, 0
 
12771
        mov rax, r10
 
12772
        mov r13, rdi
 
12773
        mov r12, rsi
 
12774
        add r9, r8
 
12775
        adc r11, r13
 
12776
        adc rax, r12
 
12777
        add r9, r8
 
12778
        adc r11, r13
 
12779
        adc rax, r12
 
12780
        mov rdx, rax
 
12781
        mov rbx, r11
 
12782
        mov rdi, r13
 
12783
        mov r11, rdx
 
12784
        mov rsi, r12
 
12785
        mov rax, qword ptr [208+rcx]
 
12786
        mul rax
 
12787
        add r9, rax
 
12788
        adc rbx, rdx
 
12789
        adc r11, 0
 
12790
        mov qword ptr [-128+rbp], r9
 
12791
        mov r9, r11
 
12792
        mov rax, qword ptr [176+rcx]
 
12793
        mul qword ptr [248+rcx]
 
12794
        mov r8, rax
 
12795
        mov rdi, rdx
 
12796
        xor rsi, rsi
 
12797
        mov rax, qword ptr [184+rcx]
 
12798
        mul qword ptr [240+rcx]
 
12799
        add r8, rax
 
12800
        adc rdi, rdx
 
12801
        adc rsi, 0
 
12802
        mov rax, qword ptr [192+rcx]
 
12803
        mul qword ptr [232+rcx]
 
12804
        add r8, rax
 
12805
        adc rdi, rdx
 
12806
        adc rsi, 0
 
12807
        mov rax, qword ptr [200+rcx]
 
12808
        mul qword ptr [224+rcx]
 
12809
        add r8, rax
 
12810
        adc rdi, rdx
 
12811
        adc rsi, 0
 
12812
        mov rax, qword ptr [208+rcx]
 
12813
        mul qword ptr [216+rcx]
 
12814
        add r8, rax
 
12815
        adc rdi, rdx
 
12816
        adc rsi, 0
 
12817
        mov rdx, r10
 
12818
        add rbx, r8
 
12819
        adc r9, rdi
 
12820
        adc rdx, rsi
 
12821
        add rbx, r8
 
12822
        adc r9, rdi
 
12823
        adc rdx, rsi
 
12824
        mov qword ptr [-120+rbp], rbx
 
12825
        mov r11, rdx
 
12826
        mov rbx, r10
 
12827
        mov rax, qword ptr [184+rcx]
 
12828
        mul qword ptr [248+rcx]
 
12829
        mov r8, rax
 
12830
        mov rdi, rdx
 
12831
        xor rsi, rsi
 
12832
        mov rax, qword ptr [192+rcx]
 
12833
        mul qword ptr [240+rcx]
 
12834
        add r8, rax
 
12835
        adc rdi, rdx
 
12836
        adc rsi, 0
 
12837
        mov rax, qword ptr [200+rcx]
 
12838
        mul qword ptr [232+rcx]
 
12839
        add r8, rax
 
12840
        adc rdi, rdx
 
12841
        adc rsi, 0
 
12842
        mov rax, qword ptr [208+rcx]
 
12843
        mul qword ptr [224+rcx]
 
12844
        add r8, rax
 
12845
        adc rdi, rdx
 
12846
        adc rsi, 0
 
12847
        mov r13, rdi
 
12848
        mov r12, rsi
 
12849
        add r9, r8
 
12850
        adc r11, r13
 
12851
        adc rbx, r12
 
12852
        add r9, r8
 
12853
        adc r11, r13
 
12854
        adc rbx, r12
 
12855
        mov rdx, rbx
 
12856
        mov rdi, r13
 
12857
        mov rbx, r11
 
12858
        mov rsi, r12
 
12859
        mov r11, rdx
 
12860
        mov r12, r10
 
12861
        mov rax, qword ptr [216+rcx]
 
12862
        mul rax
 
12863
        add r9, rax
 
12864
        adc rbx, rdx
 
12865
        adc r11, 0
 
12866
        mov qword ptr [-112+rbp], r9
 
12867
        mov r9, r11
 
12868
        mov rax, qword ptr [192+rcx]
 
12869
        mul qword ptr [248+rcx]
 
12870
        mov r8, rax
 
12871
        mov rdi, rdx
 
12872
        xor rsi, rsi
 
12873
        mov rax, qword ptr [200+rcx]
 
12874
        mul qword ptr [240+rcx]
 
12875
        add r8, rax
 
12876
        adc rdi, rdx
 
12877
        adc rsi, 0
 
12878
        mov rax, qword ptr [208+rcx]
 
12879
        mul qword ptr [232+rcx]
 
12880
        add r8, rax
 
12881
        adc rdi, rdx
 
12882
        adc rsi, 0
 
12883
        mov rax, qword ptr [216+rcx]
 
12884
        mul qword ptr [224+rcx]
 
12885
        add r8, rax
 
12886
        adc rdi, rdx
 
12887
        adc rsi, 0
 
12888
        add rbx, r8
 
12889
        adc r9, rdi
 
12890
        adc r12, rsi
 
12891
        add rbx, r8
 
12892
        adc r9, rdi
 
12893
        adc r12, rsi
 
12894
        mov qword ptr [-104+rbp], rbx
 
12895
        mov r11, r12
 
12896
        mov rax, qword ptr [200+rcx]
 
12897
        mul qword ptr [248+rcx]
 
12898
        mov r8, rax
 
12899
        mov rdi, rdx
 
12900
        xor rsi, rsi
 
12901
        mov rax, qword ptr [208+rcx]
 
12902
        mul qword ptr [240+rcx]
 
12903
        add r8, rax
 
12904
        adc rdi, rdx
 
12905
        adc rsi, 0
 
12906
        mov rax, qword ptr [216+rcx]
 
12907
        mul qword ptr [232+rcx]
 
12908
        add r8, rax
 
12909
        adc rdi, rdx
 
12910
        adc rsi, 0
 
12911
        mov rax, r10
 
12912
        mov r13, rdi
 
12913
        mov r12, rsi
 
12914
        add r9, r8
 
12915
        adc r11, r13
 
12916
        adc rax, r12
 
12917
        add r9, r8
 
12918
        adc r11, r13
 
12919
        adc rax, r12
 
12920
        mov rdx, rax
 
12921
        mov rbx, r11
 
12922
        mov rdi, r13
 
12923
        mov r11, rdx
 
12924
        mov rsi, r12
 
12925
        mov r12, r10
 
12926
        mov rax, qword ptr [224+rcx]
 
12927
        mul rax
 
12928
        add r9, rax
 
12929
        adc rbx, rdx
 
12930
        adc r11, 0
 
12931
        mov qword ptr [-96+rbp], r9
 
12932
        mov r9, r10
 
12933
        mov rax, qword ptr [208+rcx]
 
12934
        mul qword ptr [248+rcx]
 
12935
        mov r8, rax
 
12936
        mov rdi, rdx
 
12937
        xor rsi, rsi
 
12938
        mov rax, qword ptr [216+rcx]
 
12939
        mul qword ptr [240+rcx]
 
12940
        add r8, rax
 
12941
        adc rdi, rdx
 
12942
        adc rsi, 0
 
12943
        mov rax, qword ptr [224+rcx]
 
12944
        mul qword ptr [232+rcx]
 
12945
        add r8, rax
 
12946
        adc rdi, rdx
 
12947
        adc rsi, 0
 
12948
        mov r13, rdi
 
12949
        mov rax, rsi
 
12950
        add rbx, r8
 
12951
        adc r11, r13
 
12952
        adc r9, rax
 
12953
        add rbx, r8
 
12954
        adc r11, r13
 
12955
        adc r9, rax
 
12956
        mov qword ptr [-88+rbp], rbx
 
12957
        mov rsi, r11
 
12958
        mov r8, r9
 
12959
        mov rax, qword ptr [216+rcx]
 
12960
        mul qword ptr [248+rcx]
 
12961
        add rsi, rax
 
12962
        adc r8, rdx
 
12963
        adc r12, 0
 
12964
        add rsi, rax
 
12965
        adc r8, rdx
 
12966
        adc r12, 0
 
12967
        mov r11, r12
 
12968
        mov rax, qword ptr [224+rcx]
 
12969
        mul qword ptr [240+rcx]
 
12970
        add rsi, rax
 
12971
        adc r8, rdx
 
12972
        adc r11, 0
 
12973
        add rsi, rax
 
12974
        adc r8, rdx
 
12975
        adc r11, 0
 
12976
        mov r13, r8
 
12977
        mov rbx, r11
 
12978
        mov rax, qword ptr [232+rcx]
 
12979
        mul rax
 
12980
        add rsi, rax
 
12981
        adc r13, rdx
 
12982
        adc rbx, 0
 
12983
        mov qword ptr [-80+rbp], rsi
 
12984
        mov r12, rbx
 
12985
        mov rdi, r13
 
12986
        mov r13, r10
 
12987
        mov rax, qword ptr [224+rcx]
 
12988
        mul qword ptr [248+rcx]
 
12989
        add rdi, rax
 
12990
        adc r12, rdx
 
12991
        adc r13, 0
 
12992
        add rdi, rax
 
12993
        adc r12, rdx
 
12994
        adc r13, 0
 
12995
        mov r9, r12
 
12996
        mov r12, r13
 
12997
        mov rax, qword ptr [232+rcx]
 
12998
        mul qword ptr [240+rcx]
 
12999
        add rdi, rax
 
13000
        adc r9, rdx
 
13001
        adc r12, 0
 
13002
        add rdi, rax
 
13003
        adc r9, rdx
 
13004
        adc r12, 0
 
13005
        mov qword ptr [-72+rbp], rdi
 
13006
        mov r11, r9
 
13007
        mov rbx, r12
 
13008
        mov r9, r10
 
13009
        mov rax, qword ptr [232+rcx]
 
13010
        mul qword ptr [248+rcx]
 
13011
        add r11, rax
 
13012
        adc rbx, rdx
 
13013
        adc r9, 0
 
13014
        add r11, rax
 
13015
        adc rbx, rdx
 
13016
        adc r9, 0
 
13017
        mov r13, rbx
 
13018
        mov rbx, r9
 
13019
        mov r9, r10
 
13020
        mov rax, qword ptr [240+rcx]
 
13021
        mul rax
 
13022
        add r11, rax
 
13023
        adc r13, rdx
 
13024
        adc rbx, 0
 
13025
        mov qword ptr [-64+rbp], r11
 
13026
        mov rdi, r13
 
13027
        mov rsi, rbx
 
13028
        mov rax, qword ptr [240+rcx]
 
13029
        mul qword ptr [248+rcx]
 
13030
        add rdi, rax
 
13031
        adc rsi, rdx
 
13032
        adc r9, 0
 
13033
        add rdi, rax
 
13034
        adc rsi, rdx
 
13035
        adc r9, 0
 
13036
        mov qword ptr [-56+rbp], rdi
 
13037
        mov r8, r9
 
13038
        mov rax, qword ptr [248+rcx]
 
13039
        mul rax
 
13040
        add rsi, rax
 
13041
        adc r8, rdx
 
13042
        adc r10, 0
 
13043
        mov qword ptr [-48+rbp], rsi
 
13044
        mov qword ptr [-40+rbp], r8
 
13045
        mov dword ptr [8+r14], 64
 
13046
        mov dword ptr [r14], 0
 
13047
;        mov rdi, qword ptr [16+r14]
 
13048
;        lea rsi, qword ptr [-544+rbp]
 
13049
;        mov edx, 512
 
13050
        mov rcx, qword ptr [16+r14]
 
13051
        lea rdx, qword ptr [-544+rbp]
 
13052
        mov r8d, 512
 
13053
        call memcpy
 
13054
        mov edx, dword ptr [8+r14]
 
13055
        test edx, edx
 
13056
        je L304
 
13057
        lea ecx, dword ptr [-1+rdx]
 
13058
        mov rsi, qword ptr [16+r14]
 
13059
        mov r10d, ecx
 
13060
        cmp dword ptr [rsi+r10*8], 0
 
13061
        jne L302
 
13062
        mov edx, ecx
 
13063
        ALIGN 16
 
13064
L303:
 
13065
        test edx, edx
 
13066
        mov ecx, edx
 
13067
        je L307
 
13068
        dec edx
 
13069
        mov eax, edx
 
13070
        cmp dword ptr [rsi+rax*8], 0
 
13071
        je L303
 
13072
        mov dword ptr [8+r14], ecx
 
13073
        mov edx, ecx
 
13074
L302:
 
13075
        test edx, edx
 
13076
        je L304
 
13077
        mov eax, dword ptr [r14]
 
13078
        jmp L305
 
13079
 
 
13080
L307:
 
13081
        mov dword ptr [8+r14], edx
 
13082
L304:
 
13083
        xor eax, eax
 
13084
L305:
 
13085
        mov dword ptr [r14], eax
 
13086
        add rsp, 512+32                 ; +32 for "home" storage
 
13087
        pop rbx
 
13088
        pop r12
 
13089
        pop r13
 
13090
        pop r14
 
13091
        pop rbp
 
13092
 
 
13093
        pop rsi
 
13094
        pop rdi
 
13095
 
 
13096
        ret
 
13097
 
 
13098
s_mp_sqr_comba_32 ENDP
 
13099
 
 
13100
END