security/nss/lib/freebl/mpi/mp_comba_amd64_masm.asm

Wed, 31 Dec 2014 06:09:35 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Wed, 31 Dec 2014 06:09:35 +0100
changeset 0
6474c204b198
permissions
-rw-r--r--

Cloned upstream origin tor-browser at tor-browser-31.3.0esr-4.5-1-build1
revision ID fc1c9ff7c1b2defdbc039f12214767608f46423f for hacking purpose.

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

mercurial