michael@0: ; This Source Code Form is subject to the terms of the Mozilla Public michael@0: ; License, v. 2.0. If a copy of the MPL was not distributed with this michael@0: ; file, You can obtain one at http://mozilla.org/MPL/2.0/. michael@0: michael@0: ;/* TomsFastMath, a fast ISO C bignum library. michael@0: ; * michael@0: ; * This project is meant to fill in where LibTomMath michael@0: ; * falls short. That is speed ;-) michael@0: ; * michael@0: ; * This project is public domain and free for all purposes. michael@0: ; * michael@0: ; * Tom St Denis, tomstdenis@iahu.ca michael@0: ; */ michael@0: michael@0: ;/* michael@0: ; * The source file from which this assembly was derived michael@0: ; * comes from TFM v0.03, which has the above license. michael@0: ; * This source was from mp_comba_amd64.sun.s and convert to michael@0: ; * MASM code set. michael@0: ; */ michael@0: michael@0: .CODE michael@0: michael@0: externdef memcpy:PROC michael@0: michael@0: public s_mp_mul_comba_4 michael@0: public s_mp_mul_comba_8 michael@0: public s_mp_mul_comba_16 michael@0: public s_mp_mul_comba_32 michael@0: public s_mp_sqr_comba_8 michael@0: public s_mp_sqr_comba_16 michael@0: public s_mp_sqr_comba_32 michael@0: michael@0: michael@0: ; void s_mp_mul_comba_4(const mp_int *A, const mp_int *B, mp_int *C) michael@0: michael@0: ALIGN 16 michael@0: s_mp_mul_comba_4 PROC michael@0: michael@0: push rdi michael@0: push rsi michael@0: michael@0: mov rdi, rcx michael@0: mov rsi, rdx michael@0: mov rdx, r8 michael@0: michael@0: push r12 michael@0: push rbp michael@0: push rbx michael@0: sub rsp, 64 michael@0: mov r9, qword ptr [16+rdi] michael@0: mov rbx, rdx michael@0: mov rdx, qword ptr [16+rsi] michael@0: mov rax, qword ptr [r9] michael@0: mov qword ptr [-64+64+rsp], rax michael@0: mov r8, qword ptr [8+r9] michael@0: mov qword ptr [-56+64+rsp], r8 michael@0: mov rbp, qword ptr [16+r9] michael@0: mov qword ptr [-48+64+rsp], rbp michael@0: mov r12, qword ptr [24+r9] michael@0: mov qword ptr [-40+64+rsp], r12 michael@0: mov rcx, qword ptr [rdx] michael@0: mov qword ptr [-32+64+rsp], rcx michael@0: mov r10, qword ptr [8+rdx] michael@0: mov qword ptr [-24+64+rsp], r10 michael@0: mov r11, qword ptr [16+rdx] michael@0: xor r10d, r10d michael@0: mov r8, r10 michael@0: mov r9, r10 michael@0: mov rbp, r10 michael@0: mov qword ptr [-16+64+rsp], r11 michael@0: mov r11, qword ptr [16+rbx] michael@0: mov rax, qword ptr [24+rdx] michael@0: mov qword ptr [-8+64+rsp], rax michael@0: mov rax, qword ptr [-64+64+rsp] michael@0: mul qword ptr [-32+64+rsp] michael@0: add r8, rax michael@0: adc r9, rdx michael@0: adc rbp, 0 michael@0: mov qword ptr [r11], r8 michael@0: mov r8, rbp michael@0: mov rbp, r10 michael@0: mov rax, qword ptr [-64+64+rsp] michael@0: mul qword ptr [-24+64+rsp] michael@0: add r9, rax michael@0: adc r8, rdx michael@0: adc rbp, 0 michael@0: mov r12, rbp michael@0: mov rax, qword ptr [-56+64+rsp] michael@0: mul qword ptr [-32+64+rsp] michael@0: add r9, rax michael@0: adc r8, rdx michael@0: adc r12, 0 michael@0: mov qword ptr [8+r11], r9 michael@0: mov r9, r12 michael@0: mov r12, r10 michael@0: mov rax, qword ptr [-64+64+rsp] michael@0: mul qword ptr [-16+64+rsp] michael@0: add r8, rax michael@0: adc r9, rdx michael@0: adc r12, 0 michael@0: mov rcx, r12 michael@0: mov rax, qword ptr [-56+64+rsp] michael@0: mul qword ptr [-24+64+rsp] michael@0: add r8, rax michael@0: adc r9, rdx michael@0: adc rcx, 0 michael@0: mov rbp, r9 michael@0: mov r12, rcx michael@0: mov rax, qword ptr [-48+64+rsp] michael@0: mul qword ptr [-32+64+rsp] michael@0: add r8, rax michael@0: adc rbp, rdx michael@0: adc r12, 0 michael@0: mov qword ptr [16+r11], r8 michael@0: mov r9, r12 michael@0: mov rcx, rbp michael@0: mov r8, r10 michael@0: mov rax, qword ptr [-64+64+rsp] michael@0: mul qword ptr [-8+64+rsp] michael@0: add rcx, rax michael@0: adc r9, rdx michael@0: adc r8, 0 michael@0: mov rax, qword ptr [-56+64+rsp] michael@0: mul qword ptr [-16+64+rsp] michael@0: add rcx, rax michael@0: adc r9, rdx michael@0: adc r8, 0 michael@0: mov rax, qword ptr [-48+64+rsp] michael@0: mul qword ptr [-24+64+rsp] michael@0: add rcx, rax michael@0: adc r9, rdx michael@0: adc r8, 0 michael@0: mov rbp, r9 michael@0: mov r12, r8 michael@0: mov rax, qword ptr [-40+64+rsp] michael@0: mul qword ptr [-32+64+rsp] michael@0: add rcx, rax michael@0: adc rbp, rdx michael@0: adc r12, 0 michael@0: mov qword ptr [24+r11], rcx michael@0: mov r9, r12 michael@0: mov r8, rbp michael@0: mov rcx, r10 michael@0: mov rax, qword ptr [-56+64+rsp] michael@0: mul qword ptr [-8+64+rsp] michael@0: add r8, rax michael@0: adc r9, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-48+64+rsp] michael@0: mul qword ptr [-16+64+rsp] michael@0: add r8, rax michael@0: adc r9, rdx michael@0: adc rcx, 0 michael@0: mov rbp, r9 michael@0: mov r12, rcx michael@0: mov rax, qword ptr [-40+64+rsp] michael@0: mul qword ptr [-24+64+rsp] michael@0: add r8, rax michael@0: adc rbp, rdx michael@0: adc r12, 0 michael@0: mov qword ptr [32+r11], r8 michael@0: mov r9, r12 michael@0: mov rcx, rbp michael@0: mov r8, r10 michael@0: mov rax, qword ptr [-48+64+rsp] michael@0: mul qword ptr [-8+64+rsp] michael@0: add rcx, rax michael@0: adc r9, rdx michael@0: adc r8, 0 michael@0: mov r12, r8 michael@0: mov rbp, r9 michael@0: mov rax, qword ptr [-40+64+rsp] michael@0: mul qword ptr [-16+64+rsp] michael@0: add rcx, rax michael@0: adc rbp, rdx michael@0: adc r12, 0 michael@0: mov qword ptr [40+r11], rcx michael@0: mov r8, rbp michael@0: mov rcx, r12 michael@0: mov rax, qword ptr [-40+64+rsp] michael@0: mul qword ptr [-8+64+rsp] michael@0: add r8, rax michael@0: adc rcx, rdx michael@0: adc r10, 0 michael@0: mov qword ptr [48+r11], r8 michael@0: mov esi, dword ptr [rsi] michael@0: xor esi, dword ptr [rdi] michael@0: test rcx, rcx michael@0: mov qword ptr [56+r11], rcx michael@0: mov dword ptr [8+rbx], 8 michael@0: jne L9 michael@0: ALIGN 16 michael@0: L18: michael@0: mov edx, dword ptr [8+rbx] michael@0: lea edi, dword ptr [-1+rdx] michael@0: test edi, edi michael@0: mov dword ptr [8+rbx], edi michael@0: je L9 michael@0: lea r10d, dword ptr [-2+rdx] michael@0: cmp dword ptr [r11+r10*8], 0 michael@0: je L18 michael@0: L9: michael@0: mov edx, dword ptr [8+rbx] michael@0: xor r11d, r11d michael@0: test edx, edx michael@0: cmovne r11d, esi michael@0: mov dword ptr [rbx], r11d michael@0: add rsp, 64 michael@0: pop rbx michael@0: pop rbp michael@0: pop r12 michael@0: michael@0: pop rsi michael@0: pop rdi michael@0: michael@0: ret michael@0: michael@0: s_mp_mul_comba_4 ENDP michael@0: michael@0: michael@0: ; void s_mp_mul_comba_8(const mp_int *A, const mp_int *B, mp_int *C) michael@0: michael@0: ALIGN 16 michael@0: s_mp_mul_comba_8 PROC michael@0: michael@0: push rdi michael@0: push rsi michael@0: michael@0: mov rdi, rcx michael@0: mov rsi, rdx michael@0: mov rdx, r8 michael@0: michael@0: push r12 michael@0: push rbp michael@0: push rbx michael@0: mov rbx, rdx michael@0: sub rsp, 8+128 michael@0: mov rdx, qword ptr [16+rdi] michael@0: mov r8, qword ptr [rdx] michael@0: mov qword ptr [-120+128+rsp], r8 michael@0: mov rbp, qword ptr [8+rdx] michael@0: mov qword ptr [-112+128+rsp], rbp michael@0: mov r9, qword ptr [16+rdx] michael@0: mov qword ptr [-104+128+rsp], r9 michael@0: mov r12, qword ptr [24+rdx] michael@0: mov qword ptr [-96+128+rsp], r12 michael@0: mov rcx, qword ptr [32+rdx] michael@0: mov qword ptr [-88+128+rsp], rcx michael@0: mov r10, qword ptr [40+rdx] michael@0: mov qword ptr [-80+128+rsp], r10 michael@0: mov r11, qword ptr [48+rdx] michael@0: mov qword ptr [-72+128+rsp], r11 michael@0: mov rax, qword ptr [56+rdx] michael@0: mov rdx, qword ptr [16+rsi] michael@0: mov qword ptr [-64+128+rsp], rax michael@0: mov r8, qword ptr [rdx] michael@0: mov qword ptr [-56+128+rsp], r8 michael@0: mov rbp, qword ptr [8+rdx] michael@0: mov qword ptr [-48+128+rsp], rbp michael@0: mov r9, qword ptr [16+rdx] michael@0: mov qword ptr [-40+128+rsp], r9 michael@0: mov r12, qword ptr [24+rdx] michael@0: mov qword ptr [-32+128+rsp], r12 michael@0: mov rcx, qword ptr [32+rdx] michael@0: mov qword ptr [-24+128+rsp], rcx michael@0: mov r10, qword ptr [40+rdx] michael@0: mov qword ptr [-16+128+rsp], r10 michael@0: mov r11, qword ptr [48+rdx] michael@0: xor r10d, r10d michael@0: mov r8, r10 michael@0: mov r9, r10 michael@0: mov rbp, r10 michael@0: mov qword ptr [-8+128+rsp], r11 michael@0: mov r11, qword ptr [16+rbx] michael@0: mov rax, qword ptr [56+rdx] michael@0: mov qword ptr [128+rsp], rax michael@0: mov rax, qword ptr [-120+128+rsp] michael@0: mul qword ptr [-56+128+rsp] michael@0: add r8, rax michael@0: adc r9, rdx michael@0: adc rbp, 0 michael@0: mov qword ptr [r11], r8 michael@0: mov r8, rbp michael@0: mov rbp, r10 michael@0: mov rax, qword ptr [-120+128+rsp] michael@0: mul qword ptr [-48+128+rsp] michael@0: add r9, rax michael@0: adc r8, rdx michael@0: adc rbp, 0 michael@0: mov r12, rbp michael@0: mov rax, qword ptr [-112+128+rsp] michael@0: mul qword ptr [-56+128+rsp] michael@0: add r9, rax michael@0: adc r8, rdx michael@0: adc r12, 0 michael@0: mov qword ptr [8+r11], r9 michael@0: mov r9, r12 michael@0: mov r12, r10 michael@0: mov rax, qword ptr [-120+128+rsp] michael@0: mul qword ptr [-40+128+rsp] michael@0: add r8, rax michael@0: adc r9, rdx michael@0: adc r12, 0 michael@0: mov rcx, r12 michael@0: mov rax, qword ptr [-112+128+rsp] michael@0: mul qword ptr [-48+128+rsp] michael@0: add r8, rax michael@0: adc r9, rdx michael@0: adc rcx, 0 michael@0: mov rbp, r9 michael@0: mov r12, rcx michael@0: mov rax, qword ptr [-104+128+rsp] michael@0: mul qword ptr [-56+128+rsp] michael@0: add r8, rax michael@0: adc rbp, rdx michael@0: adc r12, 0 michael@0: mov qword ptr [16+r11], r8 michael@0: mov r9, r12 michael@0: mov rcx, rbp michael@0: mov r8, r10 michael@0: mov rax, qword ptr [-120+128+rsp] michael@0: mul qword ptr [-32+128+rsp] michael@0: add rcx, rax michael@0: adc r9, rdx michael@0: adc r8, 0 michael@0: mov rax, qword ptr [-112+128+rsp] michael@0: mul qword ptr [-40+128+rsp] michael@0: add rcx, rax michael@0: adc r9, rdx michael@0: adc r8, 0 michael@0: mov rax, qword ptr [-104+128+rsp] michael@0: mul qword ptr [-48+128+rsp] michael@0: add rcx, rax michael@0: adc r9, rdx michael@0: adc r8, 0 michael@0: mov rbp, r9 michael@0: mov r12, r8 michael@0: mov rax, qword ptr [-96+128+rsp] michael@0: mul qword ptr [-56+128+rsp] michael@0: add rcx, rax michael@0: adc rbp, rdx michael@0: adc r12, 0 michael@0: mov qword ptr [24+r11], rcx michael@0: mov r9, r12 michael@0: mov r8, rbp michael@0: mov rcx, r10 michael@0: mov rax, qword ptr [-120+128+rsp] michael@0: mul qword ptr [-24+128+rsp] michael@0: add r8, rax michael@0: adc r9, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-112+128+rsp] michael@0: mul qword ptr [-32+128+rsp] michael@0: add r8, rax michael@0: adc r9, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-104+128+rsp] michael@0: mul qword ptr [-40+128+rsp] michael@0: add r8, rax michael@0: adc r9, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-96+128+rsp] michael@0: mul qword ptr [-48+128+rsp] michael@0: add r8, rax michael@0: adc r9, rdx michael@0: adc rcx, 0 michael@0: mov rbp, r9 michael@0: mov r12, rcx michael@0: mov rax, qword ptr [-88+128+rsp] michael@0: mul qword ptr [-56+128+rsp] michael@0: add r8, rax michael@0: adc rbp, rdx michael@0: adc r12, 0 michael@0: mov qword ptr [32+r11], r8 michael@0: mov r9, r12 michael@0: mov rcx, rbp michael@0: mov r8, r10 michael@0: mov rax, qword ptr [-120+128+rsp] michael@0: mul qword ptr [-16+128+rsp] michael@0: add rcx, rax michael@0: adc r9, rdx michael@0: adc r8, 0 michael@0: mov rax, qword ptr [-112+128+rsp] michael@0: mul qword ptr [-24+128+rsp] michael@0: add rcx, rax michael@0: adc r9, rdx michael@0: adc r8, 0 michael@0: mov rax, qword ptr [-104+128+rsp] michael@0: mul qword ptr [-32+128+rsp] michael@0: add rcx, rax michael@0: adc r9, rdx michael@0: adc r8, 0 michael@0: mov rax, qword ptr [-96+128+rsp] michael@0: mul qword ptr [-40+128+rsp] michael@0: add rcx, rax michael@0: adc r9, rdx michael@0: adc r8, 0 michael@0: mov rax, qword ptr [-88+128+rsp] michael@0: mul qword ptr [-48+128+rsp] michael@0: add rcx, rax michael@0: adc r9, rdx michael@0: adc r8, 0 michael@0: mov rbp, r9 michael@0: mov r12, r8 michael@0: mov rax, qword ptr [-80+128+rsp] michael@0: mul qword ptr [-56+128+rsp] michael@0: add rcx, rax michael@0: adc rbp, rdx michael@0: adc r12, 0 michael@0: mov qword ptr [40+r11], rcx michael@0: mov r9, r12 michael@0: mov r8, rbp michael@0: mov rcx, r10 michael@0: mov rax, qword ptr [-120+128+rsp] michael@0: mul qword ptr [-8+128+rsp] michael@0: add r8, rax michael@0: adc r9, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-112+128+rsp] michael@0: mul qword ptr [-16+128+rsp] michael@0: add r8, rax michael@0: adc r9, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-104+128+rsp] michael@0: mul qword ptr [-24+128+rsp] michael@0: add r8, rax michael@0: adc r9, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-96+128+rsp] michael@0: mul qword ptr [-32+128+rsp] michael@0: add r8, rax michael@0: adc r9, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-88+128+rsp] michael@0: mul qword ptr [-40+128+rsp] michael@0: add r8, rax michael@0: adc r9, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-80+128+rsp] michael@0: mul qword ptr [-48+128+rsp] michael@0: add r8, rax michael@0: adc r9, rdx michael@0: adc rcx, 0 michael@0: mov rbp, r9 michael@0: mov r12, rcx michael@0: mov rax, qword ptr [-72+128+rsp] michael@0: mul qword ptr [-56+128+rsp] michael@0: add r8, rax michael@0: adc rbp, rdx michael@0: adc r12, 0 michael@0: mov qword ptr [48+r11], r8 michael@0: mov r9, r12 michael@0: mov rcx, rbp michael@0: mov r8, r10 michael@0: mov rax, qword ptr [-120+128+rsp] michael@0: mul qword ptr [128+rsp] michael@0: add rcx, rax michael@0: adc r9, rdx michael@0: adc r8, 0 michael@0: mov rax, qword ptr [-112+128+rsp] michael@0: mul qword ptr [-8+128+rsp] michael@0: add rcx, rax michael@0: adc r9, rdx michael@0: adc r8, 0 michael@0: mov rax, qword ptr [-104+128+rsp] michael@0: mul qword ptr [-16+128+rsp] michael@0: add rcx, rax michael@0: adc r9, rdx michael@0: adc r8, 0 michael@0: mov rax, qword ptr [-96+128+rsp] michael@0: mul qword ptr [-24+128+rsp] michael@0: add rcx, rax michael@0: adc r9, rdx michael@0: adc r8, 0 michael@0: mov rax, qword ptr [-88+128+rsp] michael@0: mul qword ptr [-32+128+rsp] michael@0: add rcx, rax michael@0: adc r9, rdx michael@0: adc r8, 0 michael@0: mov rax, qword ptr [-80+128+rsp] michael@0: mul qword ptr [-40+128+rsp] michael@0: add rcx, rax michael@0: adc r9, rdx michael@0: adc r8, 0 michael@0: mov rax, qword ptr [-72+128+rsp] michael@0: mul qword ptr [-48+128+rsp] michael@0: add rcx, rax michael@0: adc r9, rdx michael@0: adc r8, 0 michael@0: mov rbp, r9 michael@0: mov r12, r8 michael@0: mov rax, qword ptr [-64+128+rsp] michael@0: mul qword ptr [-56+128+rsp] michael@0: add rcx, rax michael@0: adc rbp, rdx michael@0: adc r12, 0 michael@0: mov qword ptr [56+r11], rcx michael@0: mov r9, r12 michael@0: mov r8, rbp michael@0: mov rcx, r10 michael@0: mov rax, qword ptr [-112+128+rsp] michael@0: mul qword ptr [128+rsp] michael@0: add r8, rax michael@0: adc r9, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-104+128+rsp] michael@0: mul qword ptr [-8+128+rsp] michael@0: add r8, rax michael@0: adc r9, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-96+128+rsp] michael@0: mul qword ptr [-16+128+rsp] michael@0: add r8, rax michael@0: adc r9, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-88+128+rsp] michael@0: mul qword ptr [-24+128+rsp] michael@0: add r8, rax michael@0: adc r9, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-80+128+rsp] michael@0: mul qword ptr [-32+128+rsp] michael@0: add r8, rax michael@0: adc r9, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-72+128+rsp] michael@0: mul qword ptr [-40+128+rsp] michael@0: add r8, rax michael@0: adc r9, rdx michael@0: adc rcx, 0 michael@0: mov rbp, r9 michael@0: mov r12, rcx michael@0: mov rax, qword ptr [-64+128+rsp] michael@0: mul qword ptr [-48+128+rsp] michael@0: add r8, rax michael@0: adc rbp, rdx michael@0: adc r12, 0 michael@0: mov qword ptr [64+r11], r8 michael@0: mov r9, r12 michael@0: mov rcx, rbp michael@0: mov r8, r10 michael@0: mov rax, qword ptr [-104+128+rsp] michael@0: mul qword ptr [128+rsp] michael@0: add rcx, rax michael@0: adc r9, rdx michael@0: adc r8, 0 michael@0: mov rax, qword ptr [-96+128+rsp] michael@0: mul qword ptr [-8+128+rsp] michael@0: add rcx, rax michael@0: adc r9, rdx michael@0: adc r8, 0 michael@0: mov rax, qword ptr [-88+128+rsp] michael@0: mul qword ptr [-16+128+rsp] michael@0: add rcx, rax michael@0: adc r9, rdx michael@0: adc r8, 0 michael@0: mov rax, qword ptr [-80+128+rsp] michael@0: mul qword ptr [-24+128+rsp] michael@0: add rcx, rax michael@0: adc r9, rdx michael@0: adc r8, 0 michael@0: mov rax, qword ptr [-72+128+rsp] michael@0: mul qword ptr [-32+128+rsp] michael@0: add rcx, rax michael@0: adc r9, rdx michael@0: adc r8, 0 michael@0: mov rbp, r9 michael@0: mov r12, r8 michael@0: mov rax, qword ptr [-64+128+rsp] michael@0: mul qword ptr [-40+128+rsp] michael@0: add rcx, rax michael@0: adc rbp, rdx michael@0: adc r12, 0 michael@0: mov qword ptr [72+r11], rcx michael@0: mov r9, r12 michael@0: mov r8, rbp michael@0: mov rcx, r10 michael@0: mov rax, qword ptr [-96+128+rsp] michael@0: mul qword ptr [128+rsp] michael@0: add r8, rax michael@0: adc r9, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-88+128+rsp] michael@0: mul qword ptr [-8+128+rsp] michael@0: add r8, rax michael@0: adc r9, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-80+128+rsp] michael@0: mul qword ptr [-16+128+rsp] michael@0: add r8, rax michael@0: adc r9, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-72+128+rsp] michael@0: mul qword ptr [-24+128+rsp] michael@0: add r8, rax michael@0: adc r9, rdx michael@0: adc rcx, 0 michael@0: mov rbp, r9 michael@0: mov r12, rcx michael@0: mov rax, qword ptr [-64+128+rsp] michael@0: mul qword ptr [-32+128+rsp] michael@0: add r8, rax michael@0: adc rbp, rdx michael@0: adc r12, 0 michael@0: mov qword ptr [80+r11], r8 michael@0: mov r9, r12 michael@0: mov rcx, rbp michael@0: mov r8, r10 michael@0: mov rax, qword ptr [-88+128+rsp] michael@0: mul qword ptr [128+rsp] michael@0: add rcx, rax michael@0: adc r9, rdx michael@0: adc r8, 0 michael@0: mov rax, qword ptr [-80+128+rsp] michael@0: mul qword ptr [-8+128+rsp] michael@0: add rcx, rax michael@0: adc r9, rdx michael@0: adc r8, 0 michael@0: mov rax, qword ptr [-72+128+rsp] michael@0: mul qword ptr [-16+128+rsp] michael@0: add rcx, rax michael@0: adc r9, rdx michael@0: adc r8, 0 michael@0: mov rbp, r9 michael@0: mov r12, r8 michael@0: mov rax, qword ptr [-64+128+rsp] michael@0: mul qword ptr [-24+128+rsp] michael@0: add rcx, rax michael@0: adc rbp, rdx michael@0: adc r12, 0 michael@0: mov qword ptr [88+r11], rcx michael@0: mov r9, r12 michael@0: mov r8, rbp michael@0: mov rcx, r10 michael@0: mov rax, qword ptr [-80+128+rsp] michael@0: mul qword ptr [128+rsp] michael@0: add r8, rax michael@0: adc r9, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-72+128+rsp] michael@0: mul qword ptr [-8+128+rsp] michael@0: add r8, rax michael@0: adc r9, rdx michael@0: adc rcx, 0 michael@0: mov rbp, r9 michael@0: mov r12, rcx michael@0: mov rax, qword ptr [-64+128+rsp] michael@0: mul qword ptr [-16+128+rsp] michael@0: add r8, rax michael@0: adc rbp, rdx michael@0: adc r12, 0 michael@0: mov qword ptr [96+r11], r8 michael@0: mov r9, r12 michael@0: mov rcx, rbp michael@0: mov r8, r10 michael@0: mov rax, qword ptr [-72+128+rsp] michael@0: mul qword ptr [128+rsp] michael@0: add rcx, rax michael@0: adc r9, rdx michael@0: adc r8, 0 michael@0: mov r12, r8 michael@0: mov rbp, r9 michael@0: mov rax, qword ptr [-64+128+rsp] michael@0: mul qword ptr [-8+128+rsp] michael@0: add rcx, rax michael@0: adc rbp, rdx michael@0: adc r12, 0 michael@0: mov qword ptr [104+r11], rcx michael@0: mov r8, rbp michael@0: mov rcx, r12 michael@0: mov rax, qword ptr [-64+128+rsp] michael@0: mul qword ptr [128+rsp] michael@0: add r8, rax michael@0: adc rcx, rdx michael@0: adc r10, 0 michael@0: mov qword ptr [112+r11], r8 michael@0: mov esi, dword ptr [rsi] michael@0: xor esi, dword ptr [rdi] michael@0: test rcx, rcx michael@0: mov qword ptr [120+r11], rcx michael@0: mov dword ptr [8+rbx], 16 michael@0: jne L35 michael@0: ALIGN 16 michael@0: L43: michael@0: mov edx, dword ptr [8+rbx] michael@0: lea edi, dword ptr [-1+rdx] michael@0: test edi, edi michael@0: mov dword ptr [8+rbx], edi michael@0: je L35 michael@0: lea eax, dword ptr [-2+rdx] michael@0: cmp dword ptr [r11+rax*8], 0 michael@0: je L43 michael@0: L35: michael@0: mov r11d, dword ptr [8+rbx] michael@0: xor edx, edx michael@0: test r11d, r11d michael@0: cmovne edx, esi michael@0: mov dword ptr [rbx], edx michael@0: add rsp, 8+128 michael@0: pop rbx michael@0: pop rbp michael@0: pop r12 michael@0: michael@0: pop rsi michael@0: pop rdi michael@0: michael@0: ret michael@0: michael@0: s_mp_mul_comba_8 ENDP michael@0: michael@0: michael@0: ; void s_mp_mul_comba_16(const mp_int *A, const mp_int *B, mp_int *C); michael@0: michael@0: ALIGN 16 michael@0: s_mp_mul_comba_16 PROC michael@0: michael@0: push rdi michael@0: push rsi michael@0: michael@0: mov rdi, rcx michael@0: mov rsi, rdx michael@0: mov rdx, r8 michael@0: michael@0: push r12 michael@0: push rbp michael@0: push rbx michael@0: mov rbx, rdx michael@0: sub rsp, 136+128 michael@0: mov rax, qword ptr [16+rdi] michael@0: mov r8, qword ptr [rax] michael@0: mov qword ptr [-120+128+rsp], r8 michael@0: mov rbp, qword ptr [8+rax] michael@0: mov qword ptr [-112+128+rsp], rbp michael@0: mov r9, qword ptr [16+rax] michael@0: mov qword ptr [-104+128+rsp], r9 michael@0: mov r12, qword ptr [24+rax] michael@0: mov qword ptr [-96+128+rsp], r12 michael@0: mov rcx, qword ptr [32+rax] michael@0: mov qword ptr [-88+128+rsp], rcx michael@0: mov r10, qword ptr [40+rax] michael@0: mov qword ptr [-80+128+rsp], r10 michael@0: mov rdx, qword ptr [48+rax] michael@0: mov qword ptr [-72+128+rsp], rdx michael@0: mov r11, qword ptr [56+rax] michael@0: mov qword ptr [-64+128+rsp], r11 michael@0: mov r8, qword ptr [64+rax] michael@0: mov qword ptr [-56+128+rsp], r8 michael@0: mov rbp, qword ptr [72+rax] michael@0: mov qword ptr [-48+128+rsp], rbp michael@0: mov r9, qword ptr [80+rax] michael@0: mov qword ptr [-40+128+rsp], r9 michael@0: mov r12, qword ptr [88+rax] michael@0: mov qword ptr [-32+128+rsp], r12 michael@0: mov rcx, qword ptr [96+rax] michael@0: mov qword ptr [-24+128+rsp], rcx michael@0: mov r10, qword ptr [104+rax] michael@0: mov qword ptr [-16+128+rsp], r10 michael@0: mov rdx, qword ptr [112+rax] michael@0: mov qword ptr [-8+128+rsp], rdx michael@0: mov r11, qword ptr [120+rax] michael@0: mov qword ptr [128+rsp], r11 michael@0: mov r11, qword ptr [16+rsi] michael@0: mov r8, qword ptr [r11] michael@0: mov qword ptr [8+128+rsp], r8 michael@0: mov rbp, qword ptr [8+r11] michael@0: mov qword ptr [16+128+rsp], rbp michael@0: mov r9, qword ptr [16+r11] michael@0: mov qword ptr [24+128+rsp], r9 michael@0: mov r12, qword ptr [24+r11] michael@0: mov qword ptr [32+128+rsp], r12 michael@0: mov rcx, qword ptr [32+r11] michael@0: mov qword ptr [40+128+rsp], rcx michael@0: mov r10, qword ptr [40+r11] michael@0: mov qword ptr [48+128+rsp], r10 michael@0: mov rdx, qword ptr [48+r11] michael@0: mov qword ptr [56+128+rsp], rdx michael@0: mov rax, qword ptr [56+r11] michael@0: mov qword ptr [64+128+rsp], rax michael@0: mov r8, qword ptr [64+r11] michael@0: mov qword ptr [72+128+rsp], r8 michael@0: mov rbp, qword ptr [72+r11] michael@0: mov qword ptr [80+128+rsp], rbp michael@0: mov r9, qword ptr [80+r11] michael@0: mov qword ptr [88+128+rsp], r9 michael@0: mov r12, qword ptr [88+r11] michael@0: mov qword ptr [96+128+rsp], r12 michael@0: mov rcx, qword ptr [96+r11] michael@0: mov qword ptr [104+128+rsp], rcx michael@0: mov r10, qword ptr [104+r11] michael@0: mov qword ptr [112+128+rsp], r10 michael@0: mov rdx, qword ptr [112+r11] michael@0: xor r10d, r10d michael@0: mov r8, r10 michael@0: mov r9, r10 michael@0: mov rbp, r10 michael@0: mov qword ptr [120+128+rsp], rdx michael@0: mov rax, qword ptr [120+r11] michael@0: mov qword ptr [128+128+rsp], rax michael@0: mov r11, qword ptr [16+rbx] michael@0: mov rax, qword ptr [-120+128+rsp] michael@0: mul qword ptr [8+128+rsp] michael@0: add r8, rax michael@0: adc r9, rdx michael@0: adc rbp, 0 michael@0: mov qword ptr [r11], r8 michael@0: mov r8, rbp michael@0: mov rbp, r10 michael@0: mov rax, qword ptr [-120+128+rsp] michael@0: mul qword ptr [16+128+rsp] michael@0: add r9, rax michael@0: adc r8, rdx michael@0: adc rbp, 0 michael@0: mov r12, rbp michael@0: mov rax, qword ptr [-112+128+rsp] michael@0: mul qword ptr [8+128+rsp] michael@0: add r9, rax michael@0: adc r8, rdx michael@0: adc r12, 0 michael@0: mov qword ptr [8+r11], r9 michael@0: mov r9, r12 michael@0: mov r12, r10 michael@0: mov rax, qword ptr [-120+128+rsp] michael@0: mul qword ptr [24+128+rsp] michael@0: add r8, rax michael@0: adc r9, rdx michael@0: adc r12, 0 michael@0: mov rcx, r12 michael@0: mov rax, qword ptr [-112+128+rsp] michael@0: mul qword ptr [16+128+rsp] michael@0: add r8, rax michael@0: adc r9, rdx michael@0: adc rcx, 0 michael@0: mov rbp, r9 michael@0: mov r12, rcx michael@0: mov rax, qword ptr [-104+128+rsp] michael@0: mul qword ptr [8+128+rsp] michael@0: add r8, rax michael@0: adc rbp, rdx michael@0: adc r12, 0 michael@0: mov qword ptr [16+r11], r8 michael@0: mov r9, r12 michael@0: mov rcx, rbp michael@0: mov r8, r10 michael@0: mov rax, qword ptr [-120+128+rsp] michael@0: mul qword ptr [32+128+rsp] michael@0: add rcx, rax michael@0: adc r9, rdx michael@0: adc r8, 0 michael@0: mov rax, qword ptr [-112+128+rsp] michael@0: mul qword ptr [24+128+rsp] michael@0: add rcx, rax michael@0: adc r9, rdx michael@0: adc r8, 0 michael@0: mov rax, qword ptr [-104+128+rsp] michael@0: mul qword ptr [16+128+rsp] michael@0: add rcx, rax michael@0: adc r9, rdx michael@0: adc r8, 0 michael@0: mov rbp, r9 michael@0: mov r12, r8 michael@0: mov rax, qword ptr [-96+128+rsp] michael@0: mul qword ptr [8+128+rsp] michael@0: add rcx, rax michael@0: adc rbp, rdx michael@0: adc r12, 0 michael@0: mov qword ptr [24+r11], rcx michael@0: mov r9, r12 michael@0: mov r8, rbp michael@0: mov rcx, r10 michael@0: mov rax, qword ptr [-120+128+rsp] michael@0: mul qword ptr [40+128+rsp] michael@0: add r8, rax michael@0: adc r9, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-112+128+rsp] michael@0: mul qword ptr [32+128+rsp] michael@0: add r8, rax michael@0: adc r9, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-104+128+rsp] michael@0: mul qword ptr [24+128+rsp] michael@0: add r8, rax michael@0: adc r9, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-96+128+rsp] michael@0: mul qword ptr [16+128+rsp] michael@0: add r8, rax michael@0: adc r9, rdx michael@0: adc rcx, 0 michael@0: mov rbp, r9 michael@0: mov r12, rcx michael@0: mov rax, qword ptr [-88+128+rsp] michael@0: mul qword ptr [8+128+rsp] michael@0: add r8, rax michael@0: adc rbp, rdx michael@0: adc r12, 0 michael@0: mov qword ptr [32+r11], r8 michael@0: mov r9, r12 michael@0: mov rcx, rbp michael@0: mov r8, r10 michael@0: mov rax, qword ptr [-120+128+rsp] michael@0: mul qword ptr [48+128+rsp] michael@0: add rcx, rax michael@0: adc r9, rdx michael@0: adc r8, 0 michael@0: mov rax, qword ptr [-112+128+rsp] michael@0: mul qword ptr [40+128+rsp] michael@0: add rcx, rax michael@0: adc r9, rdx michael@0: adc r8, 0 michael@0: mov rax, qword ptr [-104+128+rsp] michael@0: mul qword ptr [32+128+rsp] michael@0: add rcx, rax michael@0: adc r9, rdx michael@0: adc r8, 0 michael@0: mov rax, qword ptr [-96+128+rsp] michael@0: mul qword ptr [24+128+rsp] michael@0: add rcx, rax michael@0: adc r9, rdx michael@0: adc r8, 0 michael@0: mov rax, qword ptr [-88+128+rsp] michael@0: mul qword ptr [16+128+rsp] michael@0: add rcx, rax michael@0: adc r9, rdx michael@0: adc r8, 0 michael@0: mov rbp, r9 michael@0: mov r12, r8 michael@0: mov rax, qword ptr [-80+128+rsp] michael@0: mul qword ptr [8+128+rsp] michael@0: add rcx, rax michael@0: adc rbp, rdx michael@0: adc r12, 0 michael@0: mov qword ptr [40+r11], rcx michael@0: mov r9, r12 michael@0: mov r8, rbp michael@0: mov rcx, r10 michael@0: mov rax, qword ptr [-120+128+rsp] michael@0: mul qword ptr [56+128+rsp] michael@0: add r8, rax michael@0: adc r9, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-112+128+rsp] michael@0: mul qword ptr [48+128+rsp] michael@0: add r8, rax michael@0: adc r9, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-104+128+rsp] michael@0: mul qword ptr [40+128+rsp] michael@0: add r8, rax michael@0: adc r9, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-96+128+rsp] michael@0: mul qword ptr [32+128+rsp] michael@0: add r8, rax michael@0: adc r9, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-88+128+rsp] michael@0: mul qword ptr [24+128+rsp] michael@0: add r8, rax michael@0: adc r9, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-80+128+rsp] michael@0: mul qword ptr [16+128+rsp] michael@0: add r8, rax michael@0: adc r9, rdx michael@0: adc rcx, 0 michael@0: mov rbp, r9 michael@0: mov r12, rcx michael@0: mov rax, qword ptr [-72+128+rsp] michael@0: mul qword ptr [8+128+rsp] michael@0: add r8, rax michael@0: adc rbp, rdx michael@0: adc r12, 0 michael@0: mov qword ptr [48+r11], r8 michael@0: mov r9, r12 michael@0: mov rcx, rbp michael@0: mov r8, r10 michael@0: mov rax, qword ptr [-120+128+rsp] michael@0: mul qword ptr [64+128+rsp] michael@0: add rcx, rax michael@0: adc r9, rdx michael@0: adc r8, 0 michael@0: mov rax, qword ptr [-112+128+rsp] michael@0: mul qword ptr [56+128+rsp] michael@0: add rcx, rax michael@0: adc r9, rdx michael@0: adc r8, 0 michael@0: mov rax, qword ptr [-104+128+rsp] michael@0: mul qword ptr [48+128+rsp] michael@0: add rcx, rax michael@0: adc r9, rdx michael@0: adc r8, 0 michael@0: mov rax, qword ptr [-96+128+rsp] michael@0: mul qword ptr [40+128+rsp] michael@0: add rcx, rax michael@0: adc r9, rdx michael@0: adc r8, 0 michael@0: mov rax, qword ptr [-88+128+rsp] michael@0: mul qword ptr [32+128+rsp] michael@0: add rcx, rax michael@0: adc r9, rdx michael@0: adc r8, 0 michael@0: mov rax, qword ptr [-80+128+rsp] michael@0: mul qword ptr [24+128+rsp] michael@0: add rcx, rax michael@0: adc r9, rdx michael@0: adc r8, 0 michael@0: mov rax, qword ptr [-72+128+rsp] michael@0: mul qword ptr [16+128+rsp] michael@0: add rcx, rax michael@0: adc r9, rdx michael@0: adc r8, 0 michael@0: mov rbp, r9 michael@0: mov r12, r8 michael@0: mov rax, qword ptr [-64+128+rsp] michael@0: mul qword ptr [8+128+rsp] michael@0: add rcx, rax michael@0: adc rbp, rdx michael@0: adc r12, 0 michael@0: mov qword ptr [56+r11], rcx michael@0: mov r9, r12 michael@0: mov r8, rbp michael@0: mov rcx, r10 michael@0: mov rax, qword ptr [-120+128+rsp] michael@0: mul qword ptr [72+128+rsp] michael@0: add r8, rax michael@0: adc r9, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-112+128+rsp] michael@0: mul qword ptr [64+128+rsp] michael@0: add r8, rax michael@0: adc r9, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-104+128+rsp] michael@0: mul qword ptr [56+128+rsp] michael@0: add r8, rax michael@0: adc r9, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-96+128+rsp] michael@0: mul qword ptr [48+128+rsp] michael@0: add r8, rax michael@0: adc r9, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-88+128+rsp] michael@0: mul qword ptr [40+128+rsp] michael@0: add r8, rax michael@0: adc r9, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-80+128+rsp] michael@0: mul qword ptr [32+128+rsp] michael@0: add r8, rax michael@0: adc r9, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-72+128+rsp] michael@0: mul qword ptr [24+128+rsp] michael@0: add r8, rax michael@0: adc r9, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-64+128+rsp] michael@0: mul qword ptr [16+128+rsp] michael@0: add r8, rax michael@0: adc r9, rdx michael@0: adc rcx, 0 michael@0: mov rbp, r9 michael@0: mov r12, rcx michael@0: mov rax, qword ptr [-56+128+rsp] michael@0: mul qword ptr [8+128+rsp] michael@0: add r8, rax michael@0: adc rbp, rdx michael@0: adc r12, 0 michael@0: mov qword ptr [64+r11], r8 michael@0: mov r9, r12 michael@0: mov rcx, rbp michael@0: mov r8, r10 michael@0: mov rax, qword ptr [-120+128+rsp] michael@0: mul qword ptr [80+128+rsp] michael@0: add rcx, rax michael@0: adc r9, rdx michael@0: adc r8, 0 michael@0: mov rax, qword ptr [-112+128+rsp] michael@0: mul qword ptr [72+128+rsp] michael@0: add rcx, rax michael@0: adc r9, rdx michael@0: adc r8, 0 michael@0: mov rax, qword ptr [-104+128+rsp] michael@0: mul qword ptr [64+128+rsp] michael@0: add rcx, rax michael@0: adc r9, rdx michael@0: adc r8, 0 michael@0: mov rax, qword ptr [-96+128+rsp] michael@0: mul qword ptr [56+128+rsp] michael@0: add rcx, rax michael@0: adc r9, rdx michael@0: adc r8, 0 michael@0: mov rax, qword ptr [-88+128+rsp] michael@0: mul qword ptr [48+128+rsp] michael@0: add rcx, rax michael@0: adc r9, rdx michael@0: adc r8, 0 michael@0: mov rax, qword ptr [-80+128+rsp] michael@0: mul qword ptr [40+128+rsp] michael@0: add rcx, rax michael@0: adc r9, rdx michael@0: adc r8, 0 michael@0: mov rax, qword ptr [-72+128+rsp] michael@0: mul qword ptr [32+128+rsp] michael@0: add rcx, rax michael@0: adc r9, rdx michael@0: adc r8, 0 michael@0: mov rax, qword ptr [-64+128+rsp] michael@0: mul qword ptr [24+128+rsp] michael@0: add rcx, rax michael@0: adc r9, rdx michael@0: adc r8, 0 michael@0: mov rax, qword ptr [-56+128+rsp] michael@0: mul qword ptr [16+128+rsp] michael@0: add rcx, rax michael@0: adc r9, rdx michael@0: adc r8, 0 michael@0: mov rbp, r9 michael@0: mov r12, r8 michael@0: mov rax, qword ptr [-48+128+rsp] michael@0: mul qword ptr [8+128+rsp] michael@0: add rcx, rax michael@0: adc rbp, rdx michael@0: adc r12, 0 michael@0: mov qword ptr [72+r11], rcx michael@0: mov r9, r12 michael@0: mov r8, rbp michael@0: mov rcx, r10 michael@0: mov rax, qword ptr [-120+128+rsp] michael@0: mul qword ptr [88+128+rsp] michael@0: add r8, rax michael@0: adc r9, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-112+128+rsp] michael@0: mul qword ptr [80+128+rsp] michael@0: add r8, rax michael@0: adc r9, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-104+128+rsp] michael@0: mul qword ptr [72+128+rsp] michael@0: add r8, rax michael@0: adc r9, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-96+128+rsp] michael@0: mul qword ptr [64+128+rsp] michael@0: add r8, rax michael@0: adc r9, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-88+128+rsp] michael@0: mul qword ptr [56+128+rsp] michael@0: add r8, rax michael@0: adc r9, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-80+128+rsp] michael@0: mul qword ptr [48+128+rsp] michael@0: add r8, rax michael@0: adc r9, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-72+128+rsp] michael@0: mul qword ptr [40+128+rsp] michael@0: add r8, rax michael@0: adc r9, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-64+128+rsp] michael@0: mul qword ptr [32+128+rsp] michael@0: add r8, rax michael@0: adc r9, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-56+128+rsp] michael@0: mul qword ptr [24+128+rsp] michael@0: add r8, rax michael@0: adc r9, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-48+128+rsp] michael@0: mul qword ptr [16+128+rsp] michael@0: add r8, rax michael@0: adc r9, rdx michael@0: adc rcx, 0 michael@0: mov rbp, r9 michael@0: mov r12, rcx michael@0: mov rax, qword ptr [-40+128+rsp] michael@0: mul qword ptr [8+128+rsp] michael@0: add r8, rax michael@0: adc rbp, rdx michael@0: adc r12, 0 michael@0: mov qword ptr [80+r11], r8 michael@0: mov r9, r12 michael@0: mov rcx, rbp michael@0: mov r8, r10 michael@0: mov rax, qword ptr [-120+128+rsp] michael@0: mul qword ptr [96+128+rsp] michael@0: add rcx, rax michael@0: adc r9, rdx michael@0: adc r8, 0 michael@0: mov rax, qword ptr [-112+128+rsp] michael@0: mul qword ptr [88+128+rsp] michael@0: add rcx, rax michael@0: adc r9, rdx michael@0: adc r8, 0 michael@0: mov rax, qword ptr [-104+128+rsp] michael@0: mul qword ptr [80+128+rsp] michael@0: add rcx, rax michael@0: adc r9, rdx michael@0: adc r8, 0 michael@0: mov rax, qword ptr [-96+128+rsp] michael@0: mul qword ptr [72+128+rsp] michael@0: add rcx, rax michael@0: adc r9, rdx michael@0: adc r8, 0 michael@0: mov rax, qword ptr [-88+128+rsp] michael@0: mul qword ptr [64+128+rsp] michael@0: add rcx, rax michael@0: adc r9, rdx michael@0: adc r8, 0 michael@0: mov rax, qword ptr [-80+128+rsp] michael@0: mul qword ptr [56+128+rsp] michael@0: add rcx, rax michael@0: adc r9, rdx michael@0: adc r8, 0 michael@0: mov rax, qword ptr [-72+128+rsp] michael@0: mul qword ptr [48+128+rsp] michael@0: add rcx, rax michael@0: adc r9, rdx michael@0: adc r8, 0 michael@0: mov rax, qword ptr [-64+128+rsp] michael@0: mul qword ptr [40+128+rsp] michael@0: add rcx, rax michael@0: adc r9, rdx michael@0: adc r8, 0 michael@0: mov rax, qword ptr [-56+128+rsp] michael@0: mul qword ptr [32+128+rsp] michael@0: add rcx, rax michael@0: adc r9, rdx michael@0: adc r8, 0 michael@0: mov rax, qword ptr [-48+128+rsp] michael@0: mul qword ptr [24+128+rsp] michael@0: add rcx, rax michael@0: adc r9, rdx michael@0: adc r8, 0 michael@0: mov rax, qword ptr [-40+128+rsp] michael@0: mul qword ptr [16+128+rsp] michael@0: add rcx, rax michael@0: adc r9, rdx michael@0: adc r8, 0 michael@0: mov rbp, r9 michael@0: mov r12, r8 michael@0: mov rax, qword ptr [-32+128+rsp] michael@0: mul qword ptr [8+128+rsp] michael@0: add rcx, rax michael@0: adc rbp, rdx michael@0: adc r12, 0 michael@0: mov qword ptr [88+r11], rcx michael@0: mov r9, r12 michael@0: mov r8, rbp michael@0: mov rcx, r10 michael@0: mov rax, qword ptr [-120+128+rsp] michael@0: mul qword ptr [104+128+rsp] michael@0: add r8, rax michael@0: adc r9, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-112+128+rsp] michael@0: mul qword ptr [96+128+rsp] michael@0: add r8, rax michael@0: adc r9, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-104+128+rsp] michael@0: mul qword ptr [88+128+rsp] michael@0: add r8, rax michael@0: adc r9, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-96+128+rsp] michael@0: mul qword ptr [80+128+rsp] michael@0: add r8, rax michael@0: adc r9, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-88+128+rsp] michael@0: mul qword ptr [72+128+rsp] michael@0: add r8, rax michael@0: adc r9, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-80+128+rsp] michael@0: mul qword ptr [64+128+rsp] michael@0: add r8, rax michael@0: adc r9, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-72+128+rsp] michael@0: mul qword ptr [56+128+rsp] michael@0: add r8, rax michael@0: adc r9, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-64+128+rsp] michael@0: mul qword ptr [48+128+rsp] michael@0: add r8, rax michael@0: adc r9, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-56+128+rsp] michael@0: mul qword ptr [40+128+rsp] michael@0: add r8, rax michael@0: adc r9, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-48+128+rsp] michael@0: mul qword ptr [32+128+rsp] michael@0: add r8, rax michael@0: adc r9, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-40+128+rsp] michael@0: mul qword ptr [24+128+rsp] michael@0: add r8, rax michael@0: adc r9, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-32+128+rsp] michael@0: mul qword ptr [16+128+rsp] michael@0: add r8, rax michael@0: adc r9, rdx michael@0: adc rcx, 0 michael@0: mov rbp, r9 michael@0: mov r12, rcx michael@0: mov rax, qword ptr [-24+128+rsp] michael@0: mul qword ptr [8+128+rsp] michael@0: add r8, rax michael@0: adc rbp, rdx michael@0: adc r12, 0 michael@0: mov qword ptr [96+r11], r8 michael@0: mov r9, r12 michael@0: mov rcx, rbp michael@0: mov r8, r10 michael@0: mov rax, qword ptr [-120+128+rsp] michael@0: mul qword ptr [112+128+rsp] michael@0: add rcx, rax michael@0: adc r9, rdx michael@0: adc r8, 0 michael@0: mov rax, qword ptr [-112+128+rsp] michael@0: mul qword ptr [104+128+rsp] michael@0: add rcx, rax michael@0: adc r9, rdx michael@0: adc r8, 0 michael@0: mov rax, qword ptr [-104+128+rsp] michael@0: mul qword ptr [96+128+rsp] michael@0: add rcx, rax michael@0: adc r9, rdx michael@0: adc r8, 0 michael@0: mov rax, qword ptr [-96+128+rsp] michael@0: mul qword ptr [88+128+rsp] michael@0: add rcx, rax michael@0: adc r9, rdx michael@0: adc r8, 0 michael@0: mov rax, qword ptr [-88+128+rsp] michael@0: mul qword ptr [80+128+rsp] michael@0: add rcx, rax michael@0: adc r9, rdx michael@0: adc r8, 0 michael@0: mov rax, qword ptr [-80+128+rsp] michael@0: mul qword ptr [72+128+rsp] michael@0: add rcx, rax michael@0: adc r9, rdx michael@0: adc r8, 0 michael@0: mov rax, qword ptr [-72+128+rsp] michael@0: mul qword ptr [64+128+rsp] michael@0: add rcx, rax michael@0: adc r9, rdx michael@0: adc r8, 0 michael@0: mov rax, qword ptr [-64+128+rsp] michael@0: mul qword ptr [56+128+rsp] michael@0: add rcx, rax michael@0: adc r9, rdx michael@0: adc r8, 0 michael@0: mov rax, qword ptr [-56+128+rsp] michael@0: mul qword ptr [48+128+rsp] michael@0: add rcx, rax michael@0: adc r9, rdx michael@0: adc r8, 0 michael@0: mov rax, qword ptr [-48+128+rsp] michael@0: mul qword ptr [40+128+rsp] michael@0: add rcx, rax michael@0: adc r9, rdx michael@0: adc r8, 0 michael@0: mov rax, qword ptr [-40+128+rsp] michael@0: mul qword ptr [32+128+rsp] michael@0: add rcx, rax michael@0: adc r9, rdx michael@0: adc r8, 0 michael@0: mov rax, qword ptr [-32+128+rsp] michael@0: mul qword ptr [24+128+rsp] michael@0: add rcx, rax michael@0: adc r9, rdx michael@0: adc r8, 0 michael@0: mov rax, qword ptr [-24+128+rsp] michael@0: mul qword ptr [16+128+rsp] michael@0: add rcx, rax michael@0: adc r9, rdx michael@0: adc r8, 0 michael@0: mov rbp, r9 michael@0: mov r12, r8 michael@0: mov rax, qword ptr [-16+128+rsp] michael@0: mul qword ptr [8+128+rsp] michael@0: add rcx, rax michael@0: adc rbp, rdx michael@0: adc r12, 0 michael@0: mov qword ptr [104+r11], rcx michael@0: mov r9, r12 michael@0: mov r8, rbp michael@0: mov rcx, r10 michael@0: mov rax, qword ptr [-120+128+rsp] michael@0: mul qword ptr [120+128+rsp] michael@0: add r8, rax michael@0: adc r9, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-112+128+rsp] michael@0: mul qword ptr [112+128+rsp] michael@0: add r8, rax michael@0: adc r9, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-104+128+rsp] michael@0: mul qword ptr [104+128+rsp] michael@0: add r8, rax michael@0: adc r9, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-96+128+rsp] michael@0: mul qword ptr [96+128+rsp] michael@0: add r8, rax michael@0: adc r9, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-88+128+rsp] michael@0: mul qword ptr [88+128+rsp] michael@0: add r8, rax michael@0: adc r9, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-80+128+rsp] michael@0: mul qword ptr [80+128+rsp] michael@0: add r8, rax michael@0: adc r9, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-72+128+rsp] michael@0: mul qword ptr [72+128+rsp] michael@0: add r8, rax michael@0: adc r9, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-64+128+rsp] michael@0: mul qword ptr [64+128+rsp] michael@0: add r8, rax michael@0: adc r9, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-56+128+rsp] michael@0: mul qword ptr [56+128+rsp] michael@0: add r8, rax michael@0: adc r9, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-48+128+rsp] michael@0: mul qword ptr [48+128+rsp] michael@0: add r8, rax michael@0: adc r9, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-40+128+rsp] michael@0: mul qword ptr [40+128+rsp] michael@0: add r8, rax michael@0: adc r9, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-32+128+rsp] michael@0: mul qword ptr [32+128+rsp] michael@0: add r8, rax michael@0: adc r9, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-24+128+rsp] michael@0: mul qword ptr [24+128+rsp] michael@0: add r8, rax michael@0: adc r9, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-16+128+rsp] michael@0: mul qword ptr [16+128+rsp] michael@0: add r8, rax michael@0: adc r9, rdx michael@0: adc rcx, 0 michael@0: mov rbp, r9 michael@0: mov r12, rcx michael@0: mov rax, qword ptr [-8+128+rsp] michael@0: mul qword ptr [8+128+rsp] michael@0: add r8, rax michael@0: adc rbp, rdx michael@0: adc r12, 0 michael@0: mov qword ptr [112+r11], r8 michael@0: mov r9, r12 michael@0: mov rcx, rbp michael@0: mov r8, r10 michael@0: mov rax, qword ptr [-120+128+rsp] michael@0: mul qword ptr [128+128+rsp] michael@0: add rcx, rax michael@0: adc r9, rdx michael@0: adc r8, 0 michael@0: mov rax, qword ptr [-112+128+rsp] michael@0: mul qword ptr [120+128+rsp] michael@0: add rcx, rax michael@0: adc r9, rdx michael@0: adc r8, 0 michael@0: mov rax, qword ptr [-104+128+rsp] michael@0: mul qword ptr [112+128+rsp] michael@0: add rcx, rax michael@0: adc r9, rdx michael@0: adc r8, 0 michael@0: mov rax, qword ptr [-96+128+rsp] michael@0: mul qword ptr [104+128+rsp] michael@0: add rcx, rax michael@0: adc r9, rdx michael@0: adc r8, 0 michael@0: mov rax, qword ptr [-88+128+rsp] michael@0: mul qword ptr [96+128+rsp] michael@0: add rcx, rax michael@0: adc r9, rdx michael@0: adc r8, 0 michael@0: mov rax, qword ptr [-80+128+rsp] michael@0: mul qword ptr [88+128+rsp] michael@0: add rcx, rax michael@0: adc r9, rdx michael@0: adc r8, 0 michael@0: mov rax, qword ptr [-72+128+rsp] michael@0: mul qword ptr [80+128+rsp] michael@0: add rcx, rax michael@0: adc r9, rdx michael@0: adc r8, 0 michael@0: mov rax, qword ptr [-64+128+rsp] michael@0: mul qword ptr [72+128+rsp] michael@0: add rcx, rax michael@0: adc r9, rdx michael@0: adc r8, 0 michael@0: mov rax, qword ptr [-56+128+rsp] michael@0: mul qword ptr [64+128+rsp] michael@0: add rcx, rax michael@0: adc r9, rdx michael@0: adc r8, 0 michael@0: mov rax, qword ptr [-48+128+rsp] michael@0: mul qword ptr [56+128+rsp] michael@0: add rcx, rax michael@0: adc r9, rdx michael@0: adc r8, 0 michael@0: mov rax, qword ptr [-40+128+rsp] michael@0: mul qword ptr [48+128+rsp] michael@0: add rcx, rax michael@0: adc r9, rdx michael@0: adc r8, 0 michael@0: mov rax, qword ptr [-32+128+rsp] michael@0: mul qword ptr [40+128+rsp] michael@0: add rcx, rax michael@0: adc r9, rdx michael@0: adc r8, 0 michael@0: mov rax, qword ptr [-24+128+rsp] michael@0: mul qword ptr [32+128+rsp] michael@0: add rcx, rax michael@0: adc r9, rdx michael@0: adc r8, 0 michael@0: mov rax, qword ptr [-16+128+rsp] michael@0: mul qword ptr [24+128+rsp] michael@0: add rcx, rax michael@0: adc r9, rdx michael@0: adc r8, 0 michael@0: mov rax, qword ptr [-8+128+rsp] michael@0: mul qword ptr [16+128+rsp] michael@0: add rcx, rax michael@0: adc r9, rdx michael@0: adc r8, 0 michael@0: mov rbp, r9 michael@0: mov r12, r8 michael@0: mov rax, qword ptr [128+rsp] michael@0: mul qword ptr [8+128+rsp] michael@0: add rcx, rax michael@0: adc rbp, rdx michael@0: adc r12, 0 michael@0: mov qword ptr [120+r11], rcx michael@0: mov r9, r12 michael@0: mov r8, rbp michael@0: mov rcx, r10 michael@0: mov rax, qword ptr [-112+128+rsp] michael@0: mul qword ptr [128+128+rsp] michael@0: add r8, rax michael@0: adc r9, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-104+128+rsp] michael@0: mul qword ptr [120+128+rsp] michael@0: add r8, rax michael@0: adc r9, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-96+128+rsp] michael@0: mul qword ptr [112+128+rsp] michael@0: add r8, rax michael@0: adc r9, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-88+128+rsp] michael@0: mul qword ptr [104+128+rsp] michael@0: add r8, rax michael@0: adc r9, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-80+128+rsp] michael@0: mul qword ptr [96+128+rsp] michael@0: add r8, rax michael@0: adc r9, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-72+128+rsp] michael@0: mul qword ptr [88+128+rsp] michael@0: add r8, rax michael@0: adc r9, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-64+128+rsp] michael@0: mul qword ptr [80+128+rsp] michael@0: add r8, rax michael@0: adc r9, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-56+128+rsp] michael@0: mul qword ptr [72+128+rsp] michael@0: add r8, rax michael@0: adc r9, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-48+128+rsp] michael@0: mul qword ptr [64+128+rsp] michael@0: add r8, rax michael@0: adc r9, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-40+128+rsp] michael@0: mul qword ptr [56+128+rsp] michael@0: add r8, rax michael@0: adc r9, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-32+128+rsp] michael@0: mul qword ptr [48+128+rsp] michael@0: add r8, rax michael@0: adc r9, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-24+128+rsp] michael@0: mul qword ptr [40+128+rsp] michael@0: add r8, rax michael@0: adc r9, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-16+128+rsp] michael@0: mul qword ptr [32+128+rsp] michael@0: add r8, rax michael@0: adc r9, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-8+128+rsp] michael@0: mul qword ptr [24+128+rsp] michael@0: add r8, rax michael@0: adc r9, rdx michael@0: adc rcx, 0 michael@0: mov rbp, r9 michael@0: mov r12, rcx michael@0: mov rax, qword ptr [128+rsp] michael@0: mul qword ptr [16+128+rsp] michael@0: add r8, rax michael@0: adc rbp, rdx michael@0: adc r12, 0 michael@0: mov qword ptr [128+r11], r8 michael@0: mov r9, r12 michael@0: mov rcx, rbp michael@0: mov r8, r10 michael@0: mov rax, qword ptr [-104+128+rsp] michael@0: mul qword ptr [128+128+rsp] michael@0: add rcx, rax michael@0: adc r9, rdx michael@0: adc r8, 0 michael@0: mov rax, qword ptr [-96+128+rsp] michael@0: mul qword ptr [120+128+rsp] michael@0: add rcx, rax michael@0: adc r9, rdx michael@0: adc r8, 0 michael@0: mov rax, qword ptr [-88+128+rsp] michael@0: mul qword ptr [112+128+rsp] michael@0: add rcx, rax michael@0: adc r9, rdx michael@0: adc r8, 0 michael@0: mov rax, qword ptr [-80+128+rsp] michael@0: mul qword ptr [104+128+rsp] michael@0: add rcx, rax michael@0: adc r9, rdx michael@0: adc r8, 0 michael@0: mov rax, qword ptr [-72+128+rsp] michael@0: mul qword ptr [96+128+rsp] michael@0: add rcx, rax michael@0: adc r9, rdx michael@0: adc r8, 0 michael@0: mov rax, qword ptr [-64+128+rsp] michael@0: mul qword ptr [88+128+rsp] michael@0: add rcx, rax michael@0: adc r9, rdx michael@0: adc r8, 0 michael@0: mov rax, qword ptr [-56+128+rsp] michael@0: mul qword ptr [80+128+rsp] michael@0: add rcx, rax michael@0: adc r9, rdx michael@0: adc r8, 0 michael@0: mov rax, qword ptr [-48+128+rsp] michael@0: mul qword ptr [72+128+rsp] michael@0: add rcx, rax michael@0: adc r9, rdx michael@0: adc r8, 0 michael@0: mov rax, qword ptr [-40+128+rsp] michael@0: mul qword ptr [64+128+rsp] michael@0: add rcx, rax michael@0: adc r9, rdx michael@0: adc r8, 0 michael@0: mov rax, qword ptr [-32+128+rsp] michael@0: mul qword ptr [56+128+rsp] michael@0: add rcx, rax michael@0: adc r9, rdx michael@0: adc r8, 0 michael@0: mov rax, qword ptr [-24+128+rsp] michael@0: mul qword ptr [48+128+rsp] michael@0: add rcx, rax michael@0: adc r9, rdx michael@0: adc r8, 0 michael@0: mov rax, qword ptr [-16+128+rsp] michael@0: mul qword ptr [40+128+rsp] michael@0: add rcx, rax michael@0: adc r9, rdx michael@0: adc r8, 0 michael@0: mov rax, qword ptr [-8+128+rsp] michael@0: mul qword ptr [32+128+rsp] michael@0: add rcx, rax michael@0: adc r9, rdx michael@0: adc r8, 0 michael@0: mov rbp, r9 michael@0: mov r12, r8 michael@0: mov rax, qword ptr [128+rsp] michael@0: mul qword ptr [24+128+rsp] michael@0: add rcx, rax michael@0: adc rbp, rdx michael@0: adc r12, 0 michael@0: mov qword ptr [136+r11], rcx michael@0: mov r9, r12 michael@0: mov r8, rbp michael@0: mov rcx, r10 michael@0: mov rax, qword ptr [-96+128+rsp] michael@0: mul qword ptr [128+128+rsp] michael@0: add r8, rax michael@0: adc r9, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-88+128+rsp] michael@0: mul qword ptr [120+128+rsp] michael@0: add r8, rax michael@0: adc r9, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-80+128+rsp] michael@0: mul qword ptr [112+128+rsp] michael@0: add r8, rax michael@0: adc r9, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-72+128+rsp] michael@0: mul qword ptr [104+128+rsp] michael@0: add r8, rax michael@0: adc r9, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-64+128+rsp] michael@0: mul qword ptr [96+128+rsp] michael@0: add r8, rax michael@0: adc r9, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-56+128+rsp] michael@0: mul qword ptr [88+128+rsp] michael@0: add r8, rax michael@0: adc r9, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-48+128+rsp] michael@0: mul qword ptr [80+128+rsp] michael@0: add r8, rax michael@0: adc r9, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-40+128+rsp] michael@0: mul qword ptr [72+128+rsp] michael@0: add r8, rax michael@0: adc r9, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-32+128+rsp] michael@0: mul qword ptr [64+128+rsp] michael@0: add r8, rax michael@0: adc r9, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-24+128+rsp] michael@0: mul qword ptr [56+128+rsp] michael@0: add r8, rax michael@0: adc r9, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-16+128+rsp] michael@0: mul qword ptr [48+128+rsp] michael@0: add r8, rax michael@0: adc r9, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-8+128+rsp] michael@0: mul qword ptr [40+128+rsp] michael@0: add r8, rax michael@0: adc r9, rdx michael@0: adc rcx, 0 michael@0: mov rbp, r9 michael@0: mov r12, rcx michael@0: mov rax, qword ptr [128+rsp] michael@0: mul qword ptr [32+128+rsp] michael@0: add r8, rax michael@0: adc rbp, rdx michael@0: adc r12, 0 michael@0: mov qword ptr [144+r11], r8 michael@0: mov r9, r12 michael@0: mov rcx, rbp michael@0: mov r8, r10 michael@0: mov rax, qword ptr [-88+128+rsp] michael@0: mul qword ptr [128+128+rsp] michael@0: add rcx, rax michael@0: adc r9, rdx michael@0: adc r8, 0 michael@0: mov rax, qword ptr [-80+128+rsp] michael@0: mul qword ptr [120+128+rsp] michael@0: add rcx, rax michael@0: adc r9, rdx michael@0: adc r8, 0 michael@0: mov rax, qword ptr [-72+128+rsp] michael@0: mul qword ptr [112+128+rsp] michael@0: add rcx, rax michael@0: adc r9, rdx michael@0: adc r8, 0 michael@0: mov rax, qword ptr [-64+128+rsp] michael@0: mul qword ptr [104+128+rsp] michael@0: add rcx, rax michael@0: adc r9, rdx michael@0: adc r8, 0 michael@0: mov rax, qword ptr [-56+128+rsp] michael@0: mul qword ptr [96+128+rsp] michael@0: add rcx, rax michael@0: adc r9, rdx michael@0: adc r8, 0 michael@0: mov rax, qword ptr [-48+128+rsp] michael@0: mul qword ptr [88+128+rsp] michael@0: add rcx, rax michael@0: adc r9, rdx michael@0: adc r8, 0 michael@0: mov rax, qword ptr [-40+128+rsp] michael@0: mul qword ptr [80+128+rsp] michael@0: add rcx, rax michael@0: adc r9, rdx michael@0: adc r8, 0 michael@0: mov rax, qword ptr [-32+128+rsp] michael@0: mul qword ptr [72+128+rsp] michael@0: add rcx, rax michael@0: adc r9, rdx michael@0: adc r8, 0 michael@0: mov rax, qword ptr [-24+128+rsp] michael@0: mul qword ptr [64+128+rsp] michael@0: add rcx, rax michael@0: adc r9, rdx michael@0: adc r8, 0 michael@0: mov rax, qword ptr [-16+128+rsp] michael@0: mul qword ptr [56+128+rsp] michael@0: add rcx, rax michael@0: adc r9, rdx michael@0: adc r8, 0 michael@0: mov rax, qword ptr [-8+128+rsp] michael@0: mul qword ptr [48+128+rsp] michael@0: add rcx, rax michael@0: adc r9, rdx michael@0: adc r8, 0 michael@0: mov rbp, r9 michael@0: mov r12, r8 michael@0: mov rax, qword ptr [128+rsp] michael@0: mul qword ptr [40+128+rsp] michael@0: add rcx, rax michael@0: adc rbp, rdx michael@0: adc r12, 0 michael@0: mov qword ptr [152+r11], rcx michael@0: mov r9, r12 michael@0: mov r8, rbp michael@0: mov rcx, r10 michael@0: mov rax, qword ptr [-80+128+rsp] michael@0: mul qword ptr [128+128+rsp] michael@0: add r8, rax michael@0: adc r9, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-72+128+rsp] michael@0: mul qword ptr [120+128+rsp] michael@0: add r8, rax michael@0: adc r9, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-64+128+rsp] michael@0: mul qword ptr [112+128+rsp] michael@0: add r8, rax michael@0: adc r9, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-56+128+rsp] michael@0: mul qword ptr [104+128+rsp] michael@0: add r8, rax michael@0: adc r9, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-48+128+rsp] michael@0: mul qword ptr [96+128+rsp] michael@0: add r8, rax michael@0: adc r9, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-40+128+rsp] michael@0: mul qword ptr [88+128+rsp] michael@0: add r8, rax michael@0: adc r9, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-32+128+rsp] michael@0: mul qword ptr [80+128+rsp] michael@0: add r8, rax michael@0: adc r9, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-24+128+rsp] michael@0: mul qword ptr [72+128+rsp] michael@0: add r8, rax michael@0: adc r9, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-16+128+rsp] michael@0: mul qword ptr [64+128+rsp] michael@0: add r8, rax michael@0: adc r9, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-8+128+rsp] michael@0: mul qword ptr [56+128+rsp] michael@0: add r8, rax michael@0: adc r9, rdx michael@0: adc rcx, 0 michael@0: mov rbp, r9 michael@0: mov r12, rcx michael@0: mov rax, qword ptr [128+rsp] michael@0: mul qword ptr [48+128+rsp] michael@0: add r8, rax michael@0: adc rbp, rdx michael@0: adc r12, 0 michael@0: mov qword ptr [160+r11], r8 michael@0: mov r9, r12 michael@0: mov rcx, rbp michael@0: mov r8, r10 michael@0: mov rax, qword ptr [-72+128+rsp] michael@0: mul qword ptr [128+128+rsp] michael@0: add rcx, rax michael@0: adc r9, rdx michael@0: adc r8, 0 michael@0: mov rax, qword ptr [-64+128+rsp] michael@0: mul qword ptr [120+128+rsp] michael@0: add rcx, rax michael@0: adc r9, rdx michael@0: adc r8, 0 michael@0: mov rax, qword ptr [-56+128+rsp] michael@0: mul qword ptr [112+128+rsp] michael@0: add rcx, rax michael@0: adc r9, rdx michael@0: adc r8, 0 michael@0: mov rax, qword ptr [-48+128+rsp] michael@0: mul qword ptr [104+128+rsp] michael@0: add rcx, rax michael@0: adc r9, rdx michael@0: adc r8, 0 michael@0: mov rax, qword ptr [-40+128+rsp] michael@0: mul qword ptr [96+128+rsp] michael@0: add rcx, rax michael@0: adc r9, rdx michael@0: adc r8, 0 michael@0: mov rax, qword ptr [-32+128+rsp] michael@0: mul qword ptr [88+128+rsp] michael@0: add rcx, rax michael@0: adc r9, rdx michael@0: adc r8, 0 michael@0: mov rax, qword ptr [-24+128+rsp] michael@0: mul qword ptr [80+128+rsp] michael@0: add rcx, rax michael@0: adc r9, rdx michael@0: adc r8, 0 michael@0: mov rax, qword ptr [-16+128+rsp] michael@0: mul qword ptr [72+128+rsp] michael@0: add rcx, rax michael@0: adc r9, rdx michael@0: adc r8, 0 michael@0: mov rax, qword ptr [-8+128+rsp] michael@0: mul qword ptr [64+128+rsp] michael@0: add rcx, rax michael@0: adc r9, rdx michael@0: adc r8, 0 michael@0: mov rbp, r9 michael@0: mov r12, r8 michael@0: mov rax, qword ptr [128+rsp] michael@0: mul qword ptr [56+128+rsp] michael@0: add rcx, rax michael@0: adc rbp, rdx michael@0: adc r12, 0 michael@0: mov qword ptr [168+r11], rcx michael@0: mov r9, r12 michael@0: mov r8, rbp michael@0: mov rcx, r10 michael@0: mov rax, qword ptr [-64+128+rsp] michael@0: mul qword ptr [128+128+rsp] michael@0: add r8, rax michael@0: adc r9, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-56+128+rsp] michael@0: mul qword ptr [120+128+rsp] michael@0: add r8, rax michael@0: adc r9, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-48+128+rsp] michael@0: mul qword ptr [112+128+rsp] michael@0: add r8, rax michael@0: adc r9, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-40+128+rsp] michael@0: mul qword ptr [104+128+rsp] michael@0: add r8, rax michael@0: adc r9, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-32+128+rsp] michael@0: mul qword ptr [96+128+rsp] michael@0: add r8, rax michael@0: adc r9, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-24+128+rsp] michael@0: mul qword ptr [88+128+rsp] michael@0: add r8, rax michael@0: adc r9, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-16+128+rsp] michael@0: mul qword ptr [80+128+rsp] michael@0: add r8, rax michael@0: adc r9, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-8+128+rsp] michael@0: mul qword ptr [72+128+rsp] michael@0: add r8, rax michael@0: adc r9, rdx michael@0: adc rcx, 0 michael@0: mov rbp, r9 michael@0: mov r12, rcx michael@0: mov rax, qword ptr [128+rsp] michael@0: mul qword ptr [64+128+rsp] michael@0: add r8, rax michael@0: adc rbp, rdx michael@0: adc r12, 0 michael@0: mov qword ptr [176+r11], r8 michael@0: mov r9, r12 michael@0: mov rcx, rbp michael@0: mov r8, r10 michael@0: mov rax, qword ptr [-56+128+rsp] michael@0: mul qword ptr [128+128+rsp] michael@0: add rcx, rax michael@0: adc r9, rdx michael@0: adc r8, 0 michael@0: mov rax, qword ptr [-48+128+rsp] michael@0: mul qword ptr [120+128+rsp] michael@0: add rcx, rax michael@0: adc r9, rdx michael@0: adc r8, 0 michael@0: mov rax, qword ptr [-40+128+rsp] michael@0: mul qword ptr [112+128+rsp] michael@0: add rcx, rax michael@0: adc r9, rdx michael@0: adc r8, 0 michael@0: mov rax, qword ptr [-32+128+rsp] michael@0: mul qword ptr [104+128+rsp] michael@0: add rcx, rax michael@0: adc r9, rdx michael@0: adc r8, 0 michael@0: mov rax, qword ptr [-24+128+rsp] michael@0: mul qword ptr [96+128+rsp] michael@0: add rcx, rax michael@0: adc r9, rdx michael@0: adc r8, 0 michael@0: mov rax, qword ptr [-16+128+rsp] michael@0: mul qword ptr [88+128+rsp] michael@0: add rcx, rax michael@0: adc r9, rdx michael@0: adc r8, 0 michael@0: mov rax, qword ptr [-8+128+rsp] michael@0: mul qword ptr [80+128+rsp] michael@0: add rcx, rax michael@0: adc r9, rdx michael@0: adc r8, 0 michael@0: mov rbp, r9 michael@0: mov r12, r8 michael@0: mov rax, qword ptr [128+rsp] michael@0: mul qword ptr [72+128+rsp] michael@0: add rcx, rax michael@0: adc rbp, rdx michael@0: adc r12, 0 michael@0: mov qword ptr [184+r11], rcx michael@0: mov r9, r12 michael@0: mov r8, rbp michael@0: mov rcx, r10 michael@0: mov rax, qword ptr [-48+128+rsp] michael@0: mul qword ptr [128+128+rsp] michael@0: add r8, rax michael@0: adc r9, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-40+128+rsp] michael@0: mul qword ptr [120+128+rsp] michael@0: add r8, rax michael@0: adc r9, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-32+128+rsp] michael@0: mul qword ptr [112+128+rsp] michael@0: add r8, rax michael@0: adc r9, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-24+128+rsp] michael@0: mul qword ptr [104+128+rsp] michael@0: add r8, rax michael@0: adc r9, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-16+128+rsp] michael@0: mul qword ptr [96+128+rsp] michael@0: add r8, rax michael@0: adc r9, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-8+128+rsp] michael@0: mul qword ptr [88+128+rsp] michael@0: add r8, rax michael@0: adc r9, rdx michael@0: adc rcx, 0 michael@0: mov rbp, r9 michael@0: mov r12, rcx michael@0: mov rax, qword ptr [128+rsp] michael@0: mul qword ptr [80+128+rsp] michael@0: add r8, rax michael@0: adc rbp, rdx michael@0: adc r12, 0 michael@0: mov qword ptr [192+r11], r8 michael@0: mov r9, r12 michael@0: mov rcx, rbp michael@0: mov r8, r10 michael@0: mov rax, qword ptr [-40+128+rsp] michael@0: mul qword ptr [128+128+rsp] michael@0: add rcx, rax michael@0: adc r9, rdx michael@0: adc r8, 0 michael@0: mov rax, qword ptr [-32+128+rsp] michael@0: mul qword ptr [120+128+rsp] michael@0: add rcx, rax michael@0: adc r9, rdx michael@0: adc r8, 0 michael@0: mov rax, qword ptr [-24+128+rsp] michael@0: mul qword ptr [112+128+rsp] michael@0: add rcx, rax michael@0: adc r9, rdx michael@0: adc r8, 0 michael@0: mov rax, qword ptr [-16+128+rsp] michael@0: mul qword ptr [104+128+rsp] michael@0: add rcx, rax michael@0: adc r9, rdx michael@0: adc r8, 0 michael@0: mov rax, qword ptr [-8+128+rsp] michael@0: mul qword ptr [96+128+rsp] michael@0: add rcx, rax michael@0: adc r9, rdx michael@0: adc r8, 0 michael@0: mov rbp, r9 michael@0: mov r12, r8 michael@0: mov rax, qword ptr [128+rsp] michael@0: mul qword ptr [88+128+rsp] michael@0: add rcx, rax michael@0: adc rbp, rdx michael@0: adc r12, 0 michael@0: mov qword ptr [200+r11], rcx michael@0: mov r9, r12 michael@0: mov r8, rbp michael@0: mov rcx, r10 michael@0: mov rax, qword ptr [-32+128+rsp] michael@0: mul qword ptr [128+128+rsp] michael@0: add r8, rax michael@0: adc r9, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-24+128+rsp] michael@0: mul qword ptr [120+128+rsp] michael@0: add r8, rax michael@0: adc r9, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-16+128+rsp] michael@0: mul qword ptr [112+128+rsp] michael@0: add r8, rax michael@0: adc r9, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-8+128+rsp] michael@0: mul qword ptr [104+128+rsp] michael@0: add r8, rax michael@0: adc r9, rdx michael@0: adc rcx, 0 michael@0: mov rbp, r9 michael@0: mov r12, rcx michael@0: mov rax, qword ptr [128+rsp] michael@0: mul qword ptr [96+128+rsp] michael@0: add r8, rax michael@0: adc rbp, rdx michael@0: adc r12, 0 michael@0: mov qword ptr [208+r11], r8 michael@0: mov r9, r12 michael@0: mov rcx, rbp michael@0: mov r8, r10 michael@0: mov rax, qword ptr [-24+128+rsp] michael@0: mul qword ptr [128+128+rsp] michael@0: add rcx, rax michael@0: adc r9, rdx michael@0: adc r8, 0 michael@0: mov rax, qword ptr [-16+128+rsp] michael@0: mul qword ptr [120+128+rsp] michael@0: add rcx, rax michael@0: adc r9, rdx michael@0: adc r8, 0 michael@0: mov rax, qword ptr [-8+128+rsp] michael@0: mul qword ptr [112+128+rsp] michael@0: add rcx, rax michael@0: adc r9, rdx michael@0: adc r8, 0 michael@0: mov rbp, r9 michael@0: mov r12, r8 michael@0: mov rax, qword ptr [128+rsp] michael@0: mul qword ptr [104+128+rsp] michael@0: add rcx, rax michael@0: adc rbp, rdx michael@0: adc r12, 0 michael@0: mov qword ptr [216+r11], rcx michael@0: mov r9, r12 michael@0: mov r8, rbp michael@0: mov rcx, r10 michael@0: mov rax, qword ptr [-16+128+rsp] michael@0: mul qword ptr [128+128+rsp] michael@0: add r8, rax michael@0: adc r9, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-8+128+rsp] michael@0: mul qword ptr [120+128+rsp] michael@0: add r8, rax michael@0: adc r9, rdx michael@0: adc rcx, 0 michael@0: mov rbp, r9 michael@0: mov r12, rcx michael@0: mov rax, qword ptr [128+rsp] michael@0: mul qword ptr [112+128+rsp] michael@0: add r8, rax michael@0: adc rbp, rdx michael@0: adc r12, 0 michael@0: mov qword ptr [224+r11], r8 michael@0: mov r9, r12 michael@0: mov rcx, rbp michael@0: mov r8, r10 michael@0: mov rax, qword ptr [-8+128+rsp] michael@0: mul qword ptr [128+128+rsp] michael@0: add rcx, rax michael@0: adc r9, rdx michael@0: adc r8, 0 michael@0: mov r12, r8 michael@0: mov rbp, r9 michael@0: mov rax, qword ptr [128+rsp] michael@0: mul qword ptr [120+128+rsp] michael@0: add rcx, rax michael@0: adc rbp, rdx michael@0: adc r12, 0 michael@0: mov qword ptr [232+r11], rcx michael@0: mov r8, rbp michael@0: mov rcx, r12 michael@0: mov rax, qword ptr [128+rsp] michael@0: mul qword ptr [128+128+rsp] michael@0: add r8, rax michael@0: adc rcx, rdx michael@0: adc r10, 0 michael@0: mov qword ptr [240+r11], r8 michael@0: mov esi, dword ptr [rsi] michael@0: xor esi, dword ptr [rdi] michael@0: test rcx, rcx michael@0: mov qword ptr [248+r11], rcx michael@0: mov dword ptr [8+rbx], 32 michael@0: jne L76 michael@0: ALIGN 16 michael@0: L84: michael@0: mov edx, dword ptr [8+rbx] michael@0: lea edi, dword ptr [-1+rdx] michael@0: test edi, edi michael@0: mov dword ptr [8+rbx], edi michael@0: je L76 michael@0: lea eax, dword ptr [-2+rdx] michael@0: cmp dword ptr [r11+rax*8], 0 michael@0: je L84 michael@0: L76: michael@0: mov edx, dword ptr [8+rbx] michael@0: xor r11d, r11d michael@0: test edx, edx michael@0: cmovne r11d, esi michael@0: mov dword ptr [rbx], r11d michael@0: add rsp, 136+128 michael@0: pop rbx michael@0: pop rbp michael@0: pop r12 michael@0: michael@0: pop rsi michael@0: pop rdi michael@0: michael@0: ret michael@0: michael@0: s_mp_mul_comba_16 ENDP michael@0: michael@0: ; void s_mp_mul_comba_32(const mp_int *A, const mp_int *B, mp_int *C) michael@0: michael@0: michael@0: ALIGN 16 michael@0: s_mp_mul_comba_32 PROC ; a "FRAME" function michael@0: michael@0: push rdi michael@0: push rsi michael@0: michael@0: mov rdi, rcx michael@0: mov rsi, rdx michael@0: mov rdx, r8 michael@0: michael@0: push rbp michael@0: mov rbp, rsp michael@0: push r13 michael@0: mov r13, rdx michael@0: ; mov edx, 256 michael@0: mov r8d, 256 michael@0: push r12 michael@0: mov r12, rsi michael@0: push rbx michael@0: mov rbx, rdi michael@0: sub rsp, 520+32 ; +32 for "home" storage michael@0: ; mov rsi, qword ptr [16+rdi] michael@0: ; lea rdi, qword ptr [-544+rbp] michael@0: mov rdx, qword ptr [16+rdi] michael@0: lea rcx, qword ptr [-544+rbp] michael@0: call memcpy michael@0: ; mov rsi, qword ptr [16+r12] michael@0: ; lea rdi, qword ptr [-288+rbp] michael@0: ; mov edx, 256 michael@0: mov rdx, qword ptr [16+r12] michael@0: lea rcx, qword ptr [-288+rbp] michael@0: mov r8d, 256 michael@0: call memcpy michael@0: mov r9, qword ptr [16+r13] michael@0: xor r8d, r8d michael@0: mov rsi, r8 michael@0: mov rdi, r8 michael@0: mov r10, r8 michael@0: mov rax, qword ptr [-544+rbp] michael@0: mul qword ptr [-288+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc r10, 0 michael@0: mov qword ptr [r9], rsi michael@0: mov rsi, r10 michael@0: mov r10, r8 michael@0: mov rax, qword ptr [-544+rbp] michael@0: mul qword ptr [-280+rbp] michael@0: add rdi, rax michael@0: adc rsi, rdx michael@0: adc r10, 0 michael@0: mov r11, r10 michael@0: mov rax, qword ptr [-536+rbp] michael@0: mul qword ptr [-288+rbp] michael@0: add rdi, rax michael@0: adc rsi, rdx michael@0: adc r11, 0 michael@0: mov qword ptr [8+r9], rdi michael@0: mov rdi, r11 michael@0: mov r11, r8 michael@0: mov rax, qword ptr [-544+rbp] michael@0: mul qword ptr [-272+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc r11, 0 michael@0: mov rcx, r11 michael@0: mov rax, qword ptr [-536+rbp] michael@0: mul qword ptr [-280+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov r10, rdi michael@0: mov r11, rcx michael@0: mov rax, qword ptr [-528+rbp] michael@0: mul qword ptr [-288+rbp] michael@0: add rsi, rax michael@0: adc r10, rdx michael@0: adc r11, 0 michael@0: mov qword ptr [16+r9], rsi michael@0: mov rdi, r11 michael@0: mov rcx, r10 michael@0: mov rsi, r8 michael@0: mov rax, qword ptr [-544+rbp] michael@0: mul qword ptr [-264+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-536+rbp] michael@0: mul qword ptr [-272+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-528+rbp] michael@0: mul qword ptr [-280+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov r10, rdi michael@0: mov r11, rsi michael@0: mov rax, qword ptr [-520+rbp] michael@0: mul qword ptr [-288+rbp] michael@0: add rcx, rax michael@0: adc r10, rdx michael@0: adc r11, 0 michael@0: mov qword ptr [24+r9], rcx michael@0: mov rdi, r11 michael@0: mov rsi, r10 michael@0: mov rcx, r8 michael@0: mov rax, qword ptr [-544+rbp] michael@0: mul qword ptr [-256+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-536+rbp] michael@0: mul qword ptr [-264+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-528+rbp] michael@0: mul qword ptr [-272+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-520+rbp] michael@0: mul qword ptr [-280+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov r10, rdi michael@0: mov r11, rcx michael@0: mov rax, qword ptr [-512+rbp] michael@0: mul qword ptr [-288+rbp] michael@0: add rsi, rax michael@0: adc r10, rdx michael@0: adc r11, 0 michael@0: mov qword ptr [32+r9], rsi michael@0: mov rdi, r11 michael@0: mov rcx, r10 michael@0: mov rsi, r8 michael@0: mov rax, qword ptr [-544+rbp] michael@0: mul qword ptr [-248+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-536+rbp] michael@0: mul qword ptr [-256+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-528+rbp] michael@0: mul qword ptr [-264+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-520+rbp] michael@0: mul qword ptr [-272+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-512+rbp] michael@0: mul qword ptr [-280+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov r10, rdi michael@0: mov r11, rsi michael@0: mov rax, qword ptr [-504+rbp] michael@0: mul qword ptr [-288+rbp] michael@0: add rcx, rax michael@0: adc r10, rdx michael@0: adc r11, 0 michael@0: mov qword ptr [40+r9], rcx michael@0: mov rdi, r11 michael@0: mov rsi, r10 michael@0: mov rcx, r8 michael@0: mov rax, qword ptr [-544+rbp] michael@0: mul qword ptr [-240+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-536+rbp] michael@0: mul qword ptr [-248+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-528+rbp] michael@0: mul qword ptr [-256+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-520+rbp] michael@0: mul qword ptr [-264+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-512+rbp] michael@0: mul qword ptr [-272+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-504+rbp] michael@0: mul qword ptr [-280+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov r10, rdi michael@0: mov r11, rcx michael@0: mov rax, qword ptr [-496+rbp] michael@0: mul qword ptr [-288+rbp] michael@0: add rsi, rax michael@0: adc r10, rdx michael@0: adc r11, 0 michael@0: mov qword ptr [48+r9], rsi michael@0: mov rdi, r11 michael@0: mov rcx, r10 michael@0: mov rsi, r8 michael@0: mov rax, qword ptr [-544+rbp] michael@0: mul qword ptr [-232+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-536+rbp] michael@0: mul qword ptr [-240+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-528+rbp] michael@0: mul qword ptr [-248+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-520+rbp] michael@0: mul qword ptr [-256+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-512+rbp] michael@0: mul qword ptr [-264+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-504+rbp] michael@0: mul qword ptr [-272+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-496+rbp] michael@0: mul qword ptr [-280+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov r10, rdi michael@0: mov r11, rsi michael@0: mov rax, qword ptr [-488+rbp] michael@0: mul qword ptr [-288+rbp] michael@0: add rcx, rax michael@0: adc r10, rdx michael@0: adc r11, 0 michael@0: mov qword ptr [56+r9], rcx michael@0: mov rdi, r11 michael@0: mov rsi, r10 michael@0: mov rcx, r8 michael@0: mov rax, qword ptr [-544+rbp] michael@0: mul qword ptr [-224+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-536+rbp] michael@0: mul qword ptr [-232+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-528+rbp] michael@0: mul qword ptr [-240+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-520+rbp] michael@0: mul qword ptr [-248+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-512+rbp] michael@0: mul qword ptr [-256+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-504+rbp] michael@0: mul qword ptr [-264+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-496+rbp] michael@0: mul qword ptr [-272+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-488+rbp] michael@0: mul qword ptr [-280+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov r10, rdi michael@0: mov r11, rcx michael@0: mov rax, qword ptr [-480+rbp] michael@0: mul qword ptr [-288+rbp] michael@0: add rsi, rax michael@0: adc r10, rdx michael@0: adc r11, 0 michael@0: mov qword ptr [64+r9], rsi michael@0: mov rdi, r11 michael@0: mov rcx, r10 michael@0: mov rsi, r8 michael@0: mov rax, qword ptr [-544+rbp] michael@0: mul qword ptr [-216+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-536+rbp] michael@0: mul qword ptr [-224+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-528+rbp] michael@0: mul qword ptr [-232+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-520+rbp] michael@0: mul qword ptr [-240+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-512+rbp] michael@0: mul qword ptr [-248+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-504+rbp] michael@0: mul qword ptr [-256+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-496+rbp] michael@0: mul qword ptr [-264+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-488+rbp] michael@0: mul qword ptr [-272+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-480+rbp] michael@0: mul qword ptr [-280+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov r10, rdi michael@0: mov r11, rsi michael@0: mov rax, qword ptr [-472+rbp] michael@0: mul qword ptr [-288+rbp] michael@0: add rcx, rax michael@0: adc r10, rdx michael@0: adc r11, 0 michael@0: mov qword ptr [72+r9], rcx michael@0: mov rdi, r11 michael@0: mov rsi, r10 michael@0: mov rcx, r8 michael@0: mov rax, qword ptr [-544+rbp] michael@0: mul qword ptr [-208+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-536+rbp] michael@0: mul qword ptr [-216+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-528+rbp] michael@0: mul qword ptr [-224+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-520+rbp] michael@0: mul qword ptr [-232+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-512+rbp] michael@0: mul qword ptr [-240+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-504+rbp] michael@0: mul qword ptr [-248+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-496+rbp] michael@0: mul qword ptr [-256+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-488+rbp] michael@0: mul qword ptr [-264+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-480+rbp] michael@0: mul qword ptr [-272+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-472+rbp] michael@0: mul qword ptr [-280+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov r10, rdi michael@0: mov r11, rcx michael@0: mov rax, qword ptr [-464+rbp] michael@0: mul qword ptr [-288+rbp] michael@0: add rsi, rax michael@0: adc r10, rdx michael@0: adc r11, 0 michael@0: mov qword ptr [80+r9], rsi michael@0: mov rdi, r11 michael@0: mov rcx, r10 michael@0: mov rsi, r8 michael@0: mov rax, qword ptr [-544+rbp] michael@0: mul qword ptr [-200+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-536+rbp] michael@0: mul qword ptr [-208+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-528+rbp] michael@0: mul qword ptr [-216+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-520+rbp] michael@0: mul qword ptr [-224+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-512+rbp] michael@0: mul qword ptr [-232+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-504+rbp] michael@0: mul qword ptr [-240+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-496+rbp] michael@0: mul qword ptr [-248+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-488+rbp] michael@0: mul qword ptr [-256+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-480+rbp] michael@0: mul qword ptr [-264+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-472+rbp] michael@0: mul qword ptr [-272+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-464+rbp] michael@0: mul qword ptr [-280+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov r10, rdi michael@0: mov r11, rsi michael@0: mov rax, qword ptr [-456+rbp] michael@0: mul qword ptr [-288+rbp] michael@0: add rcx, rax michael@0: adc r10, rdx michael@0: adc r11, 0 michael@0: mov qword ptr [88+r9], rcx michael@0: mov rdi, r11 michael@0: mov rsi, r10 michael@0: mov rcx, r8 michael@0: mov rax, qword ptr [-544+rbp] michael@0: mul qword ptr [-192+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-536+rbp] michael@0: mul qword ptr [-200+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-528+rbp] michael@0: mul qword ptr [-208+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-520+rbp] michael@0: mul qword ptr [-216+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-512+rbp] michael@0: mul qword ptr [-224+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-504+rbp] michael@0: mul qword ptr [-232+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-496+rbp] michael@0: mul qword ptr [-240+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-488+rbp] michael@0: mul qword ptr [-248+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-480+rbp] michael@0: mul qword ptr [-256+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-472+rbp] michael@0: mul qword ptr [-264+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-464+rbp] michael@0: mul qword ptr [-272+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-456+rbp] michael@0: mul qword ptr [-280+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov r10, rdi michael@0: mov r11, rcx michael@0: mov rax, qword ptr [-448+rbp] michael@0: mul qword ptr [-288+rbp] michael@0: add rsi, rax michael@0: adc r10, rdx michael@0: adc r11, 0 michael@0: mov qword ptr [96+r9], rsi michael@0: mov rdi, r11 michael@0: mov rcx, r10 michael@0: mov rsi, r8 michael@0: mov rax, qword ptr [-544+rbp] michael@0: mul qword ptr [-184+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-536+rbp] michael@0: mul qword ptr [-192+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-528+rbp] michael@0: mul qword ptr [-200+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-520+rbp] michael@0: mul qword ptr [-208+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-512+rbp] michael@0: mul qword ptr [-216+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-504+rbp] michael@0: mul qword ptr [-224+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-496+rbp] michael@0: mul qword ptr [-232+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-488+rbp] michael@0: mul qword ptr [-240+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-480+rbp] michael@0: mul qword ptr [-248+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-472+rbp] michael@0: mul qword ptr [-256+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-464+rbp] michael@0: mul qword ptr [-264+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-456+rbp] michael@0: mul qword ptr [-272+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-448+rbp] michael@0: mul qword ptr [-280+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov r10, rdi michael@0: mov r11, rsi michael@0: mov rax, qword ptr [-440+rbp] michael@0: mul qword ptr [-288+rbp] michael@0: add rcx, rax michael@0: adc r10, rdx michael@0: adc r11, 0 michael@0: mov qword ptr [104+r9], rcx michael@0: mov rdi, r11 michael@0: mov rsi, r10 michael@0: mov rcx, r8 michael@0: mov rax, qword ptr [-544+rbp] michael@0: mul qword ptr [-176+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-536+rbp] michael@0: mul qword ptr [-184+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-528+rbp] michael@0: mul qword ptr [-192+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-520+rbp] michael@0: mul qword ptr [-200+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-512+rbp] michael@0: mul qword ptr [-208+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-504+rbp] michael@0: mul qword ptr [-216+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-496+rbp] michael@0: mul qword ptr [-224+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-488+rbp] michael@0: mul qword ptr [-232+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-480+rbp] michael@0: mul qword ptr [-240+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-472+rbp] michael@0: mul qword ptr [-248+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-464+rbp] michael@0: mul qword ptr [-256+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-456+rbp] michael@0: mul qword ptr [-264+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-448+rbp] michael@0: mul qword ptr [-272+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-440+rbp] michael@0: mul qword ptr [-280+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov r10, rdi michael@0: mov r11, rcx michael@0: mov rax, qword ptr [-432+rbp] michael@0: mul qword ptr [-288+rbp] michael@0: add rsi, rax michael@0: adc r10, rdx michael@0: adc r11, 0 michael@0: mov qword ptr [112+r9], rsi michael@0: mov rdi, r11 michael@0: mov rcx, r10 michael@0: mov rsi, r8 michael@0: mov rax, qword ptr [-544+rbp] michael@0: mul qword ptr [-168+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-536+rbp] michael@0: mul qword ptr [-176+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-528+rbp] michael@0: mul qword ptr [-184+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-520+rbp] michael@0: mul qword ptr [-192+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-512+rbp] michael@0: mul qword ptr [-200+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-504+rbp] michael@0: mul qword ptr [-208+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-496+rbp] michael@0: mul qword ptr [-216+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-488+rbp] michael@0: mul qword ptr [-224+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-480+rbp] michael@0: mul qword ptr [-232+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-472+rbp] michael@0: mul qword ptr [-240+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-464+rbp] michael@0: mul qword ptr [-248+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-456+rbp] michael@0: mul qword ptr [-256+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-448+rbp] michael@0: mul qword ptr [-264+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-440+rbp] michael@0: mul qword ptr [-272+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-432+rbp] michael@0: mul qword ptr [-280+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov r10, rdi michael@0: mov r11, rsi michael@0: mov rax, qword ptr [-424+rbp] michael@0: mul qword ptr [-288+rbp] michael@0: add rcx, rax michael@0: adc r10, rdx michael@0: adc r11, 0 michael@0: mov qword ptr [120+r9], rcx michael@0: mov rdi, r11 michael@0: mov rsi, r10 michael@0: mov rcx, r8 michael@0: mov rax, qword ptr [-544+rbp] michael@0: mul qword ptr [-160+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-536+rbp] michael@0: mul qword ptr [-168+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-528+rbp] michael@0: mul qword ptr [-176+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-520+rbp] michael@0: mul qword ptr [-184+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-512+rbp] michael@0: mul qword ptr [-192+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-504+rbp] michael@0: mul qword ptr [-200+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-496+rbp] michael@0: mul qword ptr [-208+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-488+rbp] michael@0: mul qword ptr [-216+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-480+rbp] michael@0: mul qword ptr [-224+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-472+rbp] michael@0: mul qword ptr [-232+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-464+rbp] michael@0: mul qword ptr [-240+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-456+rbp] michael@0: mul qword ptr [-248+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-448+rbp] michael@0: mul qword ptr [-256+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-440+rbp] michael@0: mul qword ptr [-264+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-432+rbp] michael@0: mul qword ptr [-272+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-424+rbp] michael@0: mul qword ptr [-280+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov r10, rdi michael@0: mov r11, rcx michael@0: mov rax, qword ptr [-416+rbp] michael@0: mul qword ptr [-288+rbp] michael@0: add rsi, rax michael@0: adc r10, rdx michael@0: adc r11, 0 michael@0: mov qword ptr [128+r9], rsi michael@0: mov rdi, r11 michael@0: mov rcx, r10 michael@0: mov rsi, r8 michael@0: mov rax, qword ptr [-544+rbp] michael@0: mul qword ptr [-152+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-536+rbp] michael@0: mul qword ptr [-160+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-528+rbp] michael@0: mul qword ptr [-168+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-520+rbp] michael@0: mul qword ptr [-176+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-512+rbp] michael@0: mul qword ptr [-184+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-504+rbp] michael@0: mul qword ptr [-192+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-496+rbp] michael@0: mul qword ptr [-200+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-488+rbp] michael@0: mul qword ptr [-208+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-480+rbp] michael@0: mul qword ptr [-216+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-472+rbp] michael@0: mul qword ptr [-224+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-464+rbp] michael@0: mul qword ptr [-232+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-456+rbp] michael@0: mul qword ptr [-240+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-448+rbp] michael@0: mul qword ptr [-248+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-440+rbp] michael@0: mul qword ptr [-256+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-432+rbp] michael@0: mul qword ptr [-264+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-424+rbp] michael@0: mul qword ptr [-272+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-416+rbp] michael@0: mul qword ptr [-280+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov r10, rdi michael@0: mov r11, rsi michael@0: mov rax, qword ptr [-408+rbp] michael@0: mul qword ptr [-288+rbp] michael@0: add rcx, rax michael@0: adc r10, rdx michael@0: adc r11, 0 michael@0: mov qword ptr [136+r9], rcx michael@0: mov rdi, r11 michael@0: mov rsi, r10 michael@0: mov rcx, r8 michael@0: mov rax, qword ptr [-544+rbp] michael@0: mul qword ptr [-144+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-536+rbp] michael@0: mul qword ptr [-152+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-528+rbp] michael@0: mul qword ptr [-160+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-520+rbp] michael@0: mul qword ptr [-168+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-512+rbp] michael@0: mul qword ptr [-176+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-504+rbp] michael@0: mul qword ptr [-184+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-496+rbp] michael@0: mul qword ptr [-192+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-488+rbp] michael@0: mul qword ptr [-200+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-480+rbp] michael@0: mul qword ptr [-208+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-472+rbp] michael@0: mul qword ptr [-216+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-464+rbp] michael@0: mul qword ptr [-224+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-456+rbp] michael@0: mul qword ptr [-232+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-448+rbp] michael@0: mul qword ptr [-240+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-440+rbp] michael@0: mul qword ptr [-248+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-432+rbp] michael@0: mul qword ptr [-256+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-424+rbp] michael@0: mul qword ptr [-264+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-416+rbp] michael@0: mul qword ptr [-272+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-408+rbp] michael@0: mul qword ptr [-280+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov r10, rdi michael@0: mov r11, rcx michael@0: mov rax, qword ptr [-400+rbp] michael@0: mul qword ptr [-288+rbp] michael@0: add rsi, rax michael@0: adc r10, rdx michael@0: adc r11, 0 michael@0: mov qword ptr [144+r9], rsi michael@0: mov rdi, r11 michael@0: mov rcx, r10 michael@0: mov rsi, r8 michael@0: mov rax, qword ptr [-544+rbp] michael@0: mul qword ptr [-136+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-536+rbp] michael@0: mul qword ptr [-144+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-528+rbp] michael@0: mul qword ptr [-152+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-520+rbp] michael@0: mul qword ptr [-160+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-512+rbp] michael@0: mul qword ptr [-168+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-504+rbp] michael@0: mul qword ptr [-176+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-496+rbp] michael@0: mul qword ptr [-184+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-488+rbp] michael@0: mul qword ptr [-192+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-480+rbp] michael@0: mul qword ptr [-200+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-472+rbp] michael@0: mul qword ptr [-208+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-464+rbp] michael@0: mul qword ptr [-216+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-456+rbp] michael@0: mul qword ptr [-224+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-448+rbp] michael@0: mul qword ptr [-232+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-440+rbp] michael@0: mul qword ptr [-240+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-432+rbp] michael@0: mul qword ptr [-248+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-424+rbp] michael@0: mul qword ptr [-256+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-416+rbp] michael@0: mul qword ptr [-264+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-408+rbp] michael@0: mul qword ptr [-272+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-400+rbp] michael@0: mul qword ptr [-280+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov r10, rdi michael@0: mov r11, rsi michael@0: mov rax, qword ptr [-392+rbp] michael@0: mul qword ptr [-288+rbp] michael@0: add rcx, rax michael@0: adc r10, rdx michael@0: adc r11, 0 michael@0: mov qword ptr [152+r9], rcx michael@0: mov rdi, r11 michael@0: mov rsi, r10 michael@0: mov rcx, r8 michael@0: mov rax, qword ptr [-544+rbp] michael@0: mul qword ptr [-128+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-536+rbp] michael@0: mul qword ptr [-136+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-528+rbp] michael@0: mul qword ptr [-144+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-520+rbp] michael@0: mul qword ptr [-152+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-512+rbp] michael@0: mul qword ptr [-160+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-504+rbp] michael@0: mul qword ptr [-168+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-496+rbp] michael@0: mul qword ptr [-176+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-488+rbp] michael@0: mul qword ptr [-184+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-480+rbp] michael@0: mul qword ptr [-192+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-472+rbp] michael@0: mul qword ptr [-200+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-464+rbp] michael@0: mul qword ptr [-208+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-456+rbp] michael@0: mul qword ptr [-216+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-448+rbp] michael@0: mul qword ptr [-224+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-440+rbp] michael@0: mul qword ptr [-232+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-432+rbp] michael@0: mul qword ptr [-240+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-424+rbp] michael@0: mul qword ptr [-248+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-416+rbp] michael@0: mul qword ptr [-256+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-408+rbp] michael@0: mul qword ptr [-264+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-400+rbp] michael@0: mul qword ptr [-272+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-392+rbp] michael@0: mul qword ptr [-280+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov r10, rdi michael@0: mov r11, rcx michael@0: mov rax, qword ptr [-384+rbp] michael@0: mul qword ptr [-288+rbp] michael@0: add rsi, rax michael@0: adc r10, rdx michael@0: adc r11, 0 michael@0: mov qword ptr [160+r9], rsi michael@0: mov rdi, r11 michael@0: mov rcx, r10 michael@0: mov rsi, r8 michael@0: mov rax, qword ptr [-544+rbp] michael@0: mul qword ptr [-120+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-536+rbp] michael@0: mul qword ptr [-128+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-528+rbp] michael@0: mul qword ptr [-136+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-520+rbp] michael@0: mul qword ptr [-144+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-512+rbp] michael@0: mul qword ptr [-152+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-504+rbp] michael@0: mul qword ptr [-160+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-496+rbp] michael@0: mul qword ptr [-168+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-488+rbp] michael@0: mul qword ptr [-176+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-480+rbp] michael@0: mul qword ptr [-184+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-472+rbp] michael@0: mul qword ptr [-192+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-464+rbp] michael@0: mul qword ptr [-200+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-456+rbp] michael@0: mul qword ptr [-208+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-448+rbp] michael@0: mul qword ptr [-216+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-440+rbp] michael@0: mul qword ptr [-224+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-432+rbp] michael@0: mul qword ptr [-232+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-424+rbp] michael@0: mul qword ptr [-240+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-416+rbp] michael@0: mul qword ptr [-248+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-408+rbp] michael@0: mul qword ptr [-256+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-400+rbp] michael@0: mul qword ptr [-264+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-392+rbp] michael@0: mul qword ptr [-272+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-384+rbp] michael@0: mul qword ptr [-280+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov r10, rdi michael@0: mov r11, rsi michael@0: mov rax, qword ptr [-376+rbp] michael@0: mul qword ptr [-288+rbp] michael@0: add rcx, rax michael@0: adc r10, rdx michael@0: adc r11, 0 michael@0: mov qword ptr [168+r9], rcx michael@0: mov rdi, r11 michael@0: mov rsi, r10 michael@0: mov rcx, r8 michael@0: mov rax, qword ptr [-544+rbp] michael@0: mul qword ptr [-112+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-536+rbp] michael@0: mul qword ptr [-120+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-528+rbp] michael@0: mul qword ptr [-128+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-520+rbp] michael@0: mul qword ptr [-136+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-512+rbp] michael@0: mul qword ptr [-144+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-504+rbp] michael@0: mul qword ptr [-152+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-496+rbp] michael@0: mul qword ptr [-160+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-488+rbp] michael@0: mul qword ptr [-168+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-480+rbp] michael@0: mul qword ptr [-176+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-472+rbp] michael@0: mul qword ptr [-184+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-464+rbp] michael@0: mul qword ptr [-192+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-456+rbp] michael@0: mul qword ptr [-200+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-448+rbp] michael@0: mul qword ptr [-208+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-440+rbp] michael@0: mul qword ptr [-216+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-432+rbp] michael@0: mul qword ptr [-224+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-424+rbp] michael@0: mul qword ptr [-232+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-416+rbp] michael@0: mul qword ptr [-240+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-408+rbp] michael@0: mul qword ptr [-248+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-400+rbp] michael@0: mul qword ptr [-256+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-392+rbp] michael@0: mul qword ptr [-264+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-384+rbp] michael@0: mul qword ptr [-272+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-376+rbp] michael@0: mul qword ptr [-280+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov r10, rdi michael@0: mov r11, rcx michael@0: mov rax, qword ptr [-368+rbp] michael@0: mul qword ptr [-288+rbp] michael@0: add rsi, rax michael@0: adc r10, rdx michael@0: adc r11, 0 michael@0: mov qword ptr [176+r9], rsi michael@0: mov rdi, r11 michael@0: mov rcx, r10 michael@0: mov rsi, r8 michael@0: mov rax, qword ptr [-544+rbp] michael@0: mul qword ptr [-104+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-536+rbp] michael@0: mul qword ptr [-112+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-528+rbp] michael@0: mul qword ptr [-120+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-520+rbp] michael@0: mul qword ptr [-128+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-512+rbp] michael@0: mul qword ptr [-136+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-504+rbp] michael@0: mul qword ptr [-144+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-496+rbp] michael@0: mul qword ptr [-152+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-488+rbp] michael@0: mul qword ptr [-160+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-480+rbp] michael@0: mul qword ptr [-168+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-472+rbp] michael@0: mul qword ptr [-176+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-464+rbp] michael@0: mul qword ptr [-184+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-456+rbp] michael@0: mul qword ptr [-192+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-448+rbp] michael@0: mul qword ptr [-200+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-440+rbp] michael@0: mul qword ptr [-208+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-432+rbp] michael@0: mul qword ptr [-216+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-424+rbp] michael@0: mul qword ptr [-224+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-416+rbp] michael@0: mul qword ptr [-232+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-408+rbp] michael@0: mul qword ptr [-240+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-400+rbp] michael@0: mul qword ptr [-248+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-392+rbp] michael@0: mul qword ptr [-256+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-384+rbp] michael@0: mul qword ptr [-264+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-376+rbp] michael@0: mul qword ptr [-272+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-368+rbp] michael@0: mul qword ptr [-280+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov r10, rdi michael@0: mov r11, rsi michael@0: mov rax, qword ptr [-360+rbp] michael@0: mul qword ptr [-288+rbp] michael@0: add rcx, rax michael@0: adc r10, rdx michael@0: adc r11, 0 michael@0: mov qword ptr [184+r9], rcx michael@0: mov rdi, r11 michael@0: mov rsi, r10 michael@0: mov rcx, r8 michael@0: mov rax, qword ptr [-544+rbp] michael@0: mul qword ptr [-96+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-536+rbp] michael@0: mul qword ptr [-104+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-528+rbp] michael@0: mul qword ptr [-112+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-520+rbp] michael@0: mul qword ptr [-120+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-512+rbp] michael@0: mul qword ptr [-128+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-504+rbp] michael@0: mul qword ptr [-136+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-496+rbp] michael@0: mul qword ptr [-144+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-488+rbp] michael@0: mul qword ptr [-152+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-480+rbp] michael@0: mul qword ptr [-160+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-472+rbp] michael@0: mul qword ptr [-168+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-464+rbp] michael@0: mul qword ptr [-176+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-456+rbp] michael@0: mul qword ptr [-184+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-448+rbp] michael@0: mul qword ptr [-192+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-440+rbp] michael@0: mul qword ptr [-200+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-432+rbp] michael@0: mul qword ptr [-208+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-424+rbp] michael@0: mul qword ptr [-216+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-416+rbp] michael@0: mul qword ptr [-224+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-408+rbp] michael@0: mul qword ptr [-232+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-400+rbp] michael@0: mul qword ptr [-240+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-392+rbp] michael@0: mul qword ptr [-248+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-384+rbp] michael@0: mul qword ptr [-256+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-376+rbp] michael@0: mul qword ptr [-264+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-368+rbp] michael@0: mul qword ptr [-272+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-360+rbp] michael@0: mul qword ptr [-280+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov r10, rdi michael@0: mov r11, rcx michael@0: mov rax, qword ptr [-352+rbp] michael@0: mul qword ptr [-288+rbp] michael@0: add rsi, rax michael@0: adc r10, rdx michael@0: adc r11, 0 michael@0: mov qword ptr [192+r9], rsi michael@0: mov rdi, r11 michael@0: mov rcx, r10 michael@0: mov rsi, r8 michael@0: mov rax, qword ptr [-544+rbp] michael@0: mul qword ptr [-88+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-536+rbp] michael@0: mul qword ptr [-96+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-528+rbp] michael@0: mul qword ptr [-104+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-520+rbp] michael@0: mul qword ptr [-112+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-512+rbp] michael@0: mul qword ptr [-120+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-504+rbp] michael@0: mul qword ptr [-128+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-496+rbp] michael@0: mul qword ptr [-136+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-488+rbp] michael@0: mul qword ptr [-144+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-480+rbp] michael@0: mul qword ptr [-152+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-472+rbp] michael@0: mul qword ptr [-160+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-464+rbp] michael@0: mul qword ptr [-168+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-456+rbp] michael@0: mul qword ptr [-176+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-448+rbp] michael@0: mul qword ptr [-184+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-440+rbp] michael@0: mul qword ptr [-192+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-432+rbp] michael@0: mul qword ptr [-200+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-424+rbp] michael@0: mul qword ptr [-208+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-416+rbp] michael@0: mul qword ptr [-216+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-408+rbp] michael@0: mul qword ptr [-224+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-400+rbp] michael@0: mul qword ptr [-232+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-392+rbp] michael@0: mul qword ptr [-240+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-384+rbp] michael@0: mul qword ptr [-248+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-376+rbp] michael@0: mul qword ptr [-256+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-368+rbp] michael@0: mul qword ptr [-264+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-360+rbp] michael@0: mul qword ptr [-272+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-352+rbp] michael@0: mul qword ptr [-280+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov r10, rdi michael@0: mov r11, rsi michael@0: mov rax, qword ptr [-344+rbp] michael@0: mul qword ptr [-288+rbp] michael@0: add rcx, rax michael@0: adc r10, rdx michael@0: adc r11, 0 michael@0: mov qword ptr [200+r9], rcx michael@0: mov rdi, r11 michael@0: mov rsi, r10 michael@0: mov rcx, r8 michael@0: mov rax, qword ptr [-544+rbp] michael@0: mul qword ptr [-80+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-536+rbp] michael@0: mul qword ptr [-88+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-528+rbp] michael@0: mul qword ptr [-96+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-520+rbp] michael@0: mul qword ptr [-104+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-512+rbp] michael@0: mul qword ptr [-112+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-504+rbp] michael@0: mul qword ptr [-120+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-496+rbp] michael@0: mul qword ptr [-128+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-488+rbp] michael@0: mul qword ptr [-136+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-480+rbp] michael@0: mul qword ptr [-144+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-472+rbp] michael@0: mul qword ptr [-152+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-464+rbp] michael@0: mul qword ptr [-160+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-456+rbp] michael@0: mul qword ptr [-168+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-448+rbp] michael@0: mul qword ptr [-176+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-440+rbp] michael@0: mul qword ptr [-184+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-432+rbp] michael@0: mul qword ptr [-192+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-424+rbp] michael@0: mul qword ptr [-200+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-416+rbp] michael@0: mul qword ptr [-208+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-408+rbp] michael@0: mul qword ptr [-216+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-400+rbp] michael@0: mul qword ptr [-224+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-392+rbp] michael@0: mul qword ptr [-232+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-384+rbp] michael@0: mul qword ptr [-240+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-376+rbp] michael@0: mul qword ptr [-248+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-368+rbp] michael@0: mul qword ptr [-256+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-360+rbp] michael@0: mul qword ptr [-264+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-352+rbp] michael@0: mul qword ptr [-272+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-344+rbp] michael@0: mul qword ptr [-280+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov r10, rdi michael@0: mov r11, rcx michael@0: mov rax, qword ptr [-336+rbp] michael@0: mul qword ptr [-288+rbp] michael@0: add rsi, rax michael@0: adc r10, rdx michael@0: adc r11, 0 michael@0: mov qword ptr [208+r9], rsi michael@0: mov rdi, r11 michael@0: mov rcx, r10 michael@0: mov rsi, r8 michael@0: mov rax, qword ptr [-544+rbp] michael@0: mul qword ptr [-72+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-536+rbp] michael@0: mul qword ptr [-80+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-528+rbp] michael@0: mul qword ptr [-88+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-520+rbp] michael@0: mul qword ptr [-96+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-512+rbp] michael@0: mul qword ptr [-104+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-504+rbp] michael@0: mul qword ptr [-112+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-496+rbp] michael@0: mul qword ptr [-120+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-488+rbp] michael@0: mul qword ptr [-128+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-480+rbp] michael@0: mul qword ptr [-136+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-472+rbp] michael@0: mul qword ptr [-144+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-464+rbp] michael@0: mul qword ptr [-152+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-456+rbp] michael@0: mul qword ptr [-160+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-448+rbp] michael@0: mul qword ptr [-168+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-440+rbp] michael@0: mul qword ptr [-176+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-432+rbp] michael@0: mul qword ptr [-184+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-424+rbp] michael@0: mul qword ptr [-192+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-416+rbp] michael@0: mul qword ptr [-200+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-408+rbp] michael@0: mul qword ptr [-208+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-400+rbp] michael@0: mul qword ptr [-216+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-392+rbp] michael@0: mul qword ptr [-224+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-384+rbp] michael@0: mul qword ptr [-232+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-376+rbp] michael@0: mul qword ptr [-240+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-368+rbp] michael@0: mul qword ptr [-248+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-360+rbp] michael@0: mul qword ptr [-256+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-352+rbp] michael@0: mul qword ptr [-264+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-344+rbp] michael@0: mul qword ptr [-272+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-336+rbp] michael@0: mul qword ptr [-280+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov r10, rdi michael@0: mov r11, rsi michael@0: mov rax, qword ptr [-328+rbp] michael@0: mul qword ptr [-288+rbp] michael@0: add rcx, rax michael@0: adc r10, rdx michael@0: adc r11, 0 michael@0: mov qword ptr [216+r9], rcx michael@0: mov rdi, r11 michael@0: mov rsi, r10 michael@0: mov rcx, r8 michael@0: mov rax, qword ptr [-544+rbp] michael@0: mul qword ptr [-64+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-536+rbp] michael@0: mul qword ptr [-72+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-528+rbp] michael@0: mul qword ptr [-80+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-520+rbp] michael@0: mul qword ptr [-88+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-512+rbp] michael@0: mul qword ptr [-96+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-504+rbp] michael@0: mul qword ptr [-104+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-496+rbp] michael@0: mul qword ptr [-112+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-488+rbp] michael@0: mul qword ptr [-120+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-480+rbp] michael@0: mul qword ptr [-128+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-472+rbp] michael@0: mul qword ptr [-136+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-464+rbp] michael@0: mul qword ptr [-144+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-456+rbp] michael@0: mul qword ptr [-152+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-448+rbp] michael@0: mul qword ptr [-160+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-440+rbp] michael@0: mul qword ptr [-168+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-432+rbp] michael@0: mul qword ptr [-176+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-424+rbp] michael@0: mul qword ptr [-184+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-416+rbp] michael@0: mul qword ptr [-192+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-408+rbp] michael@0: mul qword ptr [-200+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-400+rbp] michael@0: mul qword ptr [-208+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-392+rbp] michael@0: mul qword ptr [-216+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-384+rbp] michael@0: mul qword ptr [-224+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-376+rbp] michael@0: mul qword ptr [-232+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-368+rbp] michael@0: mul qword ptr [-240+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-360+rbp] michael@0: mul qword ptr [-248+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-352+rbp] michael@0: mul qword ptr [-256+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-344+rbp] michael@0: mul qword ptr [-264+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-336+rbp] michael@0: mul qword ptr [-272+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-328+rbp] michael@0: mul qword ptr [-280+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov r10, rdi michael@0: mov r11, rcx michael@0: mov rax, qword ptr [-320+rbp] michael@0: mul qword ptr [-288+rbp] michael@0: add rsi, rax michael@0: adc r10, rdx michael@0: adc r11, 0 michael@0: mov qword ptr [224+r9], rsi michael@0: mov rdi, r11 michael@0: mov rcx, r10 michael@0: mov rsi, r8 michael@0: mov rax, qword ptr [-544+rbp] michael@0: mul qword ptr [-56+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-536+rbp] michael@0: mul qword ptr [-64+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-528+rbp] michael@0: mul qword ptr [-72+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-520+rbp] michael@0: mul qword ptr [-80+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-512+rbp] michael@0: mul qword ptr [-88+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-504+rbp] michael@0: mul qword ptr [-96+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-496+rbp] michael@0: mul qword ptr [-104+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-488+rbp] michael@0: mul qword ptr [-112+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-480+rbp] michael@0: mul qword ptr [-120+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-472+rbp] michael@0: mul qword ptr [-128+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-464+rbp] michael@0: mul qword ptr [-136+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-456+rbp] michael@0: mul qword ptr [-144+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-448+rbp] michael@0: mul qword ptr [-152+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-440+rbp] michael@0: mul qword ptr [-160+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-432+rbp] michael@0: mul qword ptr [-168+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-424+rbp] michael@0: mul qword ptr [-176+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-416+rbp] michael@0: mul qword ptr [-184+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-408+rbp] michael@0: mul qword ptr [-192+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-400+rbp] michael@0: mul qword ptr [-200+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-392+rbp] michael@0: mul qword ptr [-208+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-384+rbp] michael@0: mul qword ptr [-216+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-376+rbp] michael@0: mul qword ptr [-224+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-368+rbp] michael@0: mul qword ptr [-232+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-360+rbp] michael@0: mul qword ptr [-240+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-352+rbp] michael@0: mul qword ptr [-248+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-344+rbp] michael@0: mul qword ptr [-256+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-336+rbp] michael@0: mul qword ptr [-264+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-328+rbp] michael@0: mul qword ptr [-272+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-320+rbp] michael@0: mul qword ptr [-280+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov r10, rdi michael@0: mov r11, rsi michael@0: mov rax, qword ptr [-312+rbp] michael@0: mul qword ptr [-288+rbp] michael@0: add rcx, rax michael@0: adc r10, rdx michael@0: adc r11, 0 michael@0: mov qword ptr [232+r9], rcx michael@0: mov rdi, r11 michael@0: mov rsi, r10 michael@0: mov rcx, r8 michael@0: mov rax, qword ptr [-544+rbp] michael@0: mul qword ptr [-48+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-536+rbp] michael@0: mul qword ptr [-56+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-528+rbp] michael@0: mul qword ptr [-64+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-520+rbp] michael@0: mul qword ptr [-72+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-512+rbp] michael@0: mul qword ptr [-80+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-504+rbp] michael@0: mul qword ptr [-88+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-496+rbp] michael@0: mul qword ptr [-96+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-488+rbp] michael@0: mul qword ptr [-104+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-480+rbp] michael@0: mul qword ptr [-112+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-472+rbp] michael@0: mul qword ptr [-120+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-464+rbp] michael@0: mul qword ptr [-128+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-456+rbp] michael@0: mul qword ptr [-136+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-448+rbp] michael@0: mul qword ptr [-144+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-440+rbp] michael@0: mul qword ptr [-152+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-432+rbp] michael@0: mul qword ptr [-160+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-424+rbp] michael@0: mul qword ptr [-168+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-416+rbp] michael@0: mul qword ptr [-176+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-408+rbp] michael@0: mul qword ptr [-184+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-400+rbp] michael@0: mul qword ptr [-192+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-392+rbp] michael@0: mul qword ptr [-200+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-384+rbp] michael@0: mul qword ptr [-208+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-376+rbp] michael@0: mul qword ptr [-216+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-368+rbp] michael@0: mul qword ptr [-224+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-360+rbp] michael@0: mul qword ptr [-232+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-352+rbp] michael@0: mul qword ptr [-240+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-344+rbp] michael@0: mul qword ptr [-248+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-336+rbp] michael@0: mul qword ptr [-256+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-328+rbp] michael@0: mul qword ptr [-264+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-320+rbp] michael@0: mul qword ptr [-272+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-312+rbp] michael@0: mul qword ptr [-280+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov r10, rdi michael@0: mov r11, rcx michael@0: mov rax, qword ptr [-304+rbp] michael@0: mul qword ptr [-288+rbp] michael@0: add rsi, rax michael@0: adc r10, rdx michael@0: adc r11, 0 michael@0: mov qword ptr [240+r9], rsi michael@0: mov rdi, r11 michael@0: mov rcx, r10 michael@0: mov rsi, r8 michael@0: mov rax, qword ptr [-544+rbp] michael@0: mul qword ptr [-40+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-536+rbp] michael@0: mul qword ptr [-48+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-528+rbp] michael@0: mul qword ptr [-56+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-520+rbp] michael@0: mul qword ptr [-64+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-512+rbp] michael@0: mul qword ptr [-72+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-504+rbp] michael@0: mul qword ptr [-80+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-496+rbp] michael@0: mul qword ptr [-88+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-488+rbp] michael@0: mul qword ptr [-96+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-480+rbp] michael@0: mul qword ptr [-104+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-472+rbp] michael@0: mul qword ptr [-112+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-464+rbp] michael@0: mul qword ptr [-120+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-456+rbp] michael@0: mul qword ptr [-128+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-448+rbp] michael@0: mul qword ptr [-136+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-440+rbp] michael@0: mul qword ptr [-144+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-432+rbp] michael@0: mul qword ptr [-152+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-424+rbp] michael@0: mul qword ptr [-160+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-416+rbp] michael@0: mul qword ptr [-168+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-408+rbp] michael@0: mul qword ptr [-176+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-400+rbp] michael@0: mul qword ptr [-184+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-392+rbp] michael@0: mul qword ptr [-192+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-384+rbp] michael@0: mul qword ptr [-200+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-376+rbp] michael@0: mul qword ptr [-208+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-368+rbp] michael@0: mul qword ptr [-216+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-360+rbp] michael@0: mul qword ptr [-224+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-352+rbp] michael@0: mul qword ptr [-232+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-344+rbp] michael@0: mul qword ptr [-240+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-336+rbp] michael@0: mul qword ptr [-248+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-328+rbp] michael@0: mul qword ptr [-256+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-320+rbp] michael@0: mul qword ptr [-264+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-312+rbp] michael@0: mul qword ptr [-272+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-304+rbp] michael@0: mul qword ptr [-280+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov r10, rdi michael@0: mov r11, rsi michael@0: mov rax, qword ptr [-296+rbp] michael@0: mul qword ptr [-288+rbp] michael@0: add rcx, rax michael@0: adc r10, rdx michael@0: adc r11, 0 michael@0: mov qword ptr [248+r9], rcx michael@0: mov rdi, r11 michael@0: mov rsi, r10 michael@0: mov rcx, r8 michael@0: mov rax, qword ptr [-536+rbp] michael@0: mul qword ptr [-40+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-528+rbp] michael@0: mul qword ptr [-48+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-520+rbp] michael@0: mul qword ptr [-56+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-512+rbp] michael@0: mul qword ptr [-64+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-504+rbp] michael@0: mul qword ptr [-72+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-496+rbp] michael@0: mul qword ptr [-80+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-488+rbp] michael@0: mul qword ptr [-88+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-480+rbp] michael@0: mul qword ptr [-96+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-472+rbp] michael@0: mul qword ptr [-104+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-464+rbp] michael@0: mul qword ptr [-112+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-456+rbp] michael@0: mul qword ptr [-120+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-448+rbp] michael@0: mul qword ptr [-128+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-440+rbp] michael@0: mul qword ptr [-136+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-432+rbp] michael@0: mul qword ptr [-144+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-424+rbp] michael@0: mul qword ptr [-152+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-416+rbp] michael@0: mul qword ptr [-160+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-408+rbp] michael@0: mul qword ptr [-168+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-400+rbp] michael@0: mul qword ptr [-176+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-392+rbp] michael@0: mul qword ptr [-184+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-384+rbp] michael@0: mul qword ptr [-192+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-376+rbp] michael@0: mul qword ptr [-200+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-368+rbp] michael@0: mul qword ptr [-208+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-360+rbp] michael@0: mul qword ptr [-216+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-352+rbp] michael@0: mul qword ptr [-224+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-344+rbp] michael@0: mul qword ptr [-232+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-336+rbp] michael@0: mul qword ptr [-240+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-328+rbp] michael@0: mul qword ptr [-248+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-320+rbp] michael@0: mul qword ptr [-256+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-312+rbp] michael@0: mul qword ptr [-264+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-304+rbp] michael@0: mul qword ptr [-272+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov r10, rdi michael@0: mov r11, rcx michael@0: mov rax, qword ptr [-296+rbp] michael@0: mul qword ptr [-280+rbp] michael@0: add rsi, rax michael@0: adc r10, rdx michael@0: adc r11, 0 michael@0: mov qword ptr [256+r9], rsi michael@0: mov rdi, r11 michael@0: mov rcx, r10 michael@0: mov rsi, r8 michael@0: mov rax, qword ptr [-528+rbp] michael@0: mul qword ptr [-40+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-520+rbp] michael@0: mul qword ptr [-48+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-512+rbp] michael@0: mul qword ptr [-56+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-504+rbp] michael@0: mul qword ptr [-64+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-496+rbp] michael@0: mul qword ptr [-72+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-488+rbp] michael@0: mul qword ptr [-80+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-480+rbp] michael@0: mul qword ptr [-88+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-472+rbp] michael@0: mul qword ptr [-96+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-464+rbp] michael@0: mul qword ptr [-104+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-456+rbp] michael@0: mul qword ptr [-112+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-448+rbp] michael@0: mul qword ptr [-120+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-440+rbp] michael@0: mul qword ptr [-128+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-432+rbp] michael@0: mul qword ptr [-136+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-424+rbp] michael@0: mul qword ptr [-144+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-416+rbp] michael@0: mul qword ptr [-152+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-408+rbp] michael@0: mul qword ptr [-160+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-400+rbp] michael@0: mul qword ptr [-168+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-392+rbp] michael@0: mul qword ptr [-176+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-384+rbp] michael@0: mul qword ptr [-184+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-376+rbp] michael@0: mul qword ptr [-192+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-368+rbp] michael@0: mul qword ptr [-200+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-360+rbp] michael@0: mul qword ptr [-208+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-352+rbp] michael@0: mul qword ptr [-216+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-344+rbp] michael@0: mul qword ptr [-224+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-336+rbp] michael@0: mul qword ptr [-232+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-328+rbp] michael@0: mul qword ptr [-240+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-320+rbp] michael@0: mul qword ptr [-248+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-312+rbp] michael@0: mul qword ptr [-256+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-304+rbp] michael@0: mul qword ptr [-264+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov r10, rdi michael@0: mov r11, rsi michael@0: mov rax, qword ptr [-296+rbp] michael@0: mul qword ptr [-272+rbp] michael@0: add rcx, rax michael@0: adc r10, rdx michael@0: adc r11, 0 michael@0: mov qword ptr [264+r9], rcx michael@0: mov rdi, r11 michael@0: mov rsi, r10 michael@0: mov rcx, r8 michael@0: mov rax, qword ptr [-520+rbp] michael@0: mul qword ptr [-40+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-512+rbp] michael@0: mul qword ptr [-48+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-504+rbp] michael@0: mul qword ptr [-56+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-496+rbp] michael@0: mul qword ptr [-64+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-488+rbp] michael@0: mul qword ptr [-72+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-480+rbp] michael@0: mul qword ptr [-80+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-472+rbp] michael@0: mul qword ptr [-88+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-464+rbp] michael@0: mul qword ptr [-96+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-456+rbp] michael@0: mul qword ptr [-104+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-448+rbp] michael@0: mul qword ptr [-112+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-440+rbp] michael@0: mul qword ptr [-120+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-432+rbp] michael@0: mul qword ptr [-128+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-424+rbp] michael@0: mul qword ptr [-136+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-416+rbp] michael@0: mul qword ptr [-144+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-408+rbp] michael@0: mul qword ptr [-152+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-400+rbp] michael@0: mul qword ptr [-160+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-392+rbp] michael@0: mul qword ptr [-168+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-384+rbp] michael@0: mul qword ptr [-176+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-376+rbp] michael@0: mul qword ptr [-184+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-368+rbp] michael@0: mul qword ptr [-192+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-360+rbp] michael@0: mul qword ptr [-200+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-352+rbp] michael@0: mul qword ptr [-208+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-344+rbp] michael@0: mul qword ptr [-216+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-336+rbp] michael@0: mul qword ptr [-224+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-328+rbp] michael@0: mul qword ptr [-232+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-320+rbp] michael@0: mul qword ptr [-240+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-312+rbp] michael@0: mul qword ptr [-248+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-304+rbp] michael@0: mul qword ptr [-256+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov r10, rdi michael@0: mov r11, rcx michael@0: mov rax, qword ptr [-296+rbp] michael@0: mul qword ptr [-264+rbp] michael@0: add rsi, rax michael@0: adc r10, rdx michael@0: adc r11, 0 michael@0: mov qword ptr [272+r9], rsi michael@0: mov rdi, r11 michael@0: mov rcx, r10 michael@0: mov rsi, r8 michael@0: mov rax, qword ptr [-512+rbp] michael@0: mul qword ptr [-40+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-504+rbp] michael@0: mul qword ptr [-48+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-496+rbp] michael@0: mul qword ptr [-56+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-488+rbp] michael@0: mul qword ptr [-64+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-480+rbp] michael@0: mul qword ptr [-72+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-472+rbp] michael@0: mul qword ptr [-80+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-464+rbp] michael@0: mul qword ptr [-88+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-456+rbp] michael@0: mul qword ptr [-96+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-448+rbp] michael@0: mul qword ptr [-104+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-440+rbp] michael@0: mul qword ptr [-112+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-432+rbp] michael@0: mul qword ptr [-120+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-424+rbp] michael@0: mul qword ptr [-128+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-416+rbp] michael@0: mul qword ptr [-136+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-408+rbp] michael@0: mul qword ptr [-144+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-400+rbp] michael@0: mul qword ptr [-152+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-392+rbp] michael@0: mul qword ptr [-160+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-384+rbp] michael@0: mul qword ptr [-168+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-376+rbp] michael@0: mul qword ptr [-176+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-368+rbp] michael@0: mul qword ptr [-184+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-360+rbp] michael@0: mul qword ptr [-192+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-352+rbp] michael@0: mul qword ptr [-200+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-344+rbp] michael@0: mul qword ptr [-208+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-336+rbp] michael@0: mul qword ptr [-216+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-328+rbp] michael@0: mul qword ptr [-224+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-320+rbp] michael@0: mul qword ptr [-232+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-312+rbp] michael@0: mul qword ptr [-240+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-304+rbp] michael@0: mul qword ptr [-248+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov r10, rdi michael@0: mov r11, rsi michael@0: mov rax, qword ptr [-296+rbp] michael@0: mul qword ptr [-256+rbp] michael@0: add rcx, rax michael@0: adc r10, rdx michael@0: adc r11, 0 michael@0: mov qword ptr [280+r9], rcx michael@0: mov rdi, r11 michael@0: mov rsi, r10 michael@0: mov rcx, r8 michael@0: mov rax, qword ptr [-504+rbp] michael@0: mul qword ptr [-40+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-496+rbp] michael@0: mul qword ptr [-48+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-488+rbp] michael@0: mul qword ptr [-56+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-480+rbp] michael@0: mul qword ptr [-64+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-472+rbp] michael@0: mul qword ptr [-72+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-464+rbp] michael@0: mul qword ptr [-80+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-456+rbp] michael@0: mul qword ptr [-88+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-448+rbp] michael@0: mul qword ptr [-96+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-440+rbp] michael@0: mul qword ptr [-104+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-432+rbp] michael@0: mul qword ptr [-112+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-424+rbp] michael@0: mul qword ptr [-120+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-416+rbp] michael@0: mul qword ptr [-128+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-408+rbp] michael@0: mul qword ptr [-136+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-400+rbp] michael@0: mul qword ptr [-144+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-392+rbp] michael@0: mul qword ptr [-152+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-384+rbp] michael@0: mul qword ptr [-160+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-376+rbp] michael@0: mul qword ptr [-168+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-368+rbp] michael@0: mul qword ptr [-176+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-360+rbp] michael@0: mul qword ptr [-184+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-352+rbp] michael@0: mul qword ptr [-192+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-344+rbp] michael@0: mul qword ptr [-200+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-336+rbp] michael@0: mul qword ptr [-208+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-328+rbp] michael@0: mul qword ptr [-216+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-320+rbp] michael@0: mul qword ptr [-224+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-312+rbp] michael@0: mul qword ptr [-232+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-304+rbp] michael@0: mul qword ptr [-240+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov r10, rdi michael@0: mov r11, rcx michael@0: mov rax, qword ptr [-296+rbp] michael@0: mul qword ptr [-248+rbp] michael@0: add rsi, rax michael@0: adc r10, rdx michael@0: adc r11, 0 michael@0: mov qword ptr [288+r9], rsi michael@0: mov rdi, r11 michael@0: mov rcx, r10 michael@0: mov rsi, r8 michael@0: mov rax, qword ptr [-496+rbp] michael@0: mul qword ptr [-40+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-488+rbp] michael@0: mul qword ptr [-48+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-480+rbp] michael@0: mul qword ptr [-56+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-472+rbp] michael@0: mul qword ptr [-64+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-464+rbp] michael@0: mul qword ptr [-72+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-456+rbp] michael@0: mul qword ptr [-80+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-448+rbp] michael@0: mul qword ptr [-88+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-440+rbp] michael@0: mul qword ptr [-96+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-432+rbp] michael@0: mul qword ptr [-104+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-424+rbp] michael@0: mul qword ptr [-112+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-416+rbp] michael@0: mul qword ptr [-120+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-408+rbp] michael@0: mul qword ptr [-128+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-400+rbp] michael@0: mul qword ptr [-136+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-392+rbp] michael@0: mul qword ptr [-144+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-384+rbp] michael@0: mul qword ptr [-152+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-376+rbp] michael@0: mul qword ptr [-160+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-368+rbp] michael@0: mul qword ptr [-168+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-360+rbp] michael@0: mul qword ptr [-176+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-352+rbp] michael@0: mul qword ptr [-184+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-344+rbp] michael@0: mul qword ptr [-192+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-336+rbp] michael@0: mul qword ptr [-200+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-328+rbp] michael@0: mul qword ptr [-208+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-320+rbp] michael@0: mul qword ptr [-216+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-312+rbp] michael@0: mul qword ptr [-224+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-304+rbp] michael@0: mul qword ptr [-232+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov r10, rdi michael@0: mov r11, rsi michael@0: mov rax, qword ptr [-296+rbp] michael@0: mul qword ptr [-240+rbp] michael@0: add rcx, rax michael@0: adc r10, rdx michael@0: adc r11, 0 michael@0: mov qword ptr [296+r9], rcx michael@0: mov rdi, r11 michael@0: mov rsi, r10 michael@0: mov rcx, r8 michael@0: mov rax, qword ptr [-488+rbp] michael@0: mul qword ptr [-40+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-480+rbp] michael@0: mul qword ptr [-48+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-472+rbp] michael@0: mul qword ptr [-56+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-464+rbp] michael@0: mul qword ptr [-64+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-456+rbp] michael@0: mul qword ptr [-72+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-448+rbp] michael@0: mul qword ptr [-80+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-440+rbp] michael@0: mul qword ptr [-88+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-432+rbp] michael@0: mul qword ptr [-96+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-424+rbp] michael@0: mul qword ptr [-104+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-416+rbp] michael@0: mul qword ptr [-112+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-408+rbp] michael@0: mul qword ptr [-120+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-400+rbp] michael@0: mul qword ptr [-128+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-392+rbp] michael@0: mul qword ptr [-136+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-384+rbp] michael@0: mul qword ptr [-144+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-376+rbp] michael@0: mul qword ptr [-152+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-368+rbp] michael@0: mul qword ptr [-160+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-360+rbp] michael@0: mul qword ptr [-168+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-352+rbp] michael@0: mul qword ptr [-176+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-344+rbp] michael@0: mul qword ptr [-184+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-336+rbp] michael@0: mul qword ptr [-192+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-328+rbp] michael@0: mul qword ptr [-200+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-320+rbp] michael@0: mul qword ptr [-208+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-312+rbp] michael@0: mul qword ptr [-216+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-304+rbp] michael@0: mul qword ptr [-224+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov r10, rdi michael@0: mov r11, rcx michael@0: mov rax, qword ptr [-296+rbp] michael@0: mul qword ptr [-232+rbp] michael@0: add rsi, rax michael@0: adc r10, rdx michael@0: adc r11, 0 michael@0: mov qword ptr [304+r9], rsi michael@0: mov rdi, r11 michael@0: mov rcx, r10 michael@0: mov rsi, r8 michael@0: mov rax, qword ptr [-480+rbp] michael@0: mul qword ptr [-40+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-472+rbp] michael@0: mul qword ptr [-48+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-464+rbp] michael@0: mul qword ptr [-56+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-456+rbp] michael@0: mul qword ptr [-64+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-448+rbp] michael@0: mul qword ptr [-72+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-440+rbp] michael@0: mul qword ptr [-80+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-432+rbp] michael@0: mul qword ptr [-88+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-424+rbp] michael@0: mul qword ptr [-96+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-416+rbp] michael@0: mul qword ptr [-104+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-408+rbp] michael@0: mul qword ptr [-112+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-400+rbp] michael@0: mul qword ptr [-120+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-392+rbp] michael@0: mul qword ptr [-128+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-384+rbp] michael@0: mul qword ptr [-136+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-376+rbp] michael@0: mul qword ptr [-144+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-368+rbp] michael@0: mul qword ptr [-152+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-360+rbp] michael@0: mul qword ptr [-160+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-352+rbp] michael@0: mul qword ptr [-168+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-344+rbp] michael@0: mul qword ptr [-176+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-336+rbp] michael@0: mul qword ptr [-184+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-328+rbp] michael@0: mul qword ptr [-192+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-320+rbp] michael@0: mul qword ptr [-200+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-312+rbp] michael@0: mul qword ptr [-208+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-304+rbp] michael@0: mul qword ptr [-216+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov r10, rdi michael@0: mov r11, rsi michael@0: mov rax, qword ptr [-296+rbp] michael@0: mul qword ptr [-224+rbp] michael@0: add rcx, rax michael@0: adc r10, rdx michael@0: adc r11, 0 michael@0: mov qword ptr [312+r9], rcx michael@0: mov rdi, r11 michael@0: mov rsi, r10 michael@0: mov rcx, r8 michael@0: mov rax, qword ptr [-472+rbp] michael@0: mul qword ptr [-40+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-464+rbp] michael@0: mul qword ptr [-48+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-456+rbp] michael@0: mul qword ptr [-56+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-448+rbp] michael@0: mul qword ptr [-64+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-440+rbp] michael@0: mul qword ptr [-72+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-432+rbp] michael@0: mul qword ptr [-80+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-424+rbp] michael@0: mul qword ptr [-88+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-416+rbp] michael@0: mul qword ptr [-96+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-408+rbp] michael@0: mul qword ptr [-104+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-400+rbp] michael@0: mul qword ptr [-112+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-392+rbp] michael@0: mul qword ptr [-120+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-384+rbp] michael@0: mul qword ptr [-128+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-376+rbp] michael@0: mul qword ptr [-136+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-368+rbp] michael@0: mul qword ptr [-144+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-360+rbp] michael@0: mul qword ptr [-152+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-352+rbp] michael@0: mul qword ptr [-160+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-344+rbp] michael@0: mul qword ptr [-168+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-336+rbp] michael@0: mul qword ptr [-176+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-328+rbp] michael@0: mul qword ptr [-184+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-320+rbp] michael@0: mul qword ptr [-192+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-312+rbp] michael@0: mul qword ptr [-200+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-304+rbp] michael@0: mul qword ptr [-208+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov r10, rdi michael@0: mov r11, rcx michael@0: mov rax, qword ptr [-296+rbp] michael@0: mul qword ptr [-216+rbp] michael@0: add rsi, rax michael@0: adc r10, rdx michael@0: adc r11, 0 michael@0: mov qword ptr [320+r9], rsi michael@0: mov rdi, r11 michael@0: mov rcx, r10 michael@0: mov rsi, r8 michael@0: mov rax, qword ptr [-464+rbp] michael@0: mul qword ptr [-40+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-456+rbp] michael@0: mul qword ptr [-48+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-448+rbp] michael@0: mul qword ptr [-56+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-440+rbp] michael@0: mul qword ptr [-64+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-432+rbp] michael@0: mul qword ptr [-72+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-424+rbp] michael@0: mul qword ptr [-80+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-416+rbp] michael@0: mul qword ptr [-88+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-408+rbp] michael@0: mul qword ptr [-96+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-400+rbp] michael@0: mul qword ptr [-104+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-392+rbp] michael@0: mul qword ptr [-112+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-384+rbp] michael@0: mul qword ptr [-120+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-376+rbp] michael@0: mul qword ptr [-128+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-368+rbp] michael@0: mul qword ptr [-136+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-360+rbp] michael@0: mul qword ptr [-144+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-352+rbp] michael@0: mul qword ptr [-152+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-344+rbp] michael@0: mul qword ptr [-160+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-336+rbp] michael@0: mul qword ptr [-168+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-328+rbp] michael@0: mul qword ptr [-176+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-320+rbp] michael@0: mul qword ptr [-184+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-312+rbp] michael@0: mul qword ptr [-192+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-304+rbp] michael@0: mul qword ptr [-200+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov r10, rdi michael@0: mov r11, rsi michael@0: mov rax, qword ptr [-296+rbp] michael@0: mul qword ptr [-208+rbp] michael@0: add rcx, rax michael@0: adc r10, rdx michael@0: adc r11, 0 michael@0: mov qword ptr [328+r9], rcx michael@0: mov rdi, r11 michael@0: mov r11, r10 michael@0: mov r10, r8 michael@0: mov rax, qword ptr [-456+rbp] michael@0: mul qword ptr [-40+rbp] michael@0: add r11, rax michael@0: adc rdi, rdx michael@0: adc r10, 0 michael@0: mov rax, qword ptr [-448+rbp] michael@0: mul qword ptr [-48+rbp] michael@0: add r11, rax michael@0: adc rdi, rdx michael@0: adc r10, 0 michael@0: mov rax, qword ptr [-440+rbp] michael@0: mul qword ptr [-56+rbp] michael@0: add r11, rax michael@0: adc rdi, rdx michael@0: adc r10, 0 michael@0: mov rax, qword ptr [-432+rbp] michael@0: mul qword ptr [-64+rbp] michael@0: add r11, rax michael@0: adc rdi, rdx michael@0: adc r10, 0 michael@0: mov rax, qword ptr [-424+rbp] michael@0: mul qword ptr [-72+rbp] michael@0: add r11, rax michael@0: adc rdi, rdx michael@0: adc r10, 0 michael@0: mov rax, qword ptr [-416+rbp] michael@0: mul qword ptr [-80+rbp] michael@0: add r11, rax michael@0: adc rdi, rdx michael@0: adc r10, 0 michael@0: mov rax, qword ptr [-408+rbp] michael@0: mul qword ptr [-88+rbp] michael@0: add r11, rax michael@0: adc rdi, rdx michael@0: adc r10, 0 michael@0: mov rax, qword ptr [-400+rbp] michael@0: mul qword ptr [-96+rbp] michael@0: add r11, rax michael@0: adc rdi, rdx michael@0: adc r10, 0 michael@0: mov rax, qword ptr [-392+rbp] michael@0: mul qword ptr [-104+rbp] michael@0: add r11, rax michael@0: adc rdi, rdx michael@0: adc r10, 0 michael@0: mov rax, qword ptr [-384+rbp] michael@0: mul qword ptr [-112+rbp] michael@0: add r11, rax michael@0: adc rdi, rdx michael@0: adc r10, 0 michael@0: mov rax, qword ptr [-376+rbp] michael@0: mul qword ptr [-120+rbp] michael@0: add r11, rax michael@0: adc rdi, rdx michael@0: adc r10, 0 michael@0: mov rax, qword ptr [-368+rbp] michael@0: mul qword ptr [-128+rbp] michael@0: add r11, rax michael@0: adc rdi, rdx michael@0: adc r10, 0 michael@0: mov rax, qword ptr [-360+rbp] michael@0: mul qword ptr [-136+rbp] michael@0: add r11, rax michael@0: adc rdi, rdx michael@0: adc r10, 0 michael@0: mov rax, qword ptr [-352+rbp] michael@0: mul qword ptr [-144+rbp] michael@0: add r11, rax michael@0: adc rdi, rdx michael@0: adc r10, 0 michael@0: mov rax, qword ptr [-344+rbp] michael@0: mul qword ptr [-152+rbp] michael@0: add r11, rax michael@0: adc rdi, rdx michael@0: adc r10, 0 michael@0: mov rax, qword ptr [-336+rbp] michael@0: mul qword ptr [-160+rbp] michael@0: add r11, rax michael@0: adc rdi, rdx michael@0: adc r10, 0 michael@0: mov rax, qword ptr [-328+rbp] michael@0: mul qword ptr [-168+rbp] michael@0: add r11, rax michael@0: adc rdi, rdx michael@0: adc r10, 0 michael@0: mov rax, qword ptr [-320+rbp] michael@0: mul qword ptr [-176+rbp] michael@0: add r11, rax michael@0: adc rdi, rdx michael@0: adc r10, 0 michael@0: mov rax, qword ptr [-312+rbp] michael@0: mul qword ptr [-184+rbp] michael@0: add r11, rax michael@0: adc rdi, rdx michael@0: adc r10, 0 michael@0: mov rax, qword ptr [-304+rbp] michael@0: mul qword ptr [-192+rbp] michael@0: add r11, rax michael@0: adc rdi, rdx michael@0: adc r10, 0 michael@0: mov rax, qword ptr [-296+rbp] michael@0: mul qword ptr [-200+rbp] michael@0: add r11, rax michael@0: adc rdi, rdx michael@0: adc r10, 0 michael@0: mov qword ptr [336+r9], r11 michael@0: mov rsi, r10 michael@0: mov r10, r8 michael@0: mov rax, qword ptr [-448+rbp] michael@0: mul qword ptr [-40+rbp] michael@0: add rdi, rax michael@0: adc rsi, rdx michael@0: adc r10, 0 michael@0: mov rcx, r10 michael@0: mov rax, qword ptr [-440+rbp] michael@0: mul qword ptr [-48+rbp] michael@0: add rdi, rax michael@0: adc rsi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-432+rbp] michael@0: mul qword ptr [-56+rbp] michael@0: add rdi, rax michael@0: adc rsi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-424+rbp] michael@0: mul qword ptr [-64+rbp] michael@0: add rdi, rax michael@0: adc rsi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-416+rbp] michael@0: mul qword ptr [-72+rbp] michael@0: add rdi, rax michael@0: adc rsi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-408+rbp] michael@0: mul qword ptr [-80+rbp] michael@0: add rdi, rax michael@0: adc rsi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-400+rbp] michael@0: mul qword ptr [-88+rbp] michael@0: add rdi, rax michael@0: adc rsi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-392+rbp] michael@0: mul qword ptr [-96+rbp] michael@0: add rdi, rax michael@0: adc rsi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-384+rbp] michael@0: mul qword ptr [-104+rbp] michael@0: add rdi, rax michael@0: adc rsi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-376+rbp] michael@0: mul qword ptr [-112+rbp] michael@0: add rdi, rax michael@0: adc rsi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-368+rbp] michael@0: mul qword ptr [-120+rbp] michael@0: add rdi, rax michael@0: adc rsi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-360+rbp] michael@0: mul qword ptr [-128+rbp] michael@0: add rdi, rax michael@0: adc rsi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-352+rbp] michael@0: mul qword ptr [-136+rbp] michael@0: add rdi, rax michael@0: adc rsi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-344+rbp] michael@0: mul qword ptr [-144+rbp] michael@0: add rdi, rax michael@0: adc rsi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-336+rbp] michael@0: mul qword ptr [-152+rbp] michael@0: add rdi, rax michael@0: adc rsi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-328+rbp] michael@0: mul qword ptr [-160+rbp] michael@0: add rdi, rax michael@0: adc rsi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-320+rbp] michael@0: mul qword ptr [-168+rbp] michael@0: add rdi, rax michael@0: adc rsi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-312+rbp] michael@0: mul qword ptr [-176+rbp] michael@0: add rdi, rax michael@0: adc rsi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-304+rbp] michael@0: mul qword ptr [-184+rbp] michael@0: add rdi, rax michael@0: adc rsi, rdx michael@0: adc rcx, 0 michael@0: mov r11, rsi michael@0: mov r10, rcx michael@0: mov rax, qword ptr [-296+rbp] michael@0: mul qword ptr [-192+rbp] michael@0: add rdi, rax michael@0: adc r11, rdx michael@0: adc r10, 0 michael@0: mov qword ptr [344+r9], rdi michael@0: mov rcx, r11 michael@0: mov rdi, r10 michael@0: mov r11, r8 michael@0: mov rax, qword ptr [-440+rbp] michael@0: mul qword ptr [-40+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc r11, 0 michael@0: mov rsi, r11 michael@0: mov rax, qword ptr [-432+rbp] michael@0: mul qword ptr [-48+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-424+rbp] michael@0: mul qword ptr [-56+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-416+rbp] michael@0: mul qword ptr [-64+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-408+rbp] michael@0: mul qword ptr [-72+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-400+rbp] michael@0: mul qword ptr [-80+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-392+rbp] michael@0: mul qword ptr [-88+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-384+rbp] michael@0: mul qword ptr [-96+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-376+rbp] michael@0: mul qword ptr [-104+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-368+rbp] michael@0: mul qword ptr [-112+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-360+rbp] michael@0: mul qword ptr [-120+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-352+rbp] michael@0: mul qword ptr [-128+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-344+rbp] michael@0: mul qword ptr [-136+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-336+rbp] michael@0: mul qword ptr [-144+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-328+rbp] michael@0: mul qword ptr [-152+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-320+rbp] michael@0: mul qword ptr [-160+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-312+rbp] michael@0: mul qword ptr [-168+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-304+rbp] michael@0: mul qword ptr [-176+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov r10, rdi michael@0: mov r11, rsi michael@0: mov rax, qword ptr [-296+rbp] michael@0: mul qword ptr [-184+rbp] michael@0: add rcx, rax michael@0: adc r10, rdx michael@0: adc r11, 0 michael@0: mov qword ptr [352+r9], rcx michael@0: mov rdi, r11 michael@0: mov rsi, r10 michael@0: mov rcx, r8 michael@0: mov rax, qword ptr [-432+rbp] michael@0: mul qword ptr [-40+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-424+rbp] michael@0: mul qword ptr [-48+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-416+rbp] michael@0: mul qword ptr [-56+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-408+rbp] michael@0: mul qword ptr [-64+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-400+rbp] michael@0: mul qword ptr [-72+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-392+rbp] michael@0: mul qword ptr [-80+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-384+rbp] michael@0: mul qword ptr [-88+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-376+rbp] michael@0: mul qword ptr [-96+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-368+rbp] michael@0: mul qword ptr [-104+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-360+rbp] michael@0: mul qword ptr [-112+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-352+rbp] michael@0: mul qword ptr [-120+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-344+rbp] michael@0: mul qword ptr [-128+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-336+rbp] michael@0: mul qword ptr [-136+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-328+rbp] michael@0: mul qword ptr [-144+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-320+rbp] michael@0: mul qword ptr [-152+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-312+rbp] michael@0: mul qword ptr [-160+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-304+rbp] michael@0: mul qword ptr [-168+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov r10, rdi michael@0: mov r11, rcx michael@0: mov rax, qword ptr [-296+rbp] michael@0: mul qword ptr [-176+rbp] michael@0: add rsi, rax michael@0: adc r10, rdx michael@0: adc r11, 0 michael@0: mov qword ptr [360+r9], rsi michael@0: mov rdi, r11 michael@0: mov rcx, r10 michael@0: mov rsi, r8 michael@0: mov rax, qword ptr [-424+rbp] michael@0: mul qword ptr [-40+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-416+rbp] michael@0: mul qword ptr [-48+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-408+rbp] michael@0: mul qword ptr [-56+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-400+rbp] michael@0: mul qword ptr [-64+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-392+rbp] michael@0: mul qword ptr [-72+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-384+rbp] michael@0: mul qword ptr [-80+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-376+rbp] michael@0: mul qword ptr [-88+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-368+rbp] michael@0: mul qword ptr [-96+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-360+rbp] michael@0: mul qword ptr [-104+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-352+rbp] michael@0: mul qword ptr [-112+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-344+rbp] michael@0: mul qword ptr [-120+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-336+rbp] michael@0: mul qword ptr [-128+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-328+rbp] michael@0: mul qword ptr [-136+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-320+rbp] michael@0: mul qword ptr [-144+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-312+rbp] michael@0: mul qword ptr [-152+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-304+rbp] michael@0: mul qword ptr [-160+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov r10, rdi michael@0: mov r11, rsi michael@0: mov rax, qword ptr [-296+rbp] michael@0: mul qword ptr [-168+rbp] michael@0: add rcx, rax michael@0: adc r10, rdx michael@0: adc r11, 0 michael@0: mov qword ptr [368+r9], rcx michael@0: mov rdi, r11 michael@0: mov rsi, r10 michael@0: mov rcx, r8 michael@0: mov rax, qword ptr [-416+rbp] michael@0: mul qword ptr [-40+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-408+rbp] michael@0: mul qword ptr [-48+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-400+rbp] michael@0: mul qword ptr [-56+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-392+rbp] michael@0: mul qword ptr [-64+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-384+rbp] michael@0: mul qword ptr [-72+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-376+rbp] michael@0: mul qword ptr [-80+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-368+rbp] michael@0: mul qword ptr [-88+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-360+rbp] michael@0: mul qword ptr [-96+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-352+rbp] michael@0: mul qword ptr [-104+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-344+rbp] michael@0: mul qword ptr [-112+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-336+rbp] michael@0: mul qword ptr [-120+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-328+rbp] michael@0: mul qword ptr [-128+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-320+rbp] michael@0: mul qword ptr [-136+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-312+rbp] michael@0: mul qword ptr [-144+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-304+rbp] michael@0: mul qword ptr [-152+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov r10, rdi michael@0: mov r11, rcx michael@0: mov rax, qword ptr [-296+rbp] michael@0: mul qword ptr [-160+rbp] michael@0: add rsi, rax michael@0: adc r10, rdx michael@0: adc r11, 0 michael@0: mov qword ptr [376+r9], rsi michael@0: mov rdi, r11 michael@0: mov rcx, r10 michael@0: mov rsi, r8 michael@0: mov rax, qword ptr [-408+rbp] michael@0: mul qword ptr [-40+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-400+rbp] michael@0: mul qword ptr [-48+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-392+rbp] michael@0: mul qword ptr [-56+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-384+rbp] michael@0: mul qword ptr [-64+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-376+rbp] michael@0: mul qword ptr [-72+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-368+rbp] michael@0: mul qword ptr [-80+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-360+rbp] michael@0: mul qword ptr [-88+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-352+rbp] michael@0: mul qword ptr [-96+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-344+rbp] michael@0: mul qword ptr [-104+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-336+rbp] michael@0: mul qword ptr [-112+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-328+rbp] michael@0: mul qword ptr [-120+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-320+rbp] michael@0: mul qword ptr [-128+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-312+rbp] michael@0: mul qword ptr [-136+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-304+rbp] michael@0: mul qword ptr [-144+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov r10, rdi michael@0: mov r11, rsi michael@0: mov rax, qword ptr [-296+rbp] michael@0: mul qword ptr [-152+rbp] michael@0: add rcx, rax michael@0: adc r10, rdx michael@0: adc r11, 0 michael@0: mov qword ptr [384+r9], rcx michael@0: mov rdi, r11 michael@0: mov rsi, r10 michael@0: mov rcx, r8 michael@0: mov rax, qword ptr [-400+rbp] michael@0: mul qword ptr [-40+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-392+rbp] michael@0: mul qword ptr [-48+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-384+rbp] michael@0: mul qword ptr [-56+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-376+rbp] michael@0: mul qword ptr [-64+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-368+rbp] michael@0: mul qword ptr [-72+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-360+rbp] michael@0: mul qword ptr [-80+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-352+rbp] michael@0: mul qword ptr [-88+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-344+rbp] michael@0: mul qword ptr [-96+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-336+rbp] michael@0: mul qword ptr [-104+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-328+rbp] michael@0: mul qword ptr [-112+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-320+rbp] michael@0: mul qword ptr [-120+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-312+rbp] michael@0: mul qword ptr [-128+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-304+rbp] michael@0: mul qword ptr [-136+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov r10, rdi michael@0: mov r11, rcx michael@0: mov rax, qword ptr [-296+rbp] michael@0: mul qword ptr [-144+rbp] michael@0: add rsi, rax michael@0: adc r10, rdx michael@0: adc r11, 0 michael@0: mov qword ptr [392+r9], rsi michael@0: mov rdi, r11 michael@0: mov rcx, r10 michael@0: mov rsi, r8 michael@0: mov rax, qword ptr [-392+rbp] michael@0: mul qword ptr [-40+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-384+rbp] michael@0: mul qword ptr [-48+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-376+rbp] michael@0: mul qword ptr [-56+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-368+rbp] michael@0: mul qword ptr [-64+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-360+rbp] michael@0: mul qword ptr [-72+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-352+rbp] michael@0: mul qword ptr [-80+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-344+rbp] michael@0: mul qword ptr [-88+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-336+rbp] michael@0: mul qword ptr [-96+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-328+rbp] michael@0: mul qword ptr [-104+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-320+rbp] michael@0: mul qword ptr [-112+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-312+rbp] michael@0: mul qword ptr [-120+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-304+rbp] michael@0: mul qword ptr [-128+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov r10, rdi michael@0: mov r11, rsi michael@0: mov rax, qword ptr [-296+rbp] michael@0: mul qword ptr [-136+rbp] michael@0: add rcx, rax michael@0: adc r10, rdx michael@0: adc r11, 0 michael@0: mov qword ptr [400+r9], rcx michael@0: mov rdi, r11 michael@0: mov rsi, r10 michael@0: mov rcx, r8 michael@0: mov rax, qword ptr [-384+rbp] michael@0: mul qword ptr [-40+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-376+rbp] michael@0: mul qword ptr [-48+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-368+rbp] michael@0: mul qword ptr [-56+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-360+rbp] michael@0: mul qword ptr [-64+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-352+rbp] michael@0: mul qword ptr [-72+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-344+rbp] michael@0: mul qword ptr [-80+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-336+rbp] michael@0: mul qword ptr [-88+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-328+rbp] michael@0: mul qword ptr [-96+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-320+rbp] michael@0: mul qword ptr [-104+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-312+rbp] michael@0: mul qword ptr [-112+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-304+rbp] michael@0: mul qword ptr [-120+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov r10, rdi michael@0: mov r11, rcx michael@0: mov rax, qword ptr [-296+rbp] michael@0: mul qword ptr [-128+rbp] michael@0: add rsi, rax michael@0: adc r10, rdx michael@0: adc r11, 0 michael@0: mov qword ptr [408+r9], rsi michael@0: mov rdi, r11 michael@0: mov rcx, r10 michael@0: mov rsi, r8 michael@0: mov rax, qword ptr [-376+rbp] michael@0: mul qword ptr [-40+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-368+rbp] michael@0: mul qword ptr [-48+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-360+rbp] michael@0: mul qword ptr [-56+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-352+rbp] michael@0: mul qword ptr [-64+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-344+rbp] michael@0: mul qword ptr [-72+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-336+rbp] michael@0: mul qword ptr [-80+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-328+rbp] michael@0: mul qword ptr [-88+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-320+rbp] michael@0: mul qword ptr [-96+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-312+rbp] michael@0: mul qword ptr [-104+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-304+rbp] michael@0: mul qword ptr [-112+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov r10, rdi michael@0: mov r11, rsi michael@0: mov rax, qword ptr [-296+rbp] michael@0: mul qword ptr [-120+rbp] michael@0: add rcx, rax michael@0: adc r10, rdx michael@0: adc r11, 0 michael@0: mov qword ptr [416+r9], rcx michael@0: mov rdi, r11 michael@0: mov rsi, r10 michael@0: mov rcx, r8 michael@0: mov rax, qword ptr [-368+rbp] michael@0: mul qword ptr [-40+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-360+rbp] michael@0: mul qword ptr [-48+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-352+rbp] michael@0: mul qword ptr [-56+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-344+rbp] michael@0: mul qword ptr [-64+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-336+rbp] michael@0: mul qword ptr [-72+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-328+rbp] michael@0: mul qword ptr [-80+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-320+rbp] michael@0: mul qword ptr [-88+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-312+rbp] michael@0: mul qword ptr [-96+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-304+rbp] michael@0: mul qword ptr [-104+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov r10, rdi michael@0: mov r11, rcx michael@0: mov rax, qword ptr [-296+rbp] michael@0: mul qword ptr [-112+rbp] michael@0: add rsi, rax michael@0: adc r10, rdx michael@0: adc r11, 0 michael@0: mov qword ptr [424+r9], rsi michael@0: mov rdi, r11 michael@0: mov rcx, r10 michael@0: mov rsi, r8 michael@0: mov rax, qword ptr [-360+rbp] michael@0: mul qword ptr [-40+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-352+rbp] michael@0: mul qword ptr [-48+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-344+rbp] michael@0: mul qword ptr [-56+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-336+rbp] michael@0: mul qword ptr [-64+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-328+rbp] michael@0: mul qword ptr [-72+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-320+rbp] michael@0: mul qword ptr [-80+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-312+rbp] michael@0: mul qword ptr [-88+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-304+rbp] michael@0: mul qword ptr [-96+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov r10, rdi michael@0: mov r11, rsi michael@0: mov rax, qword ptr [-296+rbp] michael@0: mul qword ptr [-104+rbp] michael@0: add rcx, rax michael@0: adc r10, rdx michael@0: adc r11, 0 michael@0: mov qword ptr [432+r9], rcx michael@0: mov rdi, r11 michael@0: mov rsi, r10 michael@0: mov rcx, r8 michael@0: mov rax, qword ptr [-352+rbp] michael@0: mul qword ptr [-40+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-344+rbp] michael@0: mul qword ptr [-48+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-336+rbp] michael@0: mul qword ptr [-56+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-328+rbp] michael@0: mul qword ptr [-64+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-320+rbp] michael@0: mul qword ptr [-72+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-312+rbp] michael@0: mul qword ptr [-80+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-304+rbp] michael@0: mul qword ptr [-88+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov r10, rdi michael@0: mov r11, rcx michael@0: mov rax, qword ptr [-296+rbp] michael@0: mul qword ptr [-96+rbp] michael@0: add rsi, rax michael@0: adc r10, rdx michael@0: adc r11, 0 michael@0: mov qword ptr [440+r9], rsi michael@0: mov rdi, r11 michael@0: mov rcx, r10 michael@0: mov rsi, r8 michael@0: mov rax, qword ptr [-344+rbp] michael@0: mul qword ptr [-40+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-336+rbp] michael@0: mul qword ptr [-48+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-328+rbp] michael@0: mul qword ptr [-56+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-320+rbp] michael@0: mul qword ptr [-64+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-312+rbp] michael@0: mul qword ptr [-72+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-304+rbp] michael@0: mul qword ptr [-80+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov r10, rdi michael@0: mov r11, rsi michael@0: mov rax, qword ptr [-296+rbp] michael@0: mul qword ptr [-88+rbp] michael@0: add rcx, rax michael@0: adc r10, rdx michael@0: adc r11, 0 michael@0: mov qword ptr [448+r9], rcx michael@0: mov rdi, r11 michael@0: mov rsi, r10 michael@0: mov rcx, r8 michael@0: mov rax, qword ptr [-336+rbp] michael@0: mul qword ptr [-40+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-328+rbp] michael@0: mul qword ptr [-48+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-320+rbp] michael@0: mul qword ptr [-56+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-312+rbp] michael@0: mul qword ptr [-64+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-304+rbp] michael@0: mul qword ptr [-72+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov r10, rdi michael@0: mov r11, rcx michael@0: mov rax, qword ptr [-296+rbp] michael@0: mul qword ptr [-80+rbp] michael@0: add rsi, rax michael@0: adc r10, rdx michael@0: adc r11, 0 michael@0: mov qword ptr [456+r9], rsi michael@0: mov rdi, r11 michael@0: mov rcx, r10 michael@0: mov rsi, r8 michael@0: mov rax, qword ptr [-328+rbp] michael@0: mul qword ptr [-40+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-320+rbp] michael@0: mul qword ptr [-48+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-312+rbp] michael@0: mul qword ptr [-56+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-304+rbp] michael@0: mul qword ptr [-64+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov r10, rdi michael@0: mov r11, rsi michael@0: mov rax, qword ptr [-296+rbp] michael@0: mul qword ptr [-72+rbp] michael@0: add rcx, rax michael@0: adc r10, rdx michael@0: adc r11, 0 michael@0: mov qword ptr [464+r9], rcx michael@0: mov rdi, r11 michael@0: mov rsi, r10 michael@0: mov rcx, r8 michael@0: mov rax, qword ptr [-320+rbp] michael@0: mul qword ptr [-40+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-312+rbp] michael@0: mul qword ptr [-48+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov rax, qword ptr [-304+rbp] michael@0: mul qword ptr [-56+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov r10, rdi michael@0: mov r11, rcx michael@0: mov rax, qword ptr [-296+rbp] michael@0: mul qword ptr [-64+rbp] michael@0: add rsi, rax michael@0: adc r10, rdx michael@0: adc r11, 0 michael@0: mov qword ptr [472+r9], rsi michael@0: mov rdi, r11 michael@0: mov rcx, r10 michael@0: mov rsi, r8 michael@0: mov rax, qword ptr [-312+rbp] michael@0: mul qword ptr [-40+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [-304+rbp] michael@0: mul qword ptr [-48+rbp] michael@0: add rcx, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov r10, rdi michael@0: mov r11, rsi michael@0: mov rax, qword ptr [-296+rbp] michael@0: mul qword ptr [-56+rbp] michael@0: add rcx, rax michael@0: adc r10, rdx michael@0: adc r11, 0 michael@0: mov qword ptr [480+r9], rcx michael@0: mov rdi, r11 michael@0: mov rsi, r10 michael@0: mov rcx, r8 michael@0: mov rax, qword ptr [-304+rbp] michael@0: mul qword ptr [-40+rbp] michael@0: add rsi, rax michael@0: adc rdi, rdx michael@0: adc rcx, 0 michael@0: mov r11, rcx michael@0: mov r10, rdi michael@0: mov rax, qword ptr [-296+rbp] michael@0: mul qword ptr [-48+rbp] michael@0: add rsi, rax michael@0: adc r10, rdx michael@0: adc r11, 0 michael@0: mov qword ptr [488+r9], rsi michael@0: mov rcx, r10 michael@0: mov rsi, r11 michael@0: mov rax, qword ptr [-296+rbp] michael@0: mul qword ptr [-40+rbp] michael@0: add rcx, rax michael@0: adc rsi, rdx michael@0: adc r8, 0 michael@0: mov qword ptr [496+r9], rcx michael@0: mov ecx, dword ptr [r12] michael@0: xor ecx, dword ptr [rbx] michael@0: test rsi, rsi michael@0: mov qword ptr [504+r9], rsi michael@0: mov dword ptr [8+r13], 64 michael@0: jne L149 michael@0: ALIGN 16 michael@0: L157: michael@0: mov edx, dword ptr [8+r13] michael@0: lea ebx, dword ptr [-1+rdx] michael@0: test ebx, ebx michael@0: mov dword ptr [8+r13], ebx michael@0: je L149 michael@0: lea r12d, dword ptr [-2+rdx] michael@0: cmp dword ptr [r9+r12*8], 0 michael@0: je L157 michael@0: L149: michael@0: mov r9d, dword ptr [8+r13] michael@0: xor edx, edx michael@0: test r9d, r9d michael@0: cmovne edx, ecx michael@0: mov dword ptr [r13], edx michael@0: add rsp, 520+32 ; +32 for "home" storage michael@0: pop rbx michael@0: pop r12 michael@0: pop r13 michael@0: pop rbp michael@0: pop rsi michael@0: pop rdi michael@0: michael@0: ret michael@0: michael@0: s_mp_mul_comba_32 ENDP michael@0: michael@0: michael@0: ; void s_mp_sqr_comba_4(const mp_int *A, mp_int *B); michael@0: michael@0: ALIGN 16 michael@0: s_mp_sqr_comba_4 PROC michael@0: michael@0: push rdi michael@0: push rsi michael@0: michael@0: mov rdi, rcx michael@0: mov rsi, rdx michael@0: michael@0: push rbp michael@0: sub rsp, 80 michael@0: mov r11, rsi michael@0: xor esi, esi michael@0: mov r10, rsi michael@0: mov rbp, rsi michael@0: mov r8, rsi michael@0: push rbx michael@0: mov rbx, rsi michael@0: mov rcx, qword ptr [16+rdi] michael@0: mov rdi, rsi michael@0: mov rax, qword ptr [rcx] michael@0: mul rax michael@0: add r10, rax michael@0: adc rbx, rdx michael@0: adc rdi, 0 michael@0: mov qword ptr [-72+80+rsp], r10 michael@0: mov rax, qword ptr [rcx] michael@0: mul qword ptr [8+rcx] michael@0: add rbx, rax michael@0: adc rdi, rdx michael@0: adc rbp, 0 michael@0: add rbx, rax michael@0: adc rdi, rdx michael@0: adc rbp, 0 michael@0: mov qword ptr [-64+80+rsp], rbx michael@0: mov rax, qword ptr [rcx] michael@0: mul qword ptr [16+rcx] michael@0: add rdi, rax michael@0: adc rbp, rdx michael@0: adc r8, 0 michael@0: add rdi, rax michael@0: adc rbp, rdx michael@0: adc r8, 0 michael@0: mov rbx, rbp michael@0: mov rbp, r8 michael@0: mov rax, qword ptr [8+rcx] michael@0: mul rax michael@0: add rdi, rax michael@0: adc rbx, rdx michael@0: adc rbp, 0 michael@0: mov qword ptr [-56+80+rsp], rdi michael@0: mov r9, rbp michael@0: mov r8, rbx michael@0: mov rdi, rsi michael@0: mov rax, qword ptr [rcx] michael@0: mul qword ptr [24+rcx] michael@0: add r8, rax michael@0: adc r9, rdx michael@0: adc rdi, 0 michael@0: add r8, rax michael@0: adc r9, rdx michael@0: adc rdi, 0 michael@0: mov rbx, r9 michael@0: mov rbp, rdi michael@0: mov rax, qword ptr [8+rcx] michael@0: mul qword ptr [16+rcx] michael@0: add r8, rax michael@0: adc rbx, rdx michael@0: adc rbp, 0 michael@0: add r8, rax michael@0: adc rbx, rdx michael@0: adc rbp, 0 michael@0: mov qword ptr [-48+80+rsp], r8 michael@0: mov r9, rbp michael@0: mov rdi, rbx michael@0: mov r8, rsi michael@0: mov dword ptr [8+r11], 8 michael@0: mov dword ptr [r11], 0 michael@0: mov rax, qword ptr [8+rcx] michael@0: mul qword ptr [24+rcx] michael@0: add rdi, rax michael@0: adc r9, rdx michael@0: adc r8, 0 michael@0: add rdi, rax michael@0: adc r9, rdx michael@0: adc r8, 0 michael@0: mov rbx, r9 michael@0: mov rbp, r8 michael@0: mov rax, qword ptr [16+rcx] michael@0: mul rax michael@0: add rdi, rax michael@0: adc rbx, rdx michael@0: adc rbp, 0 michael@0: mov rax, rbp michael@0: mov qword ptr [-40+80+rsp], rdi michael@0: mov rbp, rbx michael@0: mov rdi, rax michael@0: mov rbx, rsi michael@0: mov rax, qword ptr [16+rcx] michael@0: mul qword ptr [24+rcx] michael@0: add rbp, rax michael@0: adc rdi, rdx michael@0: adc rbx, 0 michael@0: add rbp, rax michael@0: adc rdi, rdx michael@0: adc rbx, 0 michael@0: mov qword ptr [-32+80+rsp], rbp michael@0: mov r9, rbx michael@0: mov rax, qword ptr [24+rcx] michael@0: mul rax michael@0: add rdi, rax michael@0: adc r9, rdx michael@0: adc rsi, 0 michael@0: mov rdx, qword ptr [16+r11] michael@0: mov qword ptr [-24+80+rsp], rdi michael@0: mov qword ptr [-16+80+rsp], r9 michael@0: mov qword ptr [rdx], r10 michael@0: mov r8, qword ptr [-64+80+rsp] michael@0: mov qword ptr [8+rdx], r8 michael@0: mov rbp, qword ptr [-56+80+rsp] michael@0: mov qword ptr [16+rdx], rbp michael@0: mov rdi, qword ptr [-48+80+rsp] michael@0: mov qword ptr [24+rdx], rdi michael@0: mov rsi, qword ptr [-40+80+rsp] michael@0: mov qword ptr [32+rdx], rsi michael@0: mov rbx, qword ptr [-32+80+rsp] michael@0: mov qword ptr [40+rdx], rbx michael@0: mov rcx, qword ptr [-24+80+rsp] michael@0: mov qword ptr [48+rdx], rcx michael@0: mov rax, qword ptr [-16+80+rsp] michael@0: mov qword ptr [56+rdx], rax michael@0: mov edx, dword ptr [8+r11] michael@0: test edx, edx michael@0: je L168 michael@0: lea ecx, dword ptr [-1+rdx] michael@0: mov rsi, qword ptr [16+r11] michael@0: mov r10d, ecx michael@0: cmp dword ptr [rsi+r10*8], 0 michael@0: jne L166 michael@0: mov edx, ecx michael@0: ALIGN 16 michael@0: L167: michael@0: test edx, edx michael@0: mov ecx, edx michael@0: je L171 michael@0: dec edx michael@0: mov eax, edx michael@0: cmp dword ptr [rsi+rax*8], 0 michael@0: je L167 michael@0: mov dword ptr [8+r11], ecx michael@0: mov edx, ecx michael@0: L166: michael@0: test edx, edx michael@0: je L168 michael@0: mov eax, dword ptr [r11] michael@0: jmp L169 michael@0: michael@0: L171: michael@0: mov dword ptr [8+r11], edx michael@0: L168: michael@0: xor eax, eax michael@0: L169: michael@0: add rsp, 80 michael@0: pop rbx michael@0: pop rbp michael@0: mov dword ptr [r11], eax michael@0: michael@0: pop rsi michael@0: pop rdi michael@0: michael@0: ret michael@0: michael@0: s_mp_sqr_comba_4 ENDP michael@0: michael@0: michael@0: ; void s_mp_sqr_comba_8(const mp_int *A, mp_int *B); michael@0: michael@0: ALIGN 16 michael@0: s_mp_sqr_comba_8 PROC michael@0: michael@0: push rdi michael@0: push rsi michael@0: michael@0: mov rdi, rcx michael@0: mov rsi, rdx michael@0: mov rdx, r8 michael@0: mov rcx, r9 michael@0: michael@0: push r14 michael@0: xor r9d, r9d michael@0: mov r14, r9 michael@0: mov r10, r9 michael@0: push r13 michael@0: mov r13, r9 michael@0: push r12 michael@0: mov r12, r9 michael@0: push rbp michael@0: mov rbp, rsi michael@0: mov rsi, r9 michael@0: push rbx michael@0: mov rbx, r9 michael@0: sub rsp, 8+128 michael@0: mov rcx, qword ptr [16+rdi] michael@0: mov rax, qword ptr [rcx] michael@0: mul rax michael@0: add r14, rax michael@0: adc rbx, rdx michael@0: adc r12, 0 michael@0: mov qword ptr [-120+128+rsp], r14 michael@0: mov rax, qword ptr [rcx] michael@0: mul qword ptr [8+rcx] michael@0: add rbx, rax michael@0: adc r12, rdx michael@0: adc r10, 0 michael@0: add rbx, rax michael@0: adc r12, rdx michael@0: adc r10, 0 michael@0: mov qword ptr [-112+128+rsp], rbx michael@0: mov rax, qword ptr [rcx] michael@0: mul qword ptr [16+rcx] michael@0: add r12, rax michael@0: adc r10, rdx michael@0: adc r13, 0 michael@0: add r12, rax michael@0: adc r10, rdx michael@0: adc r13, 0 michael@0: mov rbx, r10 michael@0: mov r10, r13 michael@0: mov r13, r9 michael@0: mov rax, qword ptr [8+rcx] michael@0: mul rax michael@0: add r12, rax michael@0: adc rbx, rdx michael@0: adc r10, 0 michael@0: mov qword ptr [-104+128+rsp], r12 michael@0: mov rdi, r10 michael@0: mov r11, rbx michael@0: mov rax, qword ptr [rcx] michael@0: mul qword ptr [24+rcx] michael@0: add r11, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: add r11, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rbx, rdi michael@0: mov r10, rsi michael@0: mov rdi, r9 michael@0: mov rax, qword ptr [8+rcx] michael@0: mul qword ptr [16+rcx] michael@0: add r11, rax michael@0: adc rbx, rdx michael@0: adc r10, 0 michael@0: add r11, rax michael@0: adc rbx, rdx michael@0: adc r10, 0 michael@0: mov rsi, r9 michael@0: mov qword ptr [-96+128+rsp], r11 michael@0: mov r8, r10 michael@0: mov r12, rbx michael@0: mov r11, r9 michael@0: mov rax, qword ptr [rcx] michael@0: mul qword ptr [32+rcx] michael@0: add r12, rax michael@0: adc r8, rdx michael@0: adc r13, 0 michael@0: add r12, rax michael@0: adc r8, rdx michael@0: adc r13, 0 michael@0: mov rax, qword ptr [8+rcx] michael@0: mul qword ptr [24+rcx] michael@0: add r12, rax michael@0: adc r8, rdx michael@0: adc r13, 0 michael@0: add r12, rax michael@0: adc r8, rdx michael@0: adc r13, 0 michael@0: mov rbx, r8 michael@0: mov r10, r13 michael@0: mov r8, r9 michael@0: mov rax, qword ptr [16+rcx] michael@0: mul rax michael@0: add r12, rax michael@0: adc rbx, rdx michael@0: adc r10, 0 michael@0: mov qword ptr [-88+128+rsp], r12 michael@0: mov rax, qword ptr [rcx] michael@0: mul qword ptr [40+rcx] michael@0: mov r8, rax michael@0: mov rdi, rdx michael@0: xor rsi, rsi michael@0: mov rax, qword ptr [8+rcx] michael@0: mul qword ptr [32+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [16+rcx] michael@0: mul qword ptr [24+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: add rbx, r8 michael@0: adc r10, rdi michael@0: adc r11, rsi michael@0: add rbx, r8 michael@0: adc r10, rdi michael@0: adc r11, rsi michael@0: mov qword ptr [-80+128+rsp], rbx michael@0: mov rax, qword ptr [rcx] michael@0: mul qword ptr [48+rcx] michael@0: mov r8, rax michael@0: mov rdi, rdx michael@0: xor rsi, rsi michael@0: mov rax, qword ptr [8+rcx] michael@0: mul qword ptr [40+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [16+rcx] michael@0: mul qword ptr [32+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, r9 michael@0: mov r13, rdi michael@0: mov r12, rsi michael@0: add r10, r8 michael@0: adc r11, r13 michael@0: adc rax, r12 michael@0: add r10, r8 michael@0: adc r11, r13 michael@0: adc rax, r12 michael@0: mov rdx, rax michael@0: mov rbx, r11 michael@0: mov rdi, r13 michael@0: mov r11, rdx michael@0: mov rsi, r12 michael@0: mov rax, qword ptr [24+rcx] michael@0: mul rax michael@0: add r10, rax michael@0: adc rbx, rdx michael@0: adc r11, 0 michael@0: mov qword ptr [-72+128+rsp], r10 michael@0: mov r10, r11 michael@0: mov rax, qword ptr [rcx] michael@0: mul qword ptr [56+rcx] michael@0: mov r8, rax michael@0: mov rdi, rdx michael@0: xor rsi, rsi michael@0: mov rax, qword ptr [8+rcx] michael@0: mul qword ptr [48+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [16+rcx] michael@0: mul qword ptr [40+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [24+rcx] michael@0: mul qword ptr [32+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, r9 michael@0: add rbx, r8 michael@0: adc r10, rdi michael@0: adc rax, rsi michael@0: add rbx, r8 michael@0: adc r10, rdi michael@0: adc rax, rsi michael@0: mov qword ptr [-64+128+rsp], rbx michael@0: mov r11, rax michael@0: mov rbx, r9 michael@0: mov rax, qword ptr [8+rcx] michael@0: mul qword ptr [56+rcx] michael@0: mov r8, rax michael@0: mov rdi, rdx michael@0: xor rsi, rsi michael@0: mov rax, qword ptr [16+rcx] michael@0: mul qword ptr [48+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [24+rcx] michael@0: mul qword ptr [40+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov r13, rdi michael@0: mov r12, rsi michael@0: add r10, r8 michael@0: adc r11, r13 michael@0: adc rbx, r12 michael@0: add r10, r8 michael@0: adc r11, r13 michael@0: adc rbx, r12 michael@0: mov rsi, rbx michael@0: mov rdi, r13 michael@0: mov rbx, r11 michael@0: mov r13, r12 michael@0: mov r11, rsi michael@0: mov rax, qword ptr [32+rcx] michael@0: mul rax michael@0: add r10, rax michael@0: adc rbx, rdx michael@0: adc r11, 0 michael@0: mov qword ptr [-56+128+rsp], r10 michael@0: mov r10, r9 michael@0: mov rax, qword ptr [16+rcx] michael@0: mul qword ptr [56+rcx] michael@0: mov r8, rax michael@0: mov rdi, rdx michael@0: xor r13, r13 michael@0: mov rax, qword ptr [24+rcx] michael@0: mul qword ptr [48+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc r13, 0 michael@0: mov rax, qword ptr [32+rcx] michael@0: mul qword ptr [40+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc r13, 0 michael@0: mov r12, rdi michael@0: mov rax, r13 michael@0: add rbx, r8 michael@0: adc r11, r12 michael@0: adc r10, rax michael@0: add rbx, r8 michael@0: adc r11, r12 michael@0: adc r10, rax michael@0: mov qword ptr [-48+128+rsp], rbx michael@0: mov r12, r11 michael@0: mov rsi, r10 michael@0: mov rbx, r9 michael@0: mov r11, r9 michael@0: mov rax, qword ptr [24+rcx] michael@0: mul qword ptr [56+rcx] michael@0: add r12, rax michael@0: adc rsi, rdx michael@0: adc rbx, 0 michael@0: add r12, rax michael@0: adc rsi, rdx michael@0: adc rbx, 0 michael@0: mov r13, rbx michael@0: mov rax, qword ptr [32+rcx] michael@0: mul qword ptr [48+rcx] michael@0: add r12, rax michael@0: adc rsi, rdx michael@0: adc r13, 0 michael@0: add r12, rax michael@0: adc rsi, rdx michael@0: adc r13, 0 michael@0: mov r10, rsi michael@0: mov rbx, r13 michael@0: mov r13, r9 michael@0: mov rax, qword ptr [40+rcx] michael@0: mul rax michael@0: add r12, rax michael@0: adc r10, rdx michael@0: adc rbx, 0 michael@0: mov qword ptr [-40+128+rsp], r12 michael@0: mov r8, rbx michael@0: mov rdi, r10 michael@0: mov rax, qword ptr [32+rcx] michael@0: mul qword ptr [56+rcx] michael@0: add rdi, rax michael@0: adc r8, rdx michael@0: adc r11, 0 michael@0: add rdi, rax michael@0: adc r8, rdx michael@0: adc r11, 0 michael@0: mov r10, r8 michael@0: mov rbx, r11 michael@0: mov rax, qword ptr [40+rcx] michael@0: mul qword ptr [48+rcx] michael@0: add rdi, rax michael@0: adc r10, rdx michael@0: adc rbx, 0 michael@0: add rdi, rax michael@0: adc r10, rdx michael@0: adc rbx, 0 michael@0: mov qword ptr [-32+128+rsp], rdi michael@0: mov rsi, rbx michael@0: mov r12, r10 michael@0: mov rax, qword ptr [40+rcx] michael@0: mul qword ptr [56+rcx] michael@0: add r12, rax michael@0: adc rsi, rdx michael@0: adc r13, 0 michael@0: add r12, rax michael@0: adc rsi, rdx michael@0: adc r13, 0 michael@0: mov r10, rsi michael@0: mov rbx, r13 michael@0: mov rax, qword ptr [48+rcx] michael@0: mul rax michael@0: add r12, rax michael@0: adc r10, rdx michael@0: adc rbx, 0 michael@0: mov qword ptr [-24+128+rsp], r12 michael@0: mov rdi, r10 michael@0: mov rsi, rbx michael@0: mov r10, r9 michael@0: mov dword ptr [8+rbp], 16 michael@0: mov dword ptr [rbp], 0 michael@0: mov rax, qword ptr [48+rcx] michael@0: mul qword ptr [56+rcx] michael@0: add rdi, rax michael@0: adc rsi, rdx michael@0: adc r10, 0 michael@0: add rdi, rax michael@0: adc rsi, rdx michael@0: adc r10, 0 michael@0: mov qword ptr [-16+128+rsp], rdi michael@0: mov r8, r10 michael@0: mov rax, qword ptr [56+rcx] michael@0: mul rax michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc r9, 0 michael@0: mov rax, qword ptr [16+rbp] michael@0: mov qword ptr [-8+128+rsp], rsi michael@0: mov qword ptr [128+rsp], r8 michael@0: mov qword ptr [rax], r14 michael@0: mov rbx, qword ptr [-112+128+rsp] michael@0: mov qword ptr [8+rax], rbx michael@0: mov rcx, qword ptr [-104+128+rsp] michael@0: mov qword ptr [16+rax], rcx michael@0: mov rdx, qword ptr [-96+128+rsp] michael@0: mov qword ptr [24+rax], rdx michael@0: mov r14, qword ptr [-88+128+rsp] michael@0: mov qword ptr [32+rax], r14 michael@0: mov r13, qword ptr [-80+128+rsp] michael@0: mov qword ptr [40+rax], r13 michael@0: mov r12, qword ptr [-72+128+rsp] michael@0: mov qword ptr [48+rax], r12 michael@0: mov r11, qword ptr [-64+128+rsp] michael@0: mov qword ptr [56+rax], r11 michael@0: mov r10, qword ptr [-56+128+rsp] michael@0: mov qword ptr [64+rax], r10 michael@0: mov r9, qword ptr [-48+128+rsp] michael@0: mov qword ptr [72+rax], r9 michael@0: mov r8, qword ptr [-40+128+rsp] michael@0: mov qword ptr [80+rax], r8 michael@0: mov rdi, qword ptr [-32+128+rsp] michael@0: mov qword ptr [88+rax], rdi michael@0: mov rsi, qword ptr [-24+128+rsp] michael@0: mov qword ptr [96+rax], rsi michael@0: mov rbx, qword ptr [-16+128+rsp] michael@0: mov qword ptr [104+rax], rbx michael@0: mov rcx, qword ptr [-8+128+rsp] michael@0: mov qword ptr [112+rax], rcx michael@0: mov rdx, qword ptr [128+rsp] michael@0: mov qword ptr [120+rax], rdx michael@0: mov edx, dword ptr [8+rbp] michael@0: test edx, edx michael@0: je L192 michael@0: lea ecx, dword ptr [-1+rdx] michael@0: mov rsi, qword ptr [16+rbp] michael@0: mov r14d, ecx michael@0: cmp dword ptr [rsi+r14*8], 0 michael@0: jne L190 michael@0: mov edx, ecx michael@0: ALIGN 16 michael@0: L191: michael@0: test edx, edx michael@0: mov ecx, edx michael@0: je L195 michael@0: dec edx michael@0: mov r9d, edx michael@0: cmp dword ptr [rsi+r9*8], 0 michael@0: je L191 michael@0: mov dword ptr [8+rbp], ecx michael@0: mov edx, ecx michael@0: L190: michael@0: test edx, edx michael@0: je L192 michael@0: mov eax, dword ptr [rbp] michael@0: jmp L193 michael@0: michael@0: L195: michael@0: mov dword ptr [8+rbp], edx michael@0: L192: michael@0: xor eax, eax michael@0: L193: michael@0: mov dword ptr [rbp], eax michael@0: add rsp, 8+128 michael@0: pop rbx michael@0: pop rbp michael@0: pop r12 michael@0: pop r13 michael@0: pop r14 michael@0: michael@0: pop rsi michael@0: pop rdi michael@0: michael@0: ret michael@0: michael@0: s_mp_sqr_comba_8 ENDP michael@0: michael@0: michael@0: ; void s_mp_sqr_comba_16(const mp_int *A, mp_int *B) michael@0: michael@0: ALIGN 16 michael@0: s_mp_sqr_comba_16 PROC ; A "FRAME" function michael@0: michael@0: push rdi michael@0: push rsi michael@0: michael@0: mov rdi, rcx michael@0: mov rsi, rdx michael@0: michael@0: push rbp michael@0: xor r9d, r9d michael@0: mov r8, r9 michael@0: mov r11, r9 michael@0: mov rbp, rsp michael@0: push r14 michael@0: mov r14, rsi michael@0: mov rsi, r9 michael@0: push r13 michael@0: mov r13, r9 michael@0: push r12 michael@0: mov r12, r9 michael@0: push rbx michael@0: mov rbx, r9 michael@0: sub rsp, 256+32 ; +32 for "home" storage michael@0: mov rcx, qword ptr [16+rdi] michael@0: mov rax, qword ptr [rcx] michael@0: mul rax michael@0: add r8, rax michael@0: adc rbx, rdx michael@0: adc rsi, 0 michael@0: mov qword ptr [-288+rbp], r8 michael@0: mov rax, qword ptr [rcx] michael@0: mul qword ptr [8+rcx] michael@0: add rbx, rax michael@0: adc rsi, rdx michael@0: adc r12, 0 michael@0: add rbx, rax michael@0: adc rsi, rdx michael@0: adc r12, 0 michael@0: mov qword ptr [-280+rbp], rbx michael@0: mov rax, qword ptr [rcx] michael@0: mul qword ptr [16+rcx] michael@0: add rsi, rax michael@0: adc r12, rdx michael@0: adc r13, 0 michael@0: add rsi, rax michael@0: adc r12, rdx michael@0: adc r13, 0 michael@0: mov rbx, r12 michael@0: mov r10, r13 michael@0: mov rax, qword ptr [8+rcx] michael@0: mul rax michael@0: add rsi, rax michael@0: adc rbx, rdx michael@0: adc r10, 0 michael@0: mov qword ptr [-272+rbp], rsi michael@0: mov rdi, r10 michael@0: mov rsi, r9 michael@0: mov r10, rbx michael@0: mov rax, qword ptr [rcx] michael@0: mul qword ptr [24+rcx] michael@0: add r10, rax michael@0: adc rdi, rdx michael@0: adc r11, 0 michael@0: add r10, rax michael@0: adc rdi, rdx michael@0: adc r11, 0 michael@0: mov r12, rdi michael@0: mov rbx, r11 michael@0: mov rdi, r9 michael@0: mov rax, qword ptr [8+rcx] michael@0: mul qword ptr [16+rcx] michael@0: add r10, rax michael@0: adc r12, rdx michael@0: adc rbx, 0 michael@0: add r10, rax michael@0: adc r12, rdx michael@0: adc rbx, 0 michael@0: mov r11, r9 michael@0: mov qword ptr [-264+rbp], r10 michael@0: mov r8, rbx michael@0: mov r13, r12 michael@0: mov r12, r9 michael@0: mov rax, qword ptr [rcx] michael@0: mul qword ptr [32+rcx] michael@0: add r13, rax michael@0: adc r8, rdx michael@0: adc r12, 0 michael@0: add r13, rax michael@0: adc r8, rdx michael@0: adc r12, 0 michael@0: mov rax, qword ptr [8+rcx] michael@0: mul qword ptr [24+rcx] michael@0: add r13, rax michael@0: adc r8, rdx michael@0: adc r12, 0 michael@0: add r13, rax michael@0: adc r8, rdx michael@0: adc r12, 0 michael@0: mov rbx, r8 michael@0: mov r10, r12 michael@0: mov r8, r9 michael@0: mov rax, qword ptr [16+rcx] michael@0: mul rax michael@0: add r13, rax michael@0: adc rbx, rdx michael@0: adc r10, 0 michael@0: mov qword ptr [-256+rbp], r13 michael@0: mov rax, qword ptr [rcx] michael@0: mul qword ptr [40+rcx] michael@0: mov r8, rax michael@0: mov rdi, rdx michael@0: xor rsi, rsi michael@0: mov rax, qword ptr [8+rcx] michael@0: mul qword ptr [32+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [16+rcx] michael@0: mul qword ptr [24+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: add rbx, r8 michael@0: adc r10, rdi michael@0: adc r11, rsi michael@0: add rbx, r8 michael@0: adc r10, rdi michael@0: adc r11, rsi michael@0: mov qword ptr [-248+rbp], rbx michael@0: mov rax, qword ptr [rcx] michael@0: mul qword ptr [48+rcx] michael@0: mov r8, rax michael@0: mov rdi, rdx michael@0: xor rsi, rsi michael@0: mov rax, qword ptr [8+rcx] michael@0: mul qword ptr [40+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [16+rcx] michael@0: mul qword ptr [32+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, r9 michael@0: mov r13, rdi michael@0: mov r12, rsi michael@0: add r10, r8 michael@0: adc r11, r13 michael@0: adc rax, r12 michael@0: add r10, r8 michael@0: adc r11, r13 michael@0: adc rax, r12 michael@0: mov rdx, rax michael@0: mov rbx, r11 michael@0: mov rdi, r13 michael@0: mov r11, rdx michael@0: mov rsi, r12 michael@0: mov rax, qword ptr [24+rcx] michael@0: mul rax michael@0: add r10, rax michael@0: adc rbx, rdx michael@0: adc r11, 0 michael@0: mov qword ptr [-240+rbp], r10 michael@0: mov r10, r11 michael@0: mov rax, qword ptr [rcx] michael@0: mul qword ptr [56+rcx] michael@0: mov r8, rax michael@0: mov rdi, rdx michael@0: xor rsi, rsi michael@0: mov rax, qword ptr [8+rcx] michael@0: mul qword ptr [48+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [16+rcx] michael@0: mul qword ptr [40+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [24+rcx] michael@0: mul qword ptr [32+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rdx, r9 michael@0: add rbx, r8 michael@0: adc r10, rdi michael@0: adc rdx, rsi michael@0: add rbx, r8 michael@0: adc r10, rdi michael@0: adc rdx, rsi michael@0: mov r11, rdx michael@0: mov qword ptr [-232+rbp], rbx michael@0: mov rbx, r9 michael@0: mov rax, qword ptr [rcx] michael@0: mul qword ptr [64+rcx] michael@0: mov r8, rax michael@0: mov rdi, rdx michael@0: xor rsi, rsi michael@0: mov rax, qword ptr [8+rcx] michael@0: mul qword ptr [56+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [16+rcx] michael@0: mul qword ptr [48+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [24+rcx] michael@0: mul qword ptr [40+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov r13, rdi michael@0: mov r12, rsi michael@0: add r10, r8 michael@0: adc r11, r13 michael@0: adc rbx, r12 michael@0: add r10, r8 michael@0: adc r11, r13 michael@0: adc rbx, r12 michael@0: mov rax, qword ptr [32+rcx] michael@0: mul rax michael@0: add r10, rax michael@0: adc r11, rdx michael@0: adc rbx, 0 michael@0: mov rdi, r13 michael@0: mov qword ptr [-224+rbp], r10 michael@0: mov rsi, r12 michael@0: mov r10, rbx michael@0: mov r12, r9 michael@0: mov rax, qword ptr [rcx] michael@0: mul qword ptr [72+rcx] michael@0: mov r8, rax michael@0: mov rdi, rdx michael@0: xor rsi, rsi michael@0: mov rax, qword ptr [8+rcx] michael@0: mul qword ptr [64+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [16+rcx] michael@0: mul qword ptr [56+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [24+rcx] michael@0: mul qword ptr [48+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [32+rcx] michael@0: mul qword ptr [40+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: add r11, r8 michael@0: adc r10, rdi michael@0: adc r12, rsi michael@0: add r11, r8 michael@0: adc r10, rdi michael@0: adc r12, rsi michael@0: mov qword ptr [-216+rbp], r11 michael@0: mov rbx, r12 michael@0: mov rax, qword ptr [rcx] michael@0: mul qword ptr [80+rcx] michael@0: mov r8, rax michael@0: mov rdi, rdx michael@0: xor rsi, rsi michael@0: mov rax, qword ptr [8+rcx] michael@0: mul qword ptr [72+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [16+rcx] michael@0: mul qword ptr [64+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [24+rcx] michael@0: mul qword ptr [56+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [32+rcx] michael@0: mul qword ptr [48+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, r9 michael@0: mov r13, rdi michael@0: mov r12, rsi michael@0: add r10, r8 michael@0: adc rbx, r13 michael@0: adc rax, r12 michael@0: add r10, r8 michael@0: adc rbx, r13 michael@0: adc rax, r12 michael@0: mov rdx, rax michael@0: mov r11, rbx michael@0: mov rdi, r13 michael@0: mov rbx, rdx michael@0: mov rsi, r12 michael@0: mov rax, qword ptr [40+rcx] michael@0: mul rax michael@0: add r10, rax michael@0: adc r11, rdx michael@0: adc rbx, 0 michael@0: mov qword ptr [-208+rbp], r10 michael@0: mov r10, rbx michael@0: mov rax, qword ptr [rcx] michael@0: mul qword ptr [88+rcx] michael@0: mov r8, rax michael@0: mov rdi, rdx michael@0: xor rsi, rsi michael@0: mov rax, qword ptr [8+rcx] michael@0: mul qword ptr [80+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [16+rcx] michael@0: mul qword ptr [72+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [24+rcx] michael@0: mul qword ptr [64+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [32+rcx] michael@0: mul qword ptr [56+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [40+rcx] michael@0: mul qword ptr [48+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rdx, r9 michael@0: add r11, r8 michael@0: adc r10, rdi michael@0: adc rdx, rsi michael@0: add r11, r8 michael@0: adc r10, rdi michael@0: adc rdx, rsi michael@0: mov r13, rdx michael@0: mov qword ptr [-200+rbp], r11 michael@0: mov r12, r13 michael@0: mov rax, qword ptr [rcx] michael@0: mul qword ptr [96+rcx] michael@0: mov r8, rax michael@0: mov rdi, rdx michael@0: xor rsi, rsi michael@0: mov rax, qword ptr [8+rcx] michael@0: mul qword ptr [88+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [16+rcx] michael@0: mul qword ptr [80+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [24+rcx] michael@0: mul qword ptr [72+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [32+rcx] michael@0: mul qword ptr [64+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [40+rcx] michael@0: mul qword ptr [56+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, r9 michael@0: mov rdx, rdi michael@0: mov r11, rsi michael@0: add r10, r8 michael@0: adc r12, rdx michael@0: adc rax, r11 michael@0: add r10, r8 michael@0: adc r12, rdx michael@0: adc rax, r11 michael@0: mov rbx, rdx michael@0: mov r13, rax michael@0: mov rsi, r11 michael@0: mov rax, qword ptr [48+rcx] michael@0: mul rax michael@0: add r10, rax michael@0: adc r12, rdx michael@0: adc r13, 0 michael@0: mov rdi, rbx michael@0: mov qword ptr [-192+rbp], r10 michael@0: mov r10, r13 michael@0: mov rax, qword ptr [rcx] michael@0: mul qword ptr [104+rcx] michael@0: mov r8, rax michael@0: mov rdi, rdx michael@0: xor rsi, rsi michael@0: mov r13, r9 michael@0: mov rax, qword ptr [8+rcx] michael@0: mul qword ptr [96+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [16+rcx] michael@0: mul qword ptr [88+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [24+rcx] michael@0: mul qword ptr [80+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [32+rcx] michael@0: mul qword ptr [72+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [40+rcx] michael@0: mul qword ptr [64+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [48+rcx] michael@0: mul qword ptr [56+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: add r12, r8 michael@0: adc r10, rdi michael@0: adc r13, rsi michael@0: add r12, r8 michael@0: adc r10, rdi michael@0: adc r13, rsi michael@0: mov qword ptr [-184+rbp], r12 michael@0: mov r12, r13 michael@0: mov rax, qword ptr [rcx] michael@0: mul qword ptr [112+rcx] michael@0: mov r8, rax michael@0: mov rdi, rdx michael@0: xor rsi, rsi michael@0: mov rax, qword ptr [8+rcx] michael@0: mul qword ptr [104+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [16+rcx] michael@0: mul qword ptr [96+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [24+rcx] michael@0: mul qword ptr [88+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [32+rcx] michael@0: mul qword ptr [80+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [40+rcx] michael@0: mul qword ptr [72+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [48+rcx] michael@0: mul qword ptr [64+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, r9 michael@0: mov rbx, rdi michael@0: mov rdx, rsi michael@0: add r10, r8 michael@0: adc r12, rbx michael@0: adc rax, rdx michael@0: add r10, r8 michael@0: adc r12, rbx michael@0: adc rax, rdx michael@0: mov r11, rdx michael@0: mov r13, rax michael@0: mov rdi, rbx michael@0: mov rax, qword ptr [56+rcx] michael@0: mul rax michael@0: add r10, rax michael@0: adc r12, rdx michael@0: adc r13, 0 michael@0: mov rsi, r11 michael@0: mov qword ptr [-176+rbp], r10 michael@0: mov r10, r13 michael@0: mov rax, qword ptr [rcx] michael@0: mul qword ptr [120+rcx] michael@0: mov r8, rax michael@0: mov rdi, rdx michael@0: xor rsi, rsi michael@0: mov r13, r9 michael@0: mov rax, qword ptr [8+rcx] michael@0: mul qword ptr [112+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [16+rcx] michael@0: mul qword ptr [104+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [24+rcx] michael@0: mul qword ptr [96+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [32+rcx] michael@0: mul qword ptr [88+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [40+rcx] michael@0: mul qword ptr [80+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [48+rcx] michael@0: mul qword ptr [72+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [56+rcx] michael@0: mul qword ptr [64+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: add r12, r8 michael@0: adc r10, rdi michael@0: adc r13, rsi michael@0: add r12, r8 michael@0: adc r10, rdi michael@0: adc r13, rsi michael@0: mov qword ptr [-168+rbp], r12 michael@0: mov r12, r13 michael@0: mov rax, qword ptr [8+rcx] michael@0: mul qword ptr [120+rcx] michael@0: mov r8, rax michael@0: mov rdi, rdx michael@0: xor rsi, rsi michael@0: mov rax, qword ptr [16+rcx] michael@0: mul qword ptr [112+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [24+rcx] michael@0: mul qword ptr [104+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [32+rcx] michael@0: mul qword ptr [96+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [40+rcx] michael@0: mul qword ptr [88+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [48+rcx] michael@0: mul qword ptr [80+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [56+rcx] michael@0: mul qword ptr [72+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, r9 michael@0: mov rbx, rdi michael@0: mov rdx, rsi michael@0: add r10, r8 michael@0: adc r12, rbx michael@0: adc rax, rdx michael@0: add r10, r8 michael@0: adc r12, rbx michael@0: adc rax, rdx michael@0: mov r11, rdx michael@0: mov r13, rax michael@0: mov rdi, rbx michael@0: mov rax, qword ptr [64+rcx] michael@0: mul rax michael@0: add r10, rax michael@0: adc r12, rdx michael@0: adc r13, 0 michael@0: mov rsi, r11 michael@0: mov qword ptr [-160+rbp], r10 michael@0: mov r11, r9 michael@0: mov rax, qword ptr [16+rcx] michael@0: mul qword ptr [120+rcx] michael@0: mov r8, rax michael@0: mov rdi, rdx michael@0: xor rsi, rsi michael@0: mov r10, r13 michael@0: mov rbx, r9 michael@0: mov rax, qword ptr [24+rcx] michael@0: mul qword ptr [112+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [32+rcx] michael@0: mul qword ptr [104+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [40+rcx] michael@0: mul qword ptr [96+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [48+rcx] michael@0: mul qword ptr [88+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [56+rcx] michael@0: mul qword ptr [80+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [64+rcx] michael@0: mul qword ptr [72+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: add r12, r8 michael@0: adc r10, rdi michael@0: adc r11, rsi michael@0: add r12, r8 michael@0: adc r10, rdi michael@0: adc r11, rsi michael@0: mov qword ptr [-152+rbp], r12 michael@0: mov rax, qword ptr [24+rcx] michael@0: mul qword ptr [120+rcx] michael@0: mov r8, rax michael@0: mov rdi, rdx michael@0: xor rsi, rsi michael@0: mov rax, qword ptr [32+rcx] michael@0: mul qword ptr [112+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [40+rcx] michael@0: mul qword ptr [104+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [48+rcx] michael@0: mul qword ptr [96+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [56+rcx] michael@0: mul qword ptr [88+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [64+rcx] michael@0: mul qword ptr [80+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov r13, rdi michael@0: mov r12, rsi michael@0: add r10, r8 michael@0: adc r11, r13 michael@0: adc rbx, r12 michael@0: add r10, r8 michael@0: adc r11, r13 michael@0: adc rbx, r12 michael@0: mov rdx, rbx michael@0: mov rdi, r13 michael@0: mov rbx, r11 michael@0: mov rsi, r12 michael@0: mov r11, rdx michael@0: mov r12, r9 michael@0: mov rax, qword ptr [72+rcx] michael@0: mul rax michael@0: add r10, rax michael@0: adc rbx, rdx michael@0: adc r11, 0 michael@0: mov qword ptr [-144+rbp], r10 michael@0: mov r10, r11 michael@0: mov rax, qword ptr [32+rcx] michael@0: mul qword ptr [120+rcx] michael@0: mov r8, rax michael@0: mov rdi, rdx michael@0: xor rsi, rsi michael@0: mov rax, qword ptr [40+rcx] michael@0: mul qword ptr [112+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [48+rcx] michael@0: mul qword ptr [104+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [56+rcx] michael@0: mul qword ptr [96+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [64+rcx] michael@0: mul qword ptr [88+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [72+rcx] michael@0: mul qword ptr [80+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: add rbx, r8 michael@0: adc r10, rdi michael@0: adc r12, rsi michael@0: add rbx, r8 michael@0: adc r10, rdi michael@0: adc r12, rsi michael@0: mov qword ptr [-136+rbp], rbx michael@0: mov r11, r12 michael@0: mov rax, qword ptr [40+rcx] michael@0: mul qword ptr [120+rcx] michael@0: mov r8, rax michael@0: mov rdi, rdx michael@0: xor rsi, rsi michael@0: mov rax, qword ptr [48+rcx] michael@0: mul qword ptr [112+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [56+rcx] michael@0: mul qword ptr [104+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [64+rcx] michael@0: mul qword ptr [96+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [72+rcx] michael@0: mul qword ptr [88+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, r9 michael@0: mov r13, rdi michael@0: mov r12, rsi michael@0: add r10, r8 michael@0: adc r11, r13 michael@0: adc rax, r12 michael@0: add r10, r8 michael@0: adc r11, r13 michael@0: adc rax, r12 michael@0: mov rdx, rax michael@0: mov rbx, r11 michael@0: mov rdi, r13 michael@0: mov r11, rdx michael@0: mov rsi, r12 michael@0: mov rax, qword ptr [80+rcx] michael@0: mul rax michael@0: add r10, rax michael@0: adc rbx, rdx michael@0: adc r11, 0 michael@0: mov qword ptr [-128+rbp], r10 michael@0: mov r10, r11 michael@0: mov rax, qword ptr [48+rcx] michael@0: mul qword ptr [120+rcx] michael@0: mov r8, rax michael@0: mov rdi, rdx michael@0: xor rsi, rsi michael@0: mov rax, qword ptr [56+rcx] michael@0: mul qword ptr [112+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [64+rcx] michael@0: mul qword ptr [104+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [72+rcx] michael@0: mul qword ptr [96+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [80+rcx] michael@0: mul qword ptr [88+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rdx, r9 michael@0: add rbx, r8 michael@0: adc r10, rdi michael@0: adc rdx, rsi michael@0: add rbx, r8 michael@0: adc r10, rdi michael@0: adc rdx, rsi michael@0: mov qword ptr [-120+rbp], rbx michael@0: mov r11, rdx michael@0: mov rbx, r9 michael@0: mov rax, qword ptr [56+rcx] michael@0: mul qword ptr [120+rcx] michael@0: mov r8, rax michael@0: mov rdi, rdx michael@0: xor rsi, rsi michael@0: mov rax, qword ptr [64+rcx] michael@0: mul qword ptr [112+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [72+rcx] michael@0: mul qword ptr [104+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [80+rcx] michael@0: mul qword ptr [96+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov r13, rdi michael@0: mov r12, rsi michael@0: add r10, r8 michael@0: adc r11, r13 michael@0: adc rbx, r12 michael@0: add r10, r8 michael@0: adc r11, r13 michael@0: adc rbx, r12 michael@0: mov rdx, rbx michael@0: mov rdi, r13 michael@0: mov rbx, r11 michael@0: mov rsi, r12 michael@0: mov r11, rdx michael@0: mov r12, r9 michael@0: mov rax, qword ptr [88+rcx] michael@0: mul rax michael@0: add r10, rax michael@0: adc rbx, rdx michael@0: adc r11, 0 michael@0: mov qword ptr [-112+rbp], r10 michael@0: mov r10, r11 michael@0: mov rax, qword ptr [64+rcx] michael@0: mul qword ptr [120+rcx] michael@0: mov r8, rax michael@0: mov rdi, rdx michael@0: xor rsi, rsi michael@0: mov rax, qword ptr [72+rcx] michael@0: mul qword ptr [112+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [80+rcx] michael@0: mul qword ptr [104+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [88+rcx] michael@0: mul qword ptr [96+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: add rbx, r8 michael@0: adc r10, rdi michael@0: adc r12, rsi michael@0: add rbx, r8 michael@0: adc r10, rdi michael@0: adc r12, rsi michael@0: mov qword ptr [-104+rbp], rbx michael@0: mov r11, r12 michael@0: mov rax, qword ptr [72+rcx] michael@0: mul qword ptr [120+rcx] michael@0: mov r8, rax michael@0: mov rdi, rdx michael@0: xor rsi, rsi michael@0: mov rax, qword ptr [80+rcx] michael@0: mul qword ptr [112+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [88+rcx] michael@0: mul qword ptr [104+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, r9 michael@0: mov r13, rdi michael@0: mov r12, rsi michael@0: add r10, r8 michael@0: adc r11, r13 michael@0: adc rax, r12 michael@0: add r10, r8 michael@0: adc r11, r13 michael@0: adc rax, r12 michael@0: mov rdx, rax michael@0: mov rbx, r11 michael@0: mov rdi, r13 michael@0: mov r11, rdx michael@0: mov rsi, r12 michael@0: mov rax, qword ptr [96+rcx] michael@0: mul rax michael@0: add r10, rax michael@0: adc rbx, rdx michael@0: adc r11, 0 michael@0: mov qword ptr [-96+rbp], r10 michael@0: mov r10, r9 michael@0: mov rax, qword ptr [80+rcx] michael@0: mul qword ptr [120+rcx] michael@0: mov r8, rax michael@0: mov rdi, rdx michael@0: xor rsi, rsi michael@0: mov rax, qword ptr [88+rcx] michael@0: mul qword ptr [112+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [96+rcx] michael@0: mul qword ptr [104+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov r12, rdi michael@0: mov rax, rsi michael@0: mov rsi, r9 michael@0: add rbx, r8 michael@0: adc r11, r12 michael@0: adc r10, rax michael@0: add rbx, r8 michael@0: adc r11, r12 michael@0: adc r10, rax michael@0: mov r12, r9 michael@0: mov qword ptr [-88+rbp], rbx michael@0: mov r13, r11 michael@0: mov r11, r10 michael@0: mov rax, qword ptr [88+rcx] michael@0: mul qword ptr [120+rcx] michael@0: add r13, rax michael@0: adc r11, rdx michael@0: adc r12, 0 michael@0: add r13, rax michael@0: adc r11, rdx michael@0: adc r12, 0 michael@0: mov rdi, r12 michael@0: mov rax, qword ptr [96+rcx] michael@0: mul qword ptr [112+rcx] michael@0: add r13, rax michael@0: adc r11, rdx michael@0: adc rdi, 0 michael@0: add r13, rax michael@0: adc r11, rdx michael@0: adc rdi, 0 michael@0: mov rbx, r11 michael@0: mov r10, rdi michael@0: mov r11, r9 michael@0: mov rax, qword ptr [104+rcx] michael@0: mul rax michael@0: add r13, rax michael@0: adc rbx, rdx michael@0: adc r10, 0 michael@0: mov qword ptr [-80+rbp], r13 michael@0: mov r8, r10 michael@0: mov r10, rbx michael@0: mov rax, qword ptr [96+rcx] michael@0: mul qword ptr [120+rcx] michael@0: add r10, rax michael@0: adc r8, rdx michael@0: adc rsi, 0 michael@0: add r10, rax michael@0: adc r8, rdx michael@0: adc rsi, 0 michael@0: mov r12, r8 michael@0: mov rbx, rsi michael@0: mov rax, qword ptr [104+rcx] michael@0: mul qword ptr [112+rcx] michael@0: add r10, rax michael@0: adc r12, rdx michael@0: adc rbx, 0 michael@0: add r10, rax michael@0: adc r12, rdx michael@0: adc rbx, 0 michael@0: mov qword ptr [-72+rbp], r10 michael@0: mov r13, rbx michael@0: mov rbx, r12 michael@0: mov rax, qword ptr [104+rcx] michael@0: mul qword ptr [120+rcx] michael@0: add rbx, rax michael@0: adc r13, rdx michael@0: adc r11, 0 michael@0: add rbx, rax michael@0: adc r13, rdx michael@0: adc r11, 0 michael@0: mov r12, r11 michael@0: mov r10, r13 michael@0: mov rax, qword ptr [112+rcx] michael@0: mul rax michael@0: add rbx, rax michael@0: adc r10, rdx michael@0: adc r12, 0 michael@0: mov qword ptr [-64+rbp], rbx michael@0: mov rdi, r10 michael@0: mov rbx, r9 michael@0: mov rsi, r12 michael@0: mov rax, qword ptr [112+rcx] michael@0: mul qword ptr [120+rcx] michael@0: add rdi, rax michael@0: adc rsi, rdx michael@0: adc rbx, 0 michael@0: add rdi, rax michael@0: adc rsi, rdx michael@0: adc rbx, 0 michael@0: mov qword ptr [-56+rbp], rdi michael@0: mov r8, rbx michael@0: mov rax, qword ptr [120+rcx] michael@0: mul rax michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc r9, 0 michael@0: mov qword ptr [-48+rbp], rsi michael@0: mov qword ptr [-40+rbp], r8 michael@0: mov dword ptr [8+r14], 32 michael@0: mov dword ptr [r14], 0 michael@0: ; mov rdi, qword ptr [16+r14] michael@0: ; lea rsi, qword ptr [-288+rbp] michael@0: ; mov edx, 256 michael@0: mov rcx, qword ptr [16+r14] michael@0: lea rdx, qword ptr [-288+rbp] michael@0: mov r8d, 256 michael@0: call memcpy michael@0: mov edx, dword ptr [8+r14] michael@0: test edx, edx michael@0: je L232 michael@0: lea ecx, dword ptr [-1+rdx] michael@0: mov rsi, qword ptr [16+r14] michael@0: mov r9d, ecx michael@0: cmp dword ptr [rsi+r9*8], 0 michael@0: jne L230 michael@0: mov edx, ecx michael@0: ALIGN 16 michael@0: L231: michael@0: test edx, edx michael@0: mov ecx, edx michael@0: je L235 michael@0: dec edx michael@0: mov eax, edx michael@0: cmp dword ptr [rsi+rax*8], 0 michael@0: je L231 michael@0: mov dword ptr [8+r14], ecx michael@0: mov edx, ecx michael@0: L230: michael@0: test edx, edx michael@0: je L232 michael@0: mov eax, dword ptr [r14] michael@0: jmp L233 michael@0: michael@0: L235: michael@0: mov dword ptr [8+r14], edx michael@0: L232: michael@0: xor eax, eax michael@0: L233: michael@0: mov dword ptr [r14], eax michael@0: add rsp, 256+32 ; +32 for "home" storage michael@0: pop rbx michael@0: pop r12 michael@0: pop r13 michael@0: pop r14 michael@0: pop rbp michael@0: pop rsi michael@0: pop rdi michael@0: michael@0: ret michael@0: michael@0: s_mp_sqr_comba_16 ENDP michael@0: michael@0: michael@0: ; void s_mp_sqr_comba_32(const mp_int *A, mp_int *B); michael@0: michael@0: ALIGN 16 michael@0: s_mp_sqr_comba_32 PROC ; A "FRAME" function michael@0: michael@0: push rdi michael@0: push rsi michael@0: michael@0: mov rdi, rcx michael@0: mov rsi, rdx michael@0: michael@0: push rbp michael@0: xor r10d, r10d michael@0: mov r8, r10 michael@0: mov r11, r10 michael@0: mov rbp, rsp michael@0: push r14 michael@0: mov r14, rsi michael@0: mov rsi, r10 michael@0: push r13 michael@0: mov r13, r10 michael@0: push r12 michael@0: mov r12, r10 michael@0: push rbx michael@0: mov rbx, r10 michael@0: sub rsp, 512+32 ; +32 for "home" storage michael@0: mov rcx, qword ptr [16+rdi] michael@0: mov rax, qword ptr [rcx] michael@0: mul rax michael@0: add r8, rax michael@0: adc rbx, rdx michael@0: adc rsi, 0 michael@0: mov qword ptr [-544+rbp], r8 michael@0: mov rax, qword ptr [rcx] michael@0: mul qword ptr [8+rcx] michael@0: add rbx, rax michael@0: adc rsi, rdx michael@0: adc r12, 0 michael@0: add rbx, rax michael@0: adc rsi, rdx michael@0: adc r12, 0 michael@0: mov qword ptr [-536+rbp], rbx michael@0: mov rax, qword ptr [rcx] michael@0: mul qword ptr [16+rcx] michael@0: add rsi, rax michael@0: adc r12, rdx michael@0: adc r13, 0 michael@0: add rsi, rax michael@0: adc r12, rdx michael@0: adc r13, 0 michael@0: mov rbx, r12 michael@0: mov r9, r13 michael@0: mov rax, qword ptr [8+rcx] michael@0: mul rax michael@0: add rsi, rax michael@0: adc rbx, rdx michael@0: adc r9, 0 michael@0: mov qword ptr [-528+rbp], rsi michael@0: mov rdi, r9 michael@0: mov rsi, r10 michael@0: mov r9, rbx michael@0: mov rax, qword ptr [rcx] michael@0: mul qword ptr [24+rcx] michael@0: add r9, rax michael@0: adc rdi, rdx michael@0: adc r11, 0 michael@0: add r9, rax michael@0: adc rdi, rdx michael@0: adc r11, 0 michael@0: mov r12, rdi michael@0: mov r13, r11 michael@0: mov rdi, r10 michael@0: mov rax, qword ptr [8+rcx] michael@0: mul qword ptr [16+rcx] michael@0: add r9, rax michael@0: adc r12, rdx michael@0: adc r13, 0 michael@0: add r9, rax michael@0: adc r12, rdx michael@0: adc r13, 0 michael@0: mov r11, r10 michael@0: mov qword ptr [-520+rbp], r9 michael@0: mov r8, r13 michael@0: mov r13, r12 michael@0: mov r12, r10 michael@0: mov rax, qword ptr [rcx] michael@0: mul qword ptr [32+rcx] michael@0: add r13, rax michael@0: adc r8, rdx michael@0: adc r12, 0 michael@0: add r13, rax michael@0: adc r8, rdx michael@0: adc r12, 0 michael@0: mov rax, qword ptr [8+rcx] michael@0: mul qword ptr [24+rcx] michael@0: add r13, rax michael@0: adc r8, rdx michael@0: adc r12, 0 michael@0: add r13, rax michael@0: adc r8, rdx michael@0: adc r12, 0 michael@0: mov rbx, r8 michael@0: mov r9, r12 michael@0: mov r8, r10 michael@0: mov rax, qword ptr [16+rcx] michael@0: mul rax michael@0: add r13, rax michael@0: adc rbx, rdx michael@0: adc r9, 0 michael@0: mov qword ptr [-512+rbp], r13 michael@0: mov rax, qword ptr [rcx] michael@0: mul qword ptr [40+rcx] michael@0: mov r8, rax michael@0: mov rdi, rdx michael@0: xor rsi, rsi michael@0: mov rax, qword ptr [8+rcx] michael@0: mul qword ptr [32+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [16+rcx] michael@0: mul qword ptr [24+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: add rbx, r8 michael@0: adc r9, rdi michael@0: adc r11, rsi michael@0: add rbx, r8 michael@0: adc r9, rdi michael@0: adc r11, rsi michael@0: mov qword ptr [-504+rbp], rbx michael@0: mov rax, qword ptr [rcx] michael@0: mul qword ptr [48+rcx] michael@0: mov r8, rax michael@0: mov rdi, rdx michael@0: xor rsi, rsi michael@0: mov rax, qword ptr [8+rcx] michael@0: mul qword ptr [40+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [16+rcx] michael@0: mul qword ptr [32+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, r10 michael@0: mov r13, rdi michael@0: mov r12, rsi michael@0: add r9, r8 michael@0: adc r11, r13 michael@0: adc rax, r12 michael@0: add r9, r8 michael@0: adc r11, r13 michael@0: adc rax, r12 michael@0: mov rdx, rax michael@0: mov rbx, r11 michael@0: mov rdi, r13 michael@0: mov r11, rdx michael@0: mov rsi, r12 michael@0: mov rax, qword ptr [24+rcx] michael@0: mul rax michael@0: add r9, rax michael@0: adc rbx, rdx michael@0: adc r11, 0 michael@0: mov qword ptr [-496+rbp], r9 michael@0: mov r9, r11 michael@0: mov rax, qword ptr [rcx] michael@0: mul qword ptr [56+rcx] michael@0: mov r8, rax michael@0: mov rdi, rdx michael@0: xor rsi, rsi michael@0: mov rax, qword ptr [8+rcx] michael@0: mul qword ptr [48+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [16+rcx] michael@0: mul qword ptr [40+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [24+rcx] michael@0: mul qword ptr [32+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rdx, r10 michael@0: add rbx, r8 michael@0: adc r9, rdi michael@0: adc rdx, rsi michael@0: add rbx, r8 michael@0: adc r9, rdi michael@0: adc rdx, rsi michael@0: mov r11, rdx michael@0: mov qword ptr [-488+rbp], rbx michael@0: mov rbx, r10 michael@0: mov rax, qword ptr [rcx] michael@0: mul qword ptr [64+rcx] michael@0: mov r8, rax michael@0: mov rdi, rdx michael@0: xor rsi, rsi michael@0: mov rax, qword ptr [8+rcx] michael@0: mul qword ptr [56+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [16+rcx] michael@0: mul qword ptr [48+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [24+rcx] michael@0: mul qword ptr [40+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov r13, rdi michael@0: mov r12, rsi michael@0: add r9, r8 michael@0: adc r11, r13 michael@0: adc rbx, r12 michael@0: add r9, r8 michael@0: adc r11, r13 michael@0: adc rbx, r12 michael@0: mov rax, qword ptr [32+rcx] michael@0: mul rax michael@0: add r9, rax michael@0: adc r11, rdx michael@0: adc rbx, 0 michael@0: mov rdi, r13 michael@0: mov qword ptr [-480+rbp], r9 michael@0: mov rsi, r12 michael@0: mov r9, rbx michael@0: mov r12, r10 michael@0: mov rax, qword ptr [rcx] michael@0: mul qword ptr [72+rcx] michael@0: mov r8, rax michael@0: mov rdi, rdx michael@0: xor rsi, rsi michael@0: mov rax, qword ptr [8+rcx] michael@0: mul qword ptr [64+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [16+rcx] michael@0: mul qword ptr [56+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [24+rcx] michael@0: mul qword ptr [48+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [32+rcx] michael@0: mul qword ptr [40+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: add r11, r8 michael@0: adc r9, rdi michael@0: adc r12, rsi michael@0: add r11, r8 michael@0: adc r9, rdi michael@0: adc r12, rsi michael@0: mov qword ptr [-472+rbp], r11 michael@0: mov rbx, r12 michael@0: mov rax, qword ptr [rcx] michael@0: mul qword ptr [80+rcx] michael@0: mov r8, rax michael@0: mov rdi, rdx michael@0: xor rsi, rsi michael@0: mov rax, qword ptr [8+rcx] michael@0: mul qword ptr [72+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [16+rcx] michael@0: mul qword ptr [64+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [24+rcx] michael@0: mul qword ptr [56+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [32+rcx] michael@0: mul qword ptr [48+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, r10 michael@0: mov r13, rdi michael@0: mov r12, rsi michael@0: add r9, r8 michael@0: adc rbx, r13 michael@0: adc rax, r12 michael@0: add r9, r8 michael@0: adc rbx, r13 michael@0: adc rax, r12 michael@0: mov rdx, rax michael@0: mov r11, rbx michael@0: mov rdi, r13 michael@0: mov rbx, rdx michael@0: mov rsi, r12 michael@0: mov rax, qword ptr [40+rcx] michael@0: mul rax michael@0: add r9, rax michael@0: adc r11, rdx michael@0: adc rbx, 0 michael@0: mov qword ptr [-464+rbp], r9 michael@0: mov r9, rbx michael@0: mov rax, qword ptr [rcx] michael@0: mul qword ptr [88+rcx] michael@0: mov r8, rax michael@0: mov rdi, rdx michael@0: xor rsi, rsi michael@0: mov rax, qword ptr [8+rcx] michael@0: mul qword ptr [80+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [16+rcx] michael@0: mul qword ptr [72+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [24+rcx] michael@0: mul qword ptr [64+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [32+rcx] michael@0: mul qword ptr [56+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [40+rcx] michael@0: mul qword ptr [48+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rdx, r10 michael@0: add r11, r8 michael@0: adc r9, rdi michael@0: adc rdx, rsi michael@0: add r11, r8 michael@0: adc r9, rdi michael@0: adc rdx, rsi michael@0: mov r13, rdx michael@0: mov qword ptr [-456+rbp], r11 michael@0: mov r12, r13 michael@0: mov r13, r10 michael@0: mov rax, qword ptr [rcx] michael@0: mul qword ptr [96+rcx] michael@0: mov r8, rax michael@0: mov rdi, rdx michael@0: xor rsi, rsi michael@0: mov rax, qword ptr [8+rcx] michael@0: mul qword ptr [88+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [16+rcx] michael@0: mul qword ptr [80+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [24+rcx] michael@0: mul qword ptr [72+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [32+rcx] michael@0: mul qword ptr [64+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [40+rcx] michael@0: mul qword ptr [56+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, rdi michael@0: mov r11, rsi michael@0: add r9, r8 michael@0: adc r12, rax michael@0: adc r13, r11 michael@0: add r9, r8 michael@0: adc r12, rax michael@0: adc r13, r11 michael@0: mov rbx, rax michael@0: mov rsi, r11 michael@0: mov rax, qword ptr [48+rcx] michael@0: mul rax michael@0: add r9, rax michael@0: adc r12, rdx michael@0: adc r13, 0 michael@0: mov rdi, rbx michael@0: mov qword ptr [-448+rbp], r9 michael@0: mov r9, r13 michael@0: mov rax, qword ptr [rcx] michael@0: mul qword ptr [104+rcx] michael@0: mov r8, rax michael@0: mov rdi, rdx michael@0: xor rsi, rsi michael@0: mov r13, r10 michael@0: mov rax, qword ptr [8+rcx] michael@0: mul qword ptr [96+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [16+rcx] michael@0: mul qword ptr [88+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [24+rcx] michael@0: mul qword ptr [80+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [32+rcx] michael@0: mul qword ptr [72+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [40+rcx] michael@0: mul qword ptr [64+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [48+rcx] michael@0: mul qword ptr [56+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: add r12, r8 michael@0: adc r9, rdi michael@0: adc r13, rsi michael@0: add r12, r8 michael@0: adc r9, rdi michael@0: adc r13, rsi michael@0: mov qword ptr [-440+rbp], r12 michael@0: mov r12, r10 michael@0: mov rax, qword ptr [rcx] michael@0: mul qword ptr [112+rcx] michael@0: mov r8, rax michael@0: mov rdi, rdx michael@0: xor rsi, rsi michael@0: mov rax, qword ptr [8+rcx] michael@0: mul qword ptr [104+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [16+rcx] michael@0: mul qword ptr [96+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [24+rcx] michael@0: mul qword ptr [88+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [32+rcx] michael@0: mul qword ptr [80+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [40+rcx] michael@0: mul qword ptr [72+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [48+rcx] michael@0: mul qword ptr [64+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rdx, r13 michael@0: mov rbx, rdi michael@0: mov r13, rsi michael@0: add r9, r8 michael@0: adc rdx, rbx michael@0: adc r12, r13 michael@0: add r9, r8 michael@0: adc rdx, rbx michael@0: adc r12, r13 michael@0: mov rax, r12 michael@0: mov r11, r13 michael@0: mov r12, rdx michael@0: mov r13, rax michael@0: mov rdi, rbx michael@0: mov rsi, r11 michael@0: mov rax, qword ptr [56+rcx] michael@0: mul rax michael@0: add r9, rax michael@0: adc r12, rdx michael@0: adc r13, 0 michael@0: mov qword ptr [-432+rbp], r9 michael@0: mov r9, r13 michael@0: mov r13, r10 michael@0: mov rax, qword ptr [rcx] michael@0: mul qword ptr [120+rcx] michael@0: mov r8, rax michael@0: mov rdi, rdx michael@0: xor rsi, rsi michael@0: mov rax, qword ptr [8+rcx] michael@0: mul qword ptr [112+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [16+rcx] michael@0: mul qword ptr [104+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [24+rcx] michael@0: mul qword ptr [96+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [32+rcx] michael@0: mul qword ptr [88+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [40+rcx] michael@0: mul qword ptr [80+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [48+rcx] michael@0: mul qword ptr [72+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [56+rcx] michael@0: mul qword ptr [64+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, r8 michael@0: mov rdx, rdi michael@0: mov rbx, rsi michael@0: add r12, rax michael@0: adc r9, rdx michael@0: adc r13, rbx michael@0: add r12, rax michael@0: adc r9, rdx michael@0: adc r13, rbx michael@0: mov qword ptr [-424+rbp], r12 michael@0: mov r8, rdx michael@0: mov rsi, rax michael@0: mov rdi, rbx michael@0: mov r12, r13 michael@0: mov r13, r10 michael@0: mov rax, qword ptr [rcx] michael@0: mul qword ptr [128+rcx] michael@0: mov rsi, rax michael@0: mov r8, rdx michael@0: xor rdi, rdi michael@0: mov rax, qword ptr [8+rcx] michael@0: mul qword ptr [120+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [16+rcx] michael@0: mul qword ptr [112+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [24+rcx] michael@0: mul qword ptr [104+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [32+rcx] michael@0: mul qword ptr [96+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [40+rcx] michael@0: mul qword ptr [88+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [48+rcx] michael@0: mul qword ptr [80+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [56+rcx] michael@0: mul qword ptr [72+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, rsi michael@0: mov rbx, r8 michael@0: mov rdx, rdi michael@0: add r9, rax michael@0: adc r12, rbx michael@0: adc r13, rdx michael@0: add r9, rax michael@0: adc r12, rbx michael@0: adc r13, rdx michael@0: mov r11, rdx michael@0: mov r8, rax michael@0: mov rdi, rbx michael@0: mov rax, qword ptr [64+rcx] michael@0: mul rax michael@0: add r9, rax michael@0: adc r12, rdx michael@0: adc r13, 0 michael@0: mov rsi, r11 michael@0: mov qword ptr [-416+rbp], r9 michael@0: mov r9, r13 michael@0: mov rax, qword ptr [rcx] michael@0: mul qword ptr [136+rcx] michael@0: mov r8, rax michael@0: mov rdi, rdx michael@0: xor rsi, rsi michael@0: mov r13, r10 michael@0: mov rax, qword ptr [8+rcx] michael@0: mul qword ptr [128+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [16+rcx] michael@0: mul qword ptr [120+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [24+rcx] michael@0: mul qword ptr [112+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [32+rcx] michael@0: mul qword ptr [104+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [40+rcx] michael@0: mul qword ptr [96+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [48+rcx] michael@0: mul qword ptr [88+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [56+rcx] michael@0: mul qword ptr [80+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [64+rcx] michael@0: mul qword ptr [72+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rbx, r8 michael@0: mov rax, rdi michael@0: mov rdx, rsi michael@0: add r12, rbx michael@0: adc r9, rax michael@0: adc r13, rdx michael@0: add r12, rbx michael@0: adc r9, rax michael@0: adc r13, rdx michael@0: mov qword ptr [-408+rbp], r12 michael@0: mov rdi, rdx michael@0: mov r8, rax michael@0: mov rsi, rbx michael@0: mov r12, r13 michael@0: mov r13, r10 michael@0: mov rax, qword ptr [rcx] michael@0: mul qword ptr [144+rcx] michael@0: mov rsi, rax michael@0: mov r8, rdx michael@0: xor rdi, rdi michael@0: mov rax, qword ptr [8+rcx] michael@0: mul qword ptr [136+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [16+rcx] michael@0: mul qword ptr [128+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [24+rcx] michael@0: mul qword ptr [120+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [32+rcx] michael@0: mul qword ptr [112+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [40+rcx] michael@0: mul qword ptr [104+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [48+rcx] michael@0: mul qword ptr [96+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [56+rcx] michael@0: mul qword ptr [88+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [64+rcx] michael@0: mul qword ptr [80+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, rsi michael@0: mov rbx, r8 michael@0: mov rdx, rdi michael@0: add r9, rax michael@0: adc r12, rbx michael@0: adc r13, rdx michael@0: add r9, rax michael@0: adc r12, rbx michael@0: adc r13, rdx michael@0: mov r11, rdx michael@0: mov r8, rax michael@0: mov rdi, rbx michael@0: mov rax, qword ptr [72+rcx] michael@0: mul rax michael@0: add r9, rax michael@0: adc r12, rdx michael@0: adc r13, 0 michael@0: mov rsi, r11 michael@0: mov qword ptr [-400+rbp], r9 michael@0: mov r9, r13 michael@0: mov rax, qword ptr [rcx] michael@0: mul qword ptr [152+rcx] michael@0: mov r8, rax michael@0: mov rdi, rdx michael@0: xor rsi, rsi michael@0: mov r13, r10 michael@0: mov rax, qword ptr [8+rcx] michael@0: mul qword ptr [144+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [16+rcx] michael@0: mul qword ptr [136+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [24+rcx] michael@0: mul qword ptr [128+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [32+rcx] michael@0: mul qword ptr [120+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [40+rcx] michael@0: mul qword ptr [112+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [48+rcx] michael@0: mul qword ptr [104+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [56+rcx] michael@0: mul qword ptr [96+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [64+rcx] michael@0: mul qword ptr [88+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [72+rcx] michael@0: mul qword ptr [80+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rbx, r8 michael@0: mov rax, rdi michael@0: mov rdx, rsi michael@0: add r12, rbx michael@0: adc r9, rax michael@0: adc r13, rdx michael@0: add r12, rbx michael@0: adc r9, rax michael@0: adc r13, rdx michael@0: mov qword ptr [-392+rbp], r12 michael@0: mov rdi, rdx michael@0: mov r8, rax michael@0: mov rsi, rbx michael@0: mov r12, r13 michael@0: mov r13, r10 michael@0: mov rax, qword ptr [rcx] michael@0: mul qword ptr [160+rcx] michael@0: mov rsi, rax michael@0: mov r8, rdx michael@0: xor rdi, rdi michael@0: mov rax, qword ptr [8+rcx] michael@0: mul qword ptr [152+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [16+rcx] michael@0: mul qword ptr [144+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [24+rcx] michael@0: mul qword ptr [136+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [32+rcx] michael@0: mul qword ptr [128+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [40+rcx] michael@0: mul qword ptr [120+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [48+rcx] michael@0: mul qword ptr [112+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [56+rcx] michael@0: mul qword ptr [104+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [64+rcx] michael@0: mul qword ptr [96+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [72+rcx] michael@0: mul qword ptr [88+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, rsi michael@0: mov rbx, r8 michael@0: mov rdx, rdi michael@0: add r9, rax michael@0: adc r12, rbx michael@0: adc r13, rdx michael@0: add r9, rax michael@0: adc r12, rbx michael@0: adc r13, rdx michael@0: mov r11, rdx michael@0: mov r8, rax michael@0: mov rdi, rbx michael@0: mov rax, qword ptr [80+rcx] michael@0: mul rax michael@0: add r9, rax michael@0: adc r12, rdx michael@0: adc r13, 0 michael@0: mov rsi, r11 michael@0: mov qword ptr [-384+rbp], r9 michael@0: mov r9, r13 michael@0: mov rax, qword ptr [rcx] michael@0: mul qword ptr [168+rcx] michael@0: mov r8, rax michael@0: mov rdi, rdx michael@0: xor rsi, rsi michael@0: mov r13, r10 michael@0: mov rax, qword ptr [8+rcx] michael@0: mul qword ptr [160+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [16+rcx] michael@0: mul qword ptr [152+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [24+rcx] michael@0: mul qword ptr [144+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [32+rcx] michael@0: mul qword ptr [136+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [40+rcx] michael@0: mul qword ptr [128+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [48+rcx] michael@0: mul qword ptr [120+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [56+rcx] michael@0: mul qword ptr [112+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [64+rcx] michael@0: mul qword ptr [104+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [72+rcx] michael@0: mul qword ptr [96+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [80+rcx] michael@0: mul qword ptr [88+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rbx, r8 michael@0: mov rax, rdi michael@0: mov rdx, rsi michael@0: add r12, rbx michael@0: adc r9, rax michael@0: adc r13, rdx michael@0: add r12, rbx michael@0: adc r9, rax michael@0: adc r13, rdx michael@0: mov qword ptr [-376+rbp], r12 michael@0: mov rdi, rdx michael@0: mov r8, rax michael@0: mov rsi, rbx michael@0: mov r12, r13 michael@0: mov r13, r10 michael@0: mov rax, qword ptr [rcx] michael@0: mul qword ptr [176+rcx] michael@0: mov rsi, rax michael@0: mov r8, rdx michael@0: xor rdi, rdi michael@0: mov rax, qword ptr [8+rcx] michael@0: mul qword ptr [168+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [16+rcx] michael@0: mul qword ptr [160+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [24+rcx] michael@0: mul qword ptr [152+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [32+rcx] michael@0: mul qword ptr [144+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [40+rcx] michael@0: mul qword ptr [136+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [48+rcx] michael@0: mul qword ptr [128+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [56+rcx] michael@0: mul qword ptr [120+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [64+rcx] michael@0: mul qword ptr [112+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [72+rcx] michael@0: mul qword ptr [104+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [80+rcx] michael@0: mul qword ptr [96+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, rsi michael@0: mov rbx, r8 michael@0: mov rdx, rdi michael@0: add r9, rax michael@0: adc r12, rbx michael@0: adc r13, rdx michael@0: add r9, rax michael@0: adc r12, rbx michael@0: adc r13, rdx michael@0: mov r11, rdx michael@0: mov r8, rax michael@0: mov rdi, rbx michael@0: mov rax, qword ptr [88+rcx] michael@0: mul rax michael@0: add r9, rax michael@0: adc r12, rdx michael@0: adc r13, 0 michael@0: mov rsi, r11 michael@0: mov qword ptr [-368+rbp], r9 michael@0: mov r9, r13 michael@0: mov rax, qword ptr [rcx] michael@0: mul qword ptr [184+rcx] michael@0: mov r8, rax michael@0: mov rdi, rdx michael@0: xor rsi, rsi michael@0: mov r13, r10 michael@0: mov rax, qword ptr [8+rcx] michael@0: mul qword ptr [176+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [16+rcx] michael@0: mul qword ptr [168+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [24+rcx] michael@0: mul qword ptr [160+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [32+rcx] michael@0: mul qword ptr [152+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [40+rcx] michael@0: mul qword ptr [144+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [48+rcx] michael@0: mul qword ptr [136+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [56+rcx] michael@0: mul qword ptr [128+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [64+rcx] michael@0: mul qword ptr [120+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [72+rcx] michael@0: mul qword ptr [112+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [80+rcx] michael@0: mul qword ptr [104+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [88+rcx] michael@0: mul qword ptr [96+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rbx, r8 michael@0: mov rax, rdi michael@0: mov rdx, rsi michael@0: add r12, rbx michael@0: adc r9, rax michael@0: adc r13, rdx michael@0: add r12, rbx michael@0: adc r9, rax michael@0: adc r13, rdx michael@0: mov rdi, rdx michael@0: mov qword ptr [-360+rbp], r12 michael@0: mov r8, rax michael@0: mov rsi, rbx michael@0: mov r12, r13 michael@0: mov r13, r10 michael@0: mov rax, qword ptr [rcx] michael@0: mul qword ptr [192+rcx] michael@0: mov rsi, rax michael@0: mov r8, rdx michael@0: xor rdi, rdi michael@0: mov rax, qword ptr [8+rcx] michael@0: mul qword ptr [184+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [16+rcx] michael@0: mul qword ptr [176+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [24+rcx] michael@0: mul qword ptr [168+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [32+rcx] michael@0: mul qword ptr [160+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [40+rcx] michael@0: mul qword ptr [152+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [48+rcx] michael@0: mul qword ptr [144+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [56+rcx] michael@0: mul qword ptr [136+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [64+rcx] michael@0: mul qword ptr [128+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [72+rcx] michael@0: mul qword ptr [120+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [80+rcx] michael@0: mul qword ptr [112+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [88+rcx] michael@0: mul qword ptr [104+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rbx, r8 michael@0: mov rax, rdi michael@0: add r9, rsi michael@0: adc r12, rbx michael@0: adc r13, rax michael@0: add r9, rsi michael@0: adc r12, rbx michael@0: adc r13, rax michael@0: mov r11, rax michael@0: mov r8, rbx michael@0: mov rax, qword ptr [96+rcx] michael@0: mul rax michael@0: add r9, rax michael@0: adc r12, rdx michael@0: adc r13, 0 michael@0: mov rdi, r11 michael@0: mov qword ptr [-352+rbp], r9 michael@0: mov r9, r13 michael@0: mov rax, qword ptr [rcx] michael@0: mul qword ptr [200+rcx] michael@0: mov rsi, rax michael@0: mov r8, rdx michael@0: xor rdi, rdi michael@0: mov r13, r10 michael@0: mov rax, qword ptr [8+rcx] michael@0: mul qword ptr [192+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [16+rcx] michael@0: mul qword ptr [184+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [24+rcx] michael@0: mul qword ptr [176+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [32+rcx] michael@0: mul qword ptr [168+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [40+rcx] michael@0: mul qword ptr [160+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [48+rcx] michael@0: mul qword ptr [152+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [56+rcx] michael@0: mul qword ptr [144+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [64+rcx] michael@0: mul qword ptr [136+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [72+rcx] michael@0: mul qword ptr [128+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [80+rcx] michael@0: mul qword ptr [120+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [88+rcx] michael@0: mul qword ptr [112+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [96+rcx] michael@0: mul qword ptr [104+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: add r12, rsi michael@0: adc r9, r8 michael@0: adc r13, rdi michael@0: add r12, rsi michael@0: adc r9, r8 michael@0: adc r13, rdi michael@0: mov qword ptr [-344+rbp], r12 michael@0: mov r12, r10 michael@0: mov rax, qword ptr [rcx] michael@0: mul qword ptr [208+rcx] michael@0: mov rsi, rax michael@0: mov r8, rdx michael@0: xor rdi, rdi michael@0: mov rax, qword ptr [8+rcx] michael@0: mul qword ptr [200+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [16+rcx] michael@0: mul qword ptr [192+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [24+rcx] michael@0: mul qword ptr [184+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [32+rcx] michael@0: mul qword ptr [176+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [40+rcx] michael@0: mul qword ptr [168+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [48+rcx] michael@0: mul qword ptr [160+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [56+rcx] michael@0: mul qword ptr [152+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [64+rcx] michael@0: mul qword ptr [144+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [72+rcx] michael@0: mul qword ptr [136+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [80+rcx] michael@0: mul qword ptr [128+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [88+rcx] michael@0: mul qword ptr [120+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [96+rcx] michael@0: mul qword ptr [112+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rdx, r13 michael@0: mov rbx, r8 michael@0: mov r13, rdi michael@0: add r9, rsi michael@0: adc rdx, rbx michael@0: adc r12, r13 michael@0: add r9, rsi michael@0: adc rdx, rbx michael@0: adc r12, r13 michael@0: mov rax, r12 michael@0: mov r11, r13 michael@0: mov r12, rdx michael@0: mov r13, rax michael@0: mov r8, rbx michael@0: mov rdi, r11 michael@0: mov rax, qword ptr [104+rcx] michael@0: mul rax michael@0: add r9, rax michael@0: adc r12, rdx michael@0: adc r13, 0 michael@0: mov qword ptr [-336+rbp], r9 michael@0: mov r9, r13 michael@0: mov r13, r10 michael@0: mov rax, qword ptr [rcx] michael@0: mul qword ptr [216+rcx] michael@0: mov rsi, rax michael@0: mov r8, rdx michael@0: xor rdi, rdi michael@0: mov rax, qword ptr [8+rcx] michael@0: mul qword ptr [208+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [16+rcx] michael@0: mul qword ptr [200+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [24+rcx] michael@0: mul qword ptr [192+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [32+rcx] michael@0: mul qword ptr [184+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [40+rcx] michael@0: mul qword ptr [176+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [48+rcx] michael@0: mul qword ptr [168+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [56+rcx] michael@0: mul qword ptr [160+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [64+rcx] michael@0: mul qword ptr [152+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [72+rcx] michael@0: mul qword ptr [144+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [80+rcx] michael@0: mul qword ptr [136+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [88+rcx] michael@0: mul qword ptr [128+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [96+rcx] michael@0: mul qword ptr [120+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [104+rcx] michael@0: mul qword ptr [112+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: add r12, rsi michael@0: adc r9, r8 michael@0: adc r13, rdi michael@0: add r12, rsi michael@0: adc r9, r8 michael@0: adc r13, rdi michael@0: mov qword ptr [-328+rbp], r12 michael@0: mov rax, qword ptr [rcx] michael@0: mul qword ptr [224+rcx] michael@0: mov rsi, rax michael@0: mov r8, rdx michael@0: xor rdi, rdi michael@0: mov rax, qword ptr [8+rcx] michael@0: mul qword ptr [216+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [16+rcx] michael@0: mul qword ptr [208+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [24+rcx] michael@0: mul qword ptr [200+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [32+rcx] michael@0: mul qword ptr [192+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [40+rcx] michael@0: mul qword ptr [184+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [48+rcx] michael@0: mul qword ptr [176+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [56+rcx] michael@0: mul qword ptr [168+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [64+rcx] michael@0: mul qword ptr [160+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [72+rcx] michael@0: mul qword ptr [152+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [80+rcx] michael@0: mul qword ptr [144+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [88+rcx] michael@0: mul qword ptr [136+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [96+rcx] michael@0: mul qword ptr [128+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [104+rcx] michael@0: mul qword ptr [120+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, r13 michael@0: mov rdx, r10 michael@0: mov rbx, r8 michael@0: mov r12, rdi michael@0: add r9, rsi michael@0: adc rax, rbx michael@0: adc rdx, r12 michael@0: add r9, rsi michael@0: adc rax, rbx michael@0: adc rdx, r12 michael@0: mov rdi, rdx michael@0: mov r11, r12 michael@0: mov r8, rbx michael@0: mov r12, rax michael@0: mov r13, rdi michael@0: mov rdi, r11 michael@0: mov rax, qword ptr [112+rcx] michael@0: mul rax michael@0: add r9, rax michael@0: adc r12, rdx michael@0: adc r13, 0 michael@0: mov qword ptr [-320+rbp], r9 michael@0: mov rbx, r13 michael@0: mov r9, r10 michael@0: mov rax, qword ptr [rcx] michael@0: mul qword ptr [232+rcx] michael@0: mov rsi, rax michael@0: mov r8, rdx michael@0: xor rdi, rdi michael@0: mov rax, qword ptr [8+rcx] michael@0: mul qword ptr [224+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [16+rcx] michael@0: mul qword ptr [216+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [24+rcx] michael@0: mul qword ptr [208+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [32+rcx] michael@0: mul qword ptr [200+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [40+rcx] michael@0: mul qword ptr [192+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [48+rcx] michael@0: mul qword ptr [184+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [56+rcx] michael@0: mul qword ptr [176+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [64+rcx] michael@0: mul qword ptr [168+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [72+rcx] michael@0: mul qword ptr [160+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [80+rcx] michael@0: mul qword ptr [152+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [88+rcx] michael@0: mul qword ptr [144+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [96+rcx] michael@0: mul qword ptr [136+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [104+rcx] michael@0: mul qword ptr [128+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [112+rcx] michael@0: mul qword ptr [120+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: add r12, rsi michael@0: adc rbx, r8 michael@0: adc r9, rdi michael@0: add r12, rsi michael@0: adc rbx, r8 michael@0: adc r9, rdi michael@0: mov qword ptr [-312+rbp], r12 michael@0: mov r13, r9 michael@0: mov rax, qword ptr [rcx] michael@0: mul qword ptr [240+rcx] michael@0: mov rsi, rax michael@0: mov r8, rdx michael@0: xor rdi, rdi michael@0: mov rax, qword ptr [8+rcx] michael@0: mul qword ptr [232+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [16+rcx] michael@0: mul qword ptr [224+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [24+rcx] michael@0: mul qword ptr [216+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [32+rcx] michael@0: mul qword ptr [208+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [40+rcx] michael@0: mul qword ptr [200+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [48+rcx] michael@0: mul qword ptr [192+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [56+rcx] michael@0: mul qword ptr [184+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [64+rcx] michael@0: mul qword ptr [176+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [72+rcx] michael@0: mul qword ptr [168+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [80+rcx] michael@0: mul qword ptr [160+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [88+rcx] michael@0: mul qword ptr [152+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [96+rcx] michael@0: mul qword ptr [144+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [104+rcx] michael@0: mul qword ptr [136+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [112+rcx] michael@0: mul qword ptr [128+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, r10 michael@0: mov r11, r8 michael@0: mov rdx, rdi michael@0: add rbx, rsi michael@0: adc r13, r11 michael@0: adc rax, rdx michael@0: add rbx, rsi michael@0: adc r13, r11 michael@0: adc rax, rdx michael@0: mov r9, rdx michael@0: mov rdx, rax michael@0: mov r12, r13 michael@0: mov r8, r11 michael@0: mov r13, rdx michael@0: mov rdi, r9 michael@0: mov rax, qword ptr [120+rcx] michael@0: mul rax michael@0: add rbx, rax michael@0: adc r12, rdx michael@0: adc r13, 0 michael@0: mov qword ptr [-304+rbp], rbx michael@0: mov rbx, r13 michael@0: mov r13, r10 michael@0: mov rax, qword ptr [rcx] michael@0: mul qword ptr [248+rcx] michael@0: mov rsi, rax michael@0: mov r8, rdx michael@0: xor rdi, rdi michael@0: mov rax, qword ptr [8+rcx] michael@0: mul qword ptr [240+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [16+rcx] michael@0: mul qword ptr [232+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [24+rcx] michael@0: mul qword ptr [224+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [32+rcx] michael@0: mul qword ptr [216+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [40+rcx] michael@0: mul qword ptr [208+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [48+rcx] michael@0: mul qword ptr [200+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [56+rcx] michael@0: mul qword ptr [192+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [64+rcx] michael@0: mul qword ptr [184+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [72+rcx] michael@0: mul qword ptr [176+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [80+rcx] michael@0: mul qword ptr [168+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [88+rcx] michael@0: mul qword ptr [160+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [96+rcx] michael@0: mul qword ptr [152+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [104+rcx] michael@0: mul qword ptr [144+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [112+rcx] michael@0: mul qword ptr [136+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [120+rcx] michael@0: mul qword ptr [128+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: add r12, rsi michael@0: adc rbx, r8 michael@0: adc r13, rdi michael@0: add r12, rsi michael@0: adc rbx, r8 michael@0: adc r13, rdi michael@0: mov qword ptr [-296+rbp], r12 michael@0: mov r12, r13 michael@0: mov r13, r10 michael@0: mov rax, qword ptr [8+rcx] michael@0: mul qword ptr [248+rcx] michael@0: mov rsi, rax michael@0: mov r8, rdx michael@0: xor rdi, rdi michael@0: mov rax, qword ptr [16+rcx] michael@0: mul qword ptr [240+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [24+rcx] michael@0: mul qword ptr [232+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [32+rcx] michael@0: mul qword ptr [224+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [40+rcx] michael@0: mul qword ptr [216+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [48+rcx] michael@0: mul qword ptr [208+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [56+rcx] michael@0: mul qword ptr [200+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [64+rcx] michael@0: mul qword ptr [192+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [72+rcx] michael@0: mul qword ptr [184+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [80+rcx] michael@0: mul qword ptr [176+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [88+rcx] michael@0: mul qword ptr [168+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [96+rcx] michael@0: mul qword ptr [160+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [104+rcx] michael@0: mul qword ptr [152+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [112+rcx] michael@0: mul qword ptr [144+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [120+rcx] michael@0: mul qword ptr [136+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov r11, r8 michael@0: mov rax, rdi michael@0: add rbx, rsi michael@0: adc r12, r11 michael@0: adc r13, rax michael@0: add rbx, rsi michael@0: adc r12, r11 michael@0: adc r13, rax michael@0: mov r9, rax michael@0: mov r8, r11 michael@0: mov rax, qword ptr [128+rcx] michael@0: mul rax michael@0: add rbx, rax michael@0: adc r12, rdx michael@0: adc r13, 0 michael@0: mov rdi, r9 michael@0: mov qword ptr [-288+rbp], rbx michael@0: mov r9, r13 michael@0: mov rax, qword ptr [16+rcx] michael@0: mul qword ptr [248+rcx] michael@0: mov rsi, rax michael@0: mov r8, rdx michael@0: xor rdi, rdi michael@0: mov r13, r10 michael@0: mov rax, qword ptr [24+rcx] michael@0: mul qword ptr [240+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [32+rcx] michael@0: mul qword ptr [232+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [40+rcx] michael@0: mul qword ptr [224+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [48+rcx] michael@0: mul qword ptr [216+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [56+rcx] michael@0: mul qword ptr [208+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [64+rcx] michael@0: mul qword ptr [200+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [72+rcx] michael@0: mul qword ptr [192+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [80+rcx] michael@0: mul qword ptr [184+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [88+rcx] michael@0: mul qword ptr [176+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [96+rcx] michael@0: mul qword ptr [168+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [104+rcx] michael@0: mul qword ptr [160+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [112+rcx] michael@0: mul qword ptr [152+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [120+rcx] michael@0: mul qword ptr [144+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [128+rcx] michael@0: mul qword ptr [136+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: add r12, rsi michael@0: adc r9, r8 michael@0: adc r13, rdi michael@0: add r12, rsi michael@0: adc r9, r8 michael@0: adc r13, rdi michael@0: mov qword ptr [-280+rbp], r12 michael@0: mov r12, r10 michael@0: mov rax, qword ptr [24+rcx] michael@0: mul qword ptr [248+rcx] michael@0: mov rsi, rax michael@0: mov r8, rdx michael@0: xor rdi, rdi michael@0: mov rax, qword ptr [32+rcx] michael@0: mul qword ptr [240+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [40+rcx] michael@0: mul qword ptr [232+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [48+rcx] michael@0: mul qword ptr [224+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [56+rcx] michael@0: mul qword ptr [216+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [64+rcx] michael@0: mul qword ptr [208+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [72+rcx] michael@0: mul qword ptr [200+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [80+rcx] michael@0: mul qword ptr [192+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [88+rcx] michael@0: mul qword ptr [184+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [96+rcx] michael@0: mul qword ptr [176+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [104+rcx] michael@0: mul qword ptr [168+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [112+rcx] michael@0: mul qword ptr [160+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [120+rcx] michael@0: mul qword ptr [152+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [128+rcx] michael@0: mul qword ptr [144+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rdx, r13 michael@0: mov rbx, r8 michael@0: mov r13, rdi michael@0: add r9, rsi michael@0: adc rdx, rbx michael@0: adc r12, r13 michael@0: add r9, rsi michael@0: adc rdx, rbx michael@0: adc r12, r13 michael@0: mov rax, r12 michael@0: mov r11, r13 michael@0: mov r12, rdx michael@0: mov r13, rax michael@0: mov r8, rbx michael@0: mov rdi, r11 michael@0: mov rax, qword ptr [136+rcx] michael@0: mul rax michael@0: add r9, rax michael@0: adc r12, rdx michael@0: adc r13, 0 michael@0: mov qword ptr [-272+rbp], r9 michael@0: mov r9, r13 michael@0: mov r13, r10 michael@0: mov rax, qword ptr [32+rcx] michael@0: mul qword ptr [248+rcx] michael@0: mov rsi, rax michael@0: mov r8, rdx michael@0: xor rdi, rdi michael@0: mov rax, qword ptr [40+rcx] michael@0: mul qword ptr [240+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [48+rcx] michael@0: mul qword ptr [232+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [56+rcx] michael@0: mul qword ptr [224+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [64+rcx] michael@0: mul qword ptr [216+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [72+rcx] michael@0: mul qword ptr [208+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [80+rcx] michael@0: mul qword ptr [200+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [88+rcx] michael@0: mul qword ptr [192+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [96+rcx] michael@0: mul qword ptr [184+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [104+rcx] michael@0: mul qword ptr [176+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [112+rcx] michael@0: mul qword ptr [168+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [120+rcx] michael@0: mul qword ptr [160+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [128+rcx] michael@0: mul qword ptr [152+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [136+rcx] michael@0: mul qword ptr [144+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: add r12, rsi michael@0: adc r9, r8 michael@0: adc r13, rdi michael@0: add r12, rsi michael@0: adc r9, r8 michael@0: adc r13, rdi michael@0: mov qword ptr [-264+rbp], r12 michael@0: mov rax, qword ptr [40+rcx] michael@0: mul qword ptr [248+rcx] michael@0: mov rsi, rax michael@0: mov r8, rdx michael@0: xor rdi, rdi michael@0: mov rax, qword ptr [48+rcx] michael@0: mul qword ptr [240+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [56+rcx] michael@0: mul qword ptr [232+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [64+rcx] michael@0: mul qword ptr [224+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [72+rcx] michael@0: mul qword ptr [216+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [80+rcx] michael@0: mul qword ptr [208+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [88+rcx] michael@0: mul qword ptr [200+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [96+rcx] michael@0: mul qword ptr [192+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [104+rcx] michael@0: mul qword ptr [184+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [112+rcx] michael@0: mul qword ptr [176+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [120+rcx] michael@0: mul qword ptr [168+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [128+rcx] michael@0: mul qword ptr [160+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [136+rcx] michael@0: mul qword ptr [152+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, r13 michael@0: mov rdx, r10 michael@0: mov rbx, r8 michael@0: mov r12, rdi michael@0: add r9, rsi michael@0: adc rax, rbx michael@0: adc rdx, r12 michael@0: add r9, rsi michael@0: adc rax, rbx michael@0: adc rdx, r12 michael@0: mov rdi, rdx michael@0: mov r11, r12 michael@0: mov r8, rbx michael@0: mov r12, rax michael@0: mov r13, rdi michael@0: mov rdi, r11 michael@0: mov rax, qword ptr [144+rcx] michael@0: mul rax michael@0: add r9, rax michael@0: adc r12, rdx michael@0: adc r13, 0 michael@0: mov r11, r10 michael@0: mov qword ptr [-256+rbp], r9 michael@0: mov r9, r13 michael@0: mov rax, qword ptr [48+rcx] michael@0: mul qword ptr [248+rcx] michael@0: mov rsi, rax michael@0: mov r8, rdx michael@0: xor rdi, rdi michael@0: mov rax, qword ptr [56+rcx] michael@0: mul qword ptr [240+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [64+rcx] michael@0: mul qword ptr [232+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [72+rcx] michael@0: mul qword ptr [224+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [80+rcx] michael@0: mul qword ptr [216+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [88+rcx] michael@0: mul qword ptr [208+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [96+rcx] michael@0: mul qword ptr [200+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [104+rcx] michael@0: mul qword ptr [192+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [112+rcx] michael@0: mul qword ptr [184+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [120+rcx] michael@0: mul qword ptr [176+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [128+rcx] michael@0: mul qword ptr [168+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [136+rcx] michael@0: mul qword ptr [160+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [144+rcx] michael@0: mul qword ptr [152+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: add r12, rsi michael@0: adc r9, r8 michael@0: adc r11, rdi michael@0: add r12, rsi michael@0: adc r9, r8 michael@0: adc r11, rdi michael@0: mov qword ptr [-248+rbp], r12 michael@0: mov r13, r11 michael@0: mov rax, qword ptr [56+rcx] michael@0: mul qword ptr [248+rcx] michael@0: mov rsi, rax michael@0: mov r8, rdx michael@0: xor rdi, rdi michael@0: mov rax, qword ptr [64+rcx] michael@0: mul qword ptr [240+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [72+rcx] michael@0: mul qword ptr [232+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [80+rcx] michael@0: mul qword ptr [224+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [88+rcx] michael@0: mul qword ptr [216+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [96+rcx] michael@0: mul qword ptr [208+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [104+rcx] michael@0: mul qword ptr [200+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [112+rcx] michael@0: mul qword ptr [192+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [120+rcx] michael@0: mul qword ptr [184+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [128+rcx] michael@0: mul qword ptr [176+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [136+rcx] michael@0: mul qword ptr [168+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [144+rcx] michael@0: mul qword ptr [160+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, r10 michael@0: mov rdx, rsi michael@0: mov rbx, r8 michael@0: mov r12, rdi michael@0: add r9, rdx michael@0: adc r13, rbx michael@0: adc rax, r12 michael@0: add r9, rdx michael@0: adc r13, rbx michael@0: adc rax, r12 michael@0: mov r11, r12 michael@0: mov r8, rdx michael@0: mov rdx, rax michael@0: mov r12, r13 michael@0: mov rdi, rbx michael@0: mov r13, rdx michael@0: mov rsi, r11 michael@0: mov rax, qword ptr [152+rcx] michael@0: mul rax michael@0: add r9, rax michael@0: adc r12, rdx michael@0: adc r13, 0 michael@0: mov qword ptr [-240+rbp], r9 michael@0: mov r9, r13 michael@0: mov r13, r10 michael@0: mov rax, qword ptr [64+rcx] michael@0: mul qword ptr [248+rcx] michael@0: mov r8, rax michael@0: mov rdi, rdx michael@0: xor rsi, rsi michael@0: mov rax, qword ptr [72+rcx] michael@0: mul qword ptr [240+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [80+rcx] michael@0: mul qword ptr [232+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [88+rcx] michael@0: mul qword ptr [224+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [96+rcx] michael@0: mul qword ptr [216+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [104+rcx] michael@0: mul qword ptr [208+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [112+rcx] michael@0: mul qword ptr [200+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [120+rcx] michael@0: mul qword ptr [192+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [128+rcx] michael@0: mul qword ptr [184+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [136+rcx] michael@0: mul qword ptr [176+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [144+rcx] michael@0: mul qword ptr [168+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [152+rcx] michael@0: mul qword ptr [160+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, r8 michael@0: mov rdx, rdi michael@0: mov rbx, rsi michael@0: add r12, rax michael@0: adc r9, rdx michael@0: adc r13, rbx michael@0: add r12, rax michael@0: adc r9, rdx michael@0: adc r13, rbx michael@0: mov qword ptr [-232+rbp], r12 michael@0: mov r8, rdx michael@0: mov rsi, rax michael@0: mov rdi, rbx michael@0: mov r12, r13 michael@0: mov r13, r10 michael@0: mov rax, qword ptr [72+rcx] michael@0: mul qword ptr [248+rcx] michael@0: mov rsi, rax michael@0: mov r8, rdx michael@0: xor rdi, rdi michael@0: mov rax, qword ptr [80+rcx] michael@0: mul qword ptr [240+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [88+rcx] michael@0: mul qword ptr [232+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [96+rcx] michael@0: mul qword ptr [224+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [104+rcx] michael@0: mul qword ptr [216+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [112+rcx] michael@0: mul qword ptr [208+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [120+rcx] michael@0: mul qword ptr [200+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [128+rcx] michael@0: mul qword ptr [192+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [136+rcx] michael@0: mul qword ptr [184+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [144+rcx] michael@0: mul qword ptr [176+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [152+rcx] michael@0: mul qword ptr [168+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, rsi michael@0: mov rbx, r8 michael@0: mov rdx, rdi michael@0: add r9, rax michael@0: adc r12, rbx michael@0: adc r13, rdx michael@0: add r9, rax michael@0: adc r12, rbx michael@0: adc r13, rdx michael@0: mov r11, rdx michael@0: mov r8, rax michael@0: mov rdi, rbx michael@0: mov rax, qword ptr [160+rcx] michael@0: mul rax michael@0: add r9, rax michael@0: adc r12, rdx michael@0: adc r13, 0 michael@0: mov rsi, r11 michael@0: mov qword ptr [-224+rbp], r9 michael@0: mov r9, r13 michael@0: mov rax, qword ptr [80+rcx] michael@0: mul qword ptr [248+rcx] michael@0: mov r8, rax michael@0: mov rdi, rdx michael@0: xor rsi, rsi michael@0: mov r13, r10 michael@0: mov rax, qword ptr [88+rcx] michael@0: mul qword ptr [240+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [96+rcx] michael@0: mul qword ptr [232+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [104+rcx] michael@0: mul qword ptr [224+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [112+rcx] michael@0: mul qword ptr [216+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [120+rcx] michael@0: mul qword ptr [208+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [128+rcx] michael@0: mul qword ptr [200+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [136+rcx] michael@0: mul qword ptr [192+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [144+rcx] michael@0: mul qword ptr [184+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [152+rcx] michael@0: mul qword ptr [176+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [160+rcx] michael@0: mul qword ptr [168+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rbx, r8 michael@0: mov rax, rdi michael@0: mov rdx, rsi michael@0: add r12, rbx michael@0: adc r9, rax michael@0: adc r13, rdx michael@0: add r12, rbx michael@0: adc r9, rax michael@0: adc r13, rdx michael@0: mov qword ptr [-216+rbp], r12 michael@0: mov rdi, rdx michael@0: mov r8, rax michael@0: mov rsi, rbx michael@0: mov r12, r13 michael@0: mov r13, r10 michael@0: mov rax, qword ptr [88+rcx] michael@0: mul qword ptr [248+rcx] michael@0: mov rsi, rax michael@0: mov r8, rdx michael@0: xor rdi, rdi michael@0: mov rax, qword ptr [96+rcx] michael@0: mul qword ptr [240+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [104+rcx] michael@0: mul qword ptr [232+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [112+rcx] michael@0: mul qword ptr [224+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [120+rcx] michael@0: mul qword ptr [216+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [128+rcx] michael@0: mul qword ptr [208+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [136+rcx] michael@0: mul qword ptr [200+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [144+rcx] michael@0: mul qword ptr [192+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [152+rcx] michael@0: mul qword ptr [184+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [160+rcx] michael@0: mul qword ptr [176+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, rsi michael@0: mov rbx, r8 michael@0: mov rdx, rdi michael@0: add r9, rax michael@0: adc r12, rbx michael@0: adc r13, rdx michael@0: add r9, rax michael@0: adc r12, rbx michael@0: adc r13, rdx michael@0: mov r11, rdx michael@0: mov r8, rax michael@0: mov rdi, rbx michael@0: mov rax, qword ptr [168+rcx] michael@0: mul rax michael@0: add r9, rax michael@0: adc r12, rdx michael@0: adc r13, 0 michael@0: mov rsi, r11 michael@0: mov qword ptr [-208+rbp], r9 michael@0: mov r9, r13 michael@0: mov rax, qword ptr [96+rcx] michael@0: mul qword ptr [248+rcx] michael@0: mov r8, rax michael@0: mov rdi, rdx michael@0: xor rsi, rsi michael@0: mov r13, r10 michael@0: mov rax, qword ptr [104+rcx] michael@0: mul qword ptr [240+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [112+rcx] michael@0: mul qword ptr [232+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [120+rcx] michael@0: mul qword ptr [224+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [128+rcx] michael@0: mul qword ptr [216+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [136+rcx] michael@0: mul qword ptr [208+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [144+rcx] michael@0: mul qword ptr [200+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [152+rcx] michael@0: mul qword ptr [192+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [160+rcx] michael@0: mul qword ptr [184+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [168+rcx] michael@0: mul qword ptr [176+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rbx, r8 michael@0: mov rax, rdi michael@0: mov rdx, rsi michael@0: add r12, rbx michael@0: adc r9, rax michael@0: adc r13, rdx michael@0: add r12, rbx michael@0: adc r9, rax michael@0: adc r13, rdx michael@0: mov qword ptr [-200+rbp], r12 michael@0: mov rdi, rdx michael@0: mov r8, rax michael@0: mov rsi, rbx michael@0: mov r12, r13 michael@0: mov r13, r10 michael@0: mov rax, qword ptr [104+rcx] michael@0: mul qword ptr [248+rcx] michael@0: mov rsi, rax michael@0: mov r8, rdx michael@0: xor rdi, rdi michael@0: mov rax, qword ptr [112+rcx] michael@0: mul qword ptr [240+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [120+rcx] michael@0: mul qword ptr [232+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [128+rcx] michael@0: mul qword ptr [224+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [136+rcx] michael@0: mul qword ptr [216+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [144+rcx] michael@0: mul qword ptr [208+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [152+rcx] michael@0: mul qword ptr [200+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [160+rcx] michael@0: mul qword ptr [192+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [168+rcx] michael@0: mul qword ptr [184+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, rsi michael@0: mov rbx, r8 michael@0: mov rdx, rdi michael@0: add r9, rax michael@0: adc r12, rbx michael@0: adc r13, rdx michael@0: add r9, rax michael@0: adc r12, rbx michael@0: adc r13, rdx michael@0: mov r11, rdx michael@0: mov r8, rax michael@0: mov rdi, rbx michael@0: mov rax, qword ptr [176+rcx] michael@0: mul rax michael@0: add r9, rax michael@0: adc r12, rdx michael@0: adc r13, 0 michael@0: mov rsi, r11 michael@0: mov qword ptr [-192+rbp], r9 michael@0: mov r9, r13 michael@0: mov rax, qword ptr [112+rcx] michael@0: mul qword ptr [248+rcx] michael@0: mov r8, rax michael@0: mov rdi, rdx michael@0: xor rsi, rsi michael@0: mov r13, r10 michael@0: mov rax, qword ptr [120+rcx] michael@0: mul qword ptr [240+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [128+rcx] michael@0: mul qword ptr [232+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [136+rcx] michael@0: mul qword ptr [224+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [144+rcx] michael@0: mul qword ptr [216+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [152+rcx] michael@0: mul qword ptr [208+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [160+rcx] michael@0: mul qword ptr [200+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [168+rcx] michael@0: mul qword ptr [192+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [176+rcx] michael@0: mul qword ptr [184+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rbx, r8 michael@0: mov rax, rdi michael@0: mov rdx, rsi michael@0: add r12, rbx michael@0: adc r9, rax michael@0: adc r13, rdx michael@0: add r12, rbx michael@0: adc r9, rax michael@0: adc r13, rdx michael@0: mov qword ptr [-184+rbp], r12 michael@0: mov rdi, rdx michael@0: mov r8, rax michael@0: mov rsi, rbx michael@0: mov r12, r13 michael@0: mov r13, r10 michael@0: mov rax, qword ptr [120+rcx] michael@0: mul qword ptr [248+rcx] michael@0: mov rsi, rax michael@0: mov r8, rdx michael@0: xor rdi, rdi michael@0: mov rax, qword ptr [128+rcx] michael@0: mul qword ptr [240+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [136+rcx] michael@0: mul qword ptr [232+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [144+rcx] michael@0: mul qword ptr [224+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [152+rcx] michael@0: mul qword ptr [216+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [160+rcx] michael@0: mul qword ptr [208+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [168+rcx] michael@0: mul qword ptr [200+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, qword ptr [176+rcx] michael@0: mul qword ptr [192+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc rdi, 0 michael@0: mov rax, rsi michael@0: mov rbx, r8 michael@0: mov rdx, rdi michael@0: add r9, rax michael@0: adc r12, rbx michael@0: adc r13, rdx michael@0: add r9, rax michael@0: adc r12, rbx michael@0: adc r13, rdx michael@0: mov r11, rdx michael@0: mov r8, rax michael@0: mov rdi, rbx michael@0: mov rax, qword ptr [184+rcx] michael@0: mul rax michael@0: add r9, rax michael@0: adc r12, rdx michael@0: adc r13, 0 michael@0: mov rsi, r11 michael@0: mov qword ptr [-176+rbp], r9 michael@0: mov r9, r13 michael@0: mov rax, qword ptr [128+rcx] michael@0: mul qword ptr [248+rcx] michael@0: mov r8, rax michael@0: mov rdi, rdx michael@0: xor rsi, rsi michael@0: mov r13, r10 michael@0: mov rax, qword ptr [136+rcx] michael@0: mul qword ptr [240+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [144+rcx] michael@0: mul qword ptr [232+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [152+rcx] michael@0: mul qword ptr [224+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [160+rcx] michael@0: mul qword ptr [216+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [168+rcx] michael@0: mul qword ptr [208+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [176+rcx] michael@0: mul qword ptr [200+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [184+rcx] michael@0: mul qword ptr [192+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: add r12, r8 michael@0: adc r9, rdi michael@0: adc r13, rsi michael@0: add r12, r8 michael@0: adc r9, rdi michael@0: adc r13, rsi michael@0: mov qword ptr [-168+rbp], r12 michael@0: mov r12, r13 michael@0: mov r13, r10 michael@0: mov rax, qword ptr [136+rcx] michael@0: mul qword ptr [248+rcx] michael@0: mov r8, rax michael@0: mov rdi, rdx michael@0: xor rsi, rsi michael@0: mov rax, qword ptr [144+rcx] michael@0: mul qword ptr [240+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [152+rcx] michael@0: mul qword ptr [232+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [160+rcx] michael@0: mul qword ptr [224+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [168+rcx] michael@0: mul qword ptr [216+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [176+rcx] michael@0: mul qword ptr [208+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [184+rcx] michael@0: mul qword ptr [200+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rbx, rdi michael@0: mov rax, rsi michael@0: add r9, r8 michael@0: adc r12, rbx michael@0: adc r13, rax michael@0: add r9, r8 michael@0: adc r12, rbx michael@0: adc r13, rax michael@0: mov r11, rax michael@0: mov rdi, rbx michael@0: mov rbx, r10 michael@0: mov rax, qword ptr [192+rcx] michael@0: mul rax michael@0: add r9, rax michael@0: adc r12, rdx michael@0: adc r13, 0 michael@0: mov rsi, r11 michael@0: mov qword ptr [-160+rbp], r9 michael@0: mov r9, r13 michael@0: mov rax, qword ptr [144+rcx] michael@0: mul qword ptr [248+rcx] michael@0: mov r8, rax michael@0: mov rdi, rdx michael@0: xor rsi, rsi michael@0: mov rax, qword ptr [152+rcx] michael@0: mul qword ptr [240+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [160+rcx] michael@0: mul qword ptr [232+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [168+rcx] michael@0: mul qword ptr [224+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [176+rcx] michael@0: mul qword ptr [216+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [184+rcx] michael@0: mul qword ptr [208+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [192+rcx] michael@0: mul qword ptr [200+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: add r12, r8 michael@0: adc r9, rdi michael@0: adc rbx, rsi michael@0: add r12, r8 michael@0: adc r9, rdi michael@0: adc rbx, rsi michael@0: mov qword ptr [-152+rbp], r12 michael@0: mov rax, qword ptr [152+rcx] michael@0: mul qword ptr [248+rcx] michael@0: mov r8, rax michael@0: mov rdi, rdx michael@0: xor rsi, rsi michael@0: mov rax, qword ptr [160+rcx] michael@0: mul qword ptr [240+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [168+rcx] michael@0: mul qword ptr [232+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [176+rcx] michael@0: mul qword ptr [224+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [184+rcx] michael@0: mul qword ptr [216+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [192+rcx] michael@0: mul qword ptr [208+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rdx, r10 michael@0: mov r13, rdi michael@0: mov r12, rsi michael@0: add r9, r8 michael@0: adc rbx, r13 michael@0: adc rdx, r12 michael@0: add r9, r8 michael@0: adc rbx, r13 michael@0: adc rdx, r12 michael@0: mov rax, rdx michael@0: mov rdi, r13 michael@0: mov rsi, r12 michael@0: mov r11, rax michael@0: mov r12, r10 michael@0: mov rax, qword ptr [200+rcx] michael@0: mul rax michael@0: add r9, rax michael@0: adc rbx, rdx michael@0: adc r11, 0 michael@0: mov qword ptr [-144+rbp], r9 michael@0: mov r9, r11 michael@0: mov rax, qword ptr [160+rcx] michael@0: mul qword ptr [248+rcx] michael@0: mov r8, rax michael@0: mov rdi, rdx michael@0: xor rsi, rsi michael@0: mov rax, qword ptr [168+rcx] michael@0: mul qword ptr [240+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [176+rcx] michael@0: mul qword ptr [232+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [184+rcx] michael@0: mul qword ptr [224+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [192+rcx] michael@0: mul qword ptr [216+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [200+rcx] michael@0: mul qword ptr [208+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: add rbx, r8 michael@0: adc r9, rdi michael@0: adc r12, rsi michael@0: add rbx, r8 michael@0: adc r9, rdi michael@0: adc r12, rsi michael@0: mov qword ptr [-136+rbp], rbx michael@0: mov r11, r12 michael@0: mov rax, qword ptr [168+rcx] michael@0: mul qword ptr [248+rcx] michael@0: mov r8, rax michael@0: mov rdi, rdx michael@0: xor rsi, rsi michael@0: mov rax, qword ptr [176+rcx] michael@0: mul qword ptr [240+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [184+rcx] michael@0: mul qword ptr [232+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [192+rcx] michael@0: mul qword ptr [224+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [200+rcx] michael@0: mul qword ptr [216+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, r10 michael@0: mov r13, rdi michael@0: mov r12, rsi michael@0: add r9, r8 michael@0: adc r11, r13 michael@0: adc rax, r12 michael@0: add r9, r8 michael@0: adc r11, r13 michael@0: adc rax, r12 michael@0: mov rdx, rax michael@0: mov rbx, r11 michael@0: mov rdi, r13 michael@0: mov r11, rdx michael@0: mov rsi, r12 michael@0: mov rax, qword ptr [208+rcx] michael@0: mul rax michael@0: add r9, rax michael@0: adc rbx, rdx michael@0: adc r11, 0 michael@0: mov qword ptr [-128+rbp], r9 michael@0: mov r9, r11 michael@0: mov rax, qword ptr [176+rcx] michael@0: mul qword ptr [248+rcx] michael@0: mov r8, rax michael@0: mov rdi, rdx michael@0: xor rsi, rsi michael@0: mov rax, qword ptr [184+rcx] michael@0: mul qword ptr [240+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [192+rcx] michael@0: mul qword ptr [232+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [200+rcx] michael@0: mul qword ptr [224+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [208+rcx] michael@0: mul qword ptr [216+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rdx, r10 michael@0: add rbx, r8 michael@0: adc r9, rdi michael@0: adc rdx, rsi michael@0: add rbx, r8 michael@0: adc r9, rdi michael@0: adc rdx, rsi michael@0: mov qword ptr [-120+rbp], rbx michael@0: mov r11, rdx michael@0: mov rbx, r10 michael@0: mov rax, qword ptr [184+rcx] michael@0: mul qword ptr [248+rcx] michael@0: mov r8, rax michael@0: mov rdi, rdx michael@0: xor rsi, rsi michael@0: mov rax, qword ptr [192+rcx] michael@0: mul qword ptr [240+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [200+rcx] michael@0: mul qword ptr [232+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [208+rcx] michael@0: mul qword ptr [224+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov r13, rdi michael@0: mov r12, rsi michael@0: add r9, r8 michael@0: adc r11, r13 michael@0: adc rbx, r12 michael@0: add r9, r8 michael@0: adc r11, r13 michael@0: adc rbx, r12 michael@0: mov rdx, rbx michael@0: mov rdi, r13 michael@0: mov rbx, r11 michael@0: mov rsi, r12 michael@0: mov r11, rdx michael@0: mov r12, r10 michael@0: mov rax, qword ptr [216+rcx] michael@0: mul rax michael@0: add r9, rax michael@0: adc rbx, rdx michael@0: adc r11, 0 michael@0: mov qword ptr [-112+rbp], r9 michael@0: mov r9, r11 michael@0: mov rax, qword ptr [192+rcx] michael@0: mul qword ptr [248+rcx] michael@0: mov r8, rax michael@0: mov rdi, rdx michael@0: xor rsi, rsi michael@0: mov rax, qword ptr [200+rcx] michael@0: mul qword ptr [240+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [208+rcx] michael@0: mul qword ptr [232+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [216+rcx] michael@0: mul qword ptr [224+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: add rbx, r8 michael@0: adc r9, rdi michael@0: adc r12, rsi michael@0: add rbx, r8 michael@0: adc r9, rdi michael@0: adc r12, rsi michael@0: mov qword ptr [-104+rbp], rbx michael@0: mov r11, r12 michael@0: mov rax, qword ptr [200+rcx] michael@0: mul qword ptr [248+rcx] michael@0: mov r8, rax michael@0: mov rdi, rdx michael@0: xor rsi, rsi michael@0: mov rax, qword ptr [208+rcx] michael@0: mul qword ptr [240+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [216+rcx] michael@0: mul qword ptr [232+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, r10 michael@0: mov r13, rdi michael@0: mov r12, rsi michael@0: add r9, r8 michael@0: adc r11, r13 michael@0: adc rax, r12 michael@0: add r9, r8 michael@0: adc r11, r13 michael@0: adc rax, r12 michael@0: mov rdx, rax michael@0: mov rbx, r11 michael@0: mov rdi, r13 michael@0: mov r11, rdx michael@0: mov rsi, r12 michael@0: mov r12, r10 michael@0: mov rax, qword ptr [224+rcx] michael@0: mul rax michael@0: add r9, rax michael@0: adc rbx, rdx michael@0: adc r11, 0 michael@0: mov qword ptr [-96+rbp], r9 michael@0: mov r9, r10 michael@0: mov rax, qword ptr [208+rcx] michael@0: mul qword ptr [248+rcx] michael@0: mov r8, rax michael@0: mov rdi, rdx michael@0: xor rsi, rsi michael@0: mov rax, qword ptr [216+rcx] michael@0: mul qword ptr [240+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov rax, qword ptr [224+rcx] michael@0: mul qword ptr [232+rcx] michael@0: add r8, rax michael@0: adc rdi, rdx michael@0: adc rsi, 0 michael@0: mov r13, rdi michael@0: mov rax, rsi michael@0: add rbx, r8 michael@0: adc r11, r13 michael@0: adc r9, rax michael@0: add rbx, r8 michael@0: adc r11, r13 michael@0: adc r9, rax michael@0: mov qword ptr [-88+rbp], rbx michael@0: mov rsi, r11 michael@0: mov r8, r9 michael@0: mov rax, qword ptr [216+rcx] michael@0: mul qword ptr [248+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc r12, 0 michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc r12, 0 michael@0: mov r11, r12 michael@0: mov rax, qword ptr [224+rcx] michael@0: mul qword ptr [240+rcx] michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc r11, 0 michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc r11, 0 michael@0: mov r13, r8 michael@0: mov rbx, r11 michael@0: mov rax, qword ptr [232+rcx] michael@0: mul rax michael@0: add rsi, rax michael@0: adc r13, rdx michael@0: adc rbx, 0 michael@0: mov qword ptr [-80+rbp], rsi michael@0: mov r12, rbx michael@0: mov rdi, r13 michael@0: mov r13, r10 michael@0: mov rax, qword ptr [224+rcx] michael@0: mul qword ptr [248+rcx] michael@0: add rdi, rax michael@0: adc r12, rdx michael@0: adc r13, 0 michael@0: add rdi, rax michael@0: adc r12, rdx michael@0: adc r13, 0 michael@0: mov r9, r12 michael@0: mov r12, r13 michael@0: mov rax, qword ptr [232+rcx] michael@0: mul qword ptr [240+rcx] michael@0: add rdi, rax michael@0: adc r9, rdx michael@0: adc r12, 0 michael@0: add rdi, rax michael@0: adc r9, rdx michael@0: adc r12, 0 michael@0: mov qword ptr [-72+rbp], rdi michael@0: mov r11, r9 michael@0: mov rbx, r12 michael@0: mov r9, r10 michael@0: mov rax, qword ptr [232+rcx] michael@0: mul qword ptr [248+rcx] michael@0: add r11, rax michael@0: adc rbx, rdx michael@0: adc r9, 0 michael@0: add r11, rax michael@0: adc rbx, rdx michael@0: adc r9, 0 michael@0: mov r13, rbx michael@0: mov rbx, r9 michael@0: mov r9, r10 michael@0: mov rax, qword ptr [240+rcx] michael@0: mul rax michael@0: add r11, rax michael@0: adc r13, rdx michael@0: adc rbx, 0 michael@0: mov qword ptr [-64+rbp], r11 michael@0: mov rdi, r13 michael@0: mov rsi, rbx michael@0: mov rax, qword ptr [240+rcx] michael@0: mul qword ptr [248+rcx] michael@0: add rdi, rax michael@0: adc rsi, rdx michael@0: adc r9, 0 michael@0: add rdi, rax michael@0: adc rsi, rdx michael@0: adc r9, 0 michael@0: mov qword ptr [-56+rbp], rdi michael@0: mov r8, r9 michael@0: mov rax, qword ptr [248+rcx] michael@0: mul rax michael@0: add rsi, rax michael@0: adc r8, rdx michael@0: adc r10, 0 michael@0: mov qword ptr [-48+rbp], rsi michael@0: mov qword ptr [-40+rbp], r8 michael@0: mov dword ptr [8+r14], 64 michael@0: mov dword ptr [r14], 0 michael@0: ; mov rdi, qword ptr [16+r14] michael@0: ; lea rsi, qword ptr [-544+rbp] michael@0: ; mov edx, 512 michael@0: mov rcx, qword ptr [16+r14] michael@0: lea rdx, qword ptr [-544+rbp] michael@0: mov r8d, 512 michael@0: call memcpy michael@0: mov edx, dword ptr [8+r14] michael@0: test edx, edx michael@0: je L304 michael@0: lea ecx, dword ptr [-1+rdx] michael@0: mov rsi, qword ptr [16+r14] michael@0: mov r10d, ecx michael@0: cmp dword ptr [rsi+r10*8], 0 michael@0: jne L302 michael@0: mov edx, ecx michael@0: ALIGN 16 michael@0: L303: michael@0: test edx, edx michael@0: mov ecx, edx michael@0: je L307 michael@0: dec edx michael@0: mov eax, edx michael@0: cmp dword ptr [rsi+rax*8], 0 michael@0: je L303 michael@0: mov dword ptr [8+r14], ecx michael@0: mov edx, ecx michael@0: L302: michael@0: test edx, edx michael@0: je L304 michael@0: mov eax, dword ptr [r14] michael@0: jmp L305 michael@0: michael@0: L307: michael@0: mov dword ptr [8+r14], edx michael@0: L304: michael@0: xor eax, eax michael@0: L305: michael@0: mov dword ptr [r14], eax michael@0: add rsp, 512+32 ; +32 for "home" storage michael@0: pop rbx michael@0: pop r12 michael@0: pop r13 michael@0: pop r14 michael@0: pop rbp michael@0: michael@0: pop rsi michael@0: pop rdi michael@0: michael@0: ret michael@0: michael@0: s_mp_sqr_comba_32 ENDP michael@0: michael@0: END