default rel %define XMMWORD %define YMMWORD %define ZMMWORD section .text code align=64 global curve25519_donna_x64 # donna function. # linux arguments: RDI, RSI, RDX # windows arguments: RCX, RDX, R8 curve25519_donna_x64: $L$FB13: push r15 push r14 xor r15d,r15d push r13 push r12 push rbp push rbx push rsi push rdi mov rdi, rcx mov rsi, rdx mov rdx, r8 xor r8d,r8d xor r11d,r11d xor ebp,ebp xor r9d,r9d xor r13d,r13d sub rsp,784 mov rcx,QWORD[6+rdx] mov r10,QWORD[rdx] movdqu xmm0,XMMWORD[rsi] lea r14,[488+rsp] mov QWORD[352+rsp],rdi movaps XMMWORD[360+rsp],xmm0 shr rcx,3 and BYTE[360+rsp],-8 mov rbx,rcx mov rcx,QWORD[12+rdx] movdqu xmm0,XMMWORD[16+rsi] shr rcx,6 movaps XMMWORD[376+rsp],xmm0 movzx eax,BYTE[391+rsp] and eax,127 or eax,64 mov BYTE[391+rsp],al mov rax,2251799813685247 and rcx,rax and rbx,rax and r10,rax mov rdi,rcx mov QWORD[184+rsp],rcx mov rcx,QWORD[19+rdx] mov rdx,QWORD[24+rdx] mov QWORD[24+rsp],r10 mov QWORD[120+rsp],rbx shr rcx,1 shr rdx,12 and rcx,rax mov rsi,rdx mov r12,rcx mov QWORD[264+rsp],rcx and rsi,rax lea rdx,[rsi*8+rsi] mov QWORD[320+rsp],rsi mov QWORD[((-120))+rsp],rsi lea rdx,[rdx*2+rsi] mov rsi,r14 mov r14,r15 mov QWORD[192+rsp],rdx lea rdx,[rbx*8+rbx] lea rdx,[rdx*2+rbx] mov QWORD[328+rsp],rdx lea rdx,[rdi*8+rdi] lea rdx,[rdx*2+rdi] mov QWORD[336+rsp],rdx lea rdx,[rcx*8+rcx] lea rdx,[rdx*2+rcx] lea rcx,[728+rsp] mov QWORD[200+rsp],rdx lea rdx,[391+rsp] mov QWORD[344+rsp],rdx mov QWORD[((-24))+rsp],rdi lea rdx,[536+rsp] mov QWORD[88+rsp],rcx lea rcx,[680+rsp] mov QWORD[40+rsp],rbx mov QWORD[((-88))+rsp],r10 mov ebx,1 xor r10d,r10d mov QWORD[232+rsp],rcx lea rcx,[632+rsp] mov QWORD[((-104))+rsp],rbx mov r15,QWORD[40+rsp] xor edi,edi mov QWORD[40+rsp],r12 mov QWORD[80+rsp],rcx lea rcx,[584+rsp] mov QWORD[((-32))+rsp],0 mov QWORD[((-56))+rsp],0 mov QWORD[72+rsp],1 mov rbx,r8 mov QWORD[104+rsp],rcx lea rcx,[440+rsp] mov QWORD[8+rsp],rdx mov QWORD[56+rsp],r10 mov r12,r11 mov QWORD[((-8))+rsp],rcx lea rcx,[392+rsp] mov QWORD[((-72))+rsp],rcx mov rcx,rax mov rax,QWORD[344+rsp] $L$3: movzx eax,BYTE[rax] mov rdx,QWORD[((-8))+rsp] mov QWORD[240+rsp],rsi mov DWORD[316+rsp],8 mov rsi,r15 mov r15,QWORD[72+rsp] mov BYTE[315+rsp],al mov rax,QWORD[80+rsp] mov QWORD[80+rsp],rdx mov rdx,r9 mov QWORD[((-8))+rsp],rax mov rax,QWORD[8+rsp] mov QWORD[256+rsp],rax mov rax,QWORD[((-72))+rsp] mov QWORD[((-72))+rsp],rbp mov QWORD[248+rsp],rax mov rax,r8 jmp NEAR $L$2 $L$10: mov r9,r8 mov r8,QWORD[80+rsp] mov QWORD[80+rsp],r9 mov r9,QWORD[88+rsp] mov QWORD[((-8))+rsp],r8 mov r8,QWORD[256+rsp] mov QWORD[256+rsp],r9 mov r9,QWORD[104+rsp] mov QWORD[88+rsp],r8 mov r8,QWORD[248+rsp] mov QWORD[248+rsp],r9 mov r9,QWORD[232+rsp] mov QWORD[104+rsp],r8 mov r8,QWORD[240+rsp] mov QWORD[240+rsp],r9 mov QWORD[232+rsp],r8 $L$2: movzx r8d,BYTE[315+rsp] mov QWORD[208+rsp],rcx mov rcx,QWORD[((-88))+rsp] shr r8b,7 mov r9,rcx movzx r8d,r8b xor r9,r15 neg r8 and r9,r8 mov rbp,r8 xor r15,r9 xor r9,rcx mov rcx,rbp mov QWORD[((-88))+rsp],r15 mov r15,QWORD[((-56))+rsp] mov QWORD[160+rsp],r9 mov QWORD[128+rsp],rcx mov r9,r15 xor r9,rsi mov r8,r9 and r8,rbp xor r15,r8 mov r9,r15 mov r15,r8 xor r15,rsi mov QWORD[72+rsp],r15 mov r15,QWORD[((-24))+rsp] mov rsi,r15 xor rsi,r10 and rsi,rbp mov rbp,QWORD[((-72))+rsp] xor r10,rsi xor rsi,r15 mov r15,QWORD[40+rsp] mov QWORD[8+rsp],rsi mov rsi,r15 xor rsi,rbp and rsi,rcx xor rbp,rsi xor rsi,r15 mov r15,QWORD[((-32))+rsp] mov QWORD[40+rsp],rsi mov rsi,QWORD[((-120))+rsp] xor rsi,r15 mov r8,rsi and r8,rcx xor r15,r8 mov rsi,r15 mov r15,QWORD[((-120))+rsp] xor r15,r8 mov r8,QWORD[((-104))+rsp] mov QWORD[152+rsp],r15 mov r15,QWORD[((-104))+rsp] xor r8,r12 and r8,rcx xor r15,r8 xor r12,r8 mov r8,r11 mov QWORD[((-32))+rsp],r15 mov r15,QWORD[56+rsp] xor r8,rdx and r8,rcx xor r11,r8 xor r8,rdx mov rdx,r15 mov QWORD[((-72))+rsp],r8 mov r8,r14 xor rdx,rdi and rdx,rcx xor rdi,rdx xor r8,r13 xor rdx,r15 and r8,rcx mov r15,QWORD[((-88))+rsp] xor r14,r8 xor r13,r8 mov r8,rbx xor r8,rax and r8,rcx mov rcx,18014398509481832 xor rbx,r8 xor r8,rax lea rax,[r15*1+r12] mov r15,QWORD[240+rsp] mov QWORD[((-56))+rsp],rax mov QWORD[r15],rax lea rax,[r9*1+r11] mov QWORD[8+r15],rax mov QWORD[((-120))+rsp],rax lea rax,[r10*1+rdi] mov QWORD[16+r15],rax mov QWORD[136+rsp],rax lea rax,[rbp*1+r14] mov QWORD[24+r15],rax mov QWORD[144+rsp],rax lea rax,[rsi*1+rbx] mov QWORD[((-104))+rsp],rax mov QWORD[32+r15],rax mov r15,QWORD[((-88))+rsp] mov rax,QWORD[256+rsp] add r15,rcx sub r15,r12 mov r12,18014398509481976 mov QWORD[rax],r15 mov QWORD[((-24))+rsp],r15 mov r15,r12 add r9,r12 add r10,r15 add rbp,r15 sub r10,rdi mov r12,r9 mov rdi,r15 mov r15,rbp sub r12,r11 mov r11,rax sub r15,r14 mov QWORD[8+rax],r12 mov QWORD[16+r11],r10 mov QWORD[24+r11],r15 mov r11,rdi mov r14,r15 add r11,rsi mov r15,QWORD[((-32))+rsp] mov QWORD[((-88))+rsp],r10 sub r11,rbx mov r10,QWORD[((-72))+rsp] mov rbx,QWORD[8+rsp] add r10,QWORD[72+rsp] mov QWORD[32+rax],r11 mov rsi,QWORD[40+rsp] mov rax,QWORD[160+rsp] mov rdi,r15 mov r9,QWORD[152+rsp] mov rbp,QWORD[248+rsp] add rbx,rdx add rdi,rax add rsi,r13 add rcx,rax add r9,r8 mov QWORD[rbp],rdi mov QWORD[8+rbp],r10 mov QWORD[16+rbp],rbx mov QWORD[24+rbp],rsi mov QWORD[32+rbp],r9 mov rbp,rcx mov rcx,18014398509481976 add rcx,QWORD[72+rsp] sub rbp,r15 mov rax,QWORD[80+rsp] mov QWORD[((-32))+rsp],rbp mov QWORD[rax],rbp mov r15,rcx mov rcx,18014398509481976 add rcx,QWORD[8+rsp] sub r15,QWORD[((-72))+rsp] mov rbp,rcx mov rcx,18014398509481976 sub rbp,rdx mov QWORD[8+rax],r15 lea rax,[r11*8+r11] mov rdx,rbp mov rbp,QWORD[80+rsp] mov QWORD[72+rsp],rdx mov QWORD[16+rbp],rdx add rcx,QWORD[40+rsp] mov QWORD[((-72))+rsp],r14 mov rdx,rcx mov rcx,18014398509481976 sub rdx,r13 add rcx,QWORD[152+rsp] mov QWORD[152+rsp],r11 mov r13,rdx mov rdx,rbp mov QWORD[24+rbp],r13 mov QWORD[56+rsp],r13 mov rbp,rcx sub rbp,r8 lea r8,[rax*2+r11] mov QWORD[32+rdx],rbp mov QWORD[160+rsp],rbp mov rbp,QWORD[((-88))+rsp] mov r13,r8 mov r8,r12 mov QWORD[8+rsp],r13 lea rax,[rbp*8+rbp] lea rdx,[rax*2+rbp] lea rax,[r14*8+r14] lea r14,[rax*2+r14] lea rax,[r12*8+r12] mov rcx,rdx mov QWORD[224+rsp],rcx lea r11,[rax*2+r12] mov QWORD[168+rsp],r14 mov rax,r11 mul r9 mov r11,rax mov rax,r13 mov r12,rdx mul r10 mov r13,QWORD[((-24))+rsp] add r11,rax mov rax,r13 adc r12,rdx mul rdi add r11,rax mov rax,r14 adc r12,rdx mul rbx add r11,rax mov rax,rcx mov rcx,QWORD[208+rsp] adc r12,rdx mul rsi add r11,rax mov rax,r13 adc r12,rdx mov rdx,r11 and rdx,rcx mov QWORD[208+rsp],rdx mul r10 mov r13,rax mov rax,r8 mov r14,rdx mul rdi add r13,rax mov rax,QWORD[8+rsp] adc r14,rdx mul rbx add r13,rax mov rax,QWORD[224+rsp] adc r14,rdx mul r9 add r13,rax mov rax,QWORD[168+rsp] adc r14,rdx mul rsi add rax,r13 mov r13,r12 mov r12,r11 adc rdx,r14 shrd r12,r13,51 shr r13,51 mov r14,r13 mov r13,r12 add r13,rax mov rax,QWORD[((-24))+rsp] adc r14,rdx mov r12,r13 and r12,rcx mul rbx mov QWORD[216+rsp],r12 mov r11,rax mov rax,rbp mov r12,rdx mul rdi mov rbp,r8 mov QWORD[40+rsp],rbp add r11,rax mov rax,r8 adc r12,rdx mul r10 add r11,rax mov rax,QWORD[8+rsp] adc r12,rdx mul rsi add r11,rax mov rax,QWORD[168+rsp] adc r12,rdx mul r9 add rax,r11 adc rdx,r12 mov r12,r13 mov r13,r14 shrd r12,r14,51 shr r13,51 mov r11,r12 mov r12,r13 add r11,rax mov rax,QWORD[((-24))+rsp] adc r12,rdx mov r8,r11 and r8,rcx mul rsi mov r13,rax mov rax,QWORD[((-72))+rsp] mov r14,rdx mul rdi add r13,rax mov rax,QWORD[((-88))+rsp] adc r14,rdx mul r10 add r13,rax mov rax,rbp adc r14,rdx mul rbx add r13,rax mov rax,QWORD[8+rsp] adc r14,rdx mul r9 add rax,r13 mov r13,r12 mov r12,r11 adc rdx,r14 shrd r12,r13,51 shr r13,51 mov r14,r13 mov r13,r12 add r13,rax mov rax,r9 adc r14,rdx mov r12,r13 mov r9,r13 mul QWORD[((-24))+rsp] and r12,rcx mov QWORD[272+rsp],r12 mov r11,rax mov r12,rdx mov rax,rdi mul QWORD[152+rsp] mov rdi,rax mov rbp,rdx mov rax,rsi add rdi,r11 adc rbp,r12 mul QWORD[40+rsp] add rdi,rax mov rax,r10 mov r10,r14 adc rbp,rdx mul QWORD[((-72))+rsp] add rdi,rax mov rax,rbx adc rbp,rdx mul QWORD[((-88))+rsp] mov r13,QWORD[56+rsp] mov rbx,QWORD[136+rsp] add rdi,rax adc rbp,rdx shr r10,51 shrd r9,r14,51 mov rdx,r10 mov r10,QWORD[((-104))+rsp] mov r14,QWORD[((-32))+rsp] mov rax,r9 add rax,rdi mov rdi,rax adc rdx,rbp mov rbp,QWORD[144+rsp] and rdi,rcx mov QWORD[280+rsp],rdi mov rdi,rax shrd rdi,rdx,51 mov rdx,QWORD[72+rsp] lea rax,[rdi*8+rdi] lea rax,[rax*2+rdi] add rax,QWORD[208+rsp] mov r9,rax shr rax,51 add rax,QWORD[216+rsp] and r9,rcx mov QWORD[288+rsp],r9 mov r9,QWORD[((-120))+rsp] mov rdi,rax shr rax,51 lea rsi,[r8*1+rax] mov r8,QWORD[160+rsp] and rdi,rcx mov QWORD[208+rsp],rdi mov QWORD[216+rsp],rsi lea rax,[r8*8+r8] lea rsi,[rax*2+r8] lea rax,[rdx*8+rdx] lea r8,[rax*2+rdx] lea rax,[r13*8+r13] lea rdi,[rax*2+r13] lea rax,[r15*8+r15] lea r11,[rax*2+r15] mov rax,r11 mul r10 mov r11,rax mov rax,r9 mov r12,rdx mul rsi add r11,rax mov rax,r14 adc r12,rdx mul QWORD[((-56))+rsp] add r11,rax mov rax,rbx adc r12,rdx mul rdi add r11,rax mov rax,rbp adc r12,rdx mul r8 add r11,rax mov rax,r11 adc r12,rdx and rax,rcx mov QWORD[296+rsp],rax mov rax,r14 mul r9 mov r9,r11 mov r13,rax mov rax,QWORD[((-56))+rsp] mov r14,rdx mul r15 add r13,rax mov rax,rbx adc r14,rdx mul rsi add r13,rax mov rax,r8 mov r8,rbp adc r14,rdx mul r10 mov r10,r12 add r13,rax mov rax,rbp adc r14,rdx mul rdi add rax,r13 adc rdx,r14 shr r10,51 mov r14,rbx shrd r9,r12,51 add r9,rax mov rax,QWORD[((-32))+rsp] adc r10,rdx mov r13,r9 and r13,rcx mul rbx mov r11,rax mov r12,rdx mov rax,QWORD[((-56))+rsp] mul QWORD[72+rsp] add r11,rax mov rax,QWORD[((-120))+rsp] adc r12,rdx mul r15 add r11,rax mov rax,rbp adc r12,rdx mul rsi add r11,rax mov rax,rdi adc r12,rdx mul QWORD[((-104))+rsp] mov rdi,rax mov rbp,rdx mov rax,r9 add rdi,r11 mov rdx,r10 adc rbp,r12 shr rdx,51 shrd rax,r10,51 mov r12,rdx mov r11,rax mov rax,QWORD[((-32))+rsp] add r11,rdi mov rdx,r11 adc r12,rbp mov rbp,r8 and rdx,rcx mov rdi,r12 mov rbx,rdx mul r8 mov r9,rax mov r10,rdx mov rax,QWORD[((-56))+rsp] mul QWORD[56+rsp] add r9,rax mov rax,QWORD[((-120))+rsp] adc r10,rdx mul QWORD[72+rsp] add r9,rax mov rax,r14 adc r10,rdx mul r15 add r9,rax mov rax,rsi mov rsi,r11 adc r10,rdx mul QWORD[((-104))+rsp] add rax,r9 adc rdx,r10 shr rdi,51 shrd rsi,r12,51 add rsi,rax mov rax,QWORD[((-32))+rsp] adc rdi,rdx mov rdx,rsi and rdx,rcx mov r8,rdx mul QWORD[((-104))+rsp] mov r9,rax mov r10,rdx mov rax,QWORD[160+rsp] mul QWORD[((-56))+rsp] mov r12,QWORD[272+rsp] add r9,rax mov rax,r15 mov r15,QWORD[288+rsp] adc r10,rdx mul rbp add r9,rax mov rax,QWORD[56+rsp] adc r10,rdx mul QWORD[((-120))+rsp] add r9,rax mov rax,QWORD[72+rsp] adc r10,rdx mul r14 mov r14,QWORD[280+rsp] add rax,r9 adc rdx,r10 shrd rsi,rdi,51 shr rdi,51 mov r9,rsi mov r10,rdi lea rdi,[r8*1+r12] add r9,rax adc r10,rdx mov rdx,r9 shrd r9,r10,51 and rdx,rcx lea rax,[r9*8+r9] lea rbp,[rdx*1+r14] lea rax,[rax*2+r9] add rax,QWORD[296+rsp] mov r10,rax shr rax,51 add r13,rax and r10,rcx mov rax,r13 shr r13,51 lea r11,[r10*1+r15] and rax,rcx add r13,rbx mov r9,rax mov rax,QWORD[208+rsp] lea rbx,[r9*1+rax] mov rax,QWORD[216+rsp] lea rsi,[r13*1+rax] mov rax,18014398509481832 add rax,r15 mov r15,18014398509481976 sub rax,r10 add r15,r12 mov QWORD[72+rsp],rax mov rax,18014398509481976 add rax,QWORD[208+rsp] sub r15,r8 sub rax,r9 mov QWORD[56+rsp],rax mov rax,18014398509481976 add rax,QWORD[216+rsp] sub rax,r13 mov r13,rax mov rax,18014398509481976 add rax,r14 lea r14,[r11*1+r11] sub rax,rdx lea rdx,[rbx*1+rbx] mov QWORD[((-32))+rsp],rax lea rax,[rbp*8+rbp] mov QWORD[160+rsp],rdx lea rdx,[rax*2+rbp] mov rax,r11 lea r8,[rdx*1+rdx] mov QWORD[272+rsp],rdx mul r11 mov r11,rax mov rax,r8 mov r12,rdx mul rbx add r11,rax lea rax,[rsi*8+rsi] adc r12,rdx lea rax,[rax*2+rsi] add rax,rax mul rdi add r11,rax lea rax,[rdi*8+rdi] mov r9,r11 adc r12,rdx and r9,rcx mov QWORD[208+rsp],r9 lea r9,[rax*2+rdi] mov rax,r9 mul rdi mov r9,rax mov rax,rbx mov r10,rdx mul r14 add r9,rax mov rax,r8 adc r10,rdx mul rsi add rax,r9 mov r9,r11 adc rdx,r10 mov r10,r12 shrd r9,r12,51 shr r10,51 add r9,rax mov rax,rbx adc r10,rdx mov r12,r9 mul rbx and r12,rcx mov rbx,QWORD[160+rsp] mov QWORD[216+rsp],r12 mov r11,rax mov rax,r8 mov r12,rdx mul rdi add r11,rax mov rax,r14 adc r12,rdx mul rsi add rax,r11 adc rdx,r12 shrd r9,r10,51 shr r10,51 add r9,rax mov rax,rdi adc r10,rdx mov r8,r9 mul r14 and r8,rcx mov r11,rax mov rax,QWORD[272+rsp] mov r12,rdx mul rbp add r11,rax mov rax,rbx adc r12,rdx mul rsi add rax,r11 adc rdx,r12 shrd r9,r10,51 shr r10,51 mov r11,r9 mov r12,r10 add r11,rax mov rax,rbx adc r12,rdx mov QWORD[160+rsp],r11 mul rdi mov r9,rax mov rax,rsi mov r10,rdx mul rsi mov rsi,rax mov rdi,rdx mov rax,r14 add rsi,r9 adc rdi,r10 mov r10,QWORD[72+rsp] mul rbp mov rbp,QWORD[56+rsp] add rsi,rax adc rdi,rdx mov rax,rsi shrd r11,r12,51 mov rdx,rdi shr r12,51 add rax,r11 adc rdx,r12 mov QWORD[272+rsp],rax shrd rax,rdx,51 mov rsi,rax lea rax,[rax*8+rax] lea rdx,[rax*2+rsi] add rdx,QWORD[208+rsp] mov rax,QWORD[216+rsp] lea rsi,[r10*1+r10] mov QWORD[208+rsp],rdx shr rdx,51 add rax,rdx mov QWORD[216+rsp],rax shr rax,51 lea rbx,[r8*1+rax] mov r8,QWORD[((-32))+rsp] mov QWORD[280+rsp],rbx lea rbx,[rbp*1+rbp] lea rax,[r8*8+r8] lea r8,[rax*2+r8] mov rax,r10 mul r10 lea rdi,[r8*1+r8] mov r11,rax mov rax,rbp mov r12,rdx mul rdi add r11,rax lea rax,[r13*8+r13] adc r12,rdx lea rax,[rax*2+r13] add rax,rax mul r15 add r11,rax lea rax,[r15*8+r15] adc r12,rdx mov r10,r11 lea r9,[rax*2+r15] and r10,rcx mov QWORD[72+rsp],r10 mov rax,r9 mul r15 mov r9,rax mov rax,rbp mov r10,rdx mul rsi add r9,rax mov rax,rdi adc r10,rdx mul r13 add rax,r9 mov r9,r11 adc rdx,r10 mov r10,r12 shrd r9,r12,51 shr r10,51 add r9,rax mov rax,rbp adc r10,rdx mov r12,r9 mul rbp and r12,rcx mov r14,r12 mov r11,rax mov rax,rdi mov r12,rdx mul r15 add r11,rax mov rax,rsi adc r12,rdx mul r13 add rax,r11 adc rdx,r12 shrd r9,r10,51 shr r10,51 mov r11,r9 mov r12,r10 add r11,rax mov rax,r15 adc r12,rdx mov r9,r11 mul rsi and r9,rcx mov QWORD[56+rsp],r9 mov r9,rax mov rax,r8 mov r8,QWORD[((-32))+rsp] mov r10,rdx mul r8 add r9,rax mov rax,r13 adc r10,rdx mul rbx add rax,r9 mov r9,r11 adc rdx,r10 mov r10,r12 shrd r9,r12,51 shr r10,51 add r9,rax mov rax,r15 adc r10,rdx mov r12,r9 mul rbx and r12,rcx mov rbp,r12 mov r11,rax mov rax,r13 mov r12,rdx mul r13 add r11,rax mov rax,r8 adc r12,rdx mul rsi add rax,r11 adc rdx,r12 mov r12,QWORD[336+rsp] shrd r9,r10,51 shr r10,51 add rax,r9 mov r9,QWORD[24+rsp] adc rdx,r10 mov rbx,rax mov r10,QWORD[192+rsp] shrd rax,rdx,51 and rbx,rcx lea rdx,[rax*8+rax] lea rsi,[rdx*2+rax] add rsi,QWORD[72+rsp] mov rax,QWORD[328+rsp] mul rbx mov r13,rsi shr rsi,51 add rsi,r14 and r13,rcx mov r8,r13 mov r13,rsi shr rsi,51 and r13,rcx mov r14,rdx add rsi,QWORD[56+rsp] mov rdi,r13 mov r13,rax mov rax,r12 mul rbp add r13,rax mov rax,r9 adc r14,rdx mul r8 add r13,rax mov rax,r10 adc r14,rdx mul rdi add r13,rax mov rax,QWORD[200+rsp] adc r14,rdx mul rsi add r13,rax mov rax,r12 adc r14,rdx mov r15,r13 mul rbx and r15,rcx mov r11,rax mov rax,QWORD[200+rsp] mov r12,rdx mul rbp add r11,rax mov rax,QWORD[120+rsp] adc r12,rdx mul r8 add r11,rax mov rax,r9 adc r12,rdx mul rdi add r11,rax mov rax,r10 adc r12,rdx mul rsi add rax,r11 adc rdx,r12 shrd r13,r14,51 shr r14,51 mov r11,r13 mov r12,r14 add r11,rax mov rax,r10 adc r12,rdx mov r13,r11 mul rbp and r13,rcx mov r14,r13 mov r9,rax mov rax,QWORD[200+rsp] mov r10,rdx mul rbx add r9,rax mov rax,QWORD[184+rsp] adc r10,rdx mul r8 add r9,rax mov rax,QWORD[120+rsp] adc r10,rdx mul rdi add r9,rax mov rax,QWORD[24+rsp] adc r10,rdx mul rsi add rax,r9 mov r9,r11 adc rdx,r10 mov r10,r12 shrd r9,r12,51 shr r10,51 add r9,rax mov rax,QWORD[24+rsp] adc r10,rdx mov r13,r9 and r13,rcx mul rbp mov r11,rax mov rax,QWORD[192+rsp] mov r12,rdx mul rbx add r11,rax mov rax,QWORD[264+rsp] adc r12,rdx mul r8 add r11,rax mov rax,QWORD[184+rsp] adc r12,rdx mul rdi add r11,rax mov rax,QWORD[120+rsp] adc r12,rdx mul rsi add rax,r11 adc rdx,r12 shrd r9,r10,51 shr r10,51 mov r11,r9 mov r12,r10 add r11,rax mov rax,rbx adc r12,rdx mov QWORD[72+rsp],r11 mul QWORD[24+rsp] mov r9,rax mov r10,rdx mov rax,rbp mul QWORD[120+rsp] add r9,rax mov rax,r8 mov r8,r11 adc r10,rdx mul QWORD[320+rsp] add r9,rax mov rax,rdi adc r10,rdx mul QWORD[264+rsp] mov rdi,rax mov rbp,rdx mov rax,rsi add rdi,r9 mov r9,r12 adc rbp,r10 mov r10,QWORD[((-56))+rsp] mul QWORD[184+rsp] add rdi,rax adc rbp,rdx shr r9,51 shrd r8,r12,51 mov rdx,r9 mov r12,QWORD[((-120))+rsp] mov rax,r8 add rax,rdi mov rdi,QWORD[((-104))+rsp] adc rdx,rbp mov r8,rax mov QWORD[288+rsp],rax shrd r8,rdx,51 lea rbp,[r12*1+r12] lea rax,[r8*8+r8] lea r8,[rax*2+r8] lea rax,[rdi*8+rdi] add r8,r15 lea r11,[rax*2+rdi] mov rbx,r8 mov QWORD[56+rsp],r8 shr rbx,51 lea r8,[r14*1+rbx] lea rbx,[r10*1+r10] mov QWORD[296+rsp],r8 shr r8,51 lea r15,[r13*1+r8] lea r8,[r11*1+r11] mov QWORD[304+rsp],r15 mov r15,QWORD[136+rsp] mov r13,QWORD[144+rsp] lea rax,[r15*8+r15] lea rsi,[rax*2+r15] add rsi,rsi mov rax,rsi mul r13 mov rsi,rax mov rax,r10 mov rdi,rdx mul r10 add rsi,rax mov rax,r12 adc rdi,rdx mul r8 add rsi,rax lea rax,[r13*8+r13] adc rdi,rdx mov r14,rsi lea r9,[rax*2+r13] and r14,rcx mov rax,r9 mul r13 mov r9,rax mov rax,r12 mov r10,rdx mul rbx add r9,rax mov rax,r15 adc r10,rdx mul r8 add rax,r9 adc rdx,r10 shrd rsi,rdi,51 shr rdi,51 add rsi,rax mov rax,r15 adc rdi,rdx mov r10,rsi mov QWORD[((-56))+rsp],rsi mul rbx mov QWORD[((-48))+rsp],rdi mov rdi,QWORD[((-120))+rsp] and r10,rcx mov rsi,QWORD[((-56))+rsp] mov r12,r10 mov r9,rax mov rax,rdi mov r10,rdx mul rdi mov rdi,QWORD[((-48))+rsp] add r9,rax mov rax,r8 mov r8,r13 adc r10,rdx mul r13 add rax,r9 adc rdx,r10 shrd rsi,rdi,51 shr rdi,51 add rsi,rax mov rax,r8 adc rdi,rdx mov r10,rsi mov QWORD[((-120))+rsp],rsi mul rbx and r10,rcx mov rsi,QWORD[((-120))+rsp] mov r13,r10 mov QWORD[((-112))+rsp],rdi mov rdi,QWORD[((-112))+rsp] mov r9,rax mov rax,r15 mov r10,rdx mul rbp add r9,rax mov rax,r11 mov r11,QWORD[((-104))+rsp] adc r10,rdx mul r11 add rax,r9 adc rdx,r10 shrd rsi,rdi,51 shr rdi,51 add rsi,rax mov rax,rsi adc rdi,rdx and rax,rcx mov QWORD[((-120))+rsp],rax mov rax,r11 mov r11,QWORD[((-88))+rsp] mul rbx mov rbx,QWORD[((-24))+rsp] mov r9,rax mov rax,r8 mov r10,rdx mul rbp mov rbp,QWORD[40+rsp] add r9,rax mov rax,r15 adc r10,rdx mul r15 add rax,r9 adc rdx,r10 shrd rsi,rdi,51 shr rdi,51 add rsi,rax adc rdi,rdx mov r15,rsi shrd rsi,rdi,51 and r15,rcx lea rax,[rsi*8+rsi] lea rax,[rax*2+rsi] lea rsi,[rbp*1+rbp] add r14,rax mov rdi,r14 shr r14,51 add r12,r14 mov r14,QWORD[224+rsp] and rdi,rcx mov rdx,r12 shr r12,51 mov QWORD[((-104))+rsp],rdi lea r9,[r13*1+r12] mov r13,QWORD[8+rsp] mov r12,QWORD[((-72))+rsp] and rdx,rcx lea rdi,[rbx*1+rbx] mov QWORD[((-56))+rsp],rdx mov QWORD[((-32))+rsp],r9 lea r8,[r13*1+r13] lea r13,[r14*1+r14] mov rax,r13 mul r12 mov r13,rax mov rax,rbx mov r14,rdx mul rbx mov rbx,rbp add r13,rax mov rax,rbp adc r14,rdx mul r8 add r13,rax mov rax,rbx adc r14,rdx mov rbp,r13 mul rdi and rbp,rcx mov r9,rax mov rax,QWORD[168+rsp] mov r10,rdx mul r12 add r9,rax mov rax,r11 adc r10,rdx mul r8 add rax,r9 mov r9,QWORD[40+rsp] adc rdx,r10 shrd r13,r14,51 shr r14,51 add r13,rax mov rax,r11 adc r14,rdx mov r10,r13 mul rdi and r10,rcx mov rbx,r10 mov r11,rax mov rax,r9 mov r12,rdx mul r9 mov r9,QWORD[((-72))+rsp] add r11,rax mov rax,r8 adc r12,rdx mul r9 add rax,r11 adc rdx,r12 mov r12,r13 mov r13,r14 shrd r12,r14,51 shr r13,51 mov r11,r12 mov r12,r13 mov r13,QWORD[((-88))+rsp] add r11,rax mov rax,r9 adc r12,rdx mov r14,r11 mul rdi and r14,rcx mov r8,r14 mov r9,rax mov rax,r13 mov r10,rdx mul rsi add r9,rax mov rax,QWORD[8+rsp] adc r10,rdx mul QWORD[152+rsp] add rax,r9 adc rdx,r10 shrd r11,r12,51 shr r12,51 mov r9,r11 mov r10,r12 add r9,rax mov rax,QWORD[152+rsp] adc r10,rdx mov r14,r9 and r14,rcx mul rdi mov r11,rax mov rax,QWORD[((-72))+rsp] mov r12,rdx mul rsi mov rsi,rax mov rdi,rdx mov rax,r13 add rsi,r11 adc rdi,r12 mul r13 add rsi,rax adc rdi,rdx shrd r9,r10,51 shr r10,51 add rsi,r9 adc rdi,r10 mov r12,rsi shrd rsi,rdi,51 and r12,rcx lea rax,[rsi*8+rsi] mov QWORD[((-88))+rsp],r12 lea r13,[rax*2+rsi] lea rax,[r12*8+r12] add r13,rbp lea rdi,[rax*2+r12] mov rbp,r13 shr r13,51 add r13,rbx and rbp,rcx mov rbx,r13 shr r13,51 add r13,r8 and rbx,rcx lea rax,[r13*8+r13] lea rsi,[rax*2+r13] lea rax,[r14*8+r14] lea r8,[rax*2+r14] mov rax,QWORD[((-104))+rsp] mov r11,QWORD[((-56))+rsp] mul rbp mov r9,rax mov rax,r11 mov r10,rdx mul rdi add r9,rax mov rax,QWORD[((-32))+rsp] adc r10,rdx mul r8 add r9,rax lea rax,[rbx*8+rbx] adc r10,rdx lea rax,[rax*2+rbx] mul r15 add r9,rax mov rax,QWORD[((-120))+rsp] adc r10,rdx mul rsi add r9,rax mov rax,r11 adc r10,rdx mov r12,r9 mul rbp and r12,rcx mov QWORD[((-72))+rsp],r12 mov r11,rax mov rax,QWORD[((-120))+rsp] mov r12,rdx mul r8 add r11,rax mov rax,QWORD[((-104))+rsp] adc r12,rdx mul rbx add r11,rax mov rax,QWORD[((-32))+rsp] adc r12,rdx mul rdi add r11,rax mov rax,rsi mov rsi,QWORD[((-104))+rsp] adc r12,rdx mul r15 add rax,r11 adc rdx,r12 shrd r9,r10,51 shr r10,51 mov r11,r9 mov r12,r10 add r11,rax mov rax,QWORD[((-120))+rsp] adc r12,rdx mov r10,r11 and r10,rcx mul rdi mov QWORD[((-24))+rsp],r10 mov r9,rax mov rax,r8 mov r10,rdx mul r15 add r9,rax mov rax,QWORD[((-32))+rsp] adc r10,rdx mul rbp add r9,rax mov rax,QWORD[((-56))+rsp] adc r10,rdx mul rbx add r9,rax mov rax,rsi adc r10,rdx mul r13 add rax,r9 adc rdx,r10 shrd r11,r12,51 shr r12,51 add r11,rax mov rax,rsi adc r12,rdx mov QWORD[8+rsp],r11 and r11,rcx mul r14 mov r8,r11 mov QWORD[16+rsp],r12 mov r11,QWORD[8+rsp] mov r12,QWORD[16+rsp] mov r9,rax mov rax,rdi mov r10,rdx mul r15 mov rsi,rax mov rax,QWORD[((-120))+rsp] mov rdi,rdx add rsi,r9 adc rdi,r10 mul rbp add rsi,rax mov rax,QWORD[((-32))+rsp] adc rdi,rdx mul rbx add rsi,rax mov rax,QWORD[((-56))+rsp] adc rdi,rdx mul r13 add rsi,rax mov rax,rbp adc rdi,rdx shrd r11,r12,51 shr r12,51 add rsi,r11 mov r11,QWORD[((-104))+rsp] adc rdi,r12 mov r12,QWORD[((-120))+rsp] mov QWORD[40+rsp],rsi mul r15 mov r9,rax mov r10,rdx mov rax,r11 mul QWORD[((-88))+rsp] add r9,rax mov rax,QWORD[((-56))+rsp] adc r10,rdx mul r14 add r9,rax mov rax,r12 adc r10,rdx mul rbx add r9,rax mov rax,QWORD[((-32))+rsp] adc r10,rdx mul r13 add rax,r9 adc rdx,r10 shrd rsi,rdi,51 shr rdi,51 add rax,rsi adc rdx,rdi mov rsi,rax mov QWORD[136+rsp],rax shrd rsi,rdx,51 mov rdi,QWORD[((-72))+rsp] lea rax,[rsi*8+rsi] lea rax,[rax*2+rsi] mov rsi,18014398509481832 add rdi,rax lea rax,[r11*1+rsi] add rsi,144 mov r9,rdi add rsi,QWORD[((-56))+rsp] mov QWORD[144+rsp],rdi shr r9,51 add r9,QWORD[((-24))+rsp] sub rsi,rbx mov r10,r9 mov rbx,rsi mov QWORD[152+rsp],r9 shr r10,51 mov rsi,18014398509481976 add r10,r8 mov r8,rax mov QWORD[8+rsp],r10 add rsi,QWORD[((-32))+rsp] sub r8,rbp mov rbp,r8 mov r8,rsi mov rsi,18014398509481976 lea r11,[r12*1+rsi] lea rax,[rsi*1+r15] sub rax,QWORD[((-88))+rsp] sub r8,r13 mov QWORD[((-88))+rsp],rbp mov r12,QWORD[((-120))+rsp] mov r13,r8 mov r8,r11 sub r8,r14 mov QWORD[((-72))+rsp],r13 mov r14,r8 mov r8,rax mov eax,121665 mul rbp mov QWORD[((-24))+rsp],r14 mov r11,rax mov rsi,rax mov eax,121665 mov rdi,rdx shrd rsi,rdx,51 mul rbx shr rdi,51 add rsi,rax mov eax,121665 adc rdi,rdx mov QWORD[168+rsp],rsi mul r13 mov QWORD[176+rsp],rdi shrd rsi,rdi,51 shr rdi,51 mov r10,rdi mov rdi,rax mov rbp,rdx mov eax,121665 add rdi,rsi adc rbp,r10 mov r9,rdi mul r14 mov r10,rbp shrd r9,rbp,51 shr r10,51 add r9,rax mov eax,121665 adc r10,rdx mov r13,r9 mul r8 mov r14,r10 shrd r13,r10,51 shr r14,51 add r13,rax adc r14,rdx mov rax,r13 and r11,rcx shrd rax,r14,51 add r11,QWORD[((-104))+rsp] and rdi,rcx add rdi,QWORD[((-32))+rsp] lea rdx,[rax*8+rax] lea rax,[rdx*2+rax] lea rsi,[rax*1+r11] mov r11,r9 mov r9,QWORD[((-88))+rsp] and r11,rcx lea rbp,[r12*1+r11] mov r11,r13 mov QWORD[((-104))+rsp],rsi and r11,rcx mov rsi,QWORD[168+rsp] add r15,r11 lea rax,[r15*8+r15] and rsi,rcx add rsi,QWORD[((-56))+rsp] lea r14,[rax*2+r15] lea rax,[rdi*8+rdi] lea r11,[rax*2+rdi] lea rax,[rbp*8+rbp] lea r13,[rax*2+rbp] lea rax,[rsi*8+rsi] mov r10,r11 mov QWORD[((-56))+rsp],r10 lea r11,[rax*2+rsi] mov rax,r11 mul r8 mov r11,rax mov rax,QWORD[((-24))+rsp] mov r12,rdx mul r10 add r11,rax mov rax,QWORD[((-72))+rsp] adc r12,rdx mul r13 add r11,rax mov rax,r9 adc r12,rdx mul QWORD[((-104))+rsp] add r11,rax mov rax,rbx adc r12,rdx mul r14 add r11,rax mov rax,r11 adc r12,rdx and rax,rcx mov QWORD[((-120))+rsp],rax mov rax,r9 mul rsi mov r9,rax mov rax,QWORD[((-56))+rsp] mov r10,rdx mul r8 add r9,rax mov rax,QWORD[((-24))+rsp] adc r10,rdx mul r13 add r9,rax mov rax,QWORD[((-104))+rsp] adc r10,rdx mul rbx add r9,rax mov rax,QWORD[((-72))+rsp] adc r10,rdx mul r14 add rax,r9 adc rdx,r10 shrd r11,r12,51 shr r12,51 mov r9,r11 mov r10,r12 add r9,rax mov rax,QWORD[((-88))+rsp] adc r10,rdx mov r12,r9 and r12,rcx mul rdi mov QWORD[((-32))+rsp],r12 mov r11,rax mov rax,rbx mov r12,rdx mul rsi add r11,rax mov rax,r13 adc r12,rdx mul r8 add r11,rax mov rax,QWORD[((-72))+rsp] adc r12,rdx mul QWORD[((-104))+rsp] add r11,rax mov rax,QWORD[((-24))+rsp] adc r12,rdx mul r14 add rax,r11 adc rdx,r12 shrd r9,r10,51 shr r10,51 add r9,rax mov rax,rbx adc r10,rdx mov r11,r9 mul rdi and r11,rcx mov QWORD[((-48))+rsp],r10 mov r13,r11 mov r11,rax mov rax,QWORD[((-72))+rsp] mov r12,rdx mul rsi add r11,rax mov rax,QWORD[((-88))+rsp] adc r12,rdx mul rbp add r11,rax mov rax,QWORD[((-24))+rsp] adc r12,rdx mul QWORD[((-104))+rsp] add r11,rax mov rax,r14 adc r12,rdx mul r8 add rax,r11 adc rdx,r12 shrd r9,r10,51 shr r10,51 add r9,rax mov rax,QWORD[((-24))+rsp] adc r10,rdx mov r14,r9 mul rsi mov r11,rax mov rax,QWORD[((-72))+rsp] mov r12,rdx mul rdi mov rsi,rax mov rdi,rdx mov rax,rbx add rsi,r11 adc rdi,r12 mul rbp mov rbp,QWORD[104+rsp] add rsi,rax mov rax,QWORD[((-88))+rsp] adc rdi,rdx mul r15 mov r15,QWORD[144+rsp] add rsi,rax mov rax,QWORD[((-104))+rsp] adc rdi,rdx mul r8 mov r8,QWORD[152+rsp] add rsi,rax adc rdi,rdx mov rdx,QWORD[216+rsp] shrd r9,r10,51 shr r10,51 add rsi,r9 adc rdi,r10 mov rbx,rsi mov r10,QWORD[128+rsp] shrd rsi,rdi,51 lea rax,[rsi*8+rsi] lea r12,[rax*2+rsi] add r12,QWORD[((-120))+rsp] mov rsi,QWORD[208+rsp] mov rax,r10 and rax,rcx mov r9,rsi and rsi,rcx mov r11,r12 xor r9,r15 and r15,rcx shr r11,51 add r11,QWORD[((-32))+rsp] and r9,rax xor rsi,r9 xor r15,r9 mov QWORD[rbp],rsi mov QWORD[((-88))+rsp],rsi mov rsi,rdx xor rsi,r8 and r8,rcx and rdx,rcx mov rdi,r11 and rsi,rax mov r9,r8 shr rdi,51 xor r9,rsi xor rsi,rdx add rdi,r13 mov r13,QWORD[232+rsp] mov rdx,QWORD[280+rsp] mov QWORD[((-56))+rsp],r9 mov QWORD[8+rbp],rsi mov QWORD[8+r13],r9 mov r9,QWORD[8+rsp] mov QWORD[r13],r15 xor r9,rdx mov r8,r9 and r8,r10 mov r10,QWORD[8+rsp] mov r9,r8 xor r9,rdx xor r10,r8 mov rdx,r9 mov r8,QWORD[160+rsp] mov QWORD[16+rbp],rdx mov QWORD[((-24))+rsp],r9 mov r9,rbp mov rbp,QWORD[40+rsp] mov QWORD[16+r13],r10 mov rdx,r8 and r8,rcx xor rdx,rbp and rbp,rcx and rdx,rax xor rbp,rdx xor r8,rdx mov rdx,r9 mov QWORD[24+r13],rbp mov QWORD[24+rdx],r8 mov QWORD[((-72))+rsp],rbp mov QWORD[40+rsp],r8 mov r9,QWORD[272+rsp] mov rbp,QWORD[136+rsp] mov rdx,r9 xor rdx,rbp mov r8,rdx mov rdx,rbp mov rbp,QWORD[((-8))+rsp] and r8,rax and rdx,rcx xor rdx,r8 mov QWORD[32+r13],rdx mov QWORD[((-32))+rsp],rdx mov r13,r9 mov rdx,QWORD[104+rsp] mov r9,QWORD[56+rsp] and r13,rcx xor r13,r8 mov r8,2251799813685247 mov QWORD[((-120))+rsp],r13 mov QWORD[32+rdx],r13 mov rdx,r9 and r8,r9 xor rdx,r12 mov r9,r8 mov r13,2251799813685247 and rdx,rax and r12,r13 mov r8,2251799813685247 xor r9,rdx xor r12,rdx mov r13,QWORD[88+rsp] mov QWORD[rbp],r9 mov QWORD[((-104))+rsp],r9 mov r9,QWORD[296+rsp] mov QWORD[r13],r12 mov rdx,r9 xor rdx,r11 and r11,r8 and rdx,rax xor r11,rdx mov QWORD[8+r13],r11 mov r13,r8 and r13,r9 mov r9,QWORD[88+rsp] xor rdx,r13 mov QWORD[8+rbp],rdx mov rbp,QWORD[304+rsp] mov r13,rbp xor r13,rdi and r13,QWORD[128+rsp] mov r8,r13 xor rdi,r13 xor r8,rbp mov rbp,QWORD[72+rsp] mov QWORD[16+r9],rdi mov r13,r8 mov QWORD[56+rsp],r8 mov r8,QWORD[((-8))+rsp] mov QWORD[16+r8],r13 mov r13,QWORD[72+rsp] mov r8,2251799813685247 and rbp,r8 xor r13,r14 and r14,r8 mov r8,QWORD[((-8))+rsp] and r13,rax xor r14,r13 xor r13,rbp mov rbp,QWORD[288+rsp] mov QWORD[24+r8],r13 mov QWORD[24+r9],r14 mov r8,rbp xor r8,rbx and r8,rax mov rax,2251799813685247 and rbx,rax and rax,rbp xor rbx,r8 xor rax,r8 mov r8,QWORD[((-8))+rsp] mov QWORD[32+r9],rbx mov QWORD[32+r8],rax sal BYTE[315+rsp],1 sub DWORD[316+rsp],1 jne NEAR $L$10 mov r9,rdx mov rdx,QWORD[88+rsp] mov QWORD[72+rsp],r15 mov r15,rsi mov rsi,QWORD[104+rsp] mov rbp,QWORD[((-72))+rsp] sub QWORD[344+rsp],1 mov r8,rax mov QWORD[8+rsp],rdx mov rdx,QWORD[248+rsp] mov QWORD[((-72))+rsp],rsi mov rsi,QWORD[232+rsp] mov rax,QWORD[344+rsp] mov QWORD[104+rsp],rdx mov rdx,QWORD[240+rsp] mov QWORD[232+rsp],rdx mov rdx,QWORD[256+rsp] mov QWORD[88+rsp],rdx lea rdx,[359+rsp] cmp rdx,rax jne NEAR $L$3 lea rax,[rbx*8+rbx] mov QWORD[184+rsp],rbp mov r8,rbx mov r15,r14 mov r13,r11 mov r11,r12 lea rbp,[rax*2+rbx] lea rax,[rdi*8+rdi] mov QWORD[168+rsp],r10 mov r9,rdi lea r14,[r12*1+r12] lea r12,[r13*1+r13] lea rax,[rax*2+rdi] lea r10,[rbp*1+rbp] lea rbx,[rax*1+rax] mov QWORD[56+rsp],rax mov rax,rbx mul r15 mov rcx,rax mov rax,r11 mov rbx,rdx mul r11 add rcx,rax mov rax,r10 adc rbx,rdx mul r13 mov rsi,rax mov rdi,rdx lea rax,[r15*8+r15] add rsi,rcx adc rdi,rbx mov QWORD[((-120))+rsp],rsi mov rbx,2251799813685247 mov rcx,rdi lea rdi,[rax*2+r15] mov rax,r13 mul r14 and rbx,QWORD[((-120))+rsp] mov QWORD[((-112))+rsp],rcx mov rsi,QWORD[((-120))+rsp] mov QWORD[8+rsp],rdi mov rcx,rax mov rax,rdi mov QWORD[((-104))+rsp],rbx mov rbx,rdx mov rdi,QWORD[((-112))+rsp] mul r15 add rcx,rax mov rax,r10 adc rbx,rdx mul r9 add rcx,rax mov rax,r14 adc rbx,rdx shrd rsi,rdi,51 shr rdi,51 add rsi,rcx mov rcx,2251799813685247 adc rdi,rbx and rcx,rsi mul r9 mov QWORD[((-88))+rsp],rcx mov rcx,rax mov rax,r13 mov rbx,rdx mul r13 add rcx,rax mov rax,r10 mov r10,2251799813685247 adc rbx,rdx mul r15 add rcx,rax adc rbx,rdx shrd rsi,rdi,51 shr rdi,51 add rsi,rcx mov rax,rsi adc rdi,rbx mov rsi,2251799813685247 mov QWORD[((-120))+rsp],rax mov rax,r15 and rsi,QWORD[((-120))+rsp] mul r14 mov QWORD[((-112))+rsp],rdi mov rdi,QWORD[((-112))+rsp] mov QWORD[((-72))+rsp],rsi mov rsi,QWORD[((-120))+rsp] mov rcx,rax mov rax,r9 mov rbx,rdx mul r12 add rcx,rax mov rax,r8 adc rbx,rdx mul rbp add rcx,rax mov rax,r14 mov r14,2251799813685247 adc rbx,rdx shrd rsi,rdi,51 shr rdi,51 add rsi,rcx adc rdi,rbx and r10,rsi mul r8 mov rcx,rax mov rax,r12 mov rbx,rdx mul r15 add rcx,rax mov rax,r9 adc rbx,rdx mul r9 add rcx,rax adc rbx,rdx shrd rsi,rdi,51 shr rdi,51 add rsi,rcx adc rdi,rbx mov rcx,rsi mov rbx,2251799813685247 shrd rcx,rdi,51 and r14,rsi mov rsi,2251799813685247 lea rax,[rcx*8+rcx] lea rax,[rax*2+rcx] add rax,QWORD[((-104))+rsp] and rbx,rax shr rax,51 add rax,QWORD[((-88))+rsp] mov QWORD[((-24))+rsp],rbx lea r12,[rbx*1+rbx] and rsi,rax shr rax,51 add rax,QWORD[((-72))+rsp] lea rcx,[rsi*1+rsi] mov QWORD[((-88))+rsp],rcx mov QWORD[((-120))+rsp],rax lea rax,[r14*8+r14] lea rcx,[rax*2+r14] mov rax,rsi lea rdi,[rcx*1+rcx] mov QWORD[80+rsp],rcx mul rdi mov rcx,rax mov rax,QWORD[((-24))+rsp] mov rbx,rdx mul rax add rcx,rax adc rbx,rdx mov rdx,QWORD[((-120))+rsp] lea rax,[rdx*8+rdx] lea rdx,[rax*2+rdx] lea rax,[rdx*1+rdx] mov QWORD[88+rsp],rdx mul r10 add rcx,rax lea rax,[r10*8+r10] adc rbx,rdx mov rdx,rcx lea rax,[rax*2+r10] mov rcx,rbx mov QWORD[((-104))+rsp],rdx mov QWORD[((-96))+rsp],rcx mov rbx,rax mov rax,2251799813685247 and rax,QWORD[((-104))+rsp] mov QWORD[128+rsp],rbx mov QWORD[24+rsp],rax mov rax,rbx mul r10 mov rcx,rax mov rax,r12 mov rbx,rdx mul rsi add rcx,rax mov rax,QWORD[((-120))+rsp] adc rbx,rdx mul rdi add rcx,rax mov rax,QWORD[((-104))+rsp] adc rbx,rdx mov rdx,QWORD[((-96))+rsp] shrd rax,rdx,51 shr rdx,51 add rcx,rax mov rax,rdi mov rdi,QWORD[((-120))+rsp] adc rbx,rdx mov QWORD[((-104))+rsp],rcx mov rdx,rbx mov rbx,2251799813685247 and rbx,QWORD[((-104))+rsp] mov QWORD[((-96))+rsp],rdx mul r10 mov QWORD[((-8))+rsp],rbx mov rcx,rax mov rax,rsi mov rbx,rdx mul rsi add rcx,rax mov rax,rdi adc rbx,rdx mul r12 add rcx,rax mov rax,QWORD[((-104))+rsp] adc rbx,rdx mov rdx,QWORD[((-96))+rsp] shrd rax,rdx,51 shr rdx,51 add rcx,rax mov rax,QWORD[80+rsp] adc rbx,rdx mov QWORD[((-104))+rsp],rcx mov rdx,rbx mov rbx,2251799813685247 and rbx,QWORD[((-104))+rsp] mov QWORD[((-96))+rsp],rdx mul r14 mov QWORD[((-72))+rsp],rbx mov rcx,rax mov rax,r12 mov rbx,rdx mul r10 add rcx,rax mov rax,QWORD[((-88))+rsp] adc rbx,rdx mul rdi mov rdi,2251799813685247 add rax,rcx mov rcx,QWORD[((-104))+rsp] adc rdx,rbx mov rbx,QWORD[((-96))+rsp] shrd rcx,rbx,51 shr rbx,51 add rcx,rax adc rbx,rdx mov QWORD[((-104))+rsp],rcx and rdi,QWORD[((-104))+rsp] mov QWORD[((-96))+rsp],rbx mov rbx,QWORD[((-120))+rsp] mov rax,rbx mul rbx mov QWORD[40+rsp],rax mov rax,QWORD[((-88))+rsp] mov QWORD[48+rsp],rdx mul r10 mov rcx,rdx mov rdx,rax add rdx,QWORD[40+rsp] adc rcx,QWORD[48+rsp] mov rax,r12 mov rbx,rcx mov rcx,rdx mul r14 add rax,rcx mov rcx,QWORD[((-104))+rsp] adc rdx,rbx mov rbx,QWORD[((-96))+rsp] shrd rcx,rbx,51 shr rbx,51 add rcx,rax adc rbx,rdx mov rdx,2251799813685247 and rdx,rcx shrd rcx,rbx,51 mov QWORD[((-88))+rsp],rdx mov rdx,2251799813685247 lea rax,[rcx*8+rcx] lea rax,[rax*2+rcx] add rax,QWORD[24+rsp] mov rcx,2251799813685247 and rcx,rax shr rax,51 add rax,QWORD[((-8))+rsp] mov r12,QWORD[((-72))+rsp] and rdx,rax shr rax,51 add r12,rax lea rax,[rcx*1+rcx] mov QWORD[((-8))+rsp],rdx mov QWORD[((-104))+rsp],rax lea rax,[rdx*1+rdx] mov rdx,QWORD[((-88))+rsp] mov QWORD[24+rsp],rax lea rax,[rdx*8+rdx] lea rax,[rax*2+rdx] mov QWORD[136+rsp],rax add rax,rax mov QWORD[((-72))+rsp],rax mov rax,rcx mul rcx mov rcx,rax mov rbx,rdx mov rax,QWORD[((-72))+rsp] mul QWORD[((-8))+rsp] add rcx,rax lea rax,[r12*8+r12] adc rbx,rdx lea rax,[rax*2+r12] add rax,rax mul rdi add rcx,rax mov rax,rcx adc rbx,rdx mov rcx,2251799813685247 mov QWORD[40+rsp],rax lea rax,[rdi*8+rdi] mov QWORD[48+rsp],rbx and rcx,QWORD[40+rsp] lea rbx,[rax*2+rdi] mov rax,rbx mul rdi mov QWORD[104+rsp],rcx mov rbx,rdx mov rcx,rax mov rax,QWORD[((-8))+rsp] mul QWORD[((-104))+rsp] add rcx,rax mov rax,QWORD[((-72))+rsp] adc rbx,rdx mul r12 add rax,rcx mov rcx,QWORD[40+rsp] adc rdx,rbx mov rbx,QWORD[48+rsp] shrd rcx,rbx,51 shr rbx,51 add rcx,rax adc rbx,rdx mov rax,rcx mov rcx,2251799813685247 mov QWORD[48+rsp],rbx mov rbx,QWORD[((-8))+rsp] mov QWORD[40+rsp],rax and rcx,QWORD[40+rsp] mov rax,rbx mul rbx mov QWORD[120+rsp],rcx mov QWORD[((-8))+rsp],rax mov rax,QWORD[((-72))+rsp] mov QWORD[rsp],rdx mul rdi add rax,QWORD[((-8))+rsp] adc rdx,QWORD[rsp] mov rcx,rax mov rax,QWORD[((-104))+rsp] mov rbx,rdx mul r12 add rax,rcx mov rcx,QWORD[40+rsp] adc rdx,rbx mov rbx,QWORD[48+rsp] shrd rcx,rbx,51 shr rbx,51 add rcx,rax mov rax,QWORD[((-104))+rsp] adc rbx,rdx mov QWORD[((-72))+rsp],rcx mov rdx,rbx mov rbx,2251799813685247 and rbx,QWORD[((-72))+rsp] mov QWORD[((-64))+rsp],rdx mul rdi mov QWORD[40+rsp],rbx mov QWORD[((-8))+rsp],rax mov QWORD[rsp],rdx mov rax,QWORD[136+rsp] mul QWORD[((-88))+rsp] add rax,QWORD[((-8))+rsp] adc rdx,QWORD[rsp] mov rcx,rax mov rax,QWORD[24+rsp] mov rbx,rdx mul r12 add rax,rcx mov rcx,QWORD[((-72))+rsp] adc rdx,rbx mov rbx,QWORD[((-64))+rsp] shrd rcx,rbx,51 shr rbx,51 add rcx,rax mov rax,2251799813685247 adc rbx,rdx mov QWORD[((-72))+rsp],rcx and rax,QWORD[((-72))+rsp] mov QWORD[((-64))+rsp],rbx mov QWORD[((-8))+rsp],rax mov rax,QWORD[24+rsp] mul rdi mov QWORD[24+rsp],rax mov rax,r12 mov QWORD[32+rsp],rdx mul r12 mov r12,2251799813685247 mov rcx,rdx mov rdx,rax add rdx,QWORD[24+rsp] adc rcx,QWORD[32+rsp] mov rax,QWORD[((-104))+rsp] mov rbx,rcx mov rcx,rdx mul QWORD[((-88))+rsp] add rax,rcx mov rcx,QWORD[((-72))+rsp] adc rdx,rbx mov rbx,QWORD[((-64))+rsp] shrd rcx,rbx,51 shr rbx,51 add rcx,rax adc rbx,rdx mov rdx,2251799813685247 and rdx,rcx shrd rcx,rbx,51 mov rdi,rdx mov rdx,2251799813685247 lea rax,[rcx*8+rcx] lea rax,[rax*2+rcx] add rax,QWORD[104+rsp] and r12,rax shr rax,51 add rax,QWORD[120+rsp] and rdx,rax shr rax,51 mov QWORD[((-104))+rsp],rdx add rax,QWORD[40+rsp] mov QWORD[((-72))+rsp],rdi mov QWORD[((-88))+rsp],rax lea rax,[r13*8+r13] lea rbx,[rax*2+r13] mov rax,rbx mul rdi mov rdi,QWORD[((-8))+rsp] mov rcx,rax mov rbx,rdx mov rax,rdi mul QWORD[56+rsp] add rcx,rax mov rax,r11 adc rbx,rdx mul r12 add rcx,rax mov rax,QWORD[((-104))+rsp] adc rbx,rdx mul rbp add rcx,rax mov rax,QWORD[8+rsp] adc rbx,rdx mul QWORD[((-88))+rsp] add rcx,rax mov rax,rcx adc rbx,rdx mov rcx,2251799813685247 mov QWORD[((-8))+rsp],rax mov rax,QWORD[56+rsp] mul QWORD[((-72))+rsp] and rcx,QWORD[((-8))+rsp] mov QWORD[rsp],rbx mov QWORD[24+rsp],rcx mov rcx,rax mov rax,QWORD[8+rsp] mov rbx,rdx mul rdi add rcx,rax mov rax,r13 adc rbx,rdx mul r12 add rcx,rax mov rax,QWORD[((-104))+rsp] adc rbx,rdx mul r11 add rcx,rax mov rax,QWORD[((-88))+rsp] adc rbx,rdx mul rbp add rax,rcx mov rcx,QWORD[((-8))+rsp] adc rdx,rbx mov rbx,QWORD[rsp] shrd rcx,rbx,51 shr rbx,51 add rcx,rax mov rax,2251799813685247 adc rbx,rdx mov QWORD[((-8))+rsp],rcx and rax,QWORD[((-8))+rsp] mov QWORD[rsp],rbx mov QWORD[40+rsp],rax mov rax,rdi mul rbp mov QWORD[56+rsp],rax mov QWORD[64+rsp],rdx mov rax,QWORD[8+rsp] mul QWORD[((-72))+rsp] add rax,QWORD[56+rsp] adc rdx,QWORD[64+rsp] mov rcx,rax mov rax,r9 mov rbx,rdx mul r12 add rax,rcx mov rcx,rax mov rax,QWORD[((-104))+rsp] adc rdx,rbx mov rbx,rdx mul r13 add rax,rcx mov rcx,rax mov rax,QWORD[((-88))+rsp] adc rdx,rbx mov rbx,rdx mul r11 add rax,rcx mov rcx,QWORD[((-8))+rsp] mov QWORD[((-8))+rsp],rdi adc rdx,rbx mov rbx,QWORD[rsp] shrd rcx,rbx,51 shr rbx,51 add rcx,rax mov rax,2251799813685247 mov QWORD[8+rsp],rcx adc rbx,rdx and rax,QWORD[8+rsp] mov QWORD[16+rsp],rbx mov QWORD[56+rsp],rax mov rax,rdi mul r11 mov QWORD[104+rsp],rax mov QWORD[112+rsp],rdx mov rax,rbp mul QWORD[((-72))+rsp] mov rcx,QWORD[104+rsp] mov rbx,QWORD[112+rsp] add rcx,rax mov rax,r15 adc rbx,rdx mov rdi,rcx mov rcx,QWORD[8+rsp] mul r12 mov rbp,rbx mov rbx,QWORD[16+rsp] add rdi,rax mov rax,QWORD[((-104))+rsp] adc rbp,rdx mul r9 add rdi,rax mov rax,QWORD[((-88))+rsp] adc rbp,rdx mul r13 add rax,rdi mov rdi,2251799813685247 adc rdx,rbp mov rbp,2251799813685247 shrd rcx,rbx,51 shr rbx,51 add rcx,rax mov rax,QWORD[((-72))+rsp] adc rbx,rdx mov QWORD[8+rsp],rcx and rbp,QWORD[8+rsp] mov QWORD[16+rsp],rbx mul r11 mov QWORD[((-72))+rsp],rax mov rax,QWORD[((-8))+rsp] mov QWORD[((-64))+rsp],rdx mul r13 add rax,QWORD[((-72))+rsp] adc rdx,QWORD[((-64))+rsp] mov rcx,rax mov rax,r8 mov rbx,rdx mov r11,rcx mov rcx,QWORD[8+rsp] mul r12 mov r12,rbx mov rbx,QWORD[16+rsp] add r11,rax mov rax,QWORD[((-104))+rsp] adc r12,rdx mul r15 add r11,rax mov rax,QWORD[((-88))+rsp] adc r12,rdx mul r9 add rax,r11 mov r11,2251799813685247 adc rdx,r12 mov r12,2251799813685247 shrd rcx,rbx,51 shr rbx,51 add rax,rcx adc rdx,rbx and r12,rax shrd rax,rdx,51 mov rcx,rax lea rax,[rax*8+rax] lea rax,[rax*2+rcx] add rax,QWORD[24+rsp] and r11,rax shr rax,51 add rax,QWORD[40+rsp] mov r8,QWORD[56+rsp] mov r13,QWORD[80+rsp] mov r15,QWORD[128+rsp] and rdi,rax shr rax,51 add r8,rax lea rax,[rsi*8+rsi] lea r9,[rax*2+rsi] mov rax,r9 mov r9,QWORD[((-24))+rsp] mul r12 mov rcx,rax mov rax,QWORD[88+rsp] mov rbx,rdx mul rbp add rcx,rax mov rax,r9 adc rbx,rdx mul r11 add rcx,rax mov rax,r13 adc rbx,rdx mul rdi add rcx,rax mov rax,r15 adc rbx,rdx mul r8 add rcx,rax mov rax,2251799813685247 mov QWORD[((-104))+rsp],rcx adc rbx,rdx and rax,QWORD[((-104))+rsp] mov QWORD[((-96))+rsp],rbx mov QWORD[((-88))+rsp],rax mov rax,QWORD[88+rsp] mul r12 mov rcx,rax mov rax,r15 mov rbx,rdx mul rbp add rcx,rax mov rax,r11 adc rbx,rdx mul rsi add rcx,rax mov rax,r9 adc rbx,rdx mul rdi add rcx,rax mov rax,r13 adc rbx,rdx mul r8 add rax,rcx mov rcx,QWORD[((-104))+rsp] adc rdx,rbx mov rbx,QWORD[((-96))+rsp] shrd rcx,rbx,51 shr rbx,51 add rcx,rax mov rax,rcx adc rbx,rdx mov rcx,2251799813685247 mov QWORD[((-104))+rsp],rax mov rax,r13 and rcx,QWORD[((-104))+rsp] mul rbp mov QWORD[((-96))+rsp],rbx mov QWORD[((-72))+rsp],rcx mov QWORD[((-24))+rsp],rax mov rax,r15 mov QWORD[((-16))+rsp],rdx mul r12 mov r15,QWORD[((-120))+rsp] mov rcx,rax mov rax,r15 add rcx,QWORD[((-24))+rsp] mov rbx,rdx adc rbx,QWORD[((-16))+rsp] mul r11 add rax,rcx mov QWORD[((-120))+rsp],rax adc rdx,rbx mov rax,rdi mov QWORD[((-112))+rsp],rdx mul rsi mov rcx,rax mov rax,r9 add rcx,QWORD[((-120))+rsp] mov rbx,rdx adc rbx,QWORD[((-112))+rsp] mul r8 add rax,rcx mov rcx,QWORD[((-104))+rsp] adc rdx,rbx mov rbx,QWORD[((-96))+rsp] shrd rcx,rbx,51 shr rbx,51 add rcx,rax mov rax,r9 adc rbx,rdx mov QWORD[((-120))+rsp],rcx mov rdx,2251799813685247 and rdx,QWORD[((-120))+rsp] mov QWORD[((-112))+rsp],rbx mov QWORD[((-104))+rsp],rdx mul rbp mov QWORD[((-24))+rsp],rax mov rax,r13 mov QWORD[((-16))+rsp],rdx mul r12 mov r13,2251799813685247 mov rcx,rax mov rax,r11 add rcx,QWORD[((-24))+rsp] mov rbx,rdx adc rbx,QWORD[((-16))+rsp] mul r10 add rax,rcx mov QWORD[((-24))+rsp],rax adc rdx,rbx mov rax,r15 mov QWORD[((-16))+rsp],rdx mul rdi mov rcx,rax mov rax,r8 add rcx,QWORD[((-24))+rsp] mov rbx,rdx adc rbx,QWORD[((-16))+rsp] mul rsi add rax,rcx mov rcx,QWORD[((-120))+rsp] adc rdx,rbx mov rbx,QWORD[((-112))+rsp] shrd rcx,rbx,51 shr rbx,51 add rcx,rax mov rax,r9 mov r9,2251799813685247 adc rbx,rdx mov QWORD[((-120))+rsp],rcx and r13,QWORD[((-120))+rsp] mul r12 mov QWORD[((-112))+rsp],rbx mov rcx,QWORD[((-120))+rsp] mov QWORD[24+rsp],r13 mov QWORD[((-24))+rsp],rax mov rax,rsi mov QWORD[((-16))+rsp],rdx mul rbp mov rbx,rax mov rax,r14 add rbx,QWORD[((-24))+rsp] mov rsi,rdx adc rsi,QWORD[((-16))+rsp] mul r11 add rbx,rax mov rax,r10 adc rsi,rdx mov r13,rbx mov rbx,QWORD[((-112))+rsp] mul rdi mov r14,rsi add r13,rax mov rax,r15 mov r15,QWORD[24+rsp] adc r14,rdx mul r8 add rax,r13 adc rdx,r14 shrd rcx,rbx,51 shr rbx,51 add rcx,rax adc rbx,rdx mov rdx,2251799813685247 and rdx,rcx shrd rcx,rbx,51 mov rbx,2251799813685247 mov QWORD[224+rsp],rdx lea rax,[rcx*8+rcx] lea rax,[rax*2+rcx] add rax,QWORD[((-88))+rsp] and rbx,rax shr rax,51 add rax,QWORD[((-72))+rsp] lea rsi,[rbx*1+rbx] mov QWORD[128+rsp],rbx and r9,rax shr rax,51 add rax,QWORD[((-104))+rsp] mov QWORD[136+rsp],r9 lea r14,[r9*1+r9] mov r10,rax lea rax,[rdx*8+rdx] mov QWORD[80+rsp],r10 lea rax,[rax*2+rdx] lea r13,[rax*1+rax] mov QWORD[192+rsp],rax mov rax,rbx mul rbx mov rcx,rax mov rax,r9 mov rbx,rdx mul r13 add rcx,rax lea rax,[r10*8+r10] adc rbx,rdx lea rax,[rax*2+r10] add rax,rax mul r15 add rcx,rax lea rax,[r15*8+r15] adc rbx,rdx mov r9,rcx mov rcx,2251799813685247 mov r10,rbx lea rbx,[rax*2+r15] and rcx,r9 mov r15,rcx mov QWORD[216+rsp],rbx mov rax,QWORD[136+rsp] mul rsi mov rcx,rax mov rbx,rdx mov rax,QWORD[24+rsp] mul QWORD[216+rsp] add rcx,rax mov rax,QWORD[80+rsp] adc rbx,rdx mul r13 add rax,rcx mov rcx,r9 mov r9,QWORD[136+rsp] adc rdx,rbx mov rbx,r10 shrd rcx,r10,51 shr rbx,51 add rcx,rax mov rax,r9 adc rbx,rdx mov QWORD[((-120))+rsp],rcx mov rcx,QWORD[((-120))+rsp] mov rdx,rbx mov rbx,2251799813685247 and rbx,QWORD[((-120))+rsp] mov QWORD[((-112))+rsp],rdx mul r9 mov QWORD[((-104))+rsp],rbx mov rbx,QWORD[((-112))+rsp] mov r9,rax mov rax,r13 mov r13,QWORD[24+rsp] mov r10,rdx mul r13 add r9,rax mov rax,QWORD[80+rsp] adc r10,rdx mul rsi add r9,rax mov rax,r13 adc r10,rdx shrd rcx,rbx,51 shr rbx,51 add r9,rcx mov rcx,2251799813685247 adc r10,rbx and rcx,r9 mul rsi mov QWORD[((-120))+rsp],rcx mov rbx,rdx mov rcx,rax mov rax,QWORD[224+rsp] mul QWORD[192+rsp] add rcx,rax mov rax,QWORD[80+rsp] adc rbx,rdx mul r14 add rax,rcx adc rdx,rbx shrd r9,r10,51 shr r10,51 add r9,rax mov rax,2251799813685247 adc r10,rdx and rax,r9 mov r13,rax mov rax,r14 mov r14,QWORD[80+rsp] mul QWORD[24+rsp] mov rcx,rax mov rax,r14 mov rbx,rdx mul r14 mov r14,2251799813685247 add rcx,rax mov rax,rsi mov rsi,2251799813685247 adc rbx,rdx mul QWORD[224+rsp] add rax,rcx mov rcx,r9 adc rdx,rbx mov rbx,r10 shrd rcx,r10,51 shr rbx,51 add rax,rcx adc rdx,rbx and rsi,rax mov rbx,QWORD[((-104))+rsp] shrd rax,rdx,51 mov rcx,rax lea rax,[rax*8+rax] lea rax,[rax*2+rcx] add r15,rax and r14,r15 shr r15,51 lea rax,[rbx*1+r15] mov r15,2251799813685247 and r15,rax shr rax,51 add rax,QWORD[((-120))+rsp] mov r10,rax lea rax,[r12*8+r12] mov QWORD[((-120))+rsp],r10 lea r9,[rax*2+r12] lea rax,[r8*8+r8] lea rax,[rax*2+r8] mov QWORD[((-104))+rsp],r9 mov QWORD[((-72))+rsp],rax lea rax,[rbp*8+rbp] lea rax,[rax*2+rbp] mov QWORD[((-88))+rsp],rax lea rax,[rdi*8+rdi] lea rbx,[rax*2+rdi] mov rax,rbx mul rsi mov rcx,rax mov rax,QWORD[((-72))+rsp] mov rbx,rdx mul r13 add rcx,rax mov rax,r11 adc rbx,rdx mul r14 add rcx,rax mov rax,r9 adc rbx,rdx mul r15 add rcx,rax mov rax,r10 adc rbx,rdx mul QWORD[((-88))+rsp] add rcx,rax mov rax,QWORD[((-72))+rsp] adc rbx,rdx mov r9,rcx mov r10,rbx mov rbx,2251799813685247 mul rsi and rbx,rcx mov QWORD[((-24))+rsp],rbx mov rcx,rax mov rax,QWORD[((-88))+rsp] mov rbx,rdx mul r13 add rcx,rax mov rax,rdi adc rbx,rdx mul r14 add rcx,rax mov rax,r11 adc rbx,rdx mul r15 add rcx,rax mov rax,QWORD[((-120))+rsp] adc rbx,rdx mul QWORD[((-104))+rsp] add rax,rcx mov rcx,r9 adc rdx,rbx mov rbx,r10 shrd rcx,r10,51 shr rbx,51 add rcx,rax mov rax,rcx adc rbx,rdx mov rcx,2251799813685247 mov QWORD[((-72))+rsp],rax mov rax,QWORD[((-104))+rsp] and rcx,QWORD[((-72))+rsp] mov QWORD[((-64))+rsp],rbx mov rbx,QWORD[((-64))+rsp] mul r13 mov QWORD[((-8))+rsp],rcx mov rcx,QWORD[((-72))+rsp] mov r9,rax mov rax,QWORD[((-88))+rsp] mov r10,rdx mul rsi add r9,rax mov rax,r8 adc r10,rdx mul r14 add r9,rax mov rax,rdi adc r10,rdx mul r15 add r9,rax mov rax,QWORD[((-120))+rsp] adc r10,rdx mul r11 add rax,r9 adc rdx,r10 shrd rcx,rbx,51 shr rbx,51 add rcx,rax mov rax,2251799813685247 adc rbx,rdx and rax,rcx mov QWORD[((-88))+rsp],rax mov rax,r11 mul r13 mov r9,rax mov rax,QWORD[((-104))+rsp] mov r10,rdx mul rsi add r9,rax mov rax,rbp adc r10,rdx mul r14 add r9,rax mov rax,r8 adc r10,rdx mul r15 add r9,rax mov rax,QWORD[((-120))+rsp] adc r10,rdx mul rdi add rax,r9 mov r9,2251799813685247 adc rdx,r10 shrd rcx,rbx,51 shr rbx,51 add rcx,rax mov rax,r11 adc rbx,rdx and r9,rcx mul rsi mov r10,rax mov rax,rdi mov r11,rdx mul r13 mov r13,2251799813685247 mov rsi,rax mov rdi,rdx mov rax,r12 add rsi,r10 adc rdi,r11 mul r14 add rsi,rax mov rax,rbp mov rbp,2251799813685247 adc rdi,rdx mul r15 add rsi,rax mov rax,QWORD[((-120))+rsp] adc rdi,rdx mul r8 add rsi,rax adc rdi,rdx shrd rcx,rbx,51 shr rbx,51 add rsi,rcx adc rdi,rbx mov rdx,rsi mov rbx,QWORD[((-88))+rsp] shrd rdx,rdi,51 mov rdi,2251799813685247 and r13,rsi lea rax,[rdx*8+rdx] lea rax,[rax*2+rdx] add rax,QWORD[((-24))+rsp] and rbp,rax shr rax,51 add rax,QWORD[((-8))+rsp] lea rsi,[rbp*1+rbp] and rdi,rax shr rax,51 lea r8,[rbx*1+rax] lea rax,[r13*8+r13] lea r15,[rdi*1+rdi] lea r12,[rax*2+r13] mov rax,rdi mov QWORD[((-8))+rsp],r15 lea r14,[r12*1+r12] mul r14 mov rcx,rax mov rax,rbp mov rbx,rdx mul rbp add rcx,rax lea rax,[r8*8+r8] adc rbx,rdx lea rax,[rax*2+r8] mov QWORD[((-24))+rsp],rax add rax,rax mul r9 add rcx,rax lea rax,[r9*8+r9] adc rbx,rdx mov r10,rcx mov rcx,2251799813685247 mov r11,rbx lea rbx,[rax*2+r9] and rcx,r10 mov QWORD[((-88))+rsp],rcx mov rax,rbx mov QWORD[((-72))+rsp],rbx mul r9 mov rcx,rax mov rax,rsi mov rbx,rdx mul rdi add rcx,rax mov rax,r8 adc rbx,rdx mul r14 add rcx,rax mov rax,r14 mov r14,2251799813685247 adc rbx,rdx mov rdx,2251799813685247 shrd r10,r11,51 shr r11,51 add r10,rcx adc r11,rbx and rdx,r10 mov QWORD[((-104))+rsp],rdx mul r9 mov rcx,rax mov rax,rdi mov rbx,rdx mul rdi add rcx,rax mov rax,r8 adc rbx,rdx mul rsi add rcx,rax mov rax,r12 adc rbx,rdx shrd r10,r11,51 shr r11,51 add r10,rcx adc r11,rbx and r14,r10 mul r13 mov QWORD[((-120))+rsp],r14 mov rcx,rax mov rax,rsi mov rbx,rdx mul r9 add rcx,rax mov rax,r15 adc rbx,rdx mul r8 add rax,rcx mov rcx,r10 mov r10,2251799813685247 adc rdx,rbx mov rbx,r11 shrd rcx,r11,51 shr rbx,51 mov r11,2251799813685247 add rcx,rax mov rax,r8 adc rbx,rdx and r10,rcx mul r8 mov r14,rax mov rax,QWORD[((-8))+rsp] mov r15,rdx mul r9 add r14,rax mov rax,rsi mov rsi,QWORD[((-120))+rsp] adc r15,rdx mul r13 add rax,r14 mov r14,2251799813685247 adc rdx,r15 shrd rcx,rbx,51 shr rbx,51 add rax,rcx adc rdx,rbx and r14,rax shrd rax,rdx,51 mov rcx,rax lea rax,[rax*8+rax] lea rax,[rax*2+rcx] add rax,QWORD[((-88))+rsp] mov rcx,2251799813685247 and rcx,rax shr rax,51 add rax,QWORD[((-104))+rsp] lea r15,[rcx*1+rcx] mov QWORD[((-120))+rsp],rcx and r11,rax shr rax,51 add rsi,rax lea rax,[r14*8+r14] lea rdx,[r11*1+r11] lea rbx,[rax*2+r14] mov QWORD[((-88))+rsp],rdx lea rdx,[rbx*1+rbx] mov QWORD[40+rsp],rbx mov rax,rdx mov QWORD[((-104))+rsp],rdx mul r11 mov rcx,rax mov rax,QWORD[((-120))+rsp] mov rbx,rdx mul rax add rcx,rax lea rax,[rsi*8+rsi] adc rbx,rdx lea rax,[rax*2+rsi] add rax,rax mul r10 add rcx,rax lea rax,[r10*8+r10] mov QWORD[((-120))+rsp],rcx adc rbx,rdx mov rdx,2251799813685247 and rdx,QWORD[((-120))+rsp] lea rcx,[rax*2+r10] mov QWORD[((-112))+rsp],rbx mov rax,rcx mov QWORD[8+rsp],rdx mul r10 mov rcx,rax mov rax,r15 mov rbx,rdx mul r11 add rcx,rax mov rax,QWORD[((-104))+rsp] adc rbx,rdx mul rsi add rax,rcx mov rcx,QWORD[((-120))+rsp] adc rdx,rbx mov rbx,QWORD[((-112))+rsp] shrd rcx,rbx,51 shr rbx,51 add rcx,rax mov rax,rcx adc rbx,rdx mov rcx,2251799813685247 mov QWORD[((-120))+rsp],rax mov rax,QWORD[((-104))+rsp] and rcx,QWORD[((-120))+rsp] mov QWORD[((-112))+rsp],rbx mul r10 mov QWORD[((-8))+rsp],rcx mov QWORD[((-104))+rsp],rax mov rax,r11 mov QWORD[((-96))+rsp],rdx mul r11 mov r11,2251799813685247 mov rcx,rax mov rax,rsi add rcx,QWORD[((-104))+rsp] mov rbx,rdx adc rbx,QWORD[((-96))+rsp] mul r15 add rax,rcx mov rcx,QWORD[((-120))+rsp] adc rdx,rbx mov rbx,QWORD[((-112))+rsp] shrd rcx,rbx,51 shr rbx,51 add rax,rcx mov QWORD[((-120))+rsp],rax mov rax,QWORD[40+rsp] adc rdx,rbx mov QWORD[((-112))+rsp],rdx and r11,QWORD[((-120))+rsp] mul r14 mov QWORD[((-104))+rsp],r11 mov r11,2251799813685247 mov rcx,rax mov rax,r15 mov rbx,rdx mul r10 add rcx,rax mov rax,QWORD[((-88))+rsp] adc rbx,rdx mul rsi add rax,rcx mov rcx,QWORD[((-120))+rsp] adc rdx,rbx mov rbx,QWORD[((-112))+rsp] shrd rcx,rbx,51 shr rbx,51 add rcx,rax mov rax,rsi adc rbx,rdx mov QWORD[((-120))+rsp],rcx and r11,QWORD[((-120))+rsp] mul rsi mov QWORD[((-112))+rsp],rbx mov QWORD[40+rsp],rax mov rax,QWORD[((-88))+rsp] mov QWORD[48+rsp],rdx mul r10 mov rbx,rax mov rax,r14 add rbx,QWORD[40+rsp] mov rsi,rdx adc rsi,QWORD[48+rsp] mov rcx,QWORD[((-120))+rsp] mul r15 mov r14,2251799813685247 add rax,rbx mov rbx,QWORD[((-112))+rsp] adc rdx,rsi mov rsi,QWORD[((-104))+rsp] shrd rcx,rbx,51 shr rbx,51 add rax,rcx adc rdx,rbx and r14,rax shrd rax,rdx,51 mov rdx,2251799813685247 mov rcx,rax lea rax,[rax*8+rax] lea rax,[rax*2+rcx] add rax,QWORD[8+rsp] mov rcx,2251799813685247 and rcx,rax shr rax,51 add rax,QWORD[((-8))+rsp] mov QWORD[((-120))+rsp],rcx lea r15,[rcx*1+rcx] and rdx,rax shr rax,51 add rsi,rax lea rax,[r14*8+r14] mov r10,rdx lea rdx,[rdx*1+rdx] lea rbx,[rax*2+r14] mov QWORD[((-88))+rsp],rdx lea rdx,[rbx*1+rbx] mov QWORD[40+rsp],rbx mov rax,rdx mov QWORD[((-104))+rsp],rdx mul r10 mov rcx,rax mov rax,QWORD[((-120))+rsp] mov rbx,rdx mul rax add rcx,rax lea rax,[rsi*8+rsi] adc rbx,rdx lea rax,[rax*2+rsi] add rax,rax mul r11 add rcx,rax lea rax,[r11*8+r11] adc rbx,rdx mov QWORD[((-120))+rsp],rcx mov rdx,2251799813685247 and rdx,QWORD[((-120))+rsp] lea rcx,[rax*2+r11] mov QWORD[((-112))+rsp],rbx mov rax,rcx mov QWORD[8+rsp],rdx mul r11 mov rcx,rax mov rax,r15 mov rbx,rdx mul r10 add rcx,rax mov rax,QWORD[((-104))+rsp] adc rbx,rdx mul rsi add rax,rcx mov rcx,QWORD[((-120))+rsp] adc rdx,rbx mov rbx,QWORD[((-112))+rsp] shrd rcx,rbx,51 shr rbx,51 add rcx,rax mov rax,rcx adc rbx,rdx mov rcx,2251799813685247 mov QWORD[((-120))+rsp],rax mov rax,QWORD[((-104))+rsp] and rcx,QWORD[((-120))+rsp] mov QWORD[((-112))+rsp],rbx mul r11 mov QWORD[((-8))+rsp],rcx mov QWORD[((-104))+rsp],rax mov rax,r10 mov QWORD[((-96))+rsp],rdx mul r10 mov r10,2251799813685247 mov rcx,rax mov rax,rsi add rcx,QWORD[((-104))+rsp] mov rbx,rdx adc rbx,QWORD[((-96))+rsp] mul r15 add rax,rcx mov rcx,QWORD[((-120))+rsp] adc rdx,rbx mov rbx,QWORD[((-112))+rsp] shrd rcx,rbx,51 shr rbx,51 add rax,rcx mov QWORD[((-120))+rsp],rax mov rax,QWORD[40+rsp] adc rdx,rbx mov QWORD[((-112))+rsp],rdx and r10,QWORD[((-120))+rsp] mul r14 mov QWORD[((-104))+rsp],r10 mov rcx,rax mov rax,r15 mov rbx,rdx mul r11 add rcx,rax mov rax,QWORD[((-88))+rsp] adc rbx,rdx mul rsi add rax,rcx mov rcx,QWORD[((-120))+rsp] adc rdx,rbx mov rbx,QWORD[((-112))+rsp] shrd rcx,rbx,51 shr rbx,51 add rcx,rax mov rax,rsi adc rbx,rdx mov QWORD[((-120))+rsp],rcx mov rcx,QWORD[((-120))+rsp] mov rdx,rbx mov rbx,2251799813685247 and rbx,QWORD[((-120))+rsp] mov QWORD[((-112))+rsp],rdx mul rsi mov r10,rbx mov QWORD[40+rsp],rax mov rax,QWORD[((-88))+rsp] mov QWORD[48+rsp],rdx mul r11 mov r11,2251799813685247 mov rbx,rax mov rax,r14 add rbx,QWORD[40+rsp] mov rsi,rdx adc rsi,QWORD[48+rsp] mov r14,2251799813685247 mul r15 add rax,rbx mov rbx,QWORD[((-112))+rsp] adc rdx,rsi mov rsi,QWORD[((-104))+rsp] shrd rcx,rbx,51 shr rbx,51 add rax,rcx adc rdx,rbx and r14,rax shrd rax,rdx,51 mov rcx,rax lea rax,[rax*8+rax] lea rax,[rax*2+rcx] add rax,QWORD[8+rsp] mov rcx,2251799813685247 and rcx,rax shr rax,51 add rax,QWORD[((-8))+rsp] mov QWORD[((-120))+rsp],rcx lea r15,[rcx*1+rcx] and r11,rax shr rax,51 add rsi,rax lea rax,[r14*8+r14] lea rdx,[r11*1+r11] lea rbx,[rax*2+r14] mov QWORD[((-88))+rsp],rdx lea rdx,[rbx*1+rbx] mov QWORD[40+rsp],rbx mov rax,rdx mov QWORD[((-104))+rsp],rdx mul r11 mov rcx,rax mov rax,QWORD[((-120))+rsp] mov rbx,rdx mul rax add rcx,rax lea rax,[rsi*8+rsi] adc rbx,rdx lea rax,[rax*2+rsi] add rax,rax mul r10 add rcx,rax lea rax,[r10*8+r10] adc rbx,rdx mov QWORD[((-120))+rsp],rcx mov rdx,2251799813685247 and rdx,QWORD[((-120))+rsp] lea rcx,[rax*2+r10] mov QWORD[((-112))+rsp],rbx mov rax,rcx mov QWORD[8+rsp],rdx mul r10 mov rcx,rax mov rax,r15 mov rbx,rdx mul r11 add rcx,rax mov rax,QWORD[((-104))+rsp] adc rbx,rdx mul rsi add rax,rcx mov rcx,QWORD[((-120))+rsp] adc rdx,rbx mov rbx,QWORD[((-112))+rsp] shrd rcx,rbx,51 shr rbx,51 add rcx,rax mov rax,rcx adc rbx,rdx mov rcx,2251799813685247 mov QWORD[((-120))+rsp],rax mov rax,QWORD[((-104))+rsp] and rcx,QWORD[((-120))+rsp] mov QWORD[((-112))+rsp],rbx mul r10 mov QWORD[((-8))+rsp],rcx mov QWORD[((-104))+rsp],rax mov rax,r11 mov QWORD[((-96))+rsp],rdx mul r11 mov r11,2251799813685247 mov rcx,rax mov rax,rsi add rcx,QWORD[((-104))+rsp] mov rbx,rdx adc rbx,QWORD[((-96))+rsp] mul r15 add rax,rcx mov rcx,QWORD[((-120))+rsp] adc rdx,rbx mov rbx,QWORD[((-112))+rsp] shrd rcx,rbx,51 shr rbx,51 add rax,rcx mov QWORD[((-120))+rsp],rax mov rax,QWORD[40+rsp] adc rdx,rbx mov QWORD[((-112))+rsp],rdx and r11,QWORD[((-120))+rsp] mul r14 mov QWORD[((-104))+rsp],r11 mov r11,2251799813685247 mov rcx,rax mov rax,r15 mov rbx,rdx mul r10 add rcx,rax mov rax,QWORD[((-88))+rsp] adc rbx,rdx mul rsi add rax,rcx mov rcx,QWORD[((-120))+rsp] adc rdx,rbx mov rbx,QWORD[((-112))+rsp] shrd rcx,rbx,51 shr rbx,51 add rcx,rax mov rax,rsi adc rbx,rdx mov QWORD[((-120))+rsp],rcx and r11,QWORD[((-120))+rsp] mul rsi mov QWORD[((-112))+rsp],rbx mov rcx,QWORD[((-120))+rsp] mov QWORD[40+rsp],rax mov rax,QWORD[((-88))+rsp] mov QWORD[48+rsp],rdx mul r10 mov rbx,rax mov rax,r14 add rbx,QWORD[40+rsp] mov rsi,rdx adc rsi,QWORD[48+rsp] mov r14,2251799813685247 mul r15 mov r15,2251799813685247 add rax,rbx mov rbx,QWORD[((-112))+rsp] adc rdx,rsi shrd rcx,rbx,51 shr rbx,51 add rax,rcx adc rdx,rbx and r14,rax shrd rax,rdx,51 mov rcx,rax lea rax,[rax*8+rax] lea rax,[rax*2+rcx] add rax,QWORD[8+rsp] mov rcx,2251799813685247 mov rsi,QWORD[((-104))+rsp] and rcx,rax shr rax,51 add rax,QWORD[((-8))+rsp] and r15,rax shr rax,51 lea r10,[rsi*1+rax] lea rax,[rcx*1+rcx] lea rsi,[r15*1+r15] mov QWORD[((-120))+rsp],rax lea rax,[r14*8+r14] mov QWORD[((-104))+rsp],rsi lea rdx,[rax*2+r14] mov rax,rcx lea rsi,[rdx*1+rdx] mov QWORD[56+rsp],rdx mul rcx mov QWORD[((-88))+rsp],rsi mov rcx,rax mov rax,rsi mov rbx,rdx mul r15 mov rsi,2251799813685247 add rcx,rax lea rax,[r10*8+r10] adc rbx,rdx lea rax,[rax*2+r10] add rax,rax mul r11 add rcx,rax lea rax,[r11*8+r11] adc rbx,rdx mov QWORD[((-8))+rsp],rcx mov QWORD[rsp],rbx mov rbx,rcx and rbx,rsi mov QWORD[8+rsp],rbx lea rbx,[rax*2+r11] mov rax,rbx mul r11 mov rcx,rax mov rax,QWORD[((-120))+rsp] mov rbx,rdx mul r15 add rcx,rax mov rax,QWORD[((-88))+rsp] adc rbx,rdx mul r10 add rax,rcx mov rcx,QWORD[((-8))+rsp] adc rdx,rbx mov rbx,QWORD[rsp] shrd rcx,rbx,51 shr rbx,51 add rcx,rax mov rax,r15 adc rbx,rdx mov QWORD[((-8))+rsp],rcx and rcx,rsi mul r15 mov r15,QWORD[((-120))+rsp] mov QWORD[40+rsp],rcx mov QWORD[rsp],rbx mov QWORD[88+rsp],rax mov rax,QWORD[((-88))+rsp] mov QWORD[96+rsp],rdx mul r11 mov rcx,rax mov rax,r15 add rcx,QWORD[88+rsp] mov rbx,rdx adc rbx,QWORD[96+rsp] mul r10 add rax,rcx mov rcx,QWORD[((-8))+rsp] adc rdx,rbx mov rbx,QWORD[rsp] shrd rcx,rbx,51 shr rbx,51 add rcx,rax mov rax,r15 adc rbx,rdx mov QWORD[((-88))+rsp],rcx and rcx,rsi mul r11 mov QWORD[((-80))+rsp],rbx mov QWORD[((-8))+rsp],rcx mov QWORD[88+rsp],rax mov rax,QWORD[56+rsp] mov QWORD[96+rsp],rdx mul r14 mov rcx,rax add rcx,QWORD[88+rsp] mov rax,QWORD[((-104))+rsp] mov rbx,rdx adc rbx,QWORD[96+rsp] mul r10 add rax,rcx mov rcx,QWORD[((-88))+rsp] adc rdx,rbx mov rbx,QWORD[((-80))+rsp] shrd rcx,rbx,51 shr rbx,51 add rcx,rax mov rax,QWORD[((-104))+rsp] adc rbx,rdx mov rdx,rcx and rdx,rsi mov r15,rdx mul r11 mov QWORD[((-104))+rsp],rax mov rax,r10 mov QWORD[((-96))+rsp],rdx mul r10 mov r10,rax mov rax,QWORD[((-120))+rsp] add r10,QWORD[((-104))+rsp] mov r11,rdx adc r11,QWORD[((-96))+rsp] mul r14 add rax,r10 adc rdx,r11 shrd rcx,rbx,51 shr rbx,51 add rcx,rax adc rbx,rdx mov r14,rcx shrd rcx,rbx,51 and r14,rsi lea rax,[rcx*8+rcx] lea rax,[rax*2+rcx] add rax,QWORD[8+rsp] mov r10,rax shr rax,51 add rax,QWORD[40+rsp] and r10,rsi mov QWORD[((-104))+rsp],r10 mov r11,rax shr rax,51 add rax,QWORD[((-8))+rsp] and r11,rsi mov QWORD[((-88))+rsp],r11 mov QWORD[((-120))+rsp],rax lea rax,[rdi*8+rdi] lea rcx,[rax*2+rdi] mov rax,rcx mul r14 mov rcx,rax mov rax,QWORD[((-24))+rsp] mov rbx,rdx mul r15 add rcx,rax mov rax,r10 adc rbx,rdx mul rbp add rcx,rax mov rax,r11 adc rbx,rdx mul r12 add rcx,rax mov rax,QWORD[((-120))+rsp] adc rbx,rdx mul QWORD[((-72))+rsp] add rcx,rax mov rax,QWORD[((-24))+rsp] adc rbx,rdx mov r10,rcx and rcx,rsi mov QWORD[((-8))+rsp],rcx mov r11,rbx mul r14 mov rcx,rax mov rax,QWORD[((-72))+rsp] mov rbx,rdx mul r15 add rcx,rax mov rax,QWORD[((-104))+rsp] adc rbx,rdx mul rdi add rcx,rax mov rax,QWORD[((-88))+rsp] adc rbx,rdx mul rbp add rcx,rax mov rax,QWORD[((-120))+rsp] adc rbx,rdx mul r12 add rax,rcx mov rcx,r10 adc rdx,rbx mov rbx,r11 shrd rcx,r11,51 shr rbx,51 add rcx,rax mov rax,r15 adc rbx,rdx mov rdx,rcx and rdx,rsi mov QWORD[((-24))+rsp],rdx mul r12 mov r10,rax mov rax,QWORD[((-72))+rsp] mov r11,rdx mul r14 add r10,rax mov rax,QWORD[((-104))+rsp] adc r11,rdx mul r8 add r10,rax mov rax,QWORD[((-88))+rsp] adc r11,rdx mul rdi add r10,rax mov rax,QWORD[((-120))+rsp] adc r11,rdx mul rbp add rax,r10 adc rdx,r11 shrd rcx,rbx,51 shr rbx,51 add rcx,rax mov rax,rcx adc rbx,rdx and rax,rsi mov QWORD[((-72))+rsp],rax mov rax,r15 mul rbp mov r10,rax mov rax,r12 mov r11,rdx mul r14 add r10,rax mov rax,QWORD[((-104))+rsp] adc r11,rdx mul r9 add r10,rax mov rax,QWORD[((-88))+rsp] adc r11,rdx mul r8 add r10,rax mov rax,QWORD[((-120))+rsp] adc r11,rdx mul rdi add rax,r10 adc rdx,r11 shrd rcx,rbx,51 shr rbx,51 add rcx,rax mov rax,r14 adc rbx,rdx mov QWORD[8+rsp],rcx mul rbp mov QWORD[16+rsp],rbx mov rbx,rcx and rbx,rsi mov rcx,QWORD[8+rsp] mov r10,rbx mov QWORD[104+rsp],rbx mov rbx,QWORD[16+rsp] mov r11,rax mov rax,r15 mov r12,rdx mul rdi mov rdi,rax mov rax,QWORD[((-104))+rsp] mov rbp,rdx add rdi,r11 adc rbp,r12 mov r12,r10 mul r13 mov r13,rsi add rdi,rax mov rax,QWORD[((-88))+rsp] adc rbp,rdx mul r9 add rdi,rax mov rax,QWORD[((-120))+rsp] adc rbp,rdx mul r8 add rax,rdi adc rdx,rbp shrd rcx,rbx,51 shr rbx,51 add rcx,rax adc rbx,rdx mov rdx,rcx shrd rcx,rbx,51 and rdx,rsi lea rax,[rcx*8+rcx] mov QWORD[208+rsp],rdx mov rbp,rdx lea rax,[rax*2+rcx] add rax,QWORD[((-8))+rsp] mov r9,rax shr rax,51 add rax,QWORD[((-24))+rsp] and r9,rsi mov QWORD[((-24))+rsp],10 mov QWORD[8+rsp],r9 mov rcx,r9 mov r14,rax shr rax,51 add rax,QWORD[((-72))+rsp] and r14,rsi mov QWORD[40+rsp],r14 mov r15,rax mov QWORD[56+rsp],rax $L$4: lea rax,[rbp*8+rbp] lea r8,[rcx*1+rcx] lea r10,[r14*1+r14] lea rax,[rax*2+rbp] mov QWORD[((-120))+rsp],r10 lea r11,[rax*1+rax] mov QWORD[((-72))+rsp],rax lea rax,[r15*8+r15] lea rax,[rax*2+r15] lea rbx,[rax*1+rax] mov rax,rbx mul r12 mov rsi,rax mov rax,rcx mov rdi,rdx mul rcx mov rcx,rax mov rbx,rdx mov rax,r11 add rcx,rsi adc rbx,rdi mul r14 add rcx,rax mov rax,r8 adc rbx,rdx mov rsi,rcx mul rbp mov rdi,rbx mov rcx,rax mov rax,r10 mov rbx,rdx mul r12 add rcx,rax mov rax,r15 adc rbx,rdx mul r15 add rcx,rax lea rax,[r12*8+r12] mov QWORD[((-104))+rsp],rcx adc rbx,rdx lea rcx,[rax*2+r12] mov QWORD[((-96))+rsp],rbx mov rbx,rsi and rbx,r13 mov rax,rcx mov QWORD[((-88))+rsp],rbx mul r12 mov rcx,rax mov rax,r14 mov rbx,rdx mul r8 add rcx,rax mov rax,r11 adc rbx,rdx mul r15 add rcx,rax mov rax,r8 adc rbx,rdx shrd rsi,rdi,51 shr rdi,51 add rcx,rsi adc rbx,rdi mov rdi,rcx mul r15 and rdi,r13 mov r10,rdi mov rsi,rax mov rax,r14 mov rdi,rdx mul r14 add rsi,rax mov rax,r11 adc rdi,rdx mul r12 add rsi,rax mov rax,r12 adc rdi,rdx shrd rcx,rbx,51 shr rbx,51 add rsi,rcx adc rdi,rbx mov r9,rsi mul r8 and r9,r13 mov rcx,rax mov rax,QWORD[((-120))+rsp] mov rbx,rdx mul r15 add rcx,rax mov rax,QWORD[((-72))+rsp] adc rbx,rdx mul rbp add rcx,rax mov rax,QWORD[((-104))+rsp] adc rbx,rdx mov rdx,QWORD[((-96))+rsp] shrd rsi,rdi,51 shr rdi,51 add rcx,rsi adc rbx,rdi mov r12,rcx shrd rcx,rbx,51 and r12,r13 shr rbx,51 add rax,rcx adc rdx,rbx mov rbp,rax shrd rax,rdx,51 and rbp,r13 mov rcx,rax lea rax,[rax*8+rax] lea r15,[rax*2+rcx] add r15,QWORD[((-88))+rsp] mov rcx,r15 shr r15,51 add r15,r10 and rcx,r13 mov r14,r15 shr r15,51 and r14,r13 add r15,r9 sub QWORD[((-24))+rsp],1 jne NEAR $L$4 mov rbx,QWORD[208+rsp] mov r11,QWORD[40+rsp] mov r9,rcx mov rcx,QWORD[104+rsp] mov r8,QWORD[8+rsp] lea rax,[rbx*8+rbx] lea rdi,[rax*2+rbx] lea rax,[r11*8+r11] mov rbx,QWORD[56+rsp] lea rax,[rax*2+r11] mov QWORD[88+rsp],rdi mov QWORD[248+rsp],rax lea rax,[rbx*8+rbx] lea rsi,[rax*2+rbx] lea rax,[rcx*8+rcx] lea r10,[rax*2+rcx] mov rax,r8 mov QWORD[240+rsp],rsi mul r9 mov QWORD[200+rsp],r10 mov rcx,rax mov rax,rdi mov rbx,rdx mul r14 add rcx,rax mov rax,QWORD[248+rsp] adc rbx,rdx mul rbp add rcx,rax mov rax,r10 adc rbx,rdx mul r15 add rcx,rax mov rax,rsi adc rbx,rdx mul r12 mov rsi,rax mov rdi,rdx add rsi,rcx mov rax,rsi adc rdi,rbx and rax,r13 mov r10,rax mov rax,r8 mov r8,r11 mul r14 mov rcx,rax mov rax,r11 mov rbx,rdx mul r9 add rcx,rax mov rax,QWORD[88+rsp] adc rbx,rdx mul r15 add rcx,rax mov rax,QWORD[240+rsp] adc rbx,rdx mul rbp add rcx,rax mov rax,QWORD[200+rsp] adc rbx,rdx mul r12 add rcx,rax mov rax,QWORD[8+rsp] adc rbx,rdx shrd rsi,rdi,51 shr rdi,51 add rsi,rcx adc rdi,rbx mov r11,rsi mul r15 and r11,r13 mov rcx,rax mov rax,QWORD[56+rsp] mov rbx,rdx mul r9 add rcx,rax mov rax,r8 adc rbx,rdx mul r14 add rcx,rax mov rax,QWORD[88+rsp] adc rbx,rdx mul r12 add rcx,rax mov rax,QWORD[200+rsp] adc rbx,rdx mul rbp add rcx,rax adc rbx,rdx shrd rsi,rdi,51 shr rdi,51 add rsi,rcx mov rax,rsi adc rdi,rbx and rax,r13 mov r8,rax mov rax,QWORD[8+rsp] mul r12 mov rcx,rax mov rax,QWORD[104+rsp] mov rbx,rdx mul r9 add rcx,rax mov rax,QWORD[56+rsp] adc rbx,rdx mul r14 add rcx,rax mov rax,QWORD[40+rsp] adc rbx,rdx mul r15 add rcx,rax mov rax,QWORD[88+rsp] adc rbx,rdx mul rbp add rcx,rax adc rbx,rdx shrd rsi,rdi,51 shr rdi,51 add rsi,rcx mov rax,rsi adc rdi,rbx and rax,r13 mov QWORD[144+rsp],rax mov rax,rbp mov rbp,r13 mul QWORD[8+rsp] mov rcx,rax mov rbx,rdx mov rax,r9 mul QWORD[208+rsp] add rcx,rax mov rax,r12 adc rbx,rdx mul QWORD[40+rsp] add rcx,rax mov rax,r14 adc rbx,rdx mul QWORD[104+rsp] add rcx,rax mov rax,r15 mov r15,2251799813685247 adc rbx,rdx mul QWORD[56+rsp] add rcx,rax adc rbx,rdx shrd rsi,rdi,51 shr rdi,51 add rcx,rsi adc rbx,rdi mov rdi,rcx shrd rcx,rbx,51 and rdi,r13 lea rax,[rcx*8+rcx] mov QWORD[232+rsp],rdi lea rax,[rax*2+rcx] add r10,rax mov r9,r10 shr r10,51 add r11,r10 and r9,r13 and rbp,r11 shr r11,51 mov QWORD[152+rsp],r9 lea r14,[r8*1+r11] mov QWORD[120+rsp],rbp mov rcx,r9 mov rsi,rbp mov r11,rdi mov QWORD[160+rsp],r14 mov r13,QWORD[144+rsp] mov QWORD[((-8))+rsp],20 $L$5: lea rax,[r11*8+r11] lea r12,[rcx*1+rcx] lea rdi,[rsi*1+rsi] lea rax,[rax*2+r11] mov QWORD[((-120))+rsp],rdi lea r8,[rax*1+rax] mov QWORD[((-24))+rsp],rax lea rax,[r14*8+r14] lea rax,[rax*2+r14] lea rbx,[rax*1+rax] mov rax,rbx mul r13 mov r9,rax mov rax,rcx mov r10,rdx mul rcx mov rcx,rax mov rbx,rdx mov rax,r8 add rcx,r9 adc rbx,r10 mul rsi add rcx,rax mov rax,r12 adc rbx,rdx mov r9,rcx mul r11 mov r10,rbx mov rbp,r9 mov rcx,rax mov rax,rdi mov rbx,rdx mul r13 add rcx,rax mov rax,r14 adc rbx,rdx mul r14 add rcx,rax lea rax,[r13*8+r13] mov QWORD[((-104))+rsp],rcx adc rbx,rdx and rbp,r15 lea rcx,[rax*2+r13] mov QWORD[((-96))+rsp],rbx mov rax,rcx mul r13 mov rcx,rax mov rax,rsi mov rbx,rdx mul r12 add rcx,rax mov rax,r8 adc rbx,rdx mul r14 add rcx,rax mov rax,r12 adc rbx,rdx shrd r9,r10,51 shr r10,51 add rcx,r9 adc rbx,r10 mov QWORD[((-88))+rsp],rcx mul r14 mov QWORD[((-80))+rsp],rbx mov rbx,rcx and rbx,r15 mov rcx,QWORD[((-88))+rsp] mov QWORD[((-72))+rsp],rbx mov rbx,QWORD[((-80))+rsp] mov r9,rax mov rax,rsi mov r10,rdx mul rsi mov rsi,rax mov rdi,rdx mov rax,r8 add rsi,r9 adc rdi,r10 mul r13 add rsi,rax mov rax,r13 adc rdi,rdx shrd rcx,rbx,51 shr rbx,51 add rsi,rcx adc rdi,rbx mov r8,rsi mul r12 and r8,r15 mov rcx,rax mov rax,QWORD[((-120))+rsp] mov rbx,rdx mul r14 add rcx,rax mov rax,QWORD[((-24))+rsp] adc rbx,rdx mul r11 add rcx,rax mov rax,QWORD[((-104))+rsp] adc rbx,rdx mov rdx,QWORD[((-96))+rsp] shrd rsi,rdi,51 shr rdi,51 add rsi,rcx adc rdi,rbx mov rcx,rsi mov r13,rsi shrd rcx,rdi,51 mov rbx,rdi and r13,r15 shr rbx,51 add rax,rcx adc rdx,rbx mov r11,rax shrd rax,rdx,51 and r11,r15 mov rcx,rax lea rax,[rax*8+rax] lea r14,[rax*2+rcx] add r14,rbp mov rcx,r14 shr r14,51 add r14,QWORD[((-72))+rsp] and rcx,r15 mov rsi,r14 shr r14,51 and rsi,r15 add r14,r8 sub QWORD[((-8))+rsp],1 jne NEAR $L$5 mov rbx,QWORD[232+rsp] mov r9,rcx mov rcx,QWORD[144+rsp] mov r8,r11 mov rdi,QWORD[120+rsp] mov rbp,rsi mov QWORD[((-24))+rsp],10 lea rax,[rbx*8+rbx] lea r12,[rax*2+rbx] mov rbx,QWORD[160+rsp] lea rax,[rbx*8+rbx] lea r11,[rax*2+rbx] lea rax,[rcx*8+rcx] lea r10,[rax*2+rcx] mov rax,QWORD[152+rsp] mul r9 mov rcx,rax mov rax,rsi mov rbx,rdx mul r12 add rcx,rax lea rax,[rdi*8+rdi] adc rbx,rdx lea rax,[rax*2+rdi] mul r8 add rcx,rax mov rax,r14 adc rbx,rdx mul r10 add rcx,rax mov rax,r13 adc rbx,rdx mul r11 mov rsi,rax mov rdi,rdx add rsi,rcx mov rax,rsi adc rdi,rbx and rax,r15 mov QWORD[((-120))+rsp],rax mov rax,QWORD[152+rsp] mul rbp mov rcx,rax mov rax,QWORD[120+rsp] mov rbx,rdx mul r9 add rcx,rax mov rax,r14 adc rbx,rdx mul r12 add rcx,rax mov rax,r11 adc rbx,rdx mul r8 add rcx,rax mov rax,r13 adc rbx,rdx mul r10 add rcx,rax mov rax,QWORD[152+rsp] adc rbx,rdx shrd rsi,rdi,51 shr rdi,51 add rsi,rcx adc rdi,rbx mov r11,rsi mul r14 and r11,r15 mov rcx,rax mov rax,QWORD[160+rsp] mov rbx,rdx mul r9 add rcx,rax mov rax,QWORD[120+rsp] adc rbx,rdx mul rbp add rcx,rax mov rax,r13 adc rbx,rdx mul r12 add rcx,rax mov rax,r10 adc rbx,rdx mul r8 add rcx,rax mov rax,QWORD[152+rsp] adc rbx,rdx shrd rsi,rdi,51 shr rdi,51 add rsi,rcx adc rdi,rbx mov r10,rsi mul r13 and r10,r15 mov rcx,rax mov rax,QWORD[144+rsp] mov rbx,rdx mul r9 add rcx,rax mov rax,QWORD[160+rsp] adc rbx,rdx mul rbp add rcx,rax mov rax,QWORD[120+rsp] adc rbx,rdx mul r14 add rcx,rax mov rax,r12 adc rbx,rdx mul r8 add rcx,rax mov rax,QWORD[152+rsp] adc rbx,rdx shrd rsi,rdi,51 shr rdi,51 add rsi,rcx adc rdi,rbx mov r12,rsi mul r8 and r12,r15 mov rcx,rax mov rax,QWORD[232+rsp] mov rbx,rdx mul r9 add rcx,rax mov rax,QWORD[120+rsp] adc rbx,rdx mul r13 mov r13,2251799813685247 add rcx,rax mov rax,QWORD[144+rsp] adc rbx,rdx mul rbp add rcx,rax mov rax,QWORD[160+rsp] adc rbx,rdx mul r14 mov r14,r15 add rcx,rax adc rbx,rdx shrd rsi,rdi,51 shr rdi,51 add rsi,rcx adc rdi,rbx mov rcx,rsi mov rbp,rsi shrd rcx,rdi,51 and rbp,r15 lea rax,[rcx*8+rcx] lea rax,[rax*2+rcx] add rax,QWORD[((-120))+rsp] mov r9,rax shr rax,51 add r11,rax and r9,r15 and r14,r11 shr r11,51 mov rcx,r9 lea r15,[r10*1+r11] $L$6: lea rax,[rbp*8+rbp] lea r8,[rcx*1+rcx] lea r10,[r14*1+r14] lea rax,[rax*2+rbp] mov QWORD[((-120))+rsp],r10 lea r11,[rax*1+rax] mov QWORD[((-72))+rsp],rax lea rax,[r15*8+r15] lea rax,[rax*2+r15] lea rbx,[rax*1+rax] mov rax,rbx mul r12 mov rsi,rax mov rax,rcx mov rdi,rdx mul rcx mov rcx,rax mov rbx,rdx mov rax,r11 add rcx,rsi adc rbx,rdi mul r14 add rcx,rax mov rax,r8 adc rbx,rdx mov rsi,rcx mul rbp mov rdi,rbx mov rcx,rax mov rax,r10 mov rbx,rdx mul r12 add rcx,rax mov rax,r15 adc rbx,rdx mul r15 add rcx,rax lea rax,[r12*8+r12] mov QWORD[((-104))+rsp],rcx adc rbx,rdx lea rcx,[rax*2+r12] mov QWORD[((-96))+rsp],rbx mov rbx,rsi and rbx,r13 mov rax,rcx mov QWORD[((-88))+rsp],rbx mul r12 mov rcx,rax mov rax,r14 mov rbx,rdx mul r8 add rcx,rax mov rax,r11 adc rbx,rdx mul r15 add rcx,rax mov rax,r8 adc rbx,rdx shrd rsi,rdi,51 shr rdi,51 add rcx,rsi adc rbx,rdi mov rdi,rcx mul r15 and rdi,r13 mov r10,rdi mov rsi,rax mov rax,r14 mov rdi,rdx mul r14 add rsi,rax mov rax,r11 adc rdi,rdx mul r12 add rsi,rax mov rax,r12 adc rdi,rdx shrd rcx,rbx,51 shr rbx,51 add rsi,rcx adc rdi,rbx mov r9,rsi mul r8 and r9,r13 mov rcx,rax mov rax,QWORD[((-120))+rsp] mov rbx,rdx mul r15 add rcx,rax mov rax,QWORD[((-72))+rsp] adc rbx,rdx mul rbp add rcx,rax mov rax,QWORD[((-104))+rsp] adc rbx,rdx mov rdx,QWORD[((-96))+rsp] shrd rsi,rdi,51 shr rdi,51 add rcx,rsi adc rbx,rdi mov r12,rcx shrd rcx,rbx,51 and r12,r13 shr rbx,51 add rax,rcx adc rdx,rbx mov rbp,rax shrd rax,rdx,51 and rbp,r13 mov rcx,rax lea rax,[rax*8+rax] lea r15,[rax*2+rcx] add r15,QWORD[((-88))+rsp] mov rcx,r15 shr r15,51 add r15,r10 and rcx,r13 mov r14,r15 shr r15,51 and r14,r13 add r15,r9 sub QWORD[((-24))+rsp],1 jne NEAR $L$6 mov r11,QWORD[8+rsp] mov r10,QWORD[88+rsp] mov r9,rcx mov QWORD[((-24))+rsp],50 mov rax,r11 mul rcx mov rcx,rax mov rax,r10 mov rbx,rdx mul r14 add rcx,rax mov rax,QWORD[248+rsp] adc rbx,rdx mul rbp add rcx,rax mov rax,QWORD[200+rsp] adc rbx,rdx mul r15 add rcx,rax mov rax,QWORD[240+rsp] adc rbx,rdx mul r12 mov rsi,rax mov rdi,rdx mov rax,r11 add rsi,rcx adc rdi,rbx mov r8,rsi mul r14 and r8,r13 mov rcx,rax mov rax,QWORD[40+rsp] mov rbx,rdx mul r9 add rcx,rax mov rax,r10 adc rbx,rdx mul r15 add rcx,rax mov rax,QWORD[240+rsp] adc rbx,rdx mul rbp add rcx,rax mov rax,QWORD[200+rsp] adc rbx,rdx mul r12 add rcx,rax adc rbx,rdx shrd rsi,rdi,51 shr rdi,51 add rsi,rcx mov rax,rsi adc rdi,rbx and rax,r13 mov r10,rax mov rax,r11 mul r15 mov rcx,rax mov rax,QWORD[56+rsp] mov rbx,rdx mul r9 add rcx,rax mov rax,QWORD[40+rsp] adc rbx,rdx mul r14 add rcx,rax mov rax,QWORD[88+rsp] adc rbx,rdx mul r12 add rcx,rax mov rax,QWORD[200+rsp] adc rbx,rdx mul rbp add rcx,rax adc rbx,rdx shrd rsi,rdi,51 shr rdi,51 add rsi,rcx mov rax,rsi adc rdi,rbx and rax,r13 mov r11,rax mov rax,QWORD[8+rsp] mul r12 mov rcx,rax mov rax,QWORD[104+rsp] mov rbx,rdx mul r9 add rcx,rax mov rax,QWORD[56+rsp] adc rbx,rdx mul r14 add rcx,rax mov rax,QWORD[40+rsp] adc rbx,rdx mul r15 add rcx,rax mov rax,QWORD[88+rsp] adc rbx,rdx mul rbp add rcx,rax adc rbx,rdx shrd rsi,rdi,51 shr rdi,51 add rsi,rcx mov rax,rsi adc rdi,rbx and rax,r13 mov QWORD[88+rsp],rax mov rax,QWORD[8+rsp] mul rbp mov rbp,r13 mov rcx,rax mov rax,QWORD[208+rsp] mov rbx,rdx mul r9 add rcx,rax mov rax,QWORD[40+rsp] adc rbx,rdx mul r12 mov r12,QWORD[88+rsp] add rcx,rax mov rax,QWORD[104+rsp] adc rbx,rdx mul r14 add rcx,rax mov rax,QWORD[56+rsp] adc rbx,rdx mul r15 mov r15,2251799813685247 add rcx,rax adc rbx,rdx shrd rsi,rdi,51 shr rdi,51 add rcx,rsi adc rbx,rdi mov rdi,rcx shrd rcx,rbx,51 and rdi,r13 lea rax,[rcx*8+rcx] mov QWORD[160+rsp],rdi lea rax,[rax*2+rcx] add r8,rax mov rcx,r8 shr r8,51 add r10,r8 and rcx,r13 and rbp,r10 shr r10,51 mov QWORD[40+rsp],rcx lea r14,[r11*1+r10] mov QWORD[8+rsp],rbp mov r11,rdi mov rsi,rbp mov QWORD[((-8))+rsp],r14 $L$7: lea rax,[r11*8+r11] lea rbp,[rcx*1+rcx] lea rdi,[rsi*1+rsi] lea r13,[rax*2+r11] lea rax,[r14*8+r14] mov QWORD[((-120))+rsp],rdi lea r9,[rax*2+r14] lea r8,[r13*1+r13] add r9,r9 mov rax,r9 mul r12 mov r9,rax mov rax,rcx mov r10,rdx mul rcx add r9,rax mov rax,r8 adc r10,rdx mul rsi add r9,rax mov rax,rbp adc r10,rdx mul r11 mov rcx,rax mov rax,rdi mov rbx,rdx mul r12 add rcx,rax mov rax,r14 adc rbx,rdx mul r14 add rcx,rax lea rax,[r12*8+r12] mov QWORD[((-104))+rsp],rcx adc rbx,rdx lea rcx,[rax*2+r12] mov QWORD[((-96))+rsp],rbx mov rbx,r9 and rbx,r15 mov rax,rcx mov QWORD[((-88))+rsp],rbx mul r12 mov rcx,rax mov rax,rsi mov rbx,rdx mul rbp add rcx,rax mov rax,r8 adc rbx,rdx mul r14 add rcx,rax mov rax,rbp adc rbx,rdx shrd r9,r10,51 shr r10,51 add rcx,r9 mov rdx,rcx adc rbx,r10 and rdx,r15 mov QWORD[((-72))+rsp],rdx mul r14 mov r9,rax mov rax,rsi mov r10,rdx mul rsi mov rsi,rax mov rdi,rdx mov rax,r8 add rsi,r9 adc rdi,r10 mul r12 add rsi,rax mov rax,r12 adc rdi,rdx shrd rcx,rbx,51 shr rbx,51 add rsi,rcx adc rdi,rbx mov r8,rsi mul rbp and r8,r15 mov rcx,rax mov rax,QWORD[((-120))+rsp] mov rbx,rdx mul r14 add rcx,rax mov rax,r11 adc rbx,rdx mul r13 add rcx,rax mov rax,QWORD[((-104))+rsp] adc rbx,rdx mov rdx,QWORD[((-96))+rsp] shrd rsi,rdi,51 shr rdi,51 add rcx,rsi adc rbx,rdi mov r12,rcx shrd rcx,rbx,51 and r12,r15 shr rbx,51 add rax,rcx adc rdx,rbx mov r11,rax shrd rax,rdx,51 and r11,r15 mov rcx,rax lea rax,[rax*8+rax] lea r14,[rax*2+rcx] add r14,QWORD[((-88))+rsp] mov rcx,r14 shr r14,51 add r14,QWORD[((-72))+rsp] and rcx,r15 mov rsi,r14 shr r14,51 and rsi,r15 add r14,r8 sub QWORD[((-24))+rsp],1 jne NEAR $L$7 mov rbx,QWORD[160+rsp] mov rdi,QWORD[((-8))+rsp] mov rbp,rsi mov rsi,QWORD[88+rsp] mov r10,QWORD[40+rsp] lea rax,[rbx*8+rbx] lea r13,[rax*2+rbx] mov rbx,QWORD[8+rsp] mov QWORD[152+rsp],r13 lea rax,[rbx*8+rbx] lea rax,[rax*2+rbx] mov QWORD[240+rsp],rax lea rax,[rdi*8+rdi] lea r8,[rax*2+rdi] lea rax,[rsi*8+rsi] lea r9,[rax*2+rsi] mov rax,r10 mov QWORD[232+rsp],r8 mul rcx mov QWORD[200+rsp],r9 mov rsi,rax mov rax,r13 mov rdi,rdx mul rbp add rsi,rax mov rax,QWORD[240+rsp] adc rdi,rdx mul r11 add rsi,rax mov rax,r9 adc rdi,rdx mul r14 add rsi,rax mov rax,r8 adc rdi,rdx mul r12 add rsi,rax mov rax,rsi adc rdi,rdx mov QWORD[((-120))+rsp],rsi and rax,r15 mov QWORD[((-112))+rsp],rdi mov r8,rax mov rax,r10 mov r10,QWORD[((-112))+rsp] mul rbp mov rsi,rax mov rax,rbx mov rdi,rdx mul rcx add rsi,rax mov rax,r13 adc rdi,rdx mul r14 add rsi,rax mov rax,QWORD[232+rsp] adc rdi,rdx mul r11 add rsi,rax mov rax,r9 mov r9,QWORD[((-120))+rsp] adc rdi,rdx mul r12 add rsi,rax adc rdi,rdx shrd r9,r10,51 shr r10,51 add r9,rsi mov rax,r9 adc r10,rdi and rax,r15 mov QWORD[((-120))+rsp],rax mov rax,QWORD[40+rsp] mul r14 mov rsi,rax mov rax,QWORD[((-8))+rsp] mov rdi,rdx mul rcx add rsi,rax mov rax,rbx adc rdi,rdx mul rbp add rsi,rax mov rax,r13 adc rdi,rdx mul r12 add rsi,rax mov rax,QWORD[200+rsp] adc rdi,rdx mul r11 add rsi,rax mov rax,QWORD[40+rsp] adc rdi,rdx shrd r9,r10,51 shr r10,51 add r9,rsi mov rdx,r9 adc r10,rdi and rdx,r15 mov r13,rdx mul r12 mov rsi,rax mov rax,QWORD[88+rsp] mov rdi,rdx mul rcx add rsi,rax mov rax,QWORD[((-8))+rsp] adc rdi,rdx mul rbp add rsi,rax mov rax,rbx adc rdi,rdx mul r14 add rsi,rax mov rax,QWORD[152+rsp] adc rdi,rdx mul r11 add rax,rsi mov rsi,r9 adc rdx,rdi mov rdi,r10 shrd rsi,r10,51 shr rdi,51 add rsi,rax mov rax,rsi adc rdi,rdx and rax,r15 mov QWORD[56+rsp],rax mov rax,r11 mul QWORD[40+rsp] mov r9,rax mov r10,rdx mov rax,rcx mul QWORD[160+rsp] mov rcx,rax mov rbx,rdx mov rax,r12 add rcx,r9 adc rbx,r10 mul QWORD[8+rsp] add rcx,rax mov rax,rbp adc rbx,rdx mul QWORD[88+rsp] add rcx,rax mov rax,r14 adc rbx,rdx mul QWORD[((-8))+rsp] add rcx,rax adc rbx,rdx shrd rsi,rdi,51 shr rdi,51 add rcx,rsi adc rbx,rdi mov rdi,rcx shrd rcx,rbx,51 and rdi,r15 lea rax,[rcx*8+rcx] mov QWORD[208+rsp],rdi lea rax,[rax*2+rcx] add r8,rax mov rax,QWORD[((-120))+rsp] mov rsi,r8 shr r8,51 and rsi,r15 lea r11,[rax*1+r8] mov QWORD[104+rsp],rsi mov rcx,rsi and r15,r11 shr r11,51 mov QWORD[120+rsp],r15 lea r14,[r13*1+r11] mov r12,QWORD[56+rsp] mov rbp,r15 mov QWORD[((-24))+rsp],100 mov r15,2251799813685247 mov rsi,rbp mov QWORD[144+rsp],r14 mov rbp,rdi $L$8: lea rax,[rbp*8+rbp] lea r11,[rcx*1+rcx] lea rdi,[rsi*1+rsi] lea r13,[rax*2+rbp] lea rax,[r14*8+r14] mov QWORD[((-120))+rsp],rdi lea r9,[rax*2+r14] lea r8,[r13*1+r13] add r9,r9 mov rax,r9 mul r12 mov r9,rax mov rax,rcx mov r10,rdx mul rcx add r9,rax mov rax,r8 adc r10,rdx mul rsi add r9,rax mov rax,r11 adc r10,rdx mul rbp mov rcx,rax mov rax,rdi mov rbx,rdx mul r12 add rcx,rax mov rax,r14 adc rbx,rdx mul r14 add rcx,rax lea rax,[r12*8+r12] mov QWORD[((-104))+rsp],rcx adc rbx,rdx lea rcx,[rax*2+r12] mov QWORD[((-96))+rsp],rbx mov rbx,r9 and rbx,r15 mov rax,rcx mov QWORD[((-88))+rsp],rbx mul r12 mov rcx,rax mov rax,rsi mov rbx,rdx mul r11 add rcx,rax mov rax,r8 adc rbx,rdx mul r14 add rcx,rax mov rax,r11 adc rbx,rdx shrd r9,r10,51 shr r10,51 add rcx,r9 mov rdx,rcx adc rbx,r10 and rdx,r15 mov QWORD[((-72))+rsp],rdx mul r14 mov r9,rax mov rax,rsi mov r10,rdx mul rsi mov rsi,rax mov rdi,rdx mov rax,r8 add rsi,r9 adc rdi,r10 mul r12 add rsi,rax mov rax,r12 adc rdi,rdx shrd rcx,rbx,51 shr rbx,51 add rsi,rcx adc rdi,rbx mov r9,rsi mul r11 and r9,r15 mov rcx,rax mov rax,QWORD[((-120))+rsp] mov rbx,rdx mul r14 add rcx,rax mov rax,rbp adc rbx,rdx mul r13 add rcx,rax mov rax,QWORD[((-104))+rsp] adc rbx,rdx mov rdx,QWORD[((-96))+rsp] shrd rsi,rdi,51 shr rdi,51 add rcx,rsi adc rbx,rdi mov r12,rcx shrd rcx,rbx,51 and r12,r15 shr rbx,51 add rax,rcx adc rdx,rbx mov rbp,rax shrd rax,rdx,51 and rbp,r15 mov rcx,rax lea rax,[rax*8+rax] lea r14,[rax*2+rcx] add r14,QWORD[((-88))+rsp] mov rcx,r14 shr r14,51 add r14,QWORD[((-72))+rsp] and rcx,r15 mov rsi,r14 shr r14,51 and rsi,r15 add r14,r9 sub QWORD[((-24))+rsp],1 jne NEAR $L$8 mov rbx,QWORD[208+rsp] mov r11,rbp mov rbp,rsi mov rsi,rcx mov rcx,QWORD[56+rsp] mov r9,QWORD[104+rsp] mov r10,QWORD[120+rsp] mov QWORD[((-24))+rsp],50 lea rax,[rbx*8+rbx] lea rdi,[rax*2+rbx] mov rbx,QWORD[144+rsp] lea rax,[rbx*8+rbx] lea r13,[rax*2+rbx] lea rax,[rcx*8+rcx] lea r8,[rax*2+rcx] mov rax,r9 mul rsi mov rcx,rax mov rax,rbp mov rbx,rdx mul rdi add rcx,rax lea rax,[r10*8+r10] adc rbx,rdx lea rax,[rax*2+r10] mul r11 add rcx,rax mov rax,r14 adc rbx,rdx mul r8 add rcx,rax mov rax,r12 adc rbx,rdx mul r13 add rcx,rax mov rax,rcx adc rbx,rdx mov QWORD[((-120))+rsp],rcx and rax,r15 mov QWORD[((-112))+rsp],rbx mov QWORD[((-104))+rsp],rax mov rax,r9 mov r9,QWORD[((-120))+rsp] mul rbp mov rcx,rax mov rax,r10 mov rbx,rdx mul rsi mov r10,QWORD[((-112))+rsp] add rcx,rax mov rax,r14 adc rbx,rdx mul rdi add rcx,rax mov rax,r13 mov r13,QWORD[120+rsp] adc rbx,rdx mul r11 add rcx,rax mov rax,r12 adc rbx,rdx mul r8 add rcx,rax mov rax,QWORD[104+rsp] adc rbx,rdx shrd r9,r10,51 shr r10,51 add r9,rcx mov rdx,r9 adc r10,rbx and rdx,r15 mov QWORD[((-120))+rsp],rdx mul r14 mov rcx,rax mov rax,QWORD[144+rsp] mov rbx,rdx mul rsi add rcx,rax mov rax,r13 adc rbx,rdx mul rbp add rcx,rax mov rax,r12 adc rbx,rdx mul rdi add rcx,rax mov rax,r8 adc rbx,rdx mul r11 add rcx,rax mov rax,QWORD[104+rsp] adc rbx,rdx shrd r9,r10,51 shr r10,51 add r9,rcx adc r10,rbx mov r8,r9 mul r12 and r8,r15 mov rcx,rax mov rax,QWORD[56+rsp] mov rbx,rdx mul rsi add rcx,rax mov rax,QWORD[144+rsp] adc rbx,rdx mul rbp add rcx,rax mov rax,r13 adc rbx,rdx mul r14 add rcx,rax mov rax,rdi adc rbx,rdx mul r11 add rax,rcx mov rcx,r9 adc rdx,rbx mov rbx,r10 shrd rcx,r10,51 shr rbx,51 add rcx,rax mov rax,QWORD[104+rsp] adc rbx,rdx mov rdi,rcx and rdi,r15 mul r11 mov r13,rdi mov r9,rax mov rax,QWORD[208+rsp] mov r10,rdx mul rsi mov rsi,rax mov rax,QWORD[120+rsp] mov rdi,rdx add rsi,r9 adc rdi,r10 mul r12 add rsi,rax mov rax,QWORD[56+rsp] adc rdi,rdx mul rbp add rsi,rax mov rax,QWORD[144+rsp] adc rdi,rdx mul r14 add rsi,rax adc rdi,rdx mov rdx,QWORD[((-120))+rsp] shrd rcx,rbx,51 shr rbx,51 add rcx,rsi adc rbx,rdi mov r12,rcx shrd rcx,rbx,51 mov rbx,QWORD[((-104))+rsp] and r12,r15 lea rax,[rcx*8+rcx] lea rax,[rax*2+rcx] lea rbp,[rbx*1+rax] mov r9,rbp shr rbp,51 lea r11,[rbp*1+rdx] and r9,r15 mov rcx,r9 and r15,r11 shr r11,51 mov rbp,r15 lea r14,[r8*1+r11] mov r15,2251799813685247 mov rsi,rbp $L$9: lea rax,[r12*8+r12] lea r11,[rcx*1+rcx] lea rdi,[rsi*1+rsi] lea rbp,[rax*2+r12] lea rax,[r14*8+r14] mov QWORD[((-120))+rsp],rdi lea r9,[rax*2+r14] lea r8,[rbp*1+rbp] add r9,r9 mov rax,r9 mul r13 mov r9,rax mov rax,rcx mov r10,rdx mul rcx add r9,rax mov rax,r8 adc r10,rdx mul rsi add r9,rax mov rax,r11 adc r10,rdx mul r12 mov rcx,rax mov rax,rdi mov rbx,rdx mul r13 add rcx,rax mov rax,r14 adc rbx,rdx mul r14 add rcx,rax lea rax,[r13*8+r13] mov QWORD[((-104))+rsp],rcx adc rbx,rdx lea rcx,[rax*2+r13] mov QWORD[((-96))+rsp],rbx mov rbx,r9 and rbx,r15 mov rax,rcx mov QWORD[((-88))+rsp],rbx mul r13 mov rcx,rax mov rax,rsi mov rbx,rdx mul r11 add rcx,rax mov rax,r8 adc rbx,rdx mul r14 add rcx,rax mov rax,r11 adc rbx,rdx shrd r9,r10,51 shr r10,51 add rcx,r9 mov rdx,rcx adc rbx,r10 and rdx,r15 mov QWORD[((-72))+rsp],rdx mul r14 mov r9,rax mov rax,rsi mov r10,rdx mul rsi mov rsi,rax mov rdi,rdx mov rax,r8 add rsi,r9 adc rdi,r10 mul r13 add rsi,rax mov rax,r13 adc rdi,rdx shrd rcx,rbx,51 shr rbx,51 add rsi,rcx adc rdi,rbx mov r8,rsi mul r11 and r8,r15 mov rcx,rax mov rax,QWORD[((-120))+rsp] mov rbx,rdx mul r14 add rcx,rax mov rax,r12 adc rbx,rdx mul rbp add rcx,rax mov rax,QWORD[((-104))+rsp] adc rbx,rdx mov rdx,QWORD[((-96))+rsp] shrd rsi,rdi,51 shr rdi,51 add rcx,rsi adc rbx,rdi mov r13,rcx shrd rcx,rbx,51 and r13,r15 shr rbx,51 add rax,rcx adc rdx,rbx mov r12,rax shrd rax,rdx,51 and r12,r15 mov rcx,rax lea rax,[rax*8+rax] lea r14,[rax*2+rcx] add r14,QWORD[((-88))+rsp] mov rcx,r14 shr r14,51 add r14,QWORD[((-72))+rsp] and rcx,r15 mov rsi,r14 shr r14,51 and rsi,r15 add r14,r8 sub QWORD[((-24))+rsp],1 jne NEAR $L$9 mov r11,QWORD[40+rsp] mov r10,QWORD[152+rsp] mov r9,rcx mov rbp,rsi mov rax,r11 mul rcx mov rcx,rax mov rax,r10 mov rbx,rdx mul rsi add rcx,rax mov rax,QWORD[240+rsp] adc rbx,rdx mul r12 add rcx,rax mov rax,QWORD[200+rsp] adc rbx,rdx mul r14 add rcx,rax mov rax,QWORD[232+rsp] adc rbx,rdx mul r13 mov rsi,rax mov rdi,rdx mov rax,r11 add rsi,rcx adc rdi,rbx mov r8,rsi mul rbp and r8,r15 mov rcx,rax mov rax,QWORD[8+rsp] mov rbx,rdx mul r9 add rcx,rax mov rax,r10 adc rbx,rdx mul r14 add rcx,rax mov rax,QWORD[232+rsp] adc rbx,rdx mul r12 add rcx,rax mov rax,QWORD[200+rsp] adc rbx,rdx mul r13 add rcx,rax adc rbx,rdx shrd rsi,rdi,51 shr rdi,51 add rsi,rcx mov rax,rsi adc rdi,rbx and rax,r15 mov r10,rax mov rax,r11 mul r14 mov rcx,rax mov rax,QWORD[((-8))+rsp] mov rbx,rdx mul r9 add rcx,rax mov rax,QWORD[8+rsp] adc rbx,rdx mul rbp add rcx,rax mov rax,QWORD[152+rsp] adc rbx,rdx mul r13 add rcx,rax mov rax,QWORD[200+rsp] adc rbx,rdx mul r12 add rcx,rax adc rbx,rdx shrd rsi,rdi,51 shr rdi,51 add rsi,rcx mov rax,rsi adc rdi,rbx and rax,r15 mov QWORD[((-120))+rsp],rax mov rax,r11 mul r13 mov rcx,rax mov rax,QWORD[88+rsp] mov rbx,rdx mul r9 add rcx,rax mov rax,QWORD[((-8))+rsp] adc rbx,rdx mul rbp add rcx,rax mov rax,QWORD[8+rsp] adc rbx,rdx mul r14 add rcx,rax mov rax,QWORD[152+rsp] adc rbx,rdx mul r12 add rcx,rax mov rax,r11 adc rbx,rdx shrd rsi,rdi,51 shr rdi,51 add rcx,rsi adc rbx,rdi mov rsi,rcx mul r12 and rsi,r15 mov r11,rax mov rax,QWORD[160+rsp] mov r12,rdx mul r9 add r11,rax mov rax,QWORD[8+rsp] adc r12,rdx mul r13 add r11,rax mov rax,QWORD[88+rsp] adc r12,rdx mul rbp add r11,rax mov rax,QWORD[((-8))+rsp] adc r12,rdx mul r14 add rax,r11 adc rdx,r12 shrd rcx,rbx,51 shr rbx,51 add rcx,rax adc rbx,rdx mov r9,rcx shrd rcx,rbx,51 and r9,r15 lea rax,[rcx*8+rcx] lea rax,[rax*2+rcx] add r8,rax mov rax,QWORD[((-120))+rsp] mov rcx,r8 shr r8,51 add r10,r8 and rcx,r15 mov r8,r10 shr r10,51 lea rdi,[rax*1+r10] lea rax,[r9*8+r9] and r8,r15 lea r10,[rcx*1+rcx] lea r14,[r8*1+r8] lea r13,[rax*2+r9] mov rax,rcx mul rcx lea rbp,[r13*1+r13] mov rcx,rax mov rax,rbp mov rbx,rdx mul r8 add rcx,rax lea rax,[rdi*8+rdi] adc rbx,rdx lea rax,[rax*2+rdi] add rax,rax mul rsi add rcx,rax mov rax,rcx adc rbx,rdx mov r11,rcx and rax,r15 mov r12,rbx mov QWORD[((-120))+rsp],rax lea rax,[rsi*8+rsi] lea rcx,[rax*2+rsi] mov rax,rcx mul rsi mov rcx,rax mov rax,r8 mov rbx,rdx mul r10 add rcx,rax mov rax,rbp adc rbx,rdx mul rdi add rax,rcx mov rcx,r11 adc rdx,rbx mov rbx,r12 shrd rcx,r12,51 shr rbx,51 add rcx,rax mov rax,rbp adc rbx,rdx mov QWORD[((-104))+rsp],rcx and rcx,r15 mul rsi mov QWORD[((-88))+rsp],rcx mov QWORD[((-96))+rsp],rbx mov rcx,QWORD[((-104))+rsp] mov rbx,QWORD[((-96))+rsp] mov r11,rax mov rax,r8 mov r12,rdx mul r8 add r11,rax mov rax,r10 adc r12,rdx mul rdi add rax,r11 adc rdx,r12 shrd rcx,rbx,51 shr rbx,51 add rcx,rax mov rax,rsi adc rbx,rdx mov rbp,rcx mul r10 and rbp,r15 mov r11,rax mov rax,r13 mov r12,rdx mul r9 add r11,rax mov rax,r14 adc r12,rdx mul rdi add rax,r11 adc rdx,r12 shrd rcx,rbx,51 shr rbx,51 add rcx,rax mov rax,rsi adc rbx,rdx mov r8,rcx mul r14 and r8,r15 mov r11,rax mov rax,rdi mov r12,rdx mul rdi mov rsi,rax mov rdi,rdx mov rax,r9 add rsi,r11 adc rdi,r12 mul r10 add rsi,rax adc rdi,rdx shrd rcx,rbx,51 shr rbx,51 add rsi,rcx adc rdi,rbx mov rcx,rsi mov r9,rsi shrd rcx,rdi,51 and r9,r15 lea rax,[rcx*8+rcx] lea rax,[rax*2+rcx] add rax,QWORD[((-120))+rsp] mov r11,rax shr rax,51 add rax,QWORD[((-88))+rsp] and r11,r15 lea r10,[r11*1+r11] mov rdi,rax shr rax,51 lea rsi,[rbp*1+rax] lea rax,[r9*8+r9] and rdi,r15 lea r14,[rdi*1+rdi] lea r13,[rax*2+r9] mov rax,rdi lea rbp,[r13*1+r13] mul rbp mov rcx,rax mov rax,r11 mov rbx,rdx mul r11 add rcx,rax lea rax,[rsi*8+rsi] adc rbx,rdx lea rax,[rax*2+rsi] add rax,rax mul r8 add rcx,rax mov rax,rcx adc rbx,rdx mov r11,rcx and rax,r15 mov r12,rbx mov QWORD[((-88))+rsp],rax lea rax,[r8*8+r8] lea rcx,[rax*2+r8] mov rax,rcx mul r8 mov rcx,rax mov rax,r10 mov rbx,rdx mul rdi add rcx,rax mov rax,rsi adc rbx,rdx mul rbp add rax,rcx mov rcx,r11 adc rdx,rbx mov rbx,r12 shrd rcx,r12,51 shr rbx,51 add rcx,rax mov rax,rbp adc rbx,rdx mov QWORD[((-104))+rsp],rcx and rcx,r15 mul r8 mov QWORD[((-96))+rsp],rbx mov QWORD[((-120))+rsp],rcx mov rbx,QWORD[((-96))+rsp] mov rcx,QWORD[((-104))+rsp] mov r11,rax mov rax,rdi mov r12,rdx mul rdi add r11,rax mov rax,rsi adc r12,rdx mul r10 add rax,r11 adc rdx,r12 shrd rcx,rbx,51 shr rbx,51 add rax,rcx adc rdx,rbx mov r11,rax mov rbp,rax mov rax,r13 mov r12,rdx and rbp,r15 mul r9 mov rcx,rax mov rax,r10 mov rbx,rdx mul r8 add rcx,rax mov rax,r14 adc rbx,rdx mul rsi add rax,rcx mov rcx,r11 adc rdx,rbx mov rbx,r12 shrd rcx,r12,51 shr rbx,51 add rcx,rax mov rax,rsi adc rbx,rdx mov rdi,rcx mul rsi and rdi,r15 mov r11,rax mov rax,r14 mov r12,rdx mul r8 add r11,rax mov rax,r9 adc r12,rdx mul r10 add rax,r11 adc rdx,r12 shrd rcx,rbx,51 shr rbx,51 add rcx,rax adc rbx,rdx mov r9,rcx shrd rcx,rbx,51 and r9,r15 lea rax,[rcx*8+rcx] lea rax,[rax*2+rcx] add rax,QWORD[((-88))+rsp] mov r11,rax shr rax,51 add rax,QWORD[((-120))+rsp] and r11,r15 lea r10,[r11*1+r11] mov r8,rax shr rax,51 lea rsi,[rbp*1+rax] lea rax,[r9*8+r9] and r8,r15 lea r14,[r8*1+r8] lea r13,[rax*2+r9] mov rax,r8 lea rbp,[r13*1+r13] mul rbp mov rcx,rax mov rax,r11 mov rbx,rdx mul r11 add rcx,rax lea rax,[rsi*8+rsi] adc rbx,rdx lea rax,[rax*2+rsi] add rax,rax mul rdi add rcx,rax mov rax,rcx adc rbx,rdx mov r11,rcx and rax,r15 mov r12,rbx mov QWORD[((-88))+rsp],rax lea rax,[rdi*8+rdi] lea rcx,[rax*2+rdi] mov rax,rcx mul rdi mov rcx,rax mov rax,r10 mov rbx,rdx mul r8 add rcx,rax mov rax,rsi adc rbx,rdx mul rbp add rax,rcx mov rcx,r11 adc rdx,rbx mov rbx,r12 shrd rcx,r12,51 shr rbx,51 add rcx,rax mov rax,rbp adc rbx,rdx mov QWORD[((-104))+rsp],rcx and rcx,r15 mul rdi mov QWORD[((-120))+rsp],rcx mov QWORD[((-96))+rsp],rbx mov rcx,QWORD[((-104))+rsp] mov rbx,QWORD[((-96))+rsp] mov r11,rax mov rax,r8 mov r12,rdx mul r8 add r11,rax mov rax,rsi adc r12,rdx mul r10 add r11,rax mov rax,r13 adc r12,rdx shrd rcx,rbx,51 shr rbx,51 add r11,rcx adc r12,rbx mov rbp,r11 mul r9 and rbp,r15 mov rcx,rax mov rax,r10 mov rbx,rdx mul rdi add rcx,rax mov rax,r14 adc rbx,rdx mul rsi add rax,rcx mov rcx,r11 adc rdx,rbx mov rbx,r12 shrd rcx,r12,51 shr rbx,51 add rcx,rax mov rax,rsi adc rbx,rdx mov r8,rcx mul rsi and r8,r15 mov r11,rax mov rax,r14 mov r12,rdx mul rdi mov rsi,rax mov rdi,rdx mov rax,r9 add rsi,r11 adc rdi,r12 mul r10 add rsi,rax adc rdi,rdx shrd rcx,rbx,51 shr rbx,51 add rsi,rcx adc rdi,rbx mov rcx,rsi mov r9,rsi shrd rcx,rdi,51 and r9,r15 lea rax,[rcx*8+rcx] lea rax,[rax*2+rcx] add rax,QWORD[((-88))+rsp] mov r11,rax shr rax,51 add rax,QWORD[((-120))+rsp] and r11,r15 lea r10,[r11*1+r11] mov rdi,rax shr rax,51 lea rsi,[rbp*1+rax] lea rax,[r9*8+r9] and rdi,r15 lea r14,[rdi*1+rdi] lea r13,[rax*2+r9] mov rax,rdi lea rbp,[r13*1+r13] mul rbp mov rcx,rax mov rax,r11 mov rbx,rdx mul r11 add rcx,rax lea rax,[rsi*8+rsi] adc rbx,rdx lea rax,[rax*2+rsi] add rax,rax mul r8 add rcx,rax mov rax,rcx adc rbx,rdx mov r11,rcx and rax,r15 mov r12,rbx mov QWORD[((-88))+rsp],rax lea rax,[r8*8+r8] lea rcx,[rax*2+r8] mov rax,rcx mul r8 mov rcx,rax mov rax,r10 mov rbx,rdx mul rdi add rcx,rax mov rax,rsi adc rbx,rdx mul rbp add rax,rcx mov rcx,r11 adc rdx,rbx mov rbx,r12 shrd rcx,r12,51 shr rbx,51 add rcx,rax mov rax,rbp adc rbx,rdx mov QWORD[((-104))+rsp],rcx and rcx,r15 mul r8 mov QWORD[((-120))+rsp],rcx mov QWORD[((-96))+rsp],rbx mov rcx,QWORD[((-104))+rsp] mov rbx,QWORD[((-96))+rsp] mov r11,rax mov rax,rdi mov r12,rdx mul rdi add r11,rax mov rax,rsi adc r12,rdx mul r10 add rax,r11 adc rdx,r12 shrd rcx,rbx,51 shr rbx,51 add rax,rcx adc rdx,rbx mov r11,rax mov rbp,rax mov rax,r13 mov r12,rdx and rbp,r15 mul r9 mov rcx,rax mov rax,r10 mov rbx,rdx mul r8 add rcx,rax mov rax,r14 adc rbx,rdx mul rsi add rax,rcx mov rcx,r11 adc rdx,rbx mov rbx,r12 shrd rcx,r12,51 shr rbx,51 add rcx,rax mov rax,rsi adc rbx,rdx mov rdi,rcx mul rsi and rdi,r15 mov r11,rax mov rax,r14 mov r12,rdx mul r8 add r11,rax mov rax,r9 adc r12,rdx mul r10 add rax,r11 adc rdx,r12 shrd rcx,rbx,51 shr rbx,51 add rcx,rax adc rbx,rdx mov r8,rcx shrd rcx,rbx,51 and r8,r15 lea rax,[rcx*8+rcx] lea rax,[rax*2+rcx] add rax,QWORD[((-88))+rsp] mov rcx,rax shr rax,51 add rax,QWORD[((-120))+rsp] and rcx,r15 mov r11,rax shr rax,51 and r11,r15 lea rsi,[rbp*1+rax] lea rax,[r8*8+r8] lea r14,[r11*1+r11] lea rbp,[rcx*1+rcx] mov QWORD[((-120))+rsp],r14 lea r14,[rax*2+r8] mov rax,rcx mul rcx lea r13,[r14*1+r14] mov rcx,rax mov rax,r13 mov rbx,rdx mul r11 add rcx,rax lea rax,[rsi*8+rsi] adc rbx,rdx lea rax,[rax*2+rsi] add rax,rax mul rdi add rcx,rax mov rax,rcx adc rbx,rdx mov r9,rcx and rax,r15 mov r10,rbx mov QWORD[((-104))+rsp],rax lea rax,[rdi*8+rdi] lea rcx,[rax*2+rdi] mov rax,rcx mul rdi mov rcx,rax mov rax,r11 mov rbx,rdx mul rbp add rcx,rax mov rax,r13 adc rbx,rdx mul rsi add rax,rcx mov rcx,r9 adc rdx,rbx mov rbx,r10 shrd rcx,r10,51 shr rbx,51 add rcx,rax mov rax,r11 adc rbx,rdx mov r9,rcx and rcx,r15 mul r11 mov QWORD[((-88))+rsp],rcx mov rcx,r9 mov r11,rax mov rax,r13 mov r12,rdx mul rdi add r11,rax mov rax,rbp adc r12,rdx mul rsi add rax,r11 adc rdx,r12 shrd rcx,rbx,51 shr rbx,51 add rcx,rax mov rax,rdi adc rbx,rdx mov r13,rcx mul rbp and r13,r15 mov r9,rax mov rax,r14 mov r10,rdx mul r8 mov r14,QWORD[((-120))+rsp] add r9,rax mov rax,r14 adc r10,rdx mul rsi add rax,r9 adc rdx,r10 shrd rcx,rbx,51 shr rbx,51 add rcx,rax mov rax,r14 mov r14,QWORD[136+rsp] adc rbx,rdx mov r9,rcx mul rdi and r9,r15 mov r11,rax mov rax,rsi mov r12,rdx mul rsi mov rsi,rax mov rdi,rdx mov rax,rbp add rsi,r11 adc rdi,r12 mul r8 add rsi,rax adc rdi,rdx shrd rcx,rbx,51 shr rbx,51 add rcx,rsi adc rbx,rdi mov r8,rcx shrd rcx,rbx,51 and r8,r15 lea rax,[rcx*8+rcx] lea rax,[rax*2+rcx] add rax,QWORD[((-104))+rsp] mov r10,rax shr rax,51 add rax,QWORD[((-88))+rsp] and r10,r15 mov r11,rax shr rax,51 lea rbp,[r13*1+rax] mov r13,QWORD[80+rsp] and r11,r15 lea rax,[r13*8+r13] lea r12,[rax*2+r13] lea rax,[r14*8+r14] lea rbx,[rax*2+r14] mov rax,rbx mul r8 mov rcx,rax mov rax,r9 mov rbx,rdx mul r12 add rcx,rax mov rax,QWORD[128+rsp] adc rbx,rdx mul r10 add rcx,rax mov rax,QWORD[192+rsp] adc rbx,rdx mul r11 add rcx,rax mov rax,QWORD[216+rsp] adc rbx,rdx mul rbp mov rsi,rax mov rdi,rdx add rsi,rcx mov rax,rsi adc rdi,rbx and rax,r15 mov QWORD[((-120))+rsp],rax mov rax,r12 mul r8 mov rcx,rax mov rax,QWORD[216+rsp] mov rbx,rdx mul r9 add rcx,rax mov rax,r14 adc rbx,rdx mul r10 add rcx,rax mov rax,QWORD[128+rsp] adc rbx,rdx mul r11 add rcx,rax mov rax,QWORD[192+rsp] adc rbx,rdx mul rbp add rcx,rax mov rax,QWORD[192+rsp] adc rbx,rdx shrd rsi,rdi,51 shr rdi,51 add rsi,rcx adc rdi,rbx mov r12,rsi mul r9 and r12,r15 mov rcx,rax mov rax,QWORD[216+rsp] mov rbx,rdx mul r8 add rcx,rax mov rax,r13 adc rbx,rdx mul r10 add rcx,rax mov rax,r14 adc rbx,rdx mul r11 add rcx,rax mov rax,QWORD[128+rsp] adc rbx,rdx mul rbp add rcx,rax mov rax,QWORD[128+rsp] adc rbx,rdx shrd rsi,rdi,51 shr rdi,51 add rsi,rcx adc rdi,rbx mov rcx,rsi mul r9 and rcx,r15 mov QWORD[((-104))+rsp],rcx mov rcx,rax mov rax,QWORD[192+rsp] mov rbx,rdx mul r8 add rcx,rax mov rax,QWORD[24+rsp] adc rbx,rdx mul r10 add rcx,rax mov rax,r13 adc rbx,rdx mul r11 add rcx,rax mov rax,r14 adc rbx,rdx mul rbp add rax,rcx mov rcx,rsi adc rdx,rbx mov rbx,rdi shrd rcx,rdi,51 shr rbx,51 add rcx,rax mov rax,QWORD[128+rsp] adc rbx,rdx mov rsi,rcx and rsi,r15 mul r8 mov r13,rax mov rax,QWORD[136+rsp] mov r14,rdx mul r9 add r13,rax mov rax,QWORD[224+rsp] adc r14,rdx mul r10 add r13,rax mov rax,QWORD[24+rsp] adc r14,rdx mul r11 add r13,rax mov rax,QWORD[80+rsp] adc r14,rdx mul rbp add rax,r13 adc rdx,r14 shrd rcx,rbx,51 shr rbx,51 add rax,rcx mov rcx,QWORD[((-104))+rsp] adc rdx,rbx mov rdi,rax shrd rax,rdx,51 and rdi,r15 lea rdx,[rax*8+rax] lea rax,[rdx*2+rax] add rax,QWORD[((-120))+rsp] mov rbp,rax shr rax,51 add r12,rax lea rax,[rdi*8+rdi] and rbp,r15 mov r9,r12 shr r12,51 lea r10,[rcx*1+r12] lea r8,[rax*2+rdi] and r9,r15 lea rax,[r10*8+r10] lea r14,[rax*2+r10] lea rax,[rsi*8+rsi] lea r13,[rax*2+rsi] mov rax,QWORD[((-56))+rsp] mul r8 mov rcx,rax mov rax,QWORD[168+rsp] mov rbx,rdx mul r13 add rcx,rax mov rax,QWORD[72+rsp] adc rbx,rdx mul rbp add rcx,rax lea rax,[r9*8+r9] adc rbx,rdx lea rax,[rax*2+r9] mul QWORD[((-32))+rsp] add rcx,rax mov rax,QWORD[184+rsp] adc rbx,rdx mul r14 add rcx,rax mov rax,rcx adc rbx,rdx mov r11,rcx and rax,r15 mov r12,rbx mov QWORD[((-120))+rsp],rax mov rax,QWORD[168+rsp] mul r8 mov rcx,rax mov rax,QWORD[184+rsp] mov rbx,rdx mul r13 add rcx,rax mov rax,QWORD[((-56))+rsp] adc rbx,rdx mul rbp add rcx,rax mov rax,QWORD[72+rsp] adc rbx,rdx mul r9 add rcx,rax mov rax,r14 adc rbx,rdx mul QWORD[((-32))+rsp] add rax,rcx mov rcx,r11 adc rdx,rbx mov rbx,r12 shrd rcx,r12,51 shr rbx,51 add rcx,rax mov rax,QWORD[184+rsp] adc rbx,rdx mov r14,rcx and r14,r15 mul r8 mov r11,rax mov r12,rdx mov rax,r13 mul QWORD[((-32))+rsp] add r11,rax mov rax,QWORD[168+rsp] adc r12,rdx mul rbp add r11,rax mov rax,QWORD[((-56))+rsp] adc r12,rdx mul r9 add r11,rax mov rax,QWORD[72+rsp] mov QWORD[((-96))+rsp],0 adc r12,rdx mov QWORD[((-112))+rsp],0 mul r10 add rax,r11 adc rdx,r12 shrd rcx,rbx,51 shr rbx,51 add rcx,rax mov rax,QWORD[72+rsp] adc rbx,rdx mov r13,rcx and r13,r15 mul rsi mov r11,rax mov rax,r8 mov r8,QWORD[((-32))+rsp] mov r12,rdx mul r8 add r11,rax mov rax,QWORD[184+rsp] adc r12,rdx mul rbp add r11,rax mov rax,QWORD[168+rsp] adc r12,rdx mul r9 add r11,rax mov rax,QWORD[((-56))+rsp] adc r12,rdx mul r10 add rax,r11 adc rdx,r12 shrd rcx,rbx,51 shr rbx,51 add rcx,rax mov rax,QWORD[72+rsp] adc rbx,rdx mul rdi mov r11,rax mov rax,QWORD[((-56))+rsp] mov r12,rdx mul rsi mov rsi,rax mov rdi,rdx mov rax,r8 add rsi,r11 adc rdi,r12 mul rbp add rsi,rax mov rax,QWORD[184+rsp] adc rdi,rdx mul r9 add rsi,rax mov rax,QWORD[168+rsp] adc rdi,rdx mul r10 add rsi,rax mov rax,rcx adc rdi,rdx mov rdx,rbx shrd rax,rbx,51 shr rdx,51 add rax,rsi adc rdx,rdi mov rsi,rax mov QWORD[((-104))+rsp],rax shrd rsi,rdx,51 mov rax,rcx xor r10d,r10d lea rdx,[rsi*8+rsi] and rax,r15 mov r9,rax mov rax,QWORD[((-104))+rsp] lea rbp,[rdx*2+rsi] add rbp,QWORD[((-120))+rsp] xor edx,edx mov rbx,rdx shr rbx,51 mov rdi,rbp shr rdi,51 add rdi,r14 mov r8,rdi shr r8,51 add r8,r13 mov rcx,r8 shrd rcx,rdx,51 add r9,rcx adc r10,rbx and rax,r15 xor r12d,r12d mov r11,rax mov rax,r9 mov rdx,r10 shrd rax,r10,51 shr rdx,51 add r11,rax mov eax,19 adc r12,rdx mov rcx,r11 and rbp,r15 shrd rcx,r12,51 mov rbx,r12 mul rcx shr rbx,51 imul rsi,rbx,19 mov rcx,rax mov rbx,rdx xor edx,edx add rbx,rsi add rcx,rbp adc rbx,rdx mov rsi,rcx and rdi,r15 shrd rsi,rbx,51 mov rax,rdi mov rdi,rbx xor edx,edx shr rdi,51 add rsi,rax mov rbx,rcx adc rdi,rdx and r8,r15 xor edx,edx mov rbp,rdi mov rdi,rsi mov QWORD[((-120))+rsp],rsi shrd rdi,rbp,51 shr rbp,51 mov rsi,r9 add rdi,r8 adc rbp,rdx mov r8,rdi and rsi,r15 shrd r8,rbp,51 mov r9,rbp xor edx,edx shr r9,51 add r8,rsi mov rsi,r11 adc r9,rdx and rsi,r15 xor edx,edx mov r10,r9 mov r9,r8 mov QWORD[((-104))+rsp],r8 shrd r9,r10,51 shr r10,51 add r9,rsi mov esi,19 mov r8,r9 adc r10,rdx and rbx,r15 mov rax,r8 mov rdx,r10 mov r11,rbx shrd rax,r10,51 shr rdx,51 xor r12d,r12d mov rbx,rdi imul r10,rdx,19 mul rsi add rdx,r10 add r11,19 adc r12,0 add r11,rax mov rax,QWORD[((-120))+rsp] adc r12,rdx xor r14d,r14d mov rdx,r12 and rax,r15 shr rdx,51 mov r13,rax mov rax,r11 shrd rax,r12,51 add r13,rax mov rax,QWORD[((-104))+rsp] adc r14,rdx mov rsi,r13 and rbx,r15 shrd rsi,r14,51 mov rdi,r14 xor edx,edx shr rdi,51 add rsi,rbx adc rdi,rdx and rax,r15 xor ebx,ebx mov rcx,rax mov rax,rsi mov rdx,rdi shrd rax,rdi,51 shr rdx,51 mov rdi,r8 mov QWORD[((-120))+rsp],rsi add rcx,rax mov esi,19 adc rbx,rdx mov r8,rcx and rdi,r15 shrd r8,rbx,51 mov r9,rbx xor edx,edx mov rbx,rcx shr r9,51 add r8,rdi adc r9,rdx mov rax,r8 xor r12d,r12d shrd rax,r9,51 mov rdx,r9 mov QWORD[((-80))+rsp],r9 xor r10d,r10d shr rdx,51 mov QWORD[((-88))+rsp],r8 imul rdi,rdx,19 mul rsi add rdx,rdi mov rdi,r11 mov r11,2251799813685229 and rdi,r15 mov r9,rdi mov rdi,r13 add r9,r11 adc r10,r12 add rax,r9 mov r9,2251799813685247 adc rdx,r10 and rdi,r15 xor r10d,r10d mov r11,rdi xor r12d,r12d mov r13,rax add r11,r9 mov rdi,QWORD[((-120))+rsp] mov r14,rdx adc r12,r10 shr r14,51 shrd r13,rdx,51 add r13,r11 adc r14,r12 and rdi,r15 xor r12d,r12d mov rsi,rdi mov r11,r13 mov rdi,r12 add rsi,r9 mov r12,r14 adc rdi,r10 shr r12,51 shrd r11,r14,51 add r11,rsi adc r12,rdi and rbx,r15 xor r14d,r14d mov rdi,r13 mov rcx,rbx mov r13,r11 and rdi,r15 mov rbx,r14 add rcx,r9 adc rbx,r10 mov r14,r12 mov QWORD[((-104))+rsp],rdi shrd r13,r12,51 mov rsi,QWORD[((-104))+rsp] shr r14,51 add r13,rcx adc r14,rbx mov rbx,r11 mov rdi,r13 and rbx,r15 mov rdx,rsi and rax,r15 mov r13,rbx mov rbx,rdi sal rdx,51 and rbx,r15 or rax,rdx mov r11,rdi mov QWORD[((-120))+rsp],rbx mov rbx,QWORD[352+rsp] mov rdx,rax shr rdx,8 mov rdi,QWORD[((-96))+rsp] mov rbp,r14 mov rcx,r13 xor r14d,r14d mov BYTE[1+rbx],dl mov rdx,rax mov BYTE[rbx],al shr rdx,16 mov BYTE[2+rbx],dl mov rdx,rax shr rdx,24 mov BYTE[3+rbx],dl mov rdx,rax shr rdx,32 mov BYTE[4+rbx],dl mov rdx,rax mov r12,QWORD[((-112))+rsp] shr rdx,40 mov BYTE[5+rbx],dl mov rdx,rax shr rax,56 mov BYTE[7+rbx],al mov rax,r13 shr rdx,48 shrd rsi,rdi,13 sal rax,38 mov rdi,rbx mov BYTE[6+rbx],dl or rsi,rax mov r13,r11 mov r11,QWORD[((-120))+rsp] mov rax,rsi mov BYTE[8+rbx],sil shr rax,8 mov BYTE[9+rbx],al mov rax,rsi shr rax,16 mov BYTE[10+rbx],al mov rax,rsi shr rax,24 mov BYTE[11+rbx],al mov rax,rsi shr rax,32 mov BYTE[12+rbx],al mov rax,rsi shr rax,40 mov BYTE[13+rbx],al mov rax,rsi shr rsi,56 shr rax,48 mov BYTE[15+rbx],sil mov BYTE[14+rbx],al mov rax,QWORD[((-120))+rsp] mov rbx,rdi shrd rcx,r14,26 sal rax,25 or rcx,rax mov rax,rcx mov BYTE[16+rdi],cl shr rax,8 mov BYTE[17+rdi],al mov rax,rcx shr rax,16 mov BYTE[18+rdi],al mov rax,rcx shr rax,24 mov BYTE[19+rdi],al mov rax,rcx shr rax,32 mov BYTE[20+rdi],al mov rax,rcx shr rax,40 mov BYTE[21+rdi],al mov rax,rcx shr rax,48 shr rcx,56 mov BYTE[22+rdi],al mov BYTE[23+rdi],cl mov rdi,QWORD[((-88))+rsp] and rdi,r15 mov rax,rdi add rax,r9 shrd r13,rbp,51 add rax,r13 and rax,r15 shrd r11,r12,39 sal rax,12 or rax,r11 mov rdx,rax mov BYTE[24+rbx],al shr rdx,8 mov BYTE[25+rbx],dl mov rdx,rax shr rdx,16 mov BYTE[26+rbx],dl mov rdx,rax shr rdx,24 mov BYTE[27+rbx],dl mov rdx,rax shr rdx,32 mov BYTE[28+rbx],dl mov rdx,rax shr rdx,40 mov BYTE[29+rbx],dl mov rdx,rax shr rax,56 shr rdx,48 mov BYTE[31+rbx],al xor eax,eax mov BYTE[30+rbx],dl add rsp,784 pop rdi pop rsi pop rbx pop rbp pop r12 pop r13 pop r14 pop r15 ret $L$FE13: