Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/Firefox/security/nss/lib/freebl/mpi/   (Browser von der Mozilla Stiftung Version 136.0.1©)  Datei vom 10.2.2025 mit Größe 325 kB image not shown  

Quelle  mp_comba_amd64_masm.asm   Sprache: Masm

 
; This Source Code Form is subject to the terms of the Mozilla Public
; License, v. 2.0. If a copy of the MPL was not distributed with this
; file, You can obtain one at http://mozilla.org/MPL/2.0/.

;/* TomsFastMath, a fast ISO C bignum library.
; * 
; * This project is meant to fill in where LibTomMath
; * falls short.  That is speed ;-)
; *
; * This project is public domain and free for all purposes.
; * 
; * Tom St Denis, tomstdenis@iahu.ca
; */

;/*
; * The source file from which this assembly was derived
; * comes from TFM v0.03, which has the above license.
; * This source was from mp_comba_amd64.sun.s and convert to
; * MASM code set.
; */

.CODE

externdef memcpy:PROC

public s_mp_mul_comba_4
public s_mp_mul_comba_8
public s_mp_mul_comba_16
public s_mp_mul_comba_32
public s_mp_sqr_comba_8
public s_mp_sqr_comba_16
public s_mp_sqr_comba_32


; void s_mp_mul_comba_4(const mp_int *A, const mp_int *B, mp_int *C)

        ALIGN 16
s_mp_mul_comba_4 PROC

        push rdi
        push rsi

        mov rdi, rcx
        mov rsi, rdx
        mov rdx, r8

        push r12
        push rbp
        push rbx
        sub rsp, 64
        mov r9, qword ptr [16+rdi]
        mov rbx, rdx
        mov rdx, qword ptr [16+rsi]
        mov rax, qword ptr [r9]
        mov qword ptr [-64+64+rsp], rax
        mov r8, qword ptr [8+r9]
        mov qword ptr [-56+64+rsp], r8
        mov rbp, qword ptr [16+r9]
        mov qword ptr [-48+64+rsp], rbp
        mov r12, qword ptr [24+r9]
        mov qword ptr [-40+64+rsp], r12
        mov rcx, qword ptr [rdx]
        mov qword ptr [-32+64+rsp], rcx
        mov r10, qword ptr [8+rdx]
        mov qword ptr [-24+64+rsp], r10
        mov r11, qword ptr [16+rdx]
        xor r10d, r10d
        mov r8, r10
        mov r9, r10
        mov rbp, r10
        mov qword ptr [-16+64+rsp], r11
        mov r11, qword ptr [16+rbx]
        mov rax, qword ptr [24+rdx]
        mov qword ptr [-8+64+rsp], rax
        mov rax, qword ptr [-64+64+rsp]
        mul qword ptr [-32+64+rsp]
        add r8, rax
        adc r9, rdx
        adc rbp, 0
        mov qword ptr [r11], r8
        mov r8, rbp
        mov rbp, r10
        mov rax, qword ptr [-64+64+rsp]
        mul qword ptr [-24+64+rsp]
        add r9, rax
        adc r8, rdx
        adc rbp, 0
        mov r12, rbp
        mov rax, qword ptr [-56+64+rsp]
        mul qword ptr [-32+64+rsp]
        add r9, rax
        adc r8, rdx
        adc r12, 0
        mov qword ptr [8+r11], r9
        mov r9, r12
        mov r12, r10
        mov rax, qword ptr [-64+64+rsp]
        mul qword ptr [-16+64+rsp]
        add r8, rax
        adc r9, rdx
        adc r12, 0
        mov rcx, r12
        mov rax, qword ptr [-56+64+rsp]
        mul qword ptr [-24+64+rsp]
        add r8, rax
        adc r9, rdx
        adc rcx, 0
        mov rbp, r9
        mov r12, rcx
        mov rax, qword ptr [-48+64+rsp]
        mul qword ptr [-32+64+rsp]
        add r8, rax
        adc rbp, rdx
        adc r12, 0
        mov qword ptr [16+r11], r8
        mov r9, r12
        mov rcx, rbp
        mov r8, r10
        mov rax, qword ptr [-64+64+rsp]
        mul qword ptr [-8+64+rsp]
        add rcx, rax
        adc r9, rdx
        adc r8, 0
        mov rax, qword ptr [-56+64+rsp]
        mul qword ptr [-16+64+rsp]
        add rcx, rax
        adc r9, rdx
        adc r8, 0
        mov rax, qword ptr [-48+64+rsp]
        mul qword ptr [-24+64+rsp]
        add rcx, rax
        adc r9, rdx
        adc r8, 0
        mov rbp, r9
        mov r12, r8
        mov rax, qword ptr [-40+64+rsp]
        mul qword ptr [-32+64+rsp]
        add rcx, rax
        adc rbp, rdx
        adc r12, 0
        mov qword ptr [24+r11], rcx
        mov r9, r12
        mov r8, rbp
        mov rcx, r10
        mov rax, qword ptr [-56+64+rsp]
        mul qword ptr [-8+64+rsp]
        add r8, rax
        adc r9, rdx
        adc rcx, 0
        mov rax, qword ptr [-48+64+rsp]
        mul qword ptr [-16+64+rsp]
        add r8, rax
        adc r9, rdx
        adc rcx, 0
        mov rbp, r9
        mov r12, rcx
        mov rax, qword ptr [-40+64+rsp]
        mul qword ptr [-24+64+rsp]
        add r8, rax
        adc rbp, rdx
        adc r12, 0
        mov qword ptr [32+r11], r8
        mov r9, r12
        mov rcx, rbp
        mov r8, r10
        mov rax, qword ptr [-48+64+rsp]
        mul qword ptr [-8+64+rsp]
        add rcx, rax
        adc r9, rdx
        adc r8, 0
        mov r12, r8
        mov rbp, r9
        mov rax, qword ptr [-40+64+rsp]
        mul qword ptr [-16+64+rsp]
        add rcx, rax
        adc rbp, rdx
        adc r12, 0
        mov qword ptr [40+r11], rcx
        mov r8, rbp
        mov rcx, r12
        mov rax, qword ptr [-40+64+rsp]
        mul qword ptr [-8+64+rsp]
        add r8, rax
        adc rcx, rdx
        adc r10, 0
        mov qword ptr [48+r11], r8
        mov esidword ptr [rsi]
        xor esidword ptr [rdi]
        test rcx, rcx
        mov qword ptr [56+r11], rcx
        mov dword ptr [8+rbx], 8
        jne L9
        ALIGN 16
L18:
        mov edxdword ptr [8+rbx]
        lea edidword ptr [-1+rdx]
        test ediedi
        mov dword ptr [8+rbx], edi
        je L9
        lea r10d, dword ptr [-2+rdx]
        cmp qword ptr [r11+r10*8], 0
        je L18
L9:
        mov edxdword ptr [8+rbx]
        xor r11d, r11d
        test edxedx
        cmovne r11d, esi
        mov dword ptr [rbx], r11d
        add rsp, 64
        pop rbx
        pop rbp
        pop r12

        pop rsi
        pop rdi

        ret

s_mp_mul_comba_4 ENDP


; void s_mp_mul_comba_8(const mp_int *A, const mp_int *B, mp_int *C)

        ALIGN 16
s_mp_mul_comba_8 PROC

        push rdi
        push rsi

        mov rdi, rcx
        mov rsi, rdx
        mov rdx, r8

        push r12
        push rbp
        push rbx
        mov rbx, rdx
        sub rsp, 8+128
        mov rdx, qword ptr [16+rdi]
        mov r8, qword ptr [rdx]
        mov qword ptr [-120+128+rsp], r8
        mov rbp, qword ptr [8+rdx]
        mov qword ptr [-112+128+rsp], rbp
        mov r9, qword ptr [16+rdx]
        mov qword ptr [-104+128+rsp], r9
        mov r12, qword ptr [24+rdx]
        mov qword ptr [-96+128+rsp], r12
        mov rcx, qword ptr [32+rdx]
        mov qword ptr [-88+128+rsp], rcx
        mov r10, qword ptr [40+rdx]
        mov qword ptr [-80+128+rsp], r10
        mov r11, qword ptr [48+rdx]
        mov qword ptr [-72+128+rsp], r11
        mov rax, qword ptr [56+rdx]
        mov rdx, qword ptr [16+rsi]
        mov qword ptr [-64+128+rsp], rax
        mov r8, qword ptr [rdx]
        mov qword ptr [-56+128+rsp], r8
        mov rbp, qword ptr [8+rdx]
        mov qword ptr [-48+128+rsp], rbp
        mov r9, qword ptr [16+rdx]
        mov qword ptr [-40+128+rsp], r9
        mov r12, qword ptr [24+rdx]
        mov qword ptr [-32+128+rsp], r12
        mov rcx, qword ptr [32+rdx]
        mov qword ptr [-24+128+rsp], rcx
        mov r10, qword ptr [40+rdx]
        mov qword ptr [-16+128+rsp], r10
        mov r11, qword ptr [48+rdx]
        xor r10d, r10d
        mov r8, r10
        mov r9, r10
        mov rbp, r10
        mov qword ptr [-8+128+rsp], r11
        mov r11, qword ptr [16+rbx]
        mov rax, qword ptr [56+rdx]
        mov qword ptr [128+rsp], rax
        mov rax, qword ptr [-120+128+rsp]
        mul qword ptr [-56+128+rsp]
        add r8, rax
        adc r9, rdx
        adc rbp, 0
        mov qword ptr [r11], r8
        mov r8, rbp
        mov rbp, r10
        mov rax, qword ptr [-120+128+rsp]
        mul qword ptr [-48+128+rsp]
        add r9, rax
        adc r8, rdx
        adc rbp, 0
        mov r12, rbp
        mov rax, qword ptr [-112+128+rsp]
        mul qword ptr [-56+128+rsp]
        add r9, rax
        adc r8, rdx
        adc r12, 0
        mov qword ptr [8+r11], r9
        mov r9, r12
        mov r12, r10
        mov rax, qword ptr [-120+128+rsp]
        mul qword ptr [-40+128+rsp]
        add r8, rax
        adc r9, rdx
        adc r12, 0
        mov rcx, r12
        mov rax, qword ptr [-112+128+rsp]
        mul qword ptr [-48+128+rsp]
        add r8, rax
        adc r9, rdx
        adc rcx, 0
        mov rbp, r9
        mov r12, rcx
        mov rax, qword ptr [-104+128+rsp]
        mul qword ptr [-56+128+rsp]
        add r8, rax
        adc rbp, rdx
        adc r12, 0
        mov qword ptr [16+r11], r8
        mov r9, r12
        mov rcx, rbp
        mov r8, r10
        mov rax, qword ptr [-120+128+rsp]
        mul qword ptr [-32+128+rsp]
        add rcx, rax
        adc r9, rdx
        adc r8, 0
        mov rax, qword ptr [-112+128+rsp]
        mul qword ptr [-40+128+rsp]
        add rcx, rax
        adc r9, rdx
        adc r8, 0
        mov rax, qword ptr [-104+128+rsp]
        mul qword ptr [-48+128+rsp]
        add rcx, rax
        adc r9, rdx
        adc r8, 0
        mov rbp, r9
        mov r12, r8
        mov rax, qword ptr [-96+128+rsp]
        mul qword ptr [-56+128+rsp]
        add rcx, rax
        adc rbp, rdx
        adc r12, 0
        mov qword ptr [24+r11], rcx
        mov r9, r12
        mov r8, rbp
        mov rcx, r10
        mov rax, qword ptr [-120+128+rsp]
        mul qword ptr [-24+128+rsp]
        add r8, rax
        adc r9, rdx
        adc rcx, 0
        mov rax, qword ptr [-112+128+rsp]
        mul qword ptr [-32+128+rsp]
        add r8, rax
        adc r9, rdx
        adc rcx, 0
        mov rax, qword ptr [-104+128+rsp]
        mul qword ptr [-40+128+rsp]
        add r8, rax
        adc r9, rdx
        adc rcx, 0
        mov rax, qword ptr [-96+128+rsp]
        mul qword ptr [-48+128+rsp]
        add r8, rax
        adc r9, rdx
        adc rcx, 0
        mov rbp, r9
        mov r12, rcx
        mov rax, qword ptr [-88+128+rsp]
        mul qword ptr [-56+128+rsp]
        add r8, rax
        adc rbp, rdx
        adc r12, 0
        mov qword ptr [32+r11], r8
        mov r9, r12
        mov rcx, rbp
        mov r8, r10
        mov rax, qword ptr [-120+128+rsp]
        mul qword ptr [-16+128+rsp]
        add rcx, rax
        adc r9, rdx
        adc r8, 0
        mov rax, qword ptr [-112+128+rsp]
        mul qword ptr [-24+128+rsp]
        add rcx, rax
        adc r9, rdx
        adc r8, 0
        mov rax, qword ptr [-104+128+rsp]
        mul qword ptr [-32+128+rsp]
        add rcx, rax
        adc r9, rdx
        adc r8, 0
        mov rax, qword ptr [-96+128+rsp]
        mul qword ptr [-40+128+rsp]
        add rcx, rax
        adc r9, rdx
        adc r8, 0
        mov rax, qword ptr [-88+128+rsp]
        mul qword ptr [-48+128+rsp]
        add rcx, rax
        adc r9, rdx
        adc r8, 0
        mov rbp, r9
        mov r12, r8
        mov rax, qword ptr [-80+128+rsp]
        mul qword ptr [-56+128+rsp]
        add rcx, rax
        adc rbp, rdx
        adc r12, 0
        mov qword ptr [40+r11], rcx
        mov r9, r12
        mov r8, rbp
        mov rcx, r10
        mov rax, qword ptr [-120+128+rsp]
        mul qword ptr [-8+128+rsp]
        add r8, rax
        adc r9, rdx
        adc rcx, 0
        mov rax, qword ptr [-112+128+rsp]
        mul qword ptr [-16+128+rsp]
        add r8, rax
        adc r9, rdx
        adc rcx, 0
        mov rax, qword ptr [-104+128+rsp]
        mul qword ptr [-24+128+rsp]
        add r8, rax
        adc r9, rdx
        adc rcx, 0
        mov rax, qword ptr [-96+128+rsp]
        mul qword ptr [-32+128+rsp]
        add r8, rax
        adc r9, rdx
        adc rcx, 0
        mov rax, qword ptr [-88+128+rsp]
        mul qword ptr [-40+128+rsp]
        add r8, rax
        adc r9, rdx
        adc rcx, 0
        mov rax, qword ptr [-80+128+rsp]
        mul qword ptr [-48+128+rsp]
        add r8, rax
        adc r9, rdx
        adc rcx, 0
        mov rbp, r9
        mov r12, rcx
        mov rax, qword ptr [-72+128+rsp]
        mul qword ptr [-56+128+rsp]
        add r8, rax
        adc rbp, rdx
        adc r12, 0
        mov qword ptr [48+r11], r8
        mov r9, r12
        mov rcx, rbp
        mov r8, r10
        mov rax, qword ptr [-120+128+rsp]
        mul qword ptr [128+rsp]
        add rcx, rax
        adc r9, rdx
        adc r8, 0
        mov rax, qword ptr [-112+128+rsp]
        mul qword ptr [-8+128+rsp]
        add rcx, rax
        adc r9, rdx
        adc r8, 0
        mov rax, qword ptr [-104+128+rsp]
        mul qword ptr [-16+128+rsp]
        add rcx, rax
        adc r9, rdx
        adc r8, 0
        mov rax, qword ptr [-96+128+rsp]
        mul qword ptr [-24+128+rsp]
        add rcx, rax
        adc r9, rdx
        adc r8, 0
        mov rax, qword ptr [-88+128+rsp]
        mul qword ptr [-32+128+rsp]
        add rcx, rax
        adc r9, rdx
        adc r8, 0
        mov rax, qword ptr [-80+128+rsp]
        mul qword ptr [-40+128+rsp]
        add rcx, rax
        adc r9, rdx
        adc r8, 0
        mov rax, qword ptr [-72+128+rsp]
        mul qword ptr [-48+128+rsp]
        add rcx, rax
        adc r9, rdx
        adc r8, 0
        mov rbp, r9
        mov r12, r8
        mov rax, qword ptr [-64+128+rsp]
        mul qword ptr [-56+128+rsp]
        add rcx, rax
        adc rbp, rdx
        adc r12, 0
        mov qword ptr [56+r11], rcx
        mov r9, r12
        mov r8, rbp
        mov rcx, r10
        mov rax, qword ptr [-112+128+rsp]
        mul qword ptr [128+rsp]
        add r8, rax
        adc r9, rdx
        adc rcx, 0
        mov rax, qword ptr [-104+128+rsp]
        mul qword ptr [-8+128+rsp]
        add r8, rax
        adc r9, rdx
        adc rcx, 0
        mov rax, qword ptr [-96+128+rsp]
        mul qword ptr [-16+128+rsp]
        add r8, rax
        adc r9, rdx
        adc rcx, 0
        mov rax, qword ptr [-88+128+rsp]
        mul qword ptr [-24+128+rsp]
        add r8, rax
        adc r9, rdx
        adc rcx, 0
        mov rax, qword ptr [-80+128+rsp]
        mul qword ptr [-32+128+rsp]
        add r8, rax
        adc r9, rdx
        adc rcx, 0
        mov rax, qword ptr [-72+128+rsp]
        mul qword ptr [-40+128+rsp]
        add r8, rax
        adc r9, rdx
        adc rcx, 0
        mov rbp, r9
        mov r12, rcx
        mov rax, qword ptr [-64+128+rsp]
        mul qword ptr [-48+128+rsp]
        add r8, rax
        adc rbp, rdx
        adc r12, 0
        mov qword ptr [64+r11], r8
        mov r9, r12
        mov rcx, rbp
        mov r8, r10
        mov rax, qword ptr [-104+128+rsp]
        mul qword ptr [128+rsp]
        add rcx, rax
        adc r9, rdx
        adc r8, 0
        mov rax, qword ptr [-96+128+rsp]
        mul qword ptr [-8+128+rsp]
        add rcx, rax
        adc r9, rdx
        adc r8, 0
        mov rax, qword ptr [-88+128+rsp]
        mul qword ptr [-16+128+rsp]
        add rcx, rax
        adc r9, rdx
        adc r8, 0
        mov rax, qword ptr [-80+128+rsp]
        mul qword ptr [-24+128+rsp]
        add rcx, rax
        adc r9, rdx
        adc r8, 0
        mov rax, qword ptr [-72+128+rsp]
        mul qword ptr [-32+128+rsp]
        add rcx, rax
        adc r9, rdx
        adc r8, 0
        mov rbp, r9
        mov r12, r8
        mov rax, qword ptr [-64+128+rsp]
        mul qword ptr [-40+128+rsp]
        add rcx, rax
        adc rbp, rdx
        adc r12, 0
        mov qword ptr [72+r11], rcx
        mov r9, r12
        mov r8, rbp
        mov rcx, r10
        mov rax, qword ptr [-96+128+rsp]
        mul qword ptr [128+rsp]
        add r8, rax
        adc r9, rdx
        adc rcx, 0
        mov rax, qword ptr [-88+128+rsp]
        mul qword ptr [-8+128+rsp]
        add r8, rax
        adc r9, rdx
        adc rcx, 0
        mov rax, qword ptr [-80+128+rsp]
        mul qword ptr [-16+128+rsp]
        add r8, rax
        adc r9, rdx
        adc rcx, 0
        mov rax, qword ptr [-72+128+rsp]
        mul qword ptr [-24+128+rsp]
        add r8, rax
        adc r9, rdx
        adc rcx, 0
        mov rbp, r9
        mov r12, rcx
        mov rax, qword ptr [-64+128+rsp]
        mul qword ptr [-32+128+rsp]
        add r8, rax
        adc rbp, rdx
        adc r12, 0
        mov qword ptr [80+r11], r8
        mov r9, r12
        mov rcx, rbp
        mov r8, r10
        mov rax, qword ptr [-88+128+rsp]
        mul qword ptr [128+rsp]
        add rcx, rax
        adc r9, rdx
        adc r8, 0
        mov rax, qword ptr [-80+128+rsp]
        mul qword ptr [-8+128+rsp]
        add rcx, rax
        adc r9, rdx
        adc r8, 0
        mov rax, qword ptr [-72+128+rsp]
        mul qword ptr [-16+128+rsp]
        add rcx, rax
        adc r9, rdx
        adc r8, 0
        mov rbp, r9
        mov r12, r8
        mov rax, qword ptr [-64+128+rsp]
        mul qword ptr [-24+128+rsp]
        add rcx, rax
        adc rbp, rdx
        adc r12, 0
        mov qword ptr [88+r11], rcx
        mov r9, r12
        mov r8, rbp
        mov rcx, r10
        mov rax, qword ptr [-80+128+rsp]
        mul qword ptr [128+rsp]
        add r8, rax
        adc r9, rdx
        adc rcx, 0
        mov rax, qword ptr [-72+128+rsp]
        mul qword ptr [-8+128+rsp]
        add r8, rax
        adc r9, rdx
        adc rcx, 0
        mov rbp, r9
        mov r12, rcx
        mov rax, qword ptr [-64+128+rsp]
        mul qword ptr [-16+128+rsp]
        add r8, rax
        adc rbp, rdx
        adc r12, 0
        mov qword ptr [96+r11], r8
        mov r9, r12
        mov rcx, rbp
        mov r8, r10
        mov rax, qword ptr [-72+128+rsp]
        mul qword ptr [128+rsp]
        add rcx, rax
        adc r9, rdx
        adc r8, 0
        mov r12, r8
        mov rbp, r9
        mov rax, qword ptr [-64+128+rsp]
        mul qword ptr [-8+128+rsp]
        add rcx, rax
        adc rbp, rdx
        adc r12, 0
        mov qword ptr [104+r11], rcx
        mov r8, rbp
        mov rcx, r12
        mov rax, qword ptr [-64+128+rsp]
        mul qword ptr [128+rsp]
        add r8, rax
        adc rcx, rdx
        adc r10, 0
        mov qword ptr [112+r11], r8
        mov esidword ptr [rsi]
        xor esidword ptr [rdi]
        test rcx, rcx
        mov qword ptr [120+r11], rcx
        mov dword ptr [8+rbx], 16
        jne L35
        ALIGN 16
L43:
        mov edxdword ptr [8+rbx]
        lea edidword ptr [-1+rdx]
        test ediedi
        mov dword ptr [8+rbx], edi
        je L35
        lea eaxdword ptr [-2+rdx]
        cmp qword ptr [r11+rax*8], 0
        je L43
L35:
        mov r11d, dword ptr [8+rbx]
        xor edxedx
        test r11d, r11d
        cmovne edxesi
        mov dword ptr [rbx], edx
        add rsp, 8+128
        pop rbx
        pop rbp
        pop r12

        pop rsi
        pop rdi

        ret

s_mp_mul_comba_8 ENDP


; void s_mp_mul_comba_16(const mp_int *A, const mp_int *B, mp_int *C);

        ALIGN 16
s_mp_mul_comba_16 PROC

        push rdi
        push rsi

        mov rdi, rcx
        mov rsi, rdx
        mov rdx, r8

        push r12
        push rbp
        push rbx
        mov rbx, rdx
        sub rsp, 136+128
        mov rax, qword ptr [16+rdi]
        mov r8, qword ptr [rax]
        mov qword ptr [-120+128+rsp], r8
        mov rbp, qword ptr [8+rax]
        mov qword ptr [-112+128+rsp], rbp
        mov r9, qword ptr [16+rax]
        mov qword ptr [-104+128+rsp], r9
        mov r12, qword ptr [24+rax]
        mov qword ptr [-96+128+rsp], r12
        mov rcx, qword ptr [32+rax]
        mov qword ptr [-88+128+rsp], rcx
        mov r10, qword ptr [40+rax]
        mov qword ptr [-80+128+rsp], r10
        mov rdx, qword ptr [48+rax]
        mov qword ptr [-72+128+rsp], rdx
        mov r11, qword ptr [56+rax]
        mov qword ptr [-64+128+rsp], r11
        mov r8, qword ptr [64+rax]
        mov qword ptr [-56+128+rsp], r8
        mov rbp, qword ptr [72+rax]
        mov qword ptr [-48+128+rsp], rbp
        mov r9, qword ptr [80+rax]
        mov qword ptr [-40+128+rsp], r9
        mov r12, qword ptr [88+rax]
        mov qword ptr [-32+128+rsp], r12
        mov rcx, qword ptr [96+rax]
        mov qword ptr [-24+128+rsp], rcx
        mov r10, qword ptr [104+rax]
        mov qword ptr [-16+128+rsp], r10
        mov rdx, qword ptr [112+rax]
        mov qword ptr [-8+128+rsp], rdx
        mov r11, qword ptr [120+rax]
        mov qword ptr [128+rsp], r11
        mov r11, qword ptr [16+rsi]
        mov r8, qword ptr [r11]
        mov qword ptr [8+128+rsp], r8
        mov rbp, qword ptr [8+r11]
        mov qword ptr [16+128+rsp], rbp
        mov r9, qword ptr [16+r11]
        mov qword ptr [24+128+rsp], r9
        mov r12, qword ptr [24+r11]
        mov qword ptr [32+128+rsp], r12
        mov rcx, qword ptr [32+r11]
        mov qword ptr [40+128+rsp], rcx
        mov r10, qword ptr [40+r11]
        mov qword ptr [48+128+rsp], r10
        mov rdx, qword ptr [48+r11]
        mov qword ptr [56+128+rsp], rdx
        mov rax, qword ptr [56+r11]
        mov qword ptr [64+128+rsp], rax
        mov r8, qword ptr [64+r11]
        mov qword ptr [72+128+rsp], r8
        mov rbp, qword ptr [72+r11]
        mov qword ptr [80+128+rsp], rbp
        mov r9, qword ptr [80+r11]
        mov qword ptr [88+128+rsp], r9
        mov r12, qword ptr [88+r11]
        mov qword ptr [96+128+rsp], r12
        mov rcx, qword ptr [96+r11]
        mov qword ptr [104+128+rsp], rcx
        mov r10, qword ptr [104+r11]
        mov qword ptr [112+128+rsp], r10
        mov rdx, qword ptr [112+r11]
        xor r10d, r10d
        mov r8, r10
        mov r9, r10
        mov rbp, r10
        mov qword ptr [120+128+rsp], rdx
        mov rax, qword ptr [120+r11]
        mov qword ptr [128+128+rsp], rax
        mov r11, qword ptr [16+rbx]
        mov rax, qword ptr [-120+128+rsp]
        mul qword ptr [8+128+rsp]
        add r8, rax
        adc r9, rdx
        adc rbp, 0
        mov qword ptr [r11], r8
        mov r8, rbp
        mov rbp, r10
        mov rax, qword ptr [-120+128+rsp]
        mul qword ptr [16+128+rsp]
        add r9, rax
        adc r8, rdx
        adc rbp, 0
        mov r12, rbp
        mov rax, qword ptr [-112+128+rsp]
        mul qword ptr [8+128+rsp]
        add r9, rax
        adc r8, rdx
        adc r12, 0
        mov qword ptr [8+r11], r9
        mov r9, r12
        mov r12, r10
        mov rax, qword ptr [-120+128+rsp]
        mul qword ptr [24+128+rsp]
        add r8, rax
        adc r9, rdx
        adc r12, 0
        mov rcx, r12
        mov rax, qword ptr [-112+128+rsp]
        mul qword ptr [16+128+rsp]
        add r8, rax
        adc r9, rdx
        adc rcx, 0
        mov rbp, r9
        mov r12, rcx
        mov rax, qword ptr [-104+128+rsp]
        mul qword ptr [8+128+rsp]
        add r8, rax
        adc rbp, rdx
        adc r12, 0
        mov qword ptr [16+r11], r8
        mov r9, r12
        mov rcx, rbp
        mov r8, r10
        mov rax, qword ptr [-120+128+rsp]
        mul qword ptr [32+128+rsp]
        add rcx, rax
        adc r9, rdx
        adc r8, 0
        mov rax, qword ptr [-112+128+rsp]
        mul qword ptr [24+128+rsp]
        add rcx, rax
        adc r9, rdx
        adc r8, 0
        mov rax, qword ptr [-104+128+rsp]
        mul qword ptr [16+128+rsp]
        add rcx, rax
        adc r9, rdx
        adc r8, 0
        mov rbp, r9
        mov r12, r8
        mov rax, qword ptr [-96+128+rsp]
        mul qword ptr [8+128+rsp]
        add rcx, rax
        adc rbp, rdx
        adc r12, 0
        mov qword ptr [24+r11], rcx
        mov r9, r12
        mov r8, rbp
        mov rcx, r10
        mov rax, qword ptr [-120+128+rsp]
        mul qword ptr [40+128+rsp]
        add r8, rax
        adc r9, rdx
        adc rcx, 0
        mov rax, qword ptr [-112+128+rsp]
        mul qword ptr [32+128+rsp]
        add r8, rax
        adc r9, rdx
        adc rcx, 0
        mov rax, qword ptr [-104+128+rsp]
        mul qword ptr [24+128+rsp]
        add r8, rax
        adc r9, rdx
        adc rcx, 0
        mov rax, qword ptr [-96+128+rsp]
        mul qword ptr [16+128+rsp]
        add r8, rax
        adc r9, rdx
        adc rcx, 0
        mov rbp, r9
        mov r12, rcx
        mov rax, qword ptr [-88+128+rsp]
        mul qword ptr [8+128+rsp]
        add r8, rax
        adc rbp, rdx
        adc r12, 0
        mov qword ptr [32+r11], r8
        mov r9, r12
        mov rcx, rbp
        mov r8, r10
        mov rax, qword ptr [-120+128+rsp]
        mul qword ptr [48+128+rsp]
        add rcx, rax
        adc r9, rdx
        adc r8, 0
        mov rax, qword ptr [-112+128+rsp]
        mul qword ptr [40+128+rsp]
        add rcx, rax
        adc r9, rdx
        adc r8, 0
        mov rax, qword ptr [-104+128+rsp]
        mul qword ptr [32+128+rsp]
        add rcx, rax
        adc r9, rdx
        adc r8, 0
        mov rax, qword ptr [-96+128+rsp]
        mul qword ptr [24+128+rsp]
        add rcx, rax
        adc r9, rdx
        adc r8, 0
        mov rax, qword ptr [-88+128+rsp]
        mul qword ptr [16+128+rsp]
        add rcx, rax
        adc r9, rdx
        adc r8, 0
        mov rbp, r9
        mov r12, r8
        mov rax, qword ptr [-80+128+rsp]
        mul qword ptr [8+128+rsp]
        add rcx, rax
        adc rbp, rdx
        adc r12, 0
        mov qword ptr [40+r11], rcx
        mov r9, r12
        mov r8, rbp
        mov rcx, r10
        mov rax, qword ptr [-120+128+rsp]
        mul qword ptr [56+128+rsp]
        add r8, rax
        adc r9, rdx
        adc rcx, 0
        mov rax, qword ptr [-112+128+rsp]
        mul qword ptr [48+128+rsp]
        add r8, rax
        adc r9, rdx
        adc rcx, 0
        mov rax, qword ptr [-104+128+rsp]
        mul qword ptr [40+128+rsp]
        add r8, rax
        adc r9, rdx
        adc rcx, 0
        mov rax, qword ptr [-96+128+rsp]
        mul qword ptr [32+128+rsp]
        add r8, rax
        adc r9, rdx
        adc rcx, 0
        mov rax, qword ptr [-88+128+rsp]
        mul qword ptr [24+128+rsp]
        add r8, rax
        adc r9, rdx
        adc rcx, 0
        mov rax, qword ptr [-80+128+rsp]
        mul qword ptr [16+128+rsp]
        add r8, rax
        adc r9, rdx
        adc rcx, 0
        mov rbp, r9
        mov r12, rcx
        mov rax, qword ptr [-72+128+rsp]
        mul qword ptr [8+128+rsp]
        add r8, rax
        adc rbp, rdx
        adc r12, 0
        mov qword ptr [48+r11], r8
        mov r9, r12
        mov rcx, rbp
        mov r8, r10
        mov rax, qword ptr [-120+128+rsp]
        mul qword ptr [64+128+rsp]
        add rcx, rax
        adc r9, rdx
        adc r8, 0
        mov rax, qword ptr [-112+128+rsp]
        mul qword ptr [56+128+rsp]
        add rcx, rax
        adc r9, rdx
        adc r8, 0
        mov rax, qword ptr [-104+128+rsp]
        mul qword ptr [48+128+rsp]
        add rcx, rax
        adc r9, rdx
        adc r8, 0
        mov rax, qword ptr [-96+128+rsp]
        mul qword ptr [40+128+rsp]
        add rcx, rax
        adc r9, rdx
        adc r8, 0
        mov rax, qword ptr [-88+128+rsp]
        mul qword ptr [32+128+rsp]
        add rcx, rax
        adc r9, rdx
        adc r8, 0
        mov rax, qword ptr [-80+128+rsp]
        mul qword ptr [24+128+rsp]
        add rcx, rax
        adc r9, rdx
        adc r8, 0
        mov rax, qword ptr [-72+128+rsp]
        mul qword ptr [16+128+rsp]
        add rcx, rax
        adc r9, rdx
        adc r8, 0
        mov rbp, r9
        mov r12, r8
        mov rax, qword ptr [-64+128+rsp]
        mul qword ptr [8+128+rsp]
        add rcx, rax
        adc rbp, rdx
        adc r12, 0
        mov qword ptr [56+r11], rcx
        mov r9, r12
        mov r8, rbp
        mov rcx, r10
        mov rax, qword ptr [-120+128+rsp]
        mul qword ptr [72+128+rsp]
        add r8, rax
        adc r9, rdx
        adc rcx, 0
        mov rax, qword ptr [-112+128+rsp]
        mul qword ptr [64+128+rsp]
        add r8, rax
        adc r9, rdx
        adc rcx, 0
        mov rax, qword ptr [-104+128+rsp]
        mul qword ptr [56+128+rsp]
        add r8, rax
        adc r9, rdx
        adc rcx, 0
        mov rax, qword ptr [-96+128+rsp]
        mul qword ptr [48+128+rsp]
        add r8, rax
        adc r9, rdx
        adc rcx, 0
        mov rax, qword ptr [-88+128+rsp]
        mul qword ptr [40+128+rsp]
        add r8, rax
        adc r9, rdx
        adc rcx, 0
        mov rax, qword ptr [-80+128+rsp]
        mul qword ptr [32+128+rsp]
        add r8, rax
        adc r9, rdx
        adc rcx, 0
        mov rax, qword ptr [-72+128+rsp]
        mul qword ptr [24+128+rsp]
        add r8, rax
        adc r9, rdx
        adc rcx, 0
        mov rax, qword ptr [-64+128+rsp]
        mul qword ptr [16+128+rsp]
        add r8, rax
        adc r9, rdx
        adc rcx, 0
        mov rbp, r9
        mov r12, rcx
        mov rax, qword ptr [-56+128+rsp]
        mul qword ptr [8+128+rsp]
        add r8, rax
        adc rbp, rdx
        adc r12, 0
        mov qword ptr [64+r11], r8
        mov r9, r12
        mov rcx, rbp
        mov r8, r10
        mov rax, qword ptr [-120+128+rsp]
        mul qword ptr [80+128+rsp]
        add rcx, rax
        adc r9, rdx
        adc r8, 0
        mov rax, qword ptr [-112+128+rsp]
        mul qword ptr [72+128+rsp]
        add rcx, rax
        adc r9, rdx
        adc r8, 0
        mov rax, qword ptr [-104+128+rsp]
        mul qword ptr [64+128+rsp]
        add rcx, rax
        adc r9, rdx
        adc r8, 0
        mov rax, qword ptr [-96+128+rsp]
        mul qword ptr [56+128+rsp]
        add rcx, rax
        adc r9, rdx
        adc r8, 0
        mov rax, qword ptr [-88+128+rsp]
        mul qword ptr [48+128+rsp]
        add rcx, rax
        adc r9, rdx
        adc r8, 0
        mov rax, qword ptr [-80+128+rsp]
        mul qword ptr [40+128+rsp]
        add rcx, rax
        adc r9, rdx
        adc r8, 0
        mov rax, qword ptr [-72+128+rsp]
        mul qword ptr [32+128+rsp]
        add rcx, rax
        adc r9, rdx
        adc r8, 0
        mov rax, qword ptr [-64+128+rsp]
        mul qword ptr [24+128+rsp]
        add rcx, rax
        adc r9, rdx
        adc r8, 0
        mov rax, qword ptr [-56+128+rsp]
        mul qword ptr [16+128+rsp]
        add rcx, rax
        adc r9, rdx
        adc r8, 0
        mov rbp, r9
        mov r12, r8
        mov rax, qword ptr [-48+128+rsp]
        mul qword ptr [8+128+rsp]
        add rcx, rax
        adc rbp, rdx
        adc r12, 0
        mov qword ptr [72+r11], rcx
        mov r9, r12
        mov r8, rbp
        mov rcx, r10
        mov rax, qword ptr [-120+128+rsp]
        mul qword ptr [88+128+rsp]
        add r8, rax
        adc r9, rdx
        adc rcx, 0
        mov rax, qword ptr [-112+128+rsp]
        mul qword ptr [80+128+rsp]
        add r8, rax
        adc r9, rdx
        adc rcx, 0
        mov rax, qword ptr [-104+128+rsp]
        mul qword ptr [72+128+rsp]
        add r8, rax
        adc r9, rdx
        adc rcx, 0
        mov rax, qword ptr [-96+128+rsp]
        mul qword ptr [64+128+rsp]
        add r8, rax
        adc r9, rdx
        adc rcx, 0
        mov rax, qword ptr [-88+128+rsp]
        mul qword ptr [56+128+rsp]
        add r8, rax
        adc r9, rdx
        adc rcx, 0
        mov rax, qword ptr [-80+128+rsp]
        mul qword ptr [48+128+rsp]
        add r8, rax
        adc r9, rdx
        adc rcx, 0
        mov rax, qword ptr [-72+128+rsp]
        mul qword ptr [40+128+rsp]
        add r8, rax
        adc r9, rdx
        adc rcx, 0
        mov rax, qword ptr [-64+128+rsp]
        mul qword ptr [32+128+rsp]
        add r8, rax
        adc r9, rdx
        adc rcx, 0
        mov rax, qword ptr [-56+128+rsp]
        mul qword ptr [24+128+rsp]
        add r8, rax
        adc r9, rdx
        adc rcx, 0
        mov rax, qword ptr [-48+128+rsp]
        mul qword ptr [16+128+rsp]
        add r8, rax
        adc r9, rdx
        adc rcx, 0
        mov rbp, r9
        mov r12, rcx
        mov rax, qword ptr [-40+128+rsp]
        mul qword ptr [8+128+rsp]
        add r8, rax
        adc rbp, rdx
        adc r12, 0
        mov qword ptr [80+r11], r8
        mov r9, r12
        mov rcx, rbp
        mov r8, r10
        mov rax, qword ptr [-120+128+rsp]
        mul qword ptr [96+128+rsp]
        add rcx, rax
        adc r9, rdx
        adc r8, 0
        mov rax, qword ptr [-112+128+rsp]
        mul qword ptr [88+128+rsp]
        add rcx, rax
        adc r9, rdx
        adc r8, 0
        mov rax, qword ptr [-104+128+rsp]
        mul qword ptr [80+128+rsp]
        add rcx, rax
        adc r9, rdx
        adc r8, 0
        mov rax, qword ptr [-96+128+rsp]
        mul qword ptr [72+128+rsp]
        add rcx, rax
        adc r9, rdx
        adc r8, 0
        mov rax, qword ptr [-88+128+rsp]
        mul qword ptr [64+128+rsp]
        add rcx, rax
        adc r9, rdx
        adc r8, 0
        mov rax, qword ptr [-80+128+rsp]
        mul qword ptr [56+128+rsp]
        add rcx, rax
        adc r9, rdx
        adc r8, 0
        mov rax, qword ptr [-72+128+rsp]
        mul qword ptr [48+128+rsp]
        add rcx, rax
        adc r9, rdx
        adc r8, 0
        mov rax, qword ptr [-64+128+rsp]
        mul qword ptr [40+128+rsp]
        add rcx, rax
        adc r9, rdx
        adc r8, 0
        mov rax, qword ptr [-56+128+rsp]
        mul qword ptr [32+128+rsp]
        add rcx, rax
        adc r9, rdx
        adc r8, 0
        mov rax, qword ptr [-48+128+rsp]
        mul qword ptr [24+128+rsp]
        add rcx, rax
        adc r9, rdx
        adc r8, 0
        mov rax, qword ptr [-40+128+rsp]
        mul qword ptr [16+128+rsp]
        add rcx, rax
        adc r9, rdx
        adc r8, 0
        mov rbp, r9
        mov r12, r8
        mov rax, qword ptr [-32+128+rsp]
        mul qword ptr [8+128+rsp]
        add rcx, rax
        adc rbp, rdx
        adc r12, 0
        mov qword ptr [88+r11], rcx
        mov r9, r12
        mov r8, rbp
        mov rcx, r10
        mov rax, qword ptr [-120+128+rsp]
        mul qword ptr [104+128+rsp]
        add r8, rax
        adc r9, rdx
        adc rcx, 0
        mov rax, qword ptr [-112+128+rsp]
        mul qword ptr [96+128+rsp]
        add r8, rax
        adc r9, rdx
        adc rcx, 0
        mov rax, qword ptr [-104+128+rsp]
        mul qword ptr [88+128+rsp]
        add r8, rax
        adc r9, rdx
        adc rcx, 0
        mov rax, qword ptr [-96+128+rsp]
        mul qword ptr [80+128+rsp]
        add r8, rax
        adc r9, rdx
        adc rcx, 0
        mov rax, qword ptr [-88+128+rsp]
        mul qword ptr [72+128+rsp]
        add r8, rax
        adc r9, rdx
        adc rcx, 0
        mov rax, qword ptr [-80+128+rsp]
        mul qword ptr [64+128+rsp]
        add r8, rax
        adc r9, rdx
        adc rcx, 0
        mov rax, qword ptr [-72+128+rsp]
        mul qword ptr [56+128+rsp]
        add r8, rax
        adc r9, rdx
        adc rcx, 0
        mov rax, qword ptr [-64+128+rsp]
        mul qword ptr [48+128+rsp]
        add r8, rax
        adc r9, rdx
        adc rcx, 0
        mov rax, qword ptr [-56+128+rsp]
        mul qword ptr [40+128+rsp]
        add r8, rax
        adc r9, rdx
        adc rcx, 0
        mov rax, qword ptr [-48+128+rsp]
        mul qword ptr [32+128+rsp]
        add r8, rax
        adc r9, rdx
        adc rcx, 0
        mov rax, qword ptr [-40+128+rsp]
        mul qword ptr [24+128+rsp]
        add r8, rax
        adc r9, rdx
        adc rcx, 0
        mov rax, qword ptr [-32+128+rsp]
        mul qword ptr [16+128+rsp]
        add r8, rax
        adc r9, rdx
        adc rcx, 0
        mov rbp, r9
        mov r12, rcx
        mov rax, qword ptr [-24+128+rsp]
        mul qword ptr [8+128+rsp]
        add r8, rax
        adc rbp, rdx
        adc r12, 0
        mov qword ptr [96+r11], r8
        mov r9, r12
        mov rcx, rbp
        mov r8, r10
        mov rax, qword ptr [-120+128+rsp]
        mul qword ptr [112+128+rsp]
        add rcx, rax
        adc r9, rdx
        adc r8, 0
        mov rax, qword ptr [-112+128+rsp]
        mul qword ptr [104+128+rsp]
        add rcx, rax
        adc r9, rdx
        adc r8, 0
        mov rax, qword ptr [-104+128+rsp]
        mul qword ptr [96+128+rsp]
        add rcx, rax
        adc r9, rdx
        adc r8, 0
        mov rax, qword ptr [-96+128+rsp]
        mul qword ptr [88+128+rsp]
        add rcx, rax
        adc r9, rdx
        adc r8, 0
        mov rax, qword ptr [-88+128+rsp]
        mul qword ptr [80+128+rsp]
        add rcx, rax
        adc r9, rdx
        adc r8, 0
        mov rax, qword ptr [-80+128+rsp]
        mul qword ptr [72+128+rsp]
        add rcx, rax
        adc r9, rdx
        adc r8, 0
        mov rax, qword ptr [-72+128+rsp]
        mul qword ptr [64+128+rsp]
        add rcx, rax
        adc r9, rdx
        adc r8, 0
        mov rax, qword ptr [-64+128+rsp]
        mul qword ptr [56+128+rsp]
        add rcx, rax
        adc r9, rdx
        adc r8, 0
        mov rax, qword ptr [-56+128+rsp]
        mul qword ptr [48+128+rsp]
        add rcx, rax
        adc r9, rdx
        adc r8, 0
        mov rax, qword ptr [-48+128+rsp]
        mul qword ptr [40+128+rsp]
        add rcx, rax
        adc r9, rdx
        adc r8, 0
        mov rax, qword ptr [-40+128+rsp]
        mul qword ptr [32+128+rsp]
        add rcx, rax
        adc r9, rdx
        adc r8, 0
        mov rax, qword ptr [-32+128+rsp]
        mul qword ptr [24+128+rsp]
        add rcx, rax
        adc r9, rdx
        adc r8, 0
        mov rax, qword ptr [-24+128+rsp]
        mul qword ptr [16+128+rsp]
        add rcx, rax
        adc r9, rdx
        adc r8, 0
        mov rbp, r9
        mov r12, r8
        mov rax, qword ptr [-16+128+rsp]
        mul qword ptr [8+128+rsp]
        add rcx, rax
        adc rbp, rdx
        adc r12, 0
        mov qword ptr [104+r11], rcx
        mov r9, r12
        mov r8, rbp
        mov rcx, r10
        mov rax, qword ptr [-120+128+rsp]
        mul qword ptr [120+128+rsp]
        add r8, rax
        adc r9, rdx
        adc rcx, 0
        mov rax, qword ptr [-112+128+rsp]
        mul qword ptr [112+128+rsp]
        add r8, rax
        adc r9, rdx
        adc rcx, 0
        mov rax, qword ptr [-104+128+rsp]
        mul qword ptr [104+128+rsp]
        add r8, rax
        adc r9, rdx
        adc rcx, 0
        mov rax, qword ptr [-96+128+rsp]
        mul qword ptr [96+128+rsp]
        add r8, rax
        adc r9, rdx
        adc rcx, 0
        mov rax, qword ptr [-88+128+rsp]
        mul qword ptr [88+128+rsp]
        add r8, rax
        adc r9, rdx
        adc rcx, 0
        mov rax, qword ptr [-80+128+rsp]
        mul qword ptr [80+128+rsp]
        add r8, rax
        adc r9, rdx
        adc rcx, 0
        mov rax, qword ptr [-72+128+rsp]
        mul qword ptr [72+128+rsp]
        add r8, rax
        adc r9, rdx
        adc rcx, 0
        mov rax, qword ptr [-64+128+rsp]
        mul qword ptr [64+128+rsp]
        add r8, rax
        adc r9, rdx
        adc rcx, 0
        mov rax, qword ptr [-56+128+rsp]
        mul qword ptr [56+128+rsp]
        add r8, rax
        adc r9, rdx
        adc rcx, 0
        mov rax, qword ptr [-48+128+rsp]
        mul qword ptr [48+128+rsp]
        add r8, rax
        adc r9, rdx
        adc rcx, 0
        mov rax, qword ptr [-40+128+rsp]
        mul qword ptr [40+128+rsp]
        add r8, rax
        adc r9, rdx
        adc rcx, 0
        mov rax, qword ptr [-32+128+rsp]
        mul qword ptr [32+128+rsp]
        add r8, rax
        adc r9, rdx
        adc rcx, 0
        mov rax, qword ptr [-24+128+rsp]
        mul qword ptr [24+128+rsp]
        add r8, rax
        adc r9, rdx
        adc rcx, 0
        mov rax, qword ptr [-16+128+rsp]
        mul qword ptr [16+128+rsp]
        add r8, rax
        adc r9, rdx
        adc rcx, 0
        mov rbp, r9
        mov r12, rcx
        mov rax, qword ptr [-8+128+rsp]
        mul qword ptr [8+128+rsp]
        add r8, rax
        adc rbp, rdx
        adc r12, 0
        mov qword ptr [112+r11], r8
        mov r9, r12
        mov rcx, rbp
        mov r8, r10
        mov rax, qword ptr [-120+128+rsp]
        mul qword ptr [128+128+rsp]
        add rcx, rax
        adc r9, rdx
        adc r8, 0
        mov rax, qword ptr [-112+128+rsp]
        mul qword ptr [120+128+rsp]
        add rcx, rax
        adc r9, rdx
        adc r8, 0
        mov rax, qword ptr [-104+128+rsp]
        mul qword ptr [112+128+rsp]
        add rcx, rax
        adc r9, rdx
        adc r8, 0
        mov rax, qword ptr [-96+128+rsp]
        mul qword ptr [104+128+rsp]
        add rcx, rax
        adc r9, rdx
        adc r8, 0
        mov rax, qword ptr [-88+128+rsp]
        mul qword ptr [96+128+rsp]
        add rcx, rax
        adc r9, rdx
        adc r8, 0
        mov rax, qword ptr [-80+128+rsp]
        mul qword ptr [88+128+rsp]
        add rcx, rax
        adc r9, rdx
        adc r8, 0
        mov rax, qword ptr [-72+128+rsp]
        mul qword ptr [80+128+rsp]
        add rcx, rax
        adc r9, rdx
        adc r8, 0
        mov rax, qword ptr [-64+128+rsp]
        mul qword ptr [72+128+rsp]
        add rcx, rax
        adc r9, rdx
        adc r8, 0
        mov rax, qword ptr [-56+128+rsp]
        mul qword ptr [64+128+rsp]
        add rcx, rax
        adc r9, rdx
        adc r8, 0
        mov rax, qword ptr [-48+128+rsp]
        mul qword ptr [56+128+rsp]
        add rcx, rax
        adc r9, rdx
        adc r8, 0
        mov rax, qword ptr [-40+128+rsp]
        mul qword ptr [48+128+rsp]
        add rcx, rax
        adc r9, rdx
        adc r8, 0
        mov rax, qword ptr [-32+128+rsp]
        mul qword ptr [40+128+rsp]
        add rcx, rax
        adc r9, rdx
        adc r8, 0
        mov rax, qword ptr [-24+128+rsp]
        mul qword ptr [32+128+rsp]
        add rcx, rax
        adc r9, rdx
        adc r8, 0
        mov rax, qword ptr [-16+128+rsp]
        mul qword ptr [24+128+rsp]
        add rcx, rax
        adc r9, rdx
        adc r8, 0
        mov rax, qword ptr [-8+128+rsp]
        mul qword ptr [16+128+rsp]
        add rcx, rax
        adc r9, rdx
        adc r8, 0
        mov rbp, r9
        mov r12, r8
        mov rax, qword ptr [128+rsp]
        mul qword ptr [8+128+rsp]
        add rcx, rax
        adc rbp, rdx
        adc r12, 0
        mov qword ptr [120+r11], rcx
        mov r9, r12
        mov r8, rbp
        mov rcx, r10
        mov rax, qword ptr [-112+128+rsp]
        mul qword ptr [128+128+rsp]
        add r8, rax
        adc r9, rdx
        adc rcx, 0
        mov rax, qword ptr [-104+128+rsp]
        mul qword ptr [120+128+rsp]
        add r8, rax
        adc r9, rdx
        adc rcx, 0
        mov rax, qword ptr [-96+128+rsp]
        mul qword ptr [112+128+rsp]
        add r8, rax
        adc r9, rdx
        adc rcx, 0
        mov rax, qword ptr [-88+128+rsp]
        mul qword ptr [104+128+rsp]
        add r8, rax
        adc r9, rdx
        adc rcx, 0
        mov rax, qword ptr [-80+128+rsp]
        mul qword ptr [96+128+rsp]
        add r8, rax
        adc r9, rdx
        adc rcx, 0
        mov rax, qword ptr [-72+128+rsp]
        mul qword ptr [88+128+rsp]
        add r8, rax
        adc r9, rdx
        adc rcx, 0
        mov rax, qword ptr [-64+128+rsp]
        mul qword ptr [80+128+rsp]
        add r8, rax
        adc r9, rdx
        adc rcx, 0
        mov rax, qword ptr [-56+128+rsp]
        mul qword ptr [72+128+rsp]
        add r8, rax
        adc r9, rdx
        adc rcx, 0
        mov rax, qword ptr [-48+128+rsp]
        mul qword ptr [64+128+rsp]
        add r8, rax
        adc r9, rdx
        adc rcx, 0
        mov rax, qword ptr [-40+128+rsp]
        mul qword ptr [56+128+rsp]
        add r8, rax
        adc r9, rdx
        adc rcx, 0
        mov rax, qword ptr [-32+128+rsp]
        mul qword ptr [48+128+rsp]
        add r8, rax
        adc r9, rdx
        adc rcx, 0
        mov rax, qword ptr [-24+128+rsp]
        mul qword ptr [40+128+rsp]
        add r8, rax
        adc r9, rdx
        adc rcx, 0
        mov rax, qword ptr [-16+128+rsp]
        mul qword ptr [32+128+rsp]
        add r8, rax
        adc r9, rdx
        adc rcx, 0
        mov rax, qword ptr [-8+128+rsp]
        mul qword ptr [24+128+rsp]
        add r8, rax
        adc r9, rdx
        adc rcx, 0
        mov rbp, r9
        mov r12, rcx
        mov rax, qword ptr [128+rsp]
        mul qword ptr [16+128+rsp]
        add r8, rax
        adc rbp, rdx
        adc r12, 0
        mov qword ptr [128+r11], r8
        mov r9, r12
        mov rcx, rbp
        mov r8, r10
        mov rax, qword ptr [-104+128+rsp]
        mul qword ptr [128+128+rsp]
        add rcx, rax
        adc r9, rdx
        adc r8, 0
        mov rax, qword ptr [-96+128+rsp]
        mul qword ptr [120+128+rsp]
        add rcx, rax
        adc r9, rdx
        adc r8, 0
        mov rax, qword ptr [-88+128+rsp]
        mul qword ptr [112+128+rsp]
        add rcx, rax
        adc r9, rdx
        adc r8, 0
        mov rax, qword ptr [-80+128+rsp]
        mul qword ptr [104+128+rsp]
        add rcx, rax
        adc r9, rdx
        adc r8, 0
        mov rax, qword ptr [-72+128+rsp]
        mul qword ptr [96+128+rsp]
        add rcx, rax
        adc r9, rdx
        adc r8, 0
        mov rax, qword ptr [-64+128+rsp]
        mul qword ptr [88+128+rsp]
        add rcx, rax
        adc r9, rdx
        adc r8, 0
        mov rax, qword ptr [-56+128+rsp]
        mul qword ptr [80+128+rsp]
        add rcx, rax
        adc r9, rdx
        adc r8, 0
        mov rax, qword ptr [-48+128+rsp]
        mul qword ptr [72+128+rsp]
        add rcx, rax
        adc r9, rdx
        adc r8, 0
        mov rax, qword ptr [-40+128+rsp]
        mul qword ptr [64+128+rsp]
        add rcx, rax
        adc r9, rdx
        adc r8, 0
        mov rax, qword ptr [-32+128+rsp]
        mul qword ptr [56+128+rsp]
        add rcx, rax
        adc r9, rdx
        adc r8, 0
        mov rax, qword ptr [-24+128+rsp]
        mul qword ptr [48+128+rsp]
        add rcx, rax
        adc r9, rdx
        adc r8, 0
        mov rax, qword ptr [-16+128+rsp]
        mul qword ptr [40+128+rsp]
        add rcx, rax
        adc r9, rdx
        adc r8, 0
        mov rax, qword ptr [-8+128+rsp]
        mul qword ptr [32+128+rsp]
        add rcx, rax
        adc r9, rdx
        adc r8, 0
        mov rbp, r9
        mov r12, r8
        mov rax, qword ptr [128+rsp]
        mul qword ptr [24+128+rsp]
        add rcx, rax
        adc rbp, rdx
        adc r12, 0
        mov qword ptr [136+r11], rcx
        mov r9, r12
        mov r8, rbp
        mov rcx, r10
        mov rax, qword ptr [-96+128+rsp]
        mul qword ptr [128+128+rsp]
        add r8, rax
        adc r9, rdx
        adc rcx, 0
        mov rax, qword ptr [-88+128+rsp]
        mul qword ptr [120+128+rsp]
        add r8, rax
        adc r9, rdx
        adc rcx, 0
        mov rax, qword ptr [-80+128+rsp]
        mul qword ptr [112+128+rsp]
        add r8, rax
        adc r9, rdx
        adc rcx, 0
        mov rax, qword ptr [-72+128+rsp]
        mul qword ptr [104+128+rsp]
        add r8, rax
        adc r9, rdx
        adc rcx, 0
        mov rax, qword ptr [-64+128+rsp]
        mul qword ptr [96+128+rsp]
        add r8, rax
        adc r9, rdx
        adc rcx, 0
        mov rax, qword ptr [-56+128+rsp]
        mul qword ptr [88+128+rsp]
        add r8, rax
        adc r9, rdx
        adc rcx, 0
        mov rax, qword ptr [-48+128+rsp]
        mul qword ptr [80+128+rsp]
        add r8, rax
        adc r9, rdx
        adc rcx, 0
        mov rax, qword ptr [-40+128+rsp]
        mul qword ptr [72+128+rsp]
        add r8, rax
        adc r9, rdx
        adc rcx, 0
        mov rax, qword ptr [-32+128+rsp]
        mul qword ptr [64+128+rsp]
        add r8, rax
        adc r9, rdx
        adc rcx, 0
        mov rax, qword ptr [-24+128+rsp]
        mul qword ptr [56+128+rsp]
        add r8, rax
        adc r9, rdx
        adc rcx, 0
        mov rax, qword ptr [-16+128+rsp]
        mul qword ptr [48+128+rsp]
        add r8, rax
        adc r9, rdx
        adc rcx, 0
        mov rax, qword ptr [-8+128+rsp]
        mul qword ptr [40+128+rsp]
        add r8, rax
        adc r9, rdx
        adc rcx, 0
        mov rbp, r9
        mov r12, rcx
        mov rax, qword ptr [128+rsp]
        mul qword ptr [32+128+rsp]
        add r8, rax
        adc rbp, rdx
        adc r12, 0
        mov qword ptr [144+r11], r8
        mov r9, r12
        mov rcx, rbp
        mov r8, r10
        mov rax, qword ptr [-88+128+rsp]
        mul qword ptr [128+128+rsp]
        add rcx, rax
        adc r9, rdx
        adc r8, 0
        mov rax, qword ptr [-80+128+rsp]
        mul qword ptr [120+128+rsp]
        add rcx, rax
        adc r9, rdx
        adc r8, 0
        mov rax, qword ptr [-72+128+rsp]
        mul qword ptr [112+128+rsp]
        add rcx, rax
        adc r9, rdx
        adc r8, 0
        mov rax, qword ptr [-64+128+rsp]
        mul qword ptr [104+128+rsp]
        add rcx, rax
        adc r9, rdx
        adc r8, 0
        mov rax, qword ptr [-56+128+rsp]
        mul qword ptr [96+128+rsp]
        add rcx, rax
        adc r9, rdx
        adc r8, 0
        mov rax, qword ptr [-48+128+rsp]
        mul qword ptr [88+128+rsp]
        add rcx, rax
        adc r9, rdx
        adc r8, 0
        mov rax, qword ptr [-40+128+rsp]
        mul qword ptr [80+128+rsp]
        add rcx, rax
        adc r9, rdx
        adc r8, 0
        mov rax, qword ptr [-32+128+rsp]
        mul qword ptr [72+128+rsp]
        add rcx, rax
        adc r9, rdx
        adc r8, 0
        mov rax, qword ptr [-24+128+rsp]
        mul qword ptr [64+128+rsp]
        add rcx, rax
        adc r9, rdx
        adc r8, 0
        mov rax, qword ptr [-16+128+rsp]
        mul qword ptr [56+128+rsp]
        add rcx, rax
        adc r9, rdx
        adc r8, 0
        mov rax, qword ptr [-8+128+rsp]
        mul qword ptr [48+128+rsp]
        add rcx, rax
        adc r9, rdx
        adc r8, 0
        mov rbp, r9
        mov r12, r8
        mov rax, qword ptr [128+rsp]
        mul qword ptr [40+128+rsp]
        add rcx, rax
        adc rbp, rdx
        adc r12, 0
        mov qword ptr [152+r11], rcx
        mov r9, r12
        mov r8, rbp
        mov rcx, r10
        mov rax, qword ptr [-80+128+rsp]
        mul qword ptr [128+128+rsp]
        add r8, rax
        adc r9, rdx
        adc rcx, 0
        mov rax, qword ptr [-72+128+rsp]
        mul qword ptr [120+128+rsp]
        add r8, rax
        adc r9, rdx
        adc rcx, 0
        mov rax, qword ptr [-64+128+rsp]
        mul qword ptr [112+128+rsp]
        add r8, rax
        adc r9, rdx
        adc rcx, 0
        mov rax, qword ptr [-56+128+rsp]
        mul qword ptr [104+128+rsp]
        add r8, rax
        adc r9, rdx
        adc rcx, 0
        mov rax, qword ptr [-48+128+rsp]
        mul qword ptr [96+128+rsp]
        add r8, rax
        adc r9, rdx
        adc rcx, 0
        mov rax, qword ptr [-40+128+rsp]
        mul qword ptr [88+128+rsp]
        add r8, rax
        adc r9, rdx
        adc rcx, 0
        mov rax, qword ptr [-32+128+rsp]
        mul qword ptr [80+128+rsp]
        add r8, rax
        adc r9, rdx
        adc rcx, 0
        mov rax, qword ptr [-24+128+rsp]
        mul qword ptr [72+128+rsp]
        add r8, rax
        adc r9, rdx
        adc rcx, 0
        mov rax, qword ptr [-16+128+rsp]
        mul qword ptr [64+128+rsp]
        add r8, rax
        adc r9, rdx
        adc rcx, 0
        mov rax, qword ptr [-8+128+rsp]
        mul qword ptr [56+128+rsp]
        add r8, rax
        adc r9, rdx
        adc rcx, 0
        mov rbp, r9
        mov r12, rcx
        mov rax, qword ptr [128+rsp]
        mul qword ptr [48+128+rsp]
        add r8, rax
        adc rbp, rdx
        adc r12, 0
        mov qword ptr [160+r11], r8
        mov r9, r12
        mov rcx, rbp
        mov r8, r10
        mov rax, qword ptr [-72+128+rsp]
        mul qword ptr [128+128+rsp]
        add rcx, rax
        adc r9, rdx
        adc r8, 0
        mov rax, qword ptr [-64+128+rsp]
        mul qword ptr [120+128+rsp]
        add rcx, rax
        adc r9, rdx
        adc r8, 0
        mov rax, qword ptr [-56+128+rsp]
        mul qword ptr [112+128+rsp]
        add rcx, rax
        adc r9, rdx
        adc r8, 0
        mov rax, qword ptr [-48+128+rsp]
        mul qword ptr [104+128+rsp]
        add rcx, rax
        adc r9, rdx
        adc r8, 0
        mov rax, qword ptr [-40+128+rsp]
        mul qword ptr [96+128+rsp]
        add rcx, rax
        adc r9, rdx
        adc r8, 0
        mov rax, qword ptr [-32+128+rsp]
        mul qword ptr [88+128+rsp]
        add rcx, rax
        adc r9, rdx
        adc r8, 0
        mov rax, qword ptr [-24+128+rsp]
        mul qword ptr [80+128+rsp]
        add rcx, rax
        adc r9, rdx
        adc r8, 0
        mov rax, qword ptr [-16+128+rsp]
        mul qword ptr [72+128+rsp]
        add rcx, rax
        adc r9, rdx
        adc r8, 0
        mov rax, qword ptr [-8+128+rsp]
        mul qword ptr [64+128+rsp]
        add rcx, rax
        adc r9, rdx
        adc r8, 0
        mov rbp, r9
        mov r12, r8
        mov rax, qword ptr [128+rsp]
        mul qword ptr [56+128+rsp]
        add rcx, rax
        adc rbp, rdx
        adc r12, 0
        mov qword ptr [168+r11], rcx
        mov r9, r12
        mov r8, rbp
        mov rcx, r10
        mov rax, qword ptr [-64+128+rsp]
        mul qword ptr [128+128+rsp]
        add r8, rax
        adc r9, rdx
        adc rcx, 0
        mov rax, qword ptr [-56+128+rsp]
        mul qword ptr [120+128+rsp]
        add r8, rax
        adc r9, rdx
        adc rcx, 0
        mov rax, qword ptr [-48+128+rsp]
        mul qword ptr [112+128+rsp]
        add r8, rax
        adc r9, rdx
        adc rcx, 0
        mov rax, qword ptr [-40+128+rsp]
        mul qword ptr [104+128+rsp]
        add r8, rax
        adc r9, rdx
        adc rcx, 0
        mov rax, qword ptr [-32+128+rsp]
        mul qword ptr [96+128+rsp]
        add r8, rax
        adc r9, rdx
        adc rcx, 0
        mov rax, qword ptr [-24+128+rsp]
        mul qword ptr [88+128+rsp]
        add r8, rax
        adc r9, rdx
        adc rcx, 0
        mov rax, qword ptr [-16+128+rsp]
        mul qword ptr [80+128+rsp]
        add r8, rax
        adc r9, rdx
        adc rcx, 0
        mov rax, qword ptr [-8+128+rsp]
        mul qword ptr [72+128+rsp]
        add r8, rax
        adc r9, rdx
        adc rcx, 0
        mov rbp, r9
        mov r12, rcx
        mov rax, qword ptr [128+rsp]
        mul qword ptr [64+128+rsp]
        add r8, rax
        adc rbp, rdx
        adc r12, 0
        mov qword ptr [176+r11], r8
        mov r9, r12
        mov rcx, rbp
        mov r8, r10
        mov rax, qword ptr [-56+128+rsp]
        mul qword ptr [128+128+rsp]
        add rcx, rax
        adc r9, rdx
        adc r8, 0
        mov rax, qword ptr [-48+128+rsp]
        mul qword ptr [120+128+rsp]
        add rcx, rax
        adc r9, rdx
        adc r8, 0
        mov rax, qword ptr [-40+128+rsp]
        mul qword ptr [112+128+rsp]
        add rcx, rax
        adc r9, rdx
        adc r8, 0
        mov rax, qword ptr [-32+128+rsp]
        mul qword ptr [104+128+rsp]
        add rcx, rax
        adc r9, rdx
        adc r8, 0
        mov rax, qword ptr [-24+128+rsp]
        mul qword ptr [96+128+rsp]
        add rcx, rax
        adc r9, rdx
        adc r8, 0
        mov rax, qword ptr [-16+128+rsp]
        mul qword ptr [88+128+rsp]
        add rcx, rax
        adc r9, rdx
        adc r8, 0
        mov rax, qword ptr [-8+128+rsp]
        mul qword ptr [80+128+rsp]
        add rcx, rax
        adc r9, rdx
        adc r8, 0
        mov rbp, r9
        mov r12, r8
        mov rax, qword ptr [128+rsp]
        mul qword ptr [72+128+rsp]
        add rcx, rax
        adc rbp, rdx
        adc r12, 0
        mov qword ptr [184+r11], rcx
        mov r9, r12
        mov r8, rbp
        mov rcx, r10
        mov rax, qword ptr [-48+128+rsp]
        mul qword ptr [128+128+rsp]
        add r8, rax
        adc r9, rdx
        adc rcx, 0
        mov rax, qword ptr [-40+128+rsp]
        mul qword ptr [120+128+rsp]
        add r8, rax
        adc r9, rdx
        adc rcx, 0
        mov rax, qword ptr [-32+128+rsp]
        mul qword ptr [112+128+rsp]
        add r8, rax
        adc r9, rdx
        adc rcx, 0
        mov rax, qword ptr [-24+128+rsp]
        mul qword ptr [104+128+rsp]
        add r8, rax
        adc r9, rdx
        adc rcx, 0
        mov rax, qword ptr [-16+128+rsp]
        mul qword ptr [96+128+rsp]
        add r8, rax
        adc r9, rdx
        adc rcx, 0
        mov rax, qword ptr [-8+128+rsp]
        mul qword ptr [88+128+rsp]
        add r8, rax
        adc r9, rdx
        adc rcx, 0
        mov rbp, r9
        mov r12, rcx
        mov rax, qword ptr [128+rsp]
        mul qword ptr [80+128+rsp]
        add r8, rax
        adc rbp, rdx
        adc r12, 0
        mov qword ptr [192+r11], r8
        mov r9, r12
        mov rcx, rbp
        mov r8, r10
        mov rax, qword ptr [-40+128+rsp]
        mul qword ptr [128+128+rsp]
        add rcx, rax
        adc r9, rdx
        adc r8, 0
        mov rax, qword ptr [-32+128+rsp]
        mul qword ptr [120+128+rsp]
        add rcx, rax
        adc r9, rdx
        adc r8, 0
        mov rax, qword ptr [-24+128+rsp]
        mul qword ptr [112+128+rsp]
        add rcx, rax
        adc r9, rdx
        adc r8, 0
        mov rax, qword ptr [-16+128+rsp]
        mul qword ptr [104+128+rsp]
        add rcx, rax
        adc r9, rdx
        adc r8, 0
        mov rax, qword ptr [-8+128+rsp]
        mul qword ptr [96+128+rsp]
        add rcx, rax
        adc r9, rdx
        adc r8, 0
        mov rbp, r9
        mov r12, r8
        mov rax, qword ptr [128+rsp]
        mul qword ptr [88+128+rsp]
        add rcx, rax
        adc rbp, rdx
        adc r12, 0
        mov qword ptr [200+r11], rcx
        mov r9, r12
        mov r8, rbp
        mov rcx, r10
        mov rax, qword ptr [-32+128+rsp]
        mul qword ptr [128+128+rsp]
        add r8, rax
        adc r9, rdx
        adc rcx, 0
        mov rax, qword ptr [-24+128+rsp]
        mul qword ptr [120+128+rsp]
        add r8, rax
        adc r9, rdx
        adc rcx, 0
        mov rax, qword ptr [-16+128+rsp]
        mul qword ptr [112+128+rsp]
        add r8, rax
        adc r9, rdx
        adc rcx, 0
        mov rax, qword ptr [-8+128+rsp]
        mul qword ptr [104+128+rsp]
        add r8, rax
        adc r9, rdx
        adc rcx, 0
        mov rbp, r9
        mov r12, rcx
        mov rax, qword ptr [128+rsp]
        mul qword ptr [96+128+rsp]
        add r8, rax
        adc rbp, rdx
        adc r12, 0
        mov qword ptr [208+r11], r8
        mov r9, r12
        mov rcx, rbp
        mov r8, r10
        mov rax, qword ptr [-24+128+rsp]
        mul qword ptr [128+128+rsp]
        add rcx, rax
        adc r9, rdx
        adc r8, 0
        mov rax, qword ptr [-16+128+rsp]
        mul qword ptr [120+128+rsp]
        add rcx, rax
        adc r9, rdx
        adc r8, 0
        mov rax, qword ptr [-8+128+rsp]
        mul qword ptr [112+128+rsp]
        add rcx, rax
        adc r9, rdx
        adc r8, 0
        mov rbp, r9
        mov r12, r8
        mov rax, qword ptr [128+rsp]
        mul qword ptr [104+128+rsp]
        add rcx, rax
        adc rbp, rdx
        adc r12, 0
        mov qword ptr [216+r11], rcx
        mov r9, r12
        mov r8, rbp
        mov rcx, r10
        mov rax, qword ptr [-16+128+rsp]
        mul qword ptr [128+128+rsp]
        add r8, rax
        adc r9, rdx
        adc rcx, 0
        mov rax, qword ptr [-8+128+rsp]
        mul qword ptr [120+128+rsp]
        add r8, rax
        adc r9, rdx
        adc rcx, 0
        mov rbp, r9
        mov r12, rcx
        mov rax, qword ptr [128+rsp]
        mul qword ptr [112+128+rsp]
        add r8, rax
        adc rbp, rdx
        adc r12, 0
        mov qword ptr [224+r11], r8
        mov r9, r12
        mov rcx, rbp
        mov r8, r10
        mov rax, qword ptr [-8+128+rsp]
        mul qword ptr [128+128+rsp]
        add rcx, rax
        adc r9, rdx
        adc r8, 0
        mov r12, r8
        mov rbp, r9
        mov rax, qword ptr [128+rsp]
        mul qword ptr [120+128+rsp]
        add rcx, rax
        adc rbp, rdx
        adc r12, 0
        mov qword ptr [232+r11], rcx
        mov r8, rbp
        mov rcx, r12
        mov rax, qword ptr [128+rsp]
        mul qword ptr [128+128+rsp]
        add r8, rax
        adc rcx, rdx
        adc r10, 0
        mov qword ptr [240+r11], r8
        mov esidword ptr [rsi]
        xor esidword ptr [rdi]
        test rcx, rcx
        mov qword ptr [248+r11], rcx
        mov dword ptr [8+rbx], 32
        jne L76
        ALIGN 16
L84:
        mov edxdword ptr [8+rbx]
        lea edidword ptr [-1+rdx]
        test ediedi
        mov dword ptr [8+rbx], edi
        je L76
        lea eaxdword ptr [-2+rdx]
        cmp qword ptr [r11+rax*8], 0
        je L84
L76:
        mov edxdword ptr [8+rbx]
        xor r11d, r11d
        test edxedx
        cmovne r11d, esi
        mov dword ptr [rbx], r11d
        add rsp, 136+128
        pop rbx
        pop rbp
        pop r12

        pop rsi
        pop rdi

        ret

s_mp_mul_comba_16 ENDP

; void s_mp_mul_comba_32(const mp_int *A, const mp_int *B, mp_int *C)


        ALIGN 16
s_mp_mul_comba_32 PROC ; a "FRAME" function

        push rdi
        push rsi

        mov rdi, rcx
        mov rsi, rdx
        mov rdx, r8

        push rbp
        mov rbp, rsp
        push r13
        mov r13, rdx
;        mov edx, 256
        mov r8d, 256
        push r12
        mov r12, rsi
        push rbx
        mov rbx, rdi
        sub rsp, 520+32   ; +32 for "home" storage
;        mov rsi, qword ptr [16+rdi]
;        lea rdi, qword ptr [-544+rbp]
        mov rdx, qword ptr [16+rdi]
        lea rcx, qword ptr [-544+rbp]
        call memcpy
;        mov rsi, qword ptr [16+r12]
;        lea rdi, qword ptr [-288+rbp]
;        mov edx, 256
        mov rdx, qword ptr [16+r12]
        lea rcx, qword ptr [-288+rbp]
        mov r8d, 256
        call memcpy
        mov r9, qword ptr [16+r13]
        xor r8d, r8d
        mov rsi, r8
        mov rdi, r8
        mov r10, r8
        mov rax, qword ptr [-544+rbp]
        mul qword ptr [-288+rbp]
        add rsi, rax
        adc rdi, rdx
        adc r10, 0
        mov qword ptr [r9], rsi
        mov rsi, r10
        mov r10, r8
        mov rax, qword ptr [-544+rbp]
        mul qword ptr [-280+rbp]
        add rdi, rax
        adc rsi, rdx
        adc r10, 0
        mov r11, r10
        mov rax, qword ptr [-536+rbp]
        mul qword ptr [-288+rbp]
        add rdi, rax
        adc rsi, rdx
        adc r11, 0
        mov qword ptr [8+r9], rdi
        mov rdi, r11
        mov r11, r8
        mov rax, qword ptr [-544+rbp]
        mul qword ptr [-272+rbp]
        add rsi, rax
        adc rdi, rdx
        adc r11, 0
        mov rcx, r11
        mov rax, qword ptr [-536+rbp]
        mul qword ptr [-280+rbp]
        add rsi, rax
        adc rdi, rdx
        adc rcx, 0
        mov r10, rdi
        mov r11, rcx
        mov rax, qword ptr [-528+rbp]
        mul qword ptr [-288+rbp]
        add rsi, rax
        adc r10, rdx
        adc r11, 0
        mov qword ptr [16+r9], rsi
        mov rdi, r11
        mov rcx, r10
        mov rsi, r8
        mov rax, qword ptr [-544+rbp]
        mul qword ptr [-264+rbp]
        add rcx, rax
        adc rdi, rdx
        adc rsi, 0
        mov rax, qword ptr [-536+rbp]
        mul qword ptr [-272+rbp]
        add rcx, rax
        adc rdi, rdx
        adc rsi, 0
        mov rax, qword ptr [-528+rbp]
        mul qword ptr [-280+rbp]
        add rcx, rax
        adc rdi, rdx
        adc rsi, 0
        mov r10, rdi
        mov r11, rsi
        mov rax, qword ptr [-520+rbp]
        mul qword ptr [-288+rbp]
        add rcx, rax
        adc r10, rdx
        adc r11, 0
        mov qword ptr [24+r9], rcx
        mov rdi, r11
        mov rsi, r10
        mov rcx, r8
        mov rax, qword ptr [-544+rbp]
        mul qword ptr [-256+rbp]
        add rsi, rax
        adc rdi, rdx
        adc rcx, 0
        mov rax, qword ptr [-536+rbp]
        mul qword ptr [-264+rbp]
        add rsi, rax
        adc rdi, rdx
        adc rcx, 0
        mov rax, qword ptr [-528+rbp]
        mul qword ptr [-272+rbp]
        add rsi, rax
        adc rdi, rdx
        adc rcx, 0
        mov rax, qword ptr [-520+rbp]
        mul qword ptr [-280+rbp]
        add rsi, rax
        adc rdi, rdx
        adc rcx, 0
        mov r10, rdi
        mov r11, rcx
        mov rax, qword ptr [-512+rbp]
        mul qword ptr [-288+rbp]
        add rsi, rax
        adc r10, rdx
        adc r11, 0
        mov qword ptr [32+r9], rsi
        mov rdi, r11
        mov rcx, r10
        mov rsi, r8
        mov rax, qword ptr [-544+rbp]
        mul qword ptr [-248+rbp]
        add rcx, rax
        adc rdi, rdx
        adc rsi, 0
        mov rax, qword ptr [-536+rbp]
        mul qword ptr [-256+rbp]
        add rcx, rax
        adc rdi, rdx
        adc rsi, 0
        mov rax, qword ptr [-528+rbp]
        mul qword ptr [-264+rbp]
        add rcx, rax
        adc rdi, rdx
        adc rsi, 0
        mov rax, qword ptr [-520+rbp]
        mul qword ptr [-272+rbp]
        add rcx, rax
        adc rdi, rdx
        adc rsi, 0
        mov rax, qword ptr [-512+rbp]
        mul qword ptr [-280+rbp]
        add rcx, rax
        adc rdi, rdx
        adc rsi, 0
        mov r10, rdi
        mov r11, rsi
        mov rax, qword ptr [-504+rbp]
        mul qword ptr [-288+rbp]
        add rcx, rax
        adc r10, rdx
        adc r11, 0
        mov qword ptr [40+r9], rcx
        mov rdi, r11
        mov rsi, r10
        mov rcx, r8
        mov rax, qword ptr [-544+rbp]
        mul qword ptr [-240+rbp]
        add rsi, rax
        adc rdi, rdx
        adc rcx, 0
        mov rax, qword ptr [-536+rbp]
--> --------------------

--> maximum size reached

--> --------------------

Messung V0.5
C=96 H=96 G=95

¤ Dauer der Verarbeitung: 0.34 Sekunden  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.