-rw-r--r-- 200468 lib25519-20230630/crypto_nP/montgomery25519/amd64-51/ladderstep.S raw
#include "crypto_asm_hidden.h"
// linker define ladderstep
// linker use REDMASK51
// linker use 2P0
// linker use 2P1234
// linker use 121666_213
# qhasm: int64 workp
# qhasm: input workp
# qhasm: int64 caller1
# qhasm: int64 caller2
# qhasm: int64 caller3
# qhasm: int64 caller4
# qhasm: int64 caller5
# qhasm: int64 caller6
# qhasm: int64 caller7
# qhasm: caller caller1
# qhasm: caller caller2
# qhasm: caller caller3
# qhasm: caller caller4
# qhasm: caller caller5
# qhasm: caller caller6
# qhasm: caller caller7
# qhasm: stack64 caller1_stack
# qhasm: stack64 caller2_stack
# qhasm: stack64 caller3_stack
# qhasm: stack64 caller4_stack
# qhasm: stack64 caller5_stack
# qhasm: stack64 caller6_stack
# qhasm: stack64 caller7_stack
# qhasm: int64 t10
# qhasm: int64 t11
# qhasm: int64 t12
# qhasm: int64 t13
# qhasm: int64 t14
# qhasm: stack64 t10_stack
# qhasm: stack64 t11_stack
# qhasm: stack64 t12_stack
# qhasm: stack64 t13_stack
# qhasm: stack64 t14_stack
# qhasm: int64 t20
# qhasm: int64 t21
# qhasm: int64 t22
# qhasm: int64 t23
# qhasm: int64 t24
# qhasm: stack64 t20_stack
# qhasm: stack64 t21_stack
# qhasm: stack64 t22_stack
# qhasm: stack64 t23_stack
# qhasm: stack64 t24_stack
# qhasm: int64 t30
# qhasm: int64 t31
# qhasm: int64 t32
# qhasm: int64 t33
# qhasm: int64 t34
# qhasm: stack64 t30_stack
# qhasm: stack64 t31_stack
# qhasm: stack64 t32_stack
# qhasm: stack64 t33_stack
# qhasm: stack64 t34_stack
# qhasm: int64 t40
# qhasm: int64 t41
# qhasm: int64 t42
# qhasm: int64 t43
# qhasm: int64 t44
# qhasm: stack64 t40_stack
# qhasm: stack64 t41_stack
# qhasm: stack64 t42_stack
# qhasm: stack64 t43_stack
# qhasm: stack64 t44_stack
# qhasm: int64 t50
# qhasm: int64 t51
# qhasm: int64 t52
# qhasm: int64 t53
# qhasm: int64 t54
# qhasm: stack64 t50_stack
# qhasm: stack64 t51_stack
# qhasm: stack64 t52_stack
# qhasm: stack64 t53_stack
# qhasm: stack64 t54_stack
# qhasm: int64 t60
# qhasm: int64 t61
# qhasm: int64 t62
# qhasm: int64 t63
# qhasm: int64 t64
# qhasm: stack64 t60_stack
# qhasm: stack64 t61_stack
# qhasm: stack64 t62_stack
# qhasm: stack64 t63_stack
# qhasm: stack64 t64_stack
# qhasm: int64 t70
# qhasm: int64 t71
# qhasm: int64 t72
# qhasm: int64 t73
# qhasm: int64 t74
# qhasm: stack64 t70_stack
# qhasm: stack64 t71_stack
# qhasm: stack64 t72_stack
# qhasm: stack64 t73_stack
# qhasm: stack64 t74_stack
# qhasm: int64 t80
# qhasm: int64 t81
# qhasm: int64 t82
# qhasm: int64 t83
# qhasm: int64 t84
# qhasm: stack64 t80_stack
# qhasm: stack64 t81_stack
# qhasm: stack64 t82_stack
# qhasm: stack64 t83_stack
# qhasm: stack64 t84_stack
# qhasm: int64 t90
# qhasm: int64 t91
# qhasm: int64 t92
# qhasm: int64 t93
# qhasm: int64 t94
# qhasm: stack64 t90_stack
# qhasm: stack64 t91_stack
# qhasm: stack64 t92_stack
# qhasm: stack64 t93_stack
# qhasm: stack64 t94_stack
# qhasm: int64 xp0
# qhasm: int64 xp1
# qhasm: int64 xp2
# qhasm: int64 xp3
# qhasm: int64 xp4
# qhasm: int64 zp0
# qhasm: int64 zp1
# qhasm: int64 zp2
# qhasm: int64 zp3
# qhasm: int64 zp4
# qhasm: int64 xq0
# qhasm: int64 xq1
# qhasm: int64 xq2
# qhasm: int64 xq3
# qhasm: int64 xq4
# qhasm: int64 zq0
# qhasm: int64 zq1
# qhasm: int64 zq2
# qhasm: int64 zq3
# qhasm: int64 zq4
# qhasm: int64 mulr01
# qhasm: int64 mulr11
# qhasm: int64 mulr21
# qhasm: int64 mulr31
# qhasm: int64 mulr41
# qhasm: int64 mulrax
# qhasm: int64 mulrdx
# qhasm: int64 mult
# qhasm: int64 mulredmask
# qhasm: stack64 mulx219_stack
# qhasm: stack64 mulx319_stack
# qhasm: stack64 mulx419_stack
# qhasm: int64 squarer01
# qhasm: int64 squarer11
# qhasm: int64 squarer21
# qhasm: int64 squarer31
# qhasm: int64 squarer41
# qhasm: int64 squarerax
# qhasm: int64 squarerdx
# qhasm: int64 squaret
# qhasm: int64 squareredmask
# qhasm: int64 mul121666rax
# qhasm: int64 mul121666rdx
# qhasm: enter CRYPTO_SHARED_NAMESPACE(ladderstep)
.text
.p2align 5
ASM_HIDDEN _CRYPTO_SHARED_NAMESPACE(ladderstep)
.globl _CRYPTO_SHARED_NAMESPACE(ladderstep)
ASM_HIDDEN CRYPTO_SHARED_NAMESPACE(ladderstep)
.globl CRYPTO_SHARED_NAMESPACE(ladderstep)
_CRYPTO_SHARED_NAMESPACE(ladderstep):
CRYPTO_SHARED_NAMESPACE(ladderstep):
mov %rsp,%r11
and $31,%r11
add $352,%r11
sub %r11,%rsp
# qhasm: caller1_stack = caller1
# asm 1: movq <caller1=int64#9,>caller1_stack=stack64#1
# asm 2: movq <caller1=%r11,>caller1_stack=0(%rsp)
movq %r11,0(%rsp)
# qhasm: caller2_stack = caller2
# asm 1: movq <caller2=int64#10,>caller2_stack=stack64#2
# asm 2: movq <caller2=%r12,>caller2_stack=8(%rsp)
movq %r12,8(%rsp)
# qhasm: caller3_stack = caller3
# asm 1: movq <caller3=int64#11,>caller3_stack=stack64#3
# asm 2: movq <caller3=%r13,>caller3_stack=16(%rsp)
movq %r13,16(%rsp)
# qhasm: caller4_stack = caller4
# asm 1: movq <caller4=int64#12,>caller4_stack=stack64#4
# asm 2: movq <caller4=%r14,>caller4_stack=24(%rsp)
movq %r14,24(%rsp)
# qhasm: caller5_stack = caller5
# asm 1: movq <caller5=int64#13,>caller5_stack=stack64#5
# asm 2: movq <caller5=%r15,>caller5_stack=32(%rsp)
movq %r15,32(%rsp)
# qhasm: caller6_stack = caller6
# asm 1: movq <caller6=int64#14,>caller6_stack=stack64#6
# asm 2: movq <caller6=%rbx,>caller6_stack=40(%rsp)
movq %rbx,40(%rsp)
# qhasm: caller7_stack = caller7
# asm 1: movq <caller7=int64#15,>caller7_stack=stack64#7
# asm 2: movq <caller7=%rbp,>caller7_stack=48(%rsp)
movq %rbp,48(%rsp)
# qhasm: t10 = *(uint64 *)(workp + 40)
# asm 1: movq 40(<workp=int64#1),>t10=int64#2
# asm 2: movq 40(<workp=%rdi),>t10=%rsi
movq 40(%rdi),%rsi
# qhasm: t11 = *(uint64 *)(workp + 48)
# asm 1: movq 48(<workp=int64#1),>t11=int64#3
# asm 2: movq 48(<workp=%rdi),>t11=%rdx
movq 48(%rdi),%rdx
# qhasm: t12 = *(uint64 *)(workp + 56)
# asm 1: movq 56(<workp=int64#1),>t12=int64#4
# asm 2: movq 56(<workp=%rdi),>t12=%rcx
movq 56(%rdi),%rcx
# qhasm: t13 = *(uint64 *)(workp + 64)
# asm 1: movq 64(<workp=int64#1),>t13=int64#5
# asm 2: movq 64(<workp=%rdi),>t13=%r8
movq 64(%rdi),%r8
# qhasm: t14 = *(uint64 *)(workp + 72)
# asm 1: movq 72(<workp=int64#1),>t14=int64#6
# asm 2: movq 72(<workp=%rdi),>t14=%r9
movq 72(%rdi),%r9
# qhasm: t20 = t10
# asm 1: mov <t10=int64#2,>t20=int64#7
# asm 2: mov <t10=%rsi,>t20=%rax
mov %rsi,%rax
# qhasm: t21 = t11
# asm 1: mov <t11=int64#3,>t21=int64#8
# asm 2: mov <t11=%rdx,>t21=%r10
mov %rdx,%r10
# qhasm: t22 = t12
# asm 1: mov <t12=int64#4,>t22=int64#9
# asm 2: mov <t12=%rcx,>t22=%r11
mov %rcx,%r11
# qhasm: t23 = t13
# asm 1: mov <t13=int64#5,>t23=int64#10
# asm 2: mov <t13=%r8,>t23=%r12
mov %r8,%r12
# qhasm: t24 = t14
# asm 1: mov <t14=int64#6,>t24=int64#11
# asm 2: mov <t14=%r9,>t24=%r13
mov %r9,%r13
# qhasm: t20 += *(uint64 *) &CRYPTO_SHARED_NAMESPACE(2P0)
# asm 1: add CRYPTO_SHARED_NAMESPACE(2P0),<t20=int64#7
# asm 2: add CRYPTO_SHARED_NAMESPACE(2P0),<t20=%rax
add CRYPTO_SHARED_NAMESPACE(2P0)(%rip),%rax
# qhasm: t21 += *(uint64 *) &CRYPTO_SHARED_NAMESPACE(2P1234)
# asm 1: add CRYPTO_SHARED_NAMESPACE(2P1234),<t21=int64#8
# asm 2: add CRYPTO_SHARED_NAMESPACE(2P1234),<t21=%r10
add CRYPTO_SHARED_NAMESPACE(2P1234)(%rip),%r10
# qhasm: t22 += *(uint64 *) &CRYPTO_SHARED_NAMESPACE(2P1234)
# asm 1: add CRYPTO_SHARED_NAMESPACE(2P1234),<t22=int64#9
# asm 2: add CRYPTO_SHARED_NAMESPACE(2P1234),<t22=%r11
add CRYPTO_SHARED_NAMESPACE(2P1234)(%rip),%r11
# qhasm: t23 += *(uint64 *) &CRYPTO_SHARED_NAMESPACE(2P1234)
# asm 1: add CRYPTO_SHARED_NAMESPACE(2P1234),<t23=int64#10
# asm 2: add CRYPTO_SHARED_NAMESPACE(2P1234),<t23=%r12
add CRYPTO_SHARED_NAMESPACE(2P1234)(%rip),%r12
# qhasm: t24 += *(uint64 *) &CRYPTO_SHARED_NAMESPACE(2P1234)
# asm 1: add CRYPTO_SHARED_NAMESPACE(2P1234),<t24=int64#11
# asm 2: add CRYPTO_SHARED_NAMESPACE(2P1234),<t24=%r13
add CRYPTO_SHARED_NAMESPACE(2P1234)(%rip),%r13
# qhasm: t10 += *(uint64 *)(workp + 80)
# asm 1: addq 80(<workp=int64#1),<t10=int64#2
# asm 2: addq 80(<workp=%rdi),<t10=%rsi
addq 80(%rdi),%rsi
# qhasm: t11 += *(uint64 *)(workp + 88)
# asm 1: addq 88(<workp=int64#1),<t11=int64#3
# asm 2: addq 88(<workp=%rdi),<t11=%rdx
addq 88(%rdi),%rdx
# qhasm: t12 += *(uint64 *)(workp + 96)
# asm 1: addq 96(<workp=int64#1),<t12=int64#4
# asm 2: addq 96(<workp=%rdi),<t12=%rcx
addq 96(%rdi),%rcx
# qhasm: t13 += *(uint64 *)(workp + 104)
# asm 1: addq 104(<workp=int64#1),<t13=int64#5
# asm 2: addq 104(<workp=%rdi),<t13=%r8
addq 104(%rdi),%r8
# qhasm: t14 += *(uint64 *)(workp + 112)
# asm 1: addq 112(<workp=int64#1),<t14=int64#6
# asm 2: addq 112(<workp=%rdi),<t14=%r9
addq 112(%rdi),%r9
# qhasm: t20 -= *(uint64 *)(workp + 80)
# asm 1: subq 80(<workp=int64#1),<t20=int64#7
# asm 2: subq 80(<workp=%rdi),<t20=%rax
subq 80(%rdi),%rax
# qhasm: t21 -= *(uint64 *)(workp + 88)
# asm 1: subq 88(<workp=int64#1),<t21=int64#8
# asm 2: subq 88(<workp=%rdi),<t21=%r10
subq 88(%rdi),%r10
# qhasm: t22 -= *(uint64 *)(workp + 96)
# asm 1: subq 96(<workp=int64#1),<t22=int64#9
# asm 2: subq 96(<workp=%rdi),<t22=%r11
subq 96(%rdi),%r11
# qhasm: t23 -= *(uint64 *)(workp + 104)
# asm 1: subq 104(<workp=int64#1),<t23=int64#10
# asm 2: subq 104(<workp=%rdi),<t23=%r12
subq 104(%rdi),%r12
# qhasm: t24 -= *(uint64 *)(workp + 112)
# asm 1: subq 112(<workp=int64#1),<t24=int64#11
# asm 2: subq 112(<workp=%rdi),<t24=%r13
subq 112(%rdi),%r13
# qhasm: t10_stack = t10
# asm 1: movq <t10=int64#2,>t10_stack=stack64#8
# asm 2: movq <t10=%rsi,>t10_stack=56(%rsp)
movq %rsi,56(%rsp)
# qhasm: t11_stack = t11
# asm 1: movq <t11=int64#3,>t11_stack=stack64#9
# asm 2: movq <t11=%rdx,>t11_stack=64(%rsp)
movq %rdx,64(%rsp)
# qhasm: t12_stack = t12
# asm 1: movq <t12=int64#4,>t12_stack=stack64#10
# asm 2: movq <t12=%rcx,>t12_stack=72(%rsp)
movq %rcx,72(%rsp)
# qhasm: t13_stack = t13
# asm 1: movq <t13=int64#5,>t13_stack=stack64#11
# asm 2: movq <t13=%r8,>t13_stack=80(%rsp)
movq %r8,80(%rsp)
# qhasm: t14_stack = t14
# asm 1: movq <t14=int64#6,>t14_stack=stack64#12
# asm 2: movq <t14=%r9,>t14_stack=88(%rsp)
movq %r9,88(%rsp)
# qhasm: t20_stack = t20
# asm 1: movq <t20=int64#7,>t20_stack=stack64#13
# asm 2: movq <t20=%rax,>t20_stack=96(%rsp)
movq %rax,96(%rsp)
# qhasm: t21_stack = t21
# asm 1: movq <t21=int64#8,>t21_stack=stack64#14
# asm 2: movq <t21=%r10,>t21_stack=104(%rsp)
movq %r10,104(%rsp)
# qhasm: t22_stack = t22
# asm 1: movq <t22=int64#9,>t22_stack=stack64#15
# asm 2: movq <t22=%r11,>t22_stack=112(%rsp)
movq %r11,112(%rsp)
# qhasm: t23_stack = t23
# asm 1: movq <t23=int64#10,>t23_stack=stack64#16
# asm 2: movq <t23=%r12,>t23_stack=120(%rsp)
movq %r12,120(%rsp)
# qhasm: t24_stack = t24
# asm 1: movq <t24=int64#11,>t24_stack=stack64#17
# asm 2: movq <t24=%r13,>t24_stack=128(%rsp)
movq %r13,128(%rsp)
# qhasm: squarerax = t20_stack
# asm 1: movq <t20_stack=stack64#13,>squarerax=int64#7
# asm 2: movq <t20_stack=96(%rsp),>squarerax=%rax
movq 96(%rsp),%rax
# qhasm: (uint128) squarerdx squarerax = squarerax * t20_stack
# asm 1: mulq <t20_stack=stack64#13
# asm 2: mulq <t20_stack=96(%rsp)
mulq 96(%rsp)
# qhasm: t70 = squarerax
# asm 1: mov <squarerax=int64#7,>t70=int64#2
# asm 2: mov <squarerax=%rax,>t70=%rsi
mov %rax,%rsi
# qhasm: squarer01 = squarerdx
# asm 1: mov <squarerdx=int64#3,>squarer01=int64#4
# asm 2: mov <squarerdx=%rdx,>squarer01=%rcx
mov %rdx,%rcx
# qhasm: squarerax = t20_stack
# asm 1: movq <t20_stack=stack64#13,>squarerax=int64#7
# asm 2: movq <t20_stack=96(%rsp),>squarerax=%rax
movq 96(%rsp),%rax
# qhasm: squarerax <<= 1
# asm 1: shl $1,<squarerax=int64#7
# asm 2: shl $1,<squarerax=%rax
shl $1,%rax
# qhasm: (uint128) squarerdx squarerax = squarerax * t21_stack
# asm 1: mulq <t21_stack=stack64#14
# asm 2: mulq <t21_stack=104(%rsp)
mulq 104(%rsp)
# qhasm: t71 = squarerax
# asm 1: mov <squarerax=int64#7,>t71=int64#5
# asm 2: mov <squarerax=%rax,>t71=%r8
mov %rax,%r8
# qhasm: squarer11 = squarerdx
# asm 1: mov <squarerdx=int64#3,>squarer11=int64#6
# asm 2: mov <squarerdx=%rdx,>squarer11=%r9
mov %rdx,%r9
# qhasm: squarerax = t20_stack
# asm 1: movq <t20_stack=stack64#13,>squarerax=int64#7
# asm 2: movq <t20_stack=96(%rsp),>squarerax=%rax
movq 96(%rsp),%rax
# qhasm: squarerax <<= 1
# asm 1: shl $1,<squarerax=int64#7
# asm 2: shl $1,<squarerax=%rax
shl $1,%rax
# qhasm: (uint128) squarerdx squarerax = squarerax * t22_stack
# asm 1: mulq <t22_stack=stack64#15
# asm 2: mulq <t22_stack=112(%rsp)
mulq 112(%rsp)
# qhasm: t72 = squarerax
# asm 1: mov <squarerax=int64#7,>t72=int64#8
# asm 2: mov <squarerax=%rax,>t72=%r10
mov %rax,%r10
# qhasm: squarer21 = squarerdx
# asm 1: mov <squarerdx=int64#3,>squarer21=int64#9
# asm 2: mov <squarerdx=%rdx,>squarer21=%r11
mov %rdx,%r11
# qhasm: squarerax = t20_stack
# asm 1: movq <t20_stack=stack64#13,>squarerax=int64#7
# asm 2: movq <t20_stack=96(%rsp),>squarerax=%rax
movq 96(%rsp),%rax
# qhasm: squarerax <<= 1
# asm 1: shl $1,<squarerax=int64#7
# asm 2: shl $1,<squarerax=%rax
shl $1,%rax
# qhasm: (uint128) squarerdx squarerax = squarerax * t23_stack
# asm 1: mulq <t23_stack=stack64#16
# asm 2: mulq <t23_stack=120(%rsp)
mulq 120(%rsp)
# qhasm: t73 = squarerax
# asm 1: mov <squarerax=int64#7,>t73=int64#10
# asm 2: mov <squarerax=%rax,>t73=%r12
mov %rax,%r12
# qhasm: squarer31 = squarerdx
# asm 1: mov <squarerdx=int64#3,>squarer31=int64#11
# asm 2: mov <squarerdx=%rdx,>squarer31=%r13
mov %rdx,%r13
# qhasm: squarerax = t20_stack
# asm 1: movq <t20_stack=stack64#13,>squarerax=int64#7
# asm 2: movq <t20_stack=96(%rsp),>squarerax=%rax
movq 96(%rsp),%rax
# qhasm: squarerax <<= 1
# asm 1: shl $1,<squarerax=int64#7
# asm 2: shl $1,<squarerax=%rax
shl $1,%rax
# qhasm: (uint128) squarerdx squarerax = squarerax * t24_stack
# asm 1: mulq <t24_stack=stack64#17
# asm 2: mulq <t24_stack=128(%rsp)
mulq 128(%rsp)
# qhasm: t74 = squarerax
# asm 1: mov <squarerax=int64#7,>t74=int64#12
# asm 2: mov <squarerax=%rax,>t74=%r14
mov %rax,%r14
# qhasm: squarer41 = squarerdx
# asm 1: mov <squarerdx=int64#3,>squarer41=int64#13
# asm 2: mov <squarerdx=%rdx,>squarer41=%r15
mov %rdx,%r15
# qhasm: squarerax = t21_stack
# asm 1: movq <t21_stack=stack64#14,>squarerax=int64#7
# asm 2: movq <t21_stack=104(%rsp),>squarerax=%rax
movq 104(%rsp),%rax
# qhasm: (uint128) squarerdx squarerax = squarerax * t21_stack
# asm 1: mulq <t21_stack=stack64#14
# asm 2: mulq <t21_stack=104(%rsp)
mulq 104(%rsp)
# qhasm: carry? t72 += squarerax
# asm 1: add <squarerax=int64#7,<t72=int64#8
# asm 2: add <squarerax=%rax,<t72=%r10
add %rax,%r10
# qhasm: squarer21 += squarerdx + carry
# asm 1: adc <squarerdx=int64#3,<squarer21=int64#9
# asm 2: adc <squarerdx=%rdx,<squarer21=%r11
adc %rdx,%r11
# qhasm: squarerax = t21_stack
# asm 1: movq <t21_stack=stack64#14,>squarerax=int64#7
# asm 2: movq <t21_stack=104(%rsp),>squarerax=%rax
movq 104(%rsp),%rax
# qhasm: squarerax <<= 1
# asm 1: shl $1,<squarerax=int64#7
# asm 2: shl $1,<squarerax=%rax
shl $1,%rax
# qhasm: (uint128) squarerdx squarerax = squarerax * t22_stack
# asm 1: mulq <t22_stack=stack64#15
# asm 2: mulq <t22_stack=112(%rsp)
mulq 112(%rsp)
# qhasm: carry? t73 += squarerax
# asm 1: add <squarerax=int64#7,<t73=int64#10
# asm 2: add <squarerax=%rax,<t73=%r12
add %rax,%r12
# qhasm: squarer31 += squarerdx + carry
# asm 1: adc <squarerdx=int64#3,<squarer31=int64#11
# asm 2: adc <squarerdx=%rdx,<squarer31=%r13
adc %rdx,%r13
# qhasm: squarerax = t21_stack
# asm 1: movq <t21_stack=stack64#14,>squarerax=int64#7
# asm 2: movq <t21_stack=104(%rsp),>squarerax=%rax
movq 104(%rsp),%rax
# qhasm: squarerax <<= 1
# asm 1: shl $1,<squarerax=int64#7
# asm 2: shl $1,<squarerax=%rax
shl $1,%rax
# qhasm: (uint128) squarerdx squarerax = squarerax * t23_stack
# asm 1: mulq <t23_stack=stack64#16
# asm 2: mulq <t23_stack=120(%rsp)
mulq 120(%rsp)
# qhasm: carry? t74 += squarerax
# asm 1: add <squarerax=int64#7,<t74=int64#12
# asm 2: add <squarerax=%rax,<t74=%r14
add %rax,%r14
# qhasm: squarer41 += squarerdx + carry
# asm 1: adc <squarerdx=int64#3,<squarer41=int64#13
# asm 2: adc <squarerdx=%rdx,<squarer41=%r15
adc %rdx,%r15
# qhasm: squarerax = t21_stack
# asm 1: movq <t21_stack=stack64#14,>squarerax=int64#3
# asm 2: movq <t21_stack=104(%rsp),>squarerax=%rdx
movq 104(%rsp),%rdx
# qhasm: squarerax *= 38
# asm 1: imulq $38,<squarerax=int64#3,>squarerax=int64#7
# asm 2: imulq $38,<squarerax=%rdx,>squarerax=%rax
imulq $38,%rdx,%rax
# qhasm: (uint128) squarerdx squarerax = squarerax * t24_stack
# asm 1: mulq <t24_stack=stack64#17
# asm 2: mulq <t24_stack=128(%rsp)
mulq 128(%rsp)
# qhasm: carry? t70 += squarerax
# asm 1: add <squarerax=int64#7,<t70=int64#2
# asm 2: add <squarerax=%rax,<t70=%rsi
add %rax,%rsi
# qhasm: squarer01 += squarerdx + carry
# asm 1: adc <squarerdx=int64#3,<squarer01=int64#4
# asm 2: adc <squarerdx=%rdx,<squarer01=%rcx
adc %rdx,%rcx
# qhasm: squarerax = t22_stack
# asm 1: movq <t22_stack=stack64#15,>squarerax=int64#7
# asm 2: movq <t22_stack=112(%rsp),>squarerax=%rax
movq 112(%rsp),%rax
# qhasm: (uint128) squarerdx squarerax = squarerax * t22_stack
# asm 1: mulq <t22_stack=stack64#15
# asm 2: mulq <t22_stack=112(%rsp)
mulq 112(%rsp)
# qhasm: carry? t74 += squarerax
# asm 1: add <squarerax=int64#7,<t74=int64#12
# asm 2: add <squarerax=%rax,<t74=%r14
add %rax,%r14
# qhasm: squarer41 += squarerdx + carry
# asm 1: adc <squarerdx=int64#3,<squarer41=int64#13
# asm 2: adc <squarerdx=%rdx,<squarer41=%r15
adc %rdx,%r15
# qhasm: squarerax = t22_stack
# asm 1: movq <t22_stack=stack64#15,>squarerax=int64#3
# asm 2: movq <t22_stack=112(%rsp),>squarerax=%rdx
movq 112(%rsp),%rdx
# qhasm: squarerax *= 38
# asm 1: imulq $38,<squarerax=int64#3,>squarerax=int64#7
# asm 2: imulq $38,<squarerax=%rdx,>squarerax=%rax
imulq $38,%rdx,%rax
# qhasm: (uint128) squarerdx squarerax = squarerax * t23_stack
# asm 1: mulq <t23_stack=stack64#16
# asm 2: mulq <t23_stack=120(%rsp)
mulq 120(%rsp)
# qhasm: carry? t70 += squarerax
# asm 1: add <squarerax=int64#7,<t70=int64#2
# asm 2: add <squarerax=%rax,<t70=%rsi
add %rax,%rsi
# qhasm: squarer01 += squarerdx + carry
# asm 1: adc <squarerdx=int64#3,<squarer01=int64#4
# asm 2: adc <squarerdx=%rdx,<squarer01=%rcx
adc %rdx,%rcx
# qhasm: squarerax = t22_stack
# asm 1: movq <t22_stack=stack64#15,>squarerax=int64#3
# asm 2: movq <t22_stack=112(%rsp),>squarerax=%rdx
movq 112(%rsp),%rdx
# qhasm: squarerax *= 38
# asm 1: imulq $38,<squarerax=int64#3,>squarerax=int64#7
# asm 2: imulq $38,<squarerax=%rdx,>squarerax=%rax
imulq $38,%rdx,%rax
# qhasm: (uint128) squarerdx squarerax = squarerax * t24_stack
# asm 1: mulq <t24_stack=stack64#17
# asm 2: mulq <t24_stack=128(%rsp)
mulq 128(%rsp)
# qhasm: carry? t71 += squarerax
# asm 1: add <squarerax=int64#7,<t71=int64#5
# asm 2: add <squarerax=%rax,<t71=%r8
add %rax,%r8
# qhasm: squarer11 += squarerdx + carry
# asm 1: adc <squarerdx=int64#3,<squarer11=int64#6
# asm 2: adc <squarerdx=%rdx,<squarer11=%r9
adc %rdx,%r9
# qhasm: squarerax = t23_stack
# asm 1: movq <t23_stack=stack64#16,>squarerax=int64#3
# asm 2: movq <t23_stack=120(%rsp),>squarerax=%rdx
movq 120(%rsp),%rdx
# qhasm: squarerax *= 19
# asm 1: imulq $19,<squarerax=int64#3,>squarerax=int64#7
# asm 2: imulq $19,<squarerax=%rdx,>squarerax=%rax
imulq $19,%rdx,%rax
# qhasm: (uint128) squarerdx squarerax = squarerax * t23_stack
# asm 1: mulq <t23_stack=stack64#16
# asm 2: mulq <t23_stack=120(%rsp)
mulq 120(%rsp)
# qhasm: carry? t71 += squarerax
# asm 1: add <squarerax=int64#7,<t71=int64#5
# asm 2: add <squarerax=%rax,<t71=%r8
add %rax,%r8
# qhasm: squarer11 += squarerdx + carry
# asm 1: adc <squarerdx=int64#3,<squarer11=int64#6
# asm 2: adc <squarerdx=%rdx,<squarer11=%r9
adc %rdx,%r9
# qhasm: squarerax = t23_stack
# asm 1: movq <t23_stack=stack64#16,>squarerax=int64#3
# asm 2: movq <t23_stack=120(%rsp),>squarerax=%rdx
movq 120(%rsp),%rdx
# qhasm: squarerax *= 38
# asm 1: imulq $38,<squarerax=int64#3,>squarerax=int64#7
# asm 2: imulq $38,<squarerax=%rdx,>squarerax=%rax
imulq $38,%rdx,%rax
# qhasm: (uint128) squarerdx squarerax = squarerax * t24_stack
# asm 1: mulq <t24_stack=stack64#17
# asm 2: mulq <t24_stack=128(%rsp)
mulq 128(%rsp)
# qhasm: carry? t72 += squarerax
# asm 1: add <squarerax=int64#7,<t72=int64#8
# asm 2: add <squarerax=%rax,<t72=%r10
add %rax,%r10
# qhasm: squarer21 += squarerdx + carry
# asm 1: adc <squarerdx=int64#3,<squarer21=int64#9
# asm 2: adc <squarerdx=%rdx,<squarer21=%r11
adc %rdx,%r11
# qhasm: squarerax = t24_stack
# asm 1: movq <t24_stack=stack64#17,>squarerax=int64#3
# asm 2: movq <t24_stack=128(%rsp),>squarerax=%rdx
movq 128(%rsp),%rdx
# qhasm: squarerax *= 19
# asm 1: imulq $19,<squarerax=int64#3,>squarerax=int64#7
# asm 2: imulq $19,<squarerax=%rdx,>squarerax=%rax
imulq $19,%rdx,%rax
# qhasm: (uint128) squarerdx squarerax = squarerax * t24_stack
# asm 1: mulq <t24_stack=stack64#17
# asm 2: mulq <t24_stack=128(%rsp)
mulq 128(%rsp)
# qhasm: carry? t73 += squarerax
# asm 1: add <squarerax=int64#7,<t73=int64#10
# asm 2: add <squarerax=%rax,<t73=%r12
add %rax,%r12
# qhasm: squarer31 += squarerdx + carry
# asm 1: adc <squarerdx=int64#3,<squarer31=int64#11
# asm 2: adc <squarerdx=%rdx,<squarer31=%r13
adc %rdx,%r13
# qhasm: squareredmask = *(uint64 *) &CRYPTO_SHARED_NAMESPACE(REDMASK51)
# asm 1: movq CRYPTO_SHARED_NAMESPACE(REDMASK51),>squareredmask=int64#3
# asm 2: movq CRYPTO_SHARED_NAMESPACE(REDMASK51),>squareredmask=%rdx
movq CRYPTO_SHARED_NAMESPACE(REDMASK51)(%rip),%rdx
# qhasm: squarer01 = (squarer01.t70) << 13
# asm 1: shld $13,<t70=int64#2,<squarer01=int64#4
# asm 2: shld $13,<t70=%rsi,<squarer01=%rcx
shld $13,%rsi,%rcx
# qhasm: t70 &= squareredmask
# asm 1: and <squareredmask=int64#3,<t70=int64#2
# asm 2: and <squareredmask=%rdx,<t70=%rsi
and %rdx,%rsi
# qhasm: squarer11 = (squarer11.t71) << 13
# asm 1: shld $13,<t71=int64#5,<squarer11=int64#6
# asm 2: shld $13,<t71=%r8,<squarer11=%r9
shld $13,%r8,%r9
# qhasm: t71 &= squareredmask
# asm 1: and <squareredmask=int64#3,<t71=int64#5
# asm 2: and <squareredmask=%rdx,<t71=%r8
and %rdx,%r8
# qhasm: t71 += squarer01
# asm 1: add <squarer01=int64#4,<t71=int64#5
# asm 2: add <squarer01=%rcx,<t71=%r8
add %rcx,%r8
# qhasm: squarer21 = (squarer21.t72) << 13
# asm 1: shld $13,<t72=int64#8,<squarer21=int64#9
# asm 2: shld $13,<t72=%r10,<squarer21=%r11
shld $13,%r10,%r11
# qhasm: t72 &= squareredmask
# asm 1: and <squareredmask=int64#3,<t72=int64#8
# asm 2: and <squareredmask=%rdx,<t72=%r10
and %rdx,%r10
# qhasm: t72 += squarer11
# asm 1: add <squarer11=int64#6,<t72=int64#8
# asm 2: add <squarer11=%r9,<t72=%r10
add %r9,%r10
# qhasm: squarer31 = (squarer31.t73) << 13
# asm 1: shld $13,<t73=int64#10,<squarer31=int64#11
# asm 2: shld $13,<t73=%r12,<squarer31=%r13
shld $13,%r12,%r13
# qhasm: t73 &= squareredmask
# asm 1: and <squareredmask=int64#3,<t73=int64#10
# asm 2: and <squareredmask=%rdx,<t73=%r12
and %rdx,%r12
# qhasm: t73 += squarer21
# asm 1: add <squarer21=int64#9,<t73=int64#10
# asm 2: add <squarer21=%r11,<t73=%r12
add %r11,%r12
# qhasm: squarer41 = (squarer41.t74) << 13
# asm 1: shld $13,<t74=int64#12,<squarer41=int64#13
# asm 2: shld $13,<t74=%r14,<squarer41=%r15
shld $13,%r14,%r15
# qhasm: t74 &= squareredmask
# asm 1: and <squareredmask=int64#3,<t74=int64#12
# asm 2: and <squareredmask=%rdx,<t74=%r14
and %rdx,%r14
# qhasm: t74 += squarer31
# asm 1: add <squarer31=int64#11,<t74=int64#12
# asm 2: add <squarer31=%r13,<t74=%r14
add %r13,%r14
# qhasm: squarer41 = squarer41 * 19
# asm 1: imulq $19,<squarer41=int64#13,>squarer41=int64#4
# asm 2: imulq $19,<squarer41=%r15,>squarer41=%rcx
imulq $19,%r15,%rcx
# qhasm: t70 += squarer41
# asm 1: add <squarer41=int64#4,<t70=int64#2
# asm 2: add <squarer41=%rcx,<t70=%rsi
add %rcx,%rsi
# qhasm: squaret = t70
# asm 1: mov <t70=int64#2,>squaret=int64#4
# asm 2: mov <t70=%rsi,>squaret=%rcx
mov %rsi,%rcx
# qhasm: (uint64) squaret >>= 51
# asm 1: shr $51,<squaret=int64#4
# asm 2: shr $51,<squaret=%rcx
shr $51,%rcx
# qhasm: squaret += t71
# asm 1: add <t71=int64#5,<squaret=int64#4
# asm 2: add <t71=%r8,<squaret=%rcx
add %r8,%rcx
# qhasm: t70 &= squareredmask
# asm 1: and <squareredmask=int64#3,<t70=int64#2
# asm 2: and <squareredmask=%rdx,<t70=%rsi
and %rdx,%rsi
# qhasm: t71 = squaret
# asm 1: mov <squaret=int64#4,>t71=int64#5
# asm 2: mov <squaret=%rcx,>t71=%r8
mov %rcx,%r8
# qhasm: (uint64) squaret >>= 51
# asm 1: shr $51,<squaret=int64#4
# asm 2: shr $51,<squaret=%rcx
shr $51,%rcx
# qhasm: squaret += t72
# asm 1: add <t72=int64#8,<squaret=int64#4
# asm 2: add <t72=%r10,<squaret=%rcx
add %r10,%rcx
# qhasm: t71 &= squareredmask
# asm 1: and <squareredmask=int64#3,<t71=int64#5
# asm 2: and <squareredmask=%rdx,<t71=%r8
and %rdx,%r8
# qhasm: t72 = squaret
# asm 1: mov <squaret=int64#4,>t72=int64#6
# asm 2: mov <squaret=%rcx,>t72=%r9
mov %rcx,%r9
# qhasm: (uint64) squaret >>= 51
# asm 1: shr $51,<squaret=int64#4
# asm 2: shr $51,<squaret=%rcx
shr $51,%rcx
# qhasm: squaret += t73
# asm 1: add <t73=int64#10,<squaret=int64#4
# asm 2: add <t73=%r12,<squaret=%rcx
add %r12,%rcx
# qhasm: t72 &= squareredmask
# asm 1: and <squareredmask=int64#3,<t72=int64#6
# asm 2: and <squareredmask=%rdx,<t72=%r9
and %rdx,%r9
# qhasm: t73 = squaret
# asm 1: mov <squaret=int64#4,>t73=int64#7
# asm 2: mov <squaret=%rcx,>t73=%rax
mov %rcx,%rax
# qhasm: (uint64) squaret >>= 51
# asm 1: shr $51,<squaret=int64#4
# asm 2: shr $51,<squaret=%rcx
shr $51,%rcx
# qhasm: squaret += t74
# asm 1: add <t74=int64#12,<squaret=int64#4
# asm 2: add <t74=%r14,<squaret=%rcx
add %r14,%rcx
# qhasm: t73 &= squareredmask
# asm 1: and <squareredmask=int64#3,<t73=int64#7
# asm 2: and <squareredmask=%rdx,<t73=%rax
and %rdx,%rax
# qhasm: t74 = squaret
# asm 1: mov <squaret=int64#4,>t74=int64#8
# asm 2: mov <squaret=%rcx,>t74=%r10
mov %rcx,%r10
# qhasm: (uint64) squaret >>= 51
# asm 1: shr $51,<squaret=int64#4
# asm 2: shr $51,<squaret=%rcx
shr $51,%rcx
# qhasm: squaret *= 19
# asm 1: imulq $19,<squaret=int64#4,>squaret=int64#4
# asm 2: imulq $19,<squaret=%rcx,>squaret=%rcx
imulq $19,%rcx,%rcx
# qhasm: t70 += squaret
# asm 1: add <squaret=int64#4,<t70=int64#2
# asm 2: add <squaret=%rcx,<t70=%rsi
add %rcx,%rsi
# qhasm: t74 &= squareredmask
# asm 1: and <squareredmask=int64#3,<t74=int64#8
# asm 2: and <squareredmask=%rdx,<t74=%r10
and %rdx,%r10
# qhasm: t70_stack = t70
# asm 1: movq <t70=int64#2,>t70_stack=stack64#18
# asm 2: movq <t70=%rsi,>t70_stack=136(%rsp)
movq %rsi,136(%rsp)
# qhasm: t71_stack = t71
# asm 1: movq <t71=int64#5,>t71_stack=stack64#19
# asm 2: movq <t71=%r8,>t71_stack=144(%rsp)
movq %r8,144(%rsp)
# qhasm: t72_stack = t72
# asm 1: movq <t72=int64#6,>t72_stack=stack64#20
# asm 2: movq <t72=%r9,>t72_stack=152(%rsp)
movq %r9,152(%rsp)
# qhasm: t73_stack = t73
# asm 1: movq <t73=int64#7,>t73_stack=stack64#21
# asm 2: movq <t73=%rax,>t73_stack=160(%rsp)
movq %rax,160(%rsp)
# qhasm: t74_stack = t74
# asm 1: movq <t74=int64#8,>t74_stack=stack64#22
# asm 2: movq <t74=%r10,>t74_stack=168(%rsp)
movq %r10,168(%rsp)
# qhasm: squarerax = t10_stack
# asm 1: movq <t10_stack=stack64#8,>squarerax=int64#7
# asm 2: movq <t10_stack=56(%rsp),>squarerax=%rax
movq 56(%rsp),%rax
# qhasm: (uint128) squarerdx squarerax = squarerax * t10_stack
# asm 1: mulq <t10_stack=stack64#8
# asm 2: mulq <t10_stack=56(%rsp)
mulq 56(%rsp)
# qhasm: t60 = squarerax
# asm 1: mov <squarerax=int64#7,>t60=int64#2
# asm 2: mov <squarerax=%rax,>t60=%rsi
mov %rax,%rsi
# qhasm: squarer01 = squarerdx
# asm 1: mov <squarerdx=int64#3,>squarer01=int64#4
# asm 2: mov <squarerdx=%rdx,>squarer01=%rcx
mov %rdx,%rcx
# qhasm: squarerax = t10_stack
# asm 1: movq <t10_stack=stack64#8,>squarerax=int64#7
# asm 2: movq <t10_stack=56(%rsp),>squarerax=%rax
movq 56(%rsp),%rax
# qhasm: squarerax <<= 1
# asm 1: shl $1,<squarerax=int64#7
# asm 2: shl $1,<squarerax=%rax
shl $1,%rax
# qhasm: (uint128) squarerdx squarerax = squarerax * t11_stack
# asm 1: mulq <t11_stack=stack64#9
# asm 2: mulq <t11_stack=64(%rsp)
mulq 64(%rsp)
# qhasm: t61 = squarerax
# asm 1: mov <squarerax=int64#7,>t61=int64#5
# asm 2: mov <squarerax=%rax,>t61=%r8
mov %rax,%r8
# qhasm: squarer11 = squarerdx
# asm 1: mov <squarerdx=int64#3,>squarer11=int64#6
# asm 2: mov <squarerdx=%rdx,>squarer11=%r9
mov %rdx,%r9
# qhasm: squarerax = t10_stack
# asm 1: movq <t10_stack=stack64#8,>squarerax=int64#7
# asm 2: movq <t10_stack=56(%rsp),>squarerax=%rax
movq 56(%rsp),%rax
# qhasm: squarerax <<= 1
# asm 1: shl $1,<squarerax=int64#7
# asm 2: shl $1,<squarerax=%rax
shl $1,%rax
# qhasm: (uint128) squarerdx squarerax = squarerax * t12_stack
# asm 1: mulq <t12_stack=stack64#10
# asm 2: mulq <t12_stack=72(%rsp)
mulq 72(%rsp)
# qhasm: t62 = squarerax
# asm 1: mov <squarerax=int64#7,>t62=int64#8
# asm 2: mov <squarerax=%rax,>t62=%r10
mov %rax,%r10
# qhasm: squarer21 = squarerdx
# asm 1: mov <squarerdx=int64#3,>squarer21=int64#9
# asm 2: mov <squarerdx=%rdx,>squarer21=%r11
mov %rdx,%r11
# qhasm: squarerax = t10_stack
# asm 1: movq <t10_stack=stack64#8,>squarerax=int64#7
# asm 2: movq <t10_stack=56(%rsp),>squarerax=%rax
movq 56(%rsp),%rax
# qhasm: squarerax <<= 1
# asm 1: shl $1,<squarerax=int64#7
# asm 2: shl $1,<squarerax=%rax
shl $1,%rax
# qhasm: (uint128) squarerdx squarerax = squarerax * t13_stack
# asm 1: mulq <t13_stack=stack64#11
# asm 2: mulq <t13_stack=80(%rsp)
mulq 80(%rsp)
# qhasm: t63 = squarerax
# asm 1: mov <squarerax=int64#7,>t63=int64#10
# asm 2: mov <squarerax=%rax,>t63=%r12
mov %rax,%r12
# qhasm: squarer31 = squarerdx
# asm 1: mov <squarerdx=int64#3,>squarer31=int64#11
# asm 2: mov <squarerdx=%rdx,>squarer31=%r13
mov %rdx,%r13
# qhasm: squarerax = t10_stack
# asm 1: movq <t10_stack=stack64#8,>squarerax=int64#7
# asm 2: movq <t10_stack=56(%rsp),>squarerax=%rax
movq 56(%rsp),%rax
# qhasm: squarerax <<= 1
# asm 1: shl $1,<squarerax=int64#7
# asm 2: shl $1,<squarerax=%rax
shl $1,%rax
# qhasm: (uint128) squarerdx squarerax = squarerax * t14_stack
# asm 1: mulq <t14_stack=stack64#12
# asm 2: mulq <t14_stack=88(%rsp)
mulq 88(%rsp)
# qhasm: t64 = squarerax
# asm 1: mov <squarerax=int64#7,>t64=int64#12
# asm 2: mov <squarerax=%rax,>t64=%r14
mov %rax,%r14
# qhasm: squarer41 = squarerdx
# asm 1: mov <squarerdx=int64#3,>squarer41=int64#13
# asm 2: mov <squarerdx=%rdx,>squarer41=%r15
mov %rdx,%r15
# qhasm: squarerax = t11_stack
# asm 1: movq <t11_stack=stack64#9,>squarerax=int64#7
# asm 2: movq <t11_stack=64(%rsp),>squarerax=%rax
movq 64(%rsp),%rax
# qhasm: (uint128) squarerdx squarerax = squarerax * t11_stack
# asm 1: mulq <t11_stack=stack64#9
# asm 2: mulq <t11_stack=64(%rsp)
mulq 64(%rsp)
# qhasm: carry? t62 += squarerax
# asm 1: add <squarerax=int64#7,<t62=int64#8
# asm 2: add <squarerax=%rax,<t62=%r10
add %rax,%r10
# qhasm: squarer21 += squarerdx + carry
# asm 1: adc <squarerdx=int64#3,<squarer21=int64#9
# asm 2: adc <squarerdx=%rdx,<squarer21=%r11
adc %rdx,%r11
# qhasm: squarerax = t11_stack
# asm 1: movq <t11_stack=stack64#9,>squarerax=int64#7
# asm 2: movq <t11_stack=64(%rsp),>squarerax=%rax
movq 64(%rsp),%rax
# qhasm: squarerax <<= 1
# asm 1: shl $1,<squarerax=int64#7
# asm 2: shl $1,<squarerax=%rax
shl $1,%rax
# qhasm: (uint128) squarerdx squarerax = squarerax * t12_stack
# asm 1: mulq <t12_stack=stack64#10
# asm 2: mulq <t12_stack=72(%rsp)
mulq 72(%rsp)
# qhasm: carry? t63 += squarerax
# asm 1: add <squarerax=int64#7,<t63=int64#10
# asm 2: add <squarerax=%rax,<t63=%r12
add %rax,%r12
# qhasm: squarer31 += squarerdx + carry
# asm 1: adc <squarerdx=int64#3,<squarer31=int64#11
# asm 2: adc <squarerdx=%rdx,<squarer31=%r13
adc %rdx,%r13
# qhasm: squarerax = t11_stack
# asm 1: movq <t11_stack=stack64#9,>squarerax=int64#7
# asm 2: movq <t11_stack=64(%rsp),>squarerax=%rax
movq 64(%rsp),%rax
# qhasm: squarerax <<= 1
# asm 1: shl $1,<squarerax=int64#7
# asm 2: shl $1,<squarerax=%rax
shl $1,%rax
# qhasm: (uint128) squarerdx squarerax = squarerax * t13_stack
# asm 1: mulq <t13_stack=stack64#11
# asm 2: mulq <t13_stack=80(%rsp)
mulq 80(%rsp)
# qhasm: carry? t64 += squarerax
# asm 1: add <squarerax=int64#7,<t64=int64#12
# asm 2: add <squarerax=%rax,<t64=%r14
add %rax,%r14
# qhasm: squarer41 += squarerdx + carry
# asm 1: adc <squarerdx=int64#3,<squarer41=int64#13
# asm 2: adc <squarerdx=%rdx,<squarer41=%r15
adc %rdx,%r15
# qhasm: squarerax = t11_stack
# asm 1: movq <t11_stack=stack64#9,>squarerax=int64#3
# asm 2: movq <t11_stack=64(%rsp),>squarerax=%rdx
movq 64(%rsp),%rdx
# qhasm: squarerax *= 38
# asm 1: imulq $38,<squarerax=int64#3,>squarerax=int64#7
# asm 2: imulq $38,<squarerax=%rdx,>squarerax=%rax
imulq $38,%rdx,%rax
# qhasm: (uint128) squarerdx squarerax = squarerax * t14_stack
# asm 1: mulq <t14_stack=stack64#12
# asm 2: mulq <t14_stack=88(%rsp)
mulq 88(%rsp)
# qhasm: carry? t60 += squarerax
# asm 1: add <squarerax=int64#7,<t60=int64#2
# asm 2: add <squarerax=%rax,<t60=%rsi
add %rax,%rsi
# qhasm: squarer01 += squarerdx + carry
# asm 1: adc <squarerdx=int64#3,<squarer01=int64#4
# asm 2: adc <squarerdx=%rdx,<squarer01=%rcx
adc %rdx,%rcx
# qhasm: squarerax = t12_stack
# asm 1: movq <t12_stack=stack64#10,>squarerax=int64#7
# asm 2: movq <t12_stack=72(%rsp),>squarerax=%rax
movq 72(%rsp),%rax
# qhasm: (uint128) squarerdx squarerax = squarerax * t12_stack
# asm 1: mulq <t12_stack=stack64#10
# asm 2: mulq <t12_stack=72(%rsp)
mulq 72(%rsp)
# qhasm: carry? t64 += squarerax
# asm 1: add <squarerax=int64#7,<t64=int64#12
# asm 2: add <squarerax=%rax,<t64=%r14
add %rax,%r14
# qhasm: squarer41 += squarerdx + carry
# asm 1: adc <squarerdx=int64#3,<squarer41=int64#13
# asm 2: adc <squarerdx=%rdx,<squarer41=%r15
adc %rdx,%r15
# qhasm: squarerax = t12_stack
# asm 1: movq <t12_stack=stack64#10,>squarerax=int64#3
# asm 2: movq <t12_stack=72(%rsp),>squarerax=%rdx
movq 72(%rsp),%rdx
# qhasm: squarerax *= 38
# asm 1: imulq $38,<squarerax=int64#3,>squarerax=int64#7
# asm 2: imulq $38,<squarerax=%rdx,>squarerax=%rax
imulq $38,%rdx,%rax
# qhasm: (uint128) squarerdx squarerax = squarerax * t13_stack
# asm 1: mulq <t13_stack=stack64#11
# asm 2: mulq <t13_stack=80(%rsp)
mulq 80(%rsp)
# qhasm: carry? t60 += squarerax
# asm 1: add <squarerax=int64#7,<t60=int64#2
# asm 2: add <squarerax=%rax,<t60=%rsi
add %rax,%rsi
# qhasm: squarer01 += squarerdx + carry
# asm 1: adc <squarerdx=int64#3,<squarer01=int64#4
# asm 2: adc <squarerdx=%rdx,<squarer01=%rcx
adc %rdx,%rcx
# qhasm: squarerax = t12_stack
# asm 1: movq <t12_stack=stack64#10,>squarerax=int64#3
# asm 2: movq <t12_stack=72(%rsp),>squarerax=%rdx
movq 72(%rsp),%rdx
# qhasm: squarerax *= 38
# asm 1: imulq $38,<squarerax=int64#3,>squarerax=int64#7
# asm 2: imulq $38,<squarerax=%rdx,>squarerax=%rax
imulq $38,%rdx,%rax
# qhasm: (uint128) squarerdx squarerax = squarerax * t14_stack
# asm 1: mulq <t14_stack=stack64#12
# asm 2: mulq <t14_stack=88(%rsp)
mulq 88(%rsp)
# qhasm: carry? t61 += squarerax
# asm 1: add <squarerax=int64#7,<t61=int64#5
# asm 2: add <squarerax=%rax,<t61=%r8
add %rax,%r8
# qhasm: squarer11 += squarerdx + carry
# asm 1: adc <squarerdx=int64#3,<squarer11=int64#6
# asm 2: adc <squarerdx=%rdx,<squarer11=%r9
adc %rdx,%r9
# qhasm: squarerax = t13_stack
# asm 1: movq <t13_stack=stack64#11,>squarerax=int64#3
# asm 2: movq <t13_stack=80(%rsp),>squarerax=%rdx
movq 80(%rsp),%rdx
# qhasm: squarerax *= 19
# asm 1: imulq $19,<squarerax=int64#3,>squarerax=int64#7
# asm 2: imulq $19,<squarerax=%rdx,>squarerax=%rax
imulq $19,%rdx,%rax
# qhasm: (uint128) squarerdx squarerax = squarerax * t13_stack
# asm 1: mulq <t13_stack=stack64#11
# asm 2: mulq <t13_stack=80(%rsp)
mulq 80(%rsp)
# qhasm: carry? t61 += squarerax
# asm 1: add <squarerax=int64#7,<t61=int64#5
# asm 2: add <squarerax=%rax,<t61=%r8
add %rax,%r8
# qhasm: squarer11 += squarerdx + carry
# asm 1: adc <squarerdx=int64#3,<squarer11=int64#6
# asm 2: adc <squarerdx=%rdx,<squarer11=%r9
adc %rdx,%r9
# qhasm: squarerax = t13_stack
# asm 1: movq <t13_stack=stack64#11,>squarerax=int64#3
# asm 2: movq <t13_stack=80(%rsp),>squarerax=%rdx
movq 80(%rsp),%rdx
# qhasm: squarerax *= 38
# asm 1: imulq $38,<squarerax=int64#3,>squarerax=int64#7
# asm 2: imulq $38,<squarerax=%rdx,>squarerax=%rax
imulq $38,%rdx,%rax
# qhasm: (uint128) squarerdx squarerax = squarerax * t14_stack
# asm 1: mulq <t14_stack=stack64#12
# asm 2: mulq <t14_stack=88(%rsp)
mulq 88(%rsp)
# qhasm: carry? t62 += squarerax
# asm 1: add <squarerax=int64#7,<t62=int64#8
# asm 2: add <squarerax=%rax,<t62=%r10
add %rax,%r10
# qhasm: squarer21 += squarerdx + carry
# asm 1: adc <squarerdx=int64#3,<squarer21=int64#9
# asm 2: adc <squarerdx=%rdx,<squarer21=%r11
adc %rdx,%r11
# qhasm: squarerax = t14_stack
# asm 1: movq <t14_stack=stack64#12,>squarerax=int64#3
# asm 2: movq <t14_stack=88(%rsp),>squarerax=%rdx
movq 88(%rsp),%rdx
# qhasm: squarerax *= 19
# asm 1: imulq $19,<squarerax=int64#3,>squarerax=int64#7
# asm 2: imulq $19,<squarerax=%rdx,>squarerax=%rax
imulq $19,%rdx,%rax
# qhasm: (uint128) squarerdx squarerax = squarerax * t14_stack
# asm 1: mulq <t14_stack=stack64#12
# asm 2: mulq <t14_stack=88(%rsp)
mulq 88(%rsp)
# qhasm: carry? t63 += squarerax
# asm 1: add <squarerax=int64#7,<t63=int64#10
# asm 2: add <squarerax=%rax,<t63=%r12
add %rax,%r12
# qhasm: squarer31 += squarerdx + carry
# asm 1: adc <squarerdx=int64#3,<squarer31=int64#11
# asm 2: adc <squarerdx=%rdx,<squarer31=%r13
adc %rdx,%r13
# qhasm: squareredmask = *(uint64 *) &CRYPTO_SHARED_NAMESPACE(REDMASK51)
# asm 1: movq CRYPTO_SHARED_NAMESPACE(REDMASK51),>squareredmask=int64#3
# asm 2: movq CRYPTO_SHARED_NAMESPACE(REDMASK51),>squareredmask=%rdx
movq CRYPTO_SHARED_NAMESPACE(REDMASK51)(%rip),%rdx
# qhasm: squarer01 = (squarer01.t60) << 13
# asm 1: shld $13,<t60=int64#2,<squarer01=int64#4
# asm 2: shld $13,<t60=%rsi,<squarer01=%rcx
shld $13,%rsi,%rcx
# qhasm: t60 &= squareredmask
# asm 1: and <squareredmask=int64#3,<t60=int64#2
# asm 2: and <squareredmask=%rdx,<t60=%rsi
and %rdx,%rsi
# qhasm: squarer11 = (squarer11.t61) << 13
# asm 1: shld $13,<t61=int64#5,<squarer11=int64#6
# asm 2: shld $13,<t61=%r8,<squarer11=%r9
shld $13,%r8,%r9
# qhasm: t61 &= squareredmask
# asm 1: and <squareredmask=int64#3,<t61=int64#5
# asm 2: and <squareredmask=%rdx,<t61=%r8
and %rdx,%r8
# qhasm: t61 += squarer01
# asm 1: add <squarer01=int64#4,<t61=int64#5
# asm 2: add <squarer01=%rcx,<t61=%r8
add %rcx,%r8
# qhasm: squarer21 = (squarer21.t62) << 13
# asm 1: shld $13,<t62=int64#8,<squarer21=int64#9
# asm 2: shld $13,<t62=%r10,<squarer21=%r11
shld $13,%r10,%r11
# qhasm: t62 &= squareredmask
# asm 1: and <squareredmask=int64#3,<t62=int64#8
# asm 2: and <squareredmask=%rdx,<t62=%r10
and %rdx,%r10
# qhasm: t62 += squarer11
# asm 1: add <squarer11=int64#6,<t62=int64#8
# asm 2: add <squarer11=%r9,<t62=%r10
add %r9,%r10
# qhasm: squarer31 = (squarer31.t63) << 13
# asm 1: shld $13,<t63=int64#10,<squarer31=int64#11
# asm 2: shld $13,<t63=%r12,<squarer31=%r13
shld $13,%r12,%r13
# qhasm: t63 &= squareredmask
# asm 1: and <squareredmask=int64#3,<t63=int64#10
# asm 2: and <squareredmask=%rdx,<t63=%r12
and %rdx,%r12
# qhasm: t63 += squarer21
# asm 1: add <squarer21=int64#9,<t63=int64#10
# asm 2: add <squarer21=%r11,<t63=%r12
add %r11,%r12
# qhasm: squarer41 = (squarer41.t64) << 13
# asm 1: shld $13,<t64=int64#12,<squarer41=int64#13
# asm 2: shld $13,<t64=%r14,<squarer41=%r15
shld $13,%r14,%r15
# qhasm: t64 &= squareredmask
# asm 1: and <squareredmask=int64#3,<t64=int64#12
# asm 2: and <squareredmask=%rdx,<t64=%r14
and %rdx,%r14
# qhasm: t64 += squarer31
# asm 1: add <squarer31=int64#11,<t64=int64#12
# asm 2: add <squarer31=%r13,<t64=%r14
add %r13,%r14
# qhasm: squarer41 = squarer41 * 19
# asm 1: imulq $19,<squarer41=int64#13,>squarer41=int64#4
# asm 2: imulq $19,<squarer41=%r15,>squarer41=%rcx
imulq $19,%r15,%rcx
# qhasm: t60 += squarer41
# asm 1: add <squarer41=int64#4,<t60=int64#2
# asm 2: add <squarer41=%rcx,<t60=%rsi
add %rcx,%rsi
# qhasm: squaret = t60
# asm 1: mov <t60=int64#2,>squaret=int64#4
# asm 2: mov <t60=%rsi,>squaret=%rcx
mov %rsi,%rcx
# qhasm: (uint64) squaret >>= 51
# asm 1: shr $51,<squaret=int64#4
# asm 2: shr $51,<squaret=%rcx
shr $51,%rcx
# qhasm: squaret += t61
# asm 1: add <t61=int64#5,<squaret=int64#4
# asm 2: add <t61=%r8,<squaret=%rcx
add %r8,%rcx
# qhasm: t60 &= squareredmask
# asm 1: and <squareredmask=int64#3,<t60=int64#2
# asm 2: and <squareredmask=%rdx,<t60=%rsi
and %rdx,%rsi
# qhasm: t61 = squaret
# asm 1: mov <squaret=int64#4,>t61=int64#5
# asm 2: mov <squaret=%rcx,>t61=%r8
mov %rcx,%r8
# qhasm: (uint64) squaret >>= 51
# asm 1: shr $51,<squaret=int64#4
# asm 2: shr $51,<squaret=%rcx
shr $51,%rcx
# qhasm: squaret += t62
# asm 1: add <t62=int64#8,<squaret=int64#4
# asm 2: add <t62=%r10,<squaret=%rcx
add %r10,%rcx
# qhasm: t61 &= squareredmask
# asm 1: and <squareredmask=int64#3,<t61=int64#5
# asm 2: and <squareredmask=%rdx,<t61=%r8
and %rdx,%r8
# qhasm: t62 = squaret
# asm 1: mov <squaret=int64#4,>t62=int64#6
# asm 2: mov <squaret=%rcx,>t62=%r9
mov %rcx,%r9
# qhasm: (uint64) squaret >>= 51
# asm 1: shr $51,<squaret=int64#4
# asm 2: shr $51,<squaret=%rcx
shr $51,%rcx
# qhasm: squaret += t63
# asm 1: add <t63=int64#10,<squaret=int64#4
# asm 2: add <t63=%r12,<squaret=%rcx
add %r12,%rcx
# qhasm: t62 &= squareredmask
# asm 1: and <squareredmask=int64#3,<t62=int64#6
# asm 2: and <squareredmask=%rdx,<t62=%r9
and %rdx,%r9
# qhasm: t63 = squaret
# asm 1: mov <squaret=int64#4,>t63=int64#7
# asm 2: mov <squaret=%rcx,>t63=%rax
mov %rcx,%rax
# qhasm: (uint64) squaret >>= 51
# asm 1: shr $51,<squaret=int64#4
# asm 2: shr $51,<squaret=%rcx
shr $51,%rcx
# qhasm: squaret += t64
# asm 1: add <t64=int64#12,<squaret=int64#4
# asm 2: add <t64=%r14,<squaret=%rcx
add %r14,%rcx
# qhasm: t63 &= squareredmask
# asm 1: and <squareredmask=int64#3,<t63=int64#7
# asm 2: and <squareredmask=%rdx,<t63=%rax
and %rdx,%rax
# qhasm: t64 = squaret
# asm 1: mov <squaret=int64#4,>t64=int64#8
# asm 2: mov <squaret=%rcx,>t64=%r10
mov %rcx,%r10
# qhasm: (uint64) squaret >>= 51
# asm 1: shr $51,<squaret=int64#4
# asm 2: shr $51,<squaret=%rcx
shr $51,%rcx
# qhasm: squaret *= 19
# asm 1: imulq $19,<squaret=int64#4,>squaret=int64#4
# asm 2: imulq $19,<squaret=%rcx,>squaret=%rcx
imulq $19,%rcx,%rcx
# qhasm: t60 += squaret
# asm 1: add <squaret=int64#4,<t60=int64#2
# asm 2: add <squaret=%rcx,<t60=%rsi
add %rcx,%rsi
# qhasm: t64 &= squareredmask
# asm 1: and <squareredmask=int64#3,<t64=int64#8
# asm 2: and <squareredmask=%rdx,<t64=%r10
and %rdx,%r10
# qhasm: t60_stack = t60
# asm 1: movq <t60=int64#2,>t60_stack=stack64#23
# asm 2: movq <t60=%rsi,>t60_stack=176(%rsp)
movq %rsi,176(%rsp)
# qhasm: t61_stack = t61
# asm 1: movq <t61=int64#5,>t61_stack=stack64#24
# asm 2: movq <t61=%r8,>t61_stack=184(%rsp)
movq %r8,184(%rsp)
# qhasm: t62_stack = t62
# asm 1: movq <t62=int64#6,>t62_stack=stack64#25
# asm 2: movq <t62=%r9,>t62_stack=192(%rsp)
movq %r9,192(%rsp)
# qhasm: t63_stack = t63
# asm 1: movq <t63=int64#7,>t63_stack=stack64#26
# asm 2: movq <t63=%rax,>t63_stack=200(%rsp)
movq %rax,200(%rsp)
# qhasm: t64_stack = t64
# asm 1: movq <t64=int64#8,>t64_stack=stack64#27
# asm 2: movq <t64=%r10,>t64_stack=208(%rsp)
movq %r10,208(%rsp)
# qhasm: t50 = t60
# asm 1: mov <t60=int64#2,>t50=int64#2
# asm 2: mov <t60=%rsi,>t50=%rsi
mov %rsi,%rsi
# qhasm: t51 = t61
# asm 1: mov <t61=int64#5,>t51=int64#3
# asm 2: mov <t61=%r8,>t51=%rdx
mov %r8,%rdx
# qhasm: t52 = t62
# asm 1: mov <t62=int64#6,>t52=int64#4
# asm 2: mov <t62=%r9,>t52=%rcx
mov %r9,%rcx
# qhasm: t53 = t63
# asm 1: mov <t63=int64#7,>t53=int64#5
# asm 2: mov <t63=%rax,>t53=%r8
mov %rax,%r8
# qhasm: t54 = t64
# asm 1: mov <t64=int64#8,>t54=int64#6
# asm 2: mov <t64=%r10,>t54=%r9
mov %r10,%r9
# qhasm: t50 += *(uint64 *) &CRYPTO_SHARED_NAMESPACE(2P0)
# asm 1: add CRYPTO_SHARED_NAMESPACE(2P0),<t50=int64#2
# asm 2: add CRYPTO_SHARED_NAMESPACE(2P0),<t50=%rsi
add CRYPTO_SHARED_NAMESPACE(2P0)(%rip),%rsi
# qhasm: t51 += *(uint64 *) &CRYPTO_SHARED_NAMESPACE(2P1234)
# asm 1: add CRYPTO_SHARED_NAMESPACE(2P1234),<t51=int64#3
# asm 2: add CRYPTO_SHARED_NAMESPACE(2P1234),<t51=%rdx
add CRYPTO_SHARED_NAMESPACE(2P1234)(%rip),%rdx
# qhasm: t52 += *(uint64 *) &CRYPTO_SHARED_NAMESPACE(2P1234)
# asm 1: add CRYPTO_SHARED_NAMESPACE(2P1234),<t52=int64#4
# asm 2: add CRYPTO_SHARED_NAMESPACE(2P1234),<t52=%rcx
add CRYPTO_SHARED_NAMESPACE(2P1234)(%rip),%rcx
# qhasm: t53 += *(uint64 *) &CRYPTO_SHARED_NAMESPACE(2P1234)
# asm 1: add CRYPTO_SHARED_NAMESPACE(2P1234),<t53=int64#5
# asm 2: add CRYPTO_SHARED_NAMESPACE(2P1234),<t53=%r8
add CRYPTO_SHARED_NAMESPACE(2P1234)(%rip),%r8
# qhasm: t54 += *(uint64 *) &CRYPTO_SHARED_NAMESPACE(2P1234)
# asm 1: add CRYPTO_SHARED_NAMESPACE(2P1234),<t54=int64#6
# asm 2: add CRYPTO_SHARED_NAMESPACE(2P1234),<t54=%r9
add CRYPTO_SHARED_NAMESPACE(2P1234)(%rip),%r9
# qhasm: t50 -= t70_stack
# asm 1: subq <t70_stack=stack64#18,<t50=int64#2
# asm 2: subq <t70_stack=136(%rsp),<t50=%rsi
subq 136(%rsp),%rsi
# qhasm: t51 -= t71_stack
# asm 1: subq <t71_stack=stack64#19,<t51=int64#3
# asm 2: subq <t71_stack=144(%rsp),<t51=%rdx
subq 144(%rsp),%rdx
# qhasm: t52 -= t72_stack
# asm 1: subq <t72_stack=stack64#20,<t52=int64#4
# asm 2: subq <t72_stack=152(%rsp),<t52=%rcx
subq 152(%rsp),%rcx
# qhasm: t53 -= t73_stack
# asm 1: subq <t73_stack=stack64#21,<t53=int64#5
# asm 2: subq <t73_stack=160(%rsp),<t53=%r8
subq 160(%rsp),%r8
# qhasm: t54 -= t74_stack
# asm 1: subq <t74_stack=stack64#22,<t54=int64#6
# asm 2: subq <t74_stack=168(%rsp),<t54=%r9
subq 168(%rsp),%r9
# qhasm: t50_stack = t50
# asm 1: movq <t50=int64#2,>t50_stack=stack64#28
# asm 2: movq <t50=%rsi,>t50_stack=216(%rsp)
movq %rsi,216(%rsp)
# qhasm: t51_stack = t51
# asm 1: movq <t51=int64#3,>t51_stack=stack64#29
# asm 2: movq <t51=%rdx,>t51_stack=224(%rsp)
movq %rdx,224(%rsp)
# qhasm: t52_stack = t52
# asm 1: movq <t52=int64#4,>t52_stack=stack64#30
# asm 2: movq <t52=%rcx,>t52_stack=232(%rsp)
movq %rcx,232(%rsp)
# qhasm: t53_stack = t53
# asm 1: movq <t53=int64#5,>t53_stack=stack64#31
# asm 2: movq <t53=%r8,>t53_stack=240(%rsp)
movq %r8,240(%rsp)
# qhasm: t54_stack = t54
# asm 1: movq <t54=int64#6,>t54_stack=stack64#32
# asm 2: movq <t54=%r9,>t54_stack=248(%rsp)
movq %r9,248(%rsp)
# qhasm: t30 = *(uint64 *)(workp + 120)
# asm 1: movq 120(<workp=int64#1),>t30=int64#2
# asm 2: movq 120(<workp=%rdi),>t30=%rsi
movq 120(%rdi),%rsi
# qhasm: t31 = *(uint64 *)(workp + 128)
# asm 1: movq 128(<workp=int64#1),>t31=int64#3
# asm 2: movq 128(<workp=%rdi),>t31=%rdx
movq 128(%rdi),%rdx
# qhasm: t32 = *(uint64 *)(workp + 136)
# asm 1: movq 136(<workp=int64#1),>t32=int64#4
# asm 2: movq 136(<workp=%rdi),>t32=%rcx
movq 136(%rdi),%rcx
# qhasm: t33 = *(uint64 *)(workp + 144)
# asm 1: movq 144(<workp=int64#1),>t33=int64#5
# asm 2: movq 144(<workp=%rdi),>t33=%r8
movq 144(%rdi),%r8
# qhasm: t34 = *(uint64 *)(workp + 152)
# asm 1: movq 152(<workp=int64#1),>t34=int64#6
# asm 2: movq 152(<workp=%rdi),>t34=%r9
movq 152(%rdi),%r9
# qhasm: t40 = t30
# asm 1: mov <t30=int64#2,>t40=int64#7
# asm 2: mov <t30=%rsi,>t40=%rax
mov %rsi,%rax
# qhasm: t41 = t31
# asm 1: mov <t31=int64#3,>t41=int64#8
# asm 2: mov <t31=%rdx,>t41=%r10
mov %rdx,%r10
# qhasm: t42 = t32
# asm 1: mov <t32=int64#4,>t42=int64#9
# asm 2: mov <t32=%rcx,>t42=%r11
mov %rcx,%r11
# qhasm: t43 = t33
# asm 1: mov <t33=int64#5,>t43=int64#10
# asm 2: mov <t33=%r8,>t43=%r12
mov %r8,%r12
# qhasm: t44 = t34
# asm 1: mov <t34=int64#6,>t44=int64#11
# asm 2: mov <t34=%r9,>t44=%r13
mov %r9,%r13
# qhasm: t40 += *(uint64 *) &CRYPTO_SHARED_NAMESPACE(2P0)
# asm 1: add CRYPTO_SHARED_NAMESPACE(2P0),<t40=int64#7
# asm 2: add CRYPTO_SHARED_NAMESPACE(2P0),<t40=%rax
add CRYPTO_SHARED_NAMESPACE(2P0)(%rip),%rax
# qhasm: t41 += *(uint64 *) &CRYPTO_SHARED_NAMESPACE(2P1234)
# asm 1: add CRYPTO_SHARED_NAMESPACE(2P1234),<t41=int64#8
# asm 2: add CRYPTO_SHARED_NAMESPACE(2P1234),<t41=%r10
add CRYPTO_SHARED_NAMESPACE(2P1234)(%rip),%r10
# qhasm: t42 += *(uint64 *) &CRYPTO_SHARED_NAMESPACE(2P1234)
# asm 1: add CRYPTO_SHARED_NAMESPACE(2P1234),<t42=int64#9
# asm 2: add CRYPTO_SHARED_NAMESPACE(2P1234),<t42=%r11
add CRYPTO_SHARED_NAMESPACE(2P1234)(%rip),%r11
# qhasm: t43 += *(uint64 *) &CRYPTO_SHARED_NAMESPACE(2P1234)
# asm 1: add CRYPTO_SHARED_NAMESPACE(2P1234),<t43=int64#10
# asm 2: add CRYPTO_SHARED_NAMESPACE(2P1234),<t43=%r12
add CRYPTO_SHARED_NAMESPACE(2P1234)(%rip),%r12
# qhasm: t44 += *(uint64 *) &CRYPTO_SHARED_NAMESPACE(2P1234)
# asm 1: add CRYPTO_SHARED_NAMESPACE(2P1234),<t44=int64#11
# asm 2: add CRYPTO_SHARED_NAMESPACE(2P1234),<t44=%r13
add CRYPTO_SHARED_NAMESPACE(2P1234)(%rip),%r13
# qhasm: t30 += *(uint64 *)(workp + 160)
# asm 1: addq 160(<workp=int64#1),<t30=int64#2
# asm 2: addq 160(<workp=%rdi),<t30=%rsi
addq 160(%rdi),%rsi
# qhasm: t31 += *(uint64 *)(workp + 168)
# asm 1: addq 168(<workp=int64#1),<t31=int64#3
# asm 2: addq 168(<workp=%rdi),<t31=%rdx
addq 168(%rdi),%rdx
# qhasm: t32 += *(uint64 *)(workp + 176)
# asm 1: addq 176(<workp=int64#1),<t32=int64#4
# asm 2: addq 176(<workp=%rdi),<t32=%rcx
addq 176(%rdi),%rcx
# qhasm: t33 += *(uint64 *)(workp + 184)
# asm 1: addq 184(<workp=int64#1),<t33=int64#5
# asm 2: addq 184(<workp=%rdi),<t33=%r8
addq 184(%rdi),%r8
# qhasm: t34 += *(uint64 *)(workp + 192)
# asm 1: addq 192(<workp=int64#1),<t34=int64#6
# asm 2: addq 192(<workp=%rdi),<t34=%r9
addq 192(%rdi),%r9
# qhasm: t40 -= *(uint64 *)(workp + 160)
# asm 1: subq 160(<workp=int64#1),<t40=int64#7
# asm 2: subq 160(<workp=%rdi),<t40=%rax
subq 160(%rdi),%rax
# qhasm: t41 -= *(uint64 *)(workp + 168)
# asm 1: subq 168(<workp=int64#1),<t41=int64#8
# asm 2: subq 168(<workp=%rdi),<t41=%r10
subq 168(%rdi),%r10
# qhasm: t42 -= *(uint64 *)(workp + 176)
# asm 1: subq 176(<workp=int64#1),<t42=int64#9
# asm 2: subq 176(<workp=%rdi),<t42=%r11
subq 176(%rdi),%r11
# qhasm: t43 -= *(uint64 *)(workp + 184)
# asm 1: subq 184(<workp=int64#1),<t43=int64#10
# asm 2: subq 184(<workp=%rdi),<t43=%r12
subq 184(%rdi),%r12
# qhasm: t44 -= *(uint64 *)(workp + 192)
# asm 1: subq 192(<workp=int64#1),<t44=int64#11
# asm 2: subq 192(<workp=%rdi),<t44=%r13
subq 192(%rdi),%r13
# qhasm: t30_stack = t30
# asm 1: movq <t30=int64#2,>t30_stack=stack64#33
# asm 2: movq <t30=%rsi,>t30_stack=256(%rsp)
movq %rsi,256(%rsp)
# qhasm: t31_stack = t31
# asm 1: movq <t31=int64#3,>t31_stack=stack64#34
# asm 2: movq <t31=%rdx,>t31_stack=264(%rsp)
movq %rdx,264(%rsp)
# qhasm: t32_stack = t32
# asm 1: movq <t32=int64#4,>t32_stack=stack64#35
# asm 2: movq <t32=%rcx,>t32_stack=272(%rsp)
movq %rcx,272(%rsp)
# qhasm: t33_stack = t33
# asm 1: movq <t33=int64#5,>t33_stack=stack64#36
# asm 2: movq <t33=%r8,>t33_stack=280(%rsp)
movq %r8,280(%rsp)
# qhasm: t34_stack = t34
# asm 1: movq <t34=int64#6,>t34_stack=stack64#37
# asm 2: movq <t34=%r9,>t34_stack=288(%rsp)
movq %r9,288(%rsp)
# qhasm: t40_stack = t40
# asm 1: movq <t40=int64#7,>t40_stack=stack64#38
# asm 2: movq <t40=%rax,>t40_stack=296(%rsp)
movq %rax,296(%rsp)
# qhasm: t41_stack = t41
# asm 1: movq <t41=int64#8,>t41_stack=stack64#39
# asm 2: movq <t41=%r10,>t41_stack=304(%rsp)
movq %r10,304(%rsp)
# qhasm: t42_stack = t42
# asm 1: movq <t42=int64#9,>t42_stack=stack64#40
# asm 2: movq <t42=%r11,>t42_stack=312(%rsp)
movq %r11,312(%rsp)
# qhasm: t43_stack = t43
# asm 1: movq <t43=int64#10,>t43_stack=stack64#41
# asm 2: movq <t43=%r12,>t43_stack=320(%rsp)
movq %r12,320(%rsp)
# qhasm: t44_stack = t44
# asm 1: movq <t44=int64#11,>t44_stack=stack64#42
# asm 2: movq <t44=%r13,>t44_stack=328(%rsp)
movq %r13,328(%rsp)
# qhasm: mulrax = t33_stack
# asm 1: movq <t33_stack=stack64#36,>mulrax=int64#2
# asm 2: movq <t33_stack=280(%rsp),>mulrax=%rsi
movq 280(%rsp),%rsi
# qhasm: mulrax *= 19
# asm 1: imulq $19,<mulrax=int64#2,>mulrax=int64#7
# asm 2: imulq $19,<mulrax=%rsi,>mulrax=%rax
imulq $19,%rsi,%rax
# qhasm: mulx319_stack = mulrax
# asm 1: movq <mulrax=int64#7,>mulx319_stack=stack64#43
# asm 2: movq <mulrax=%rax,>mulx319_stack=336(%rsp)
movq %rax,336(%rsp)
# qhasm: (uint128) mulrdx mulrax = mulrax * t22_stack
# asm 1: mulq <t22_stack=stack64#15
# asm 2: mulq <t22_stack=112(%rsp)
mulq 112(%rsp)
# qhasm: t90 = mulrax
# asm 1: mov <mulrax=int64#7,>t90=int64#2
# asm 2: mov <mulrax=%rax,>t90=%rsi
mov %rax,%rsi
# qhasm: mulr01 = mulrdx
# asm 1: mov <mulrdx=int64#3,>mulr01=int64#4
# asm 2: mov <mulrdx=%rdx,>mulr01=%rcx
mov %rdx,%rcx
# qhasm: mulrax = t34_stack
# asm 1: movq <t34_stack=stack64#37,>mulrax=int64#3
# asm 2: movq <t34_stack=288(%rsp),>mulrax=%rdx
movq 288(%rsp),%rdx
# qhasm: mulrax *= 19
# asm 1: imulq $19,<mulrax=int64#3,>mulrax=int64#7
# asm 2: imulq $19,<mulrax=%rdx,>mulrax=%rax
imulq $19,%rdx,%rax
# qhasm: mulx419_stack = mulrax
# asm 1: movq <mulrax=int64#7,>mulx419_stack=stack64#44
# asm 2: movq <mulrax=%rax,>mulx419_stack=344(%rsp)
movq %rax,344(%rsp)
# qhasm: (uint128) mulrdx mulrax = mulrax * t21_stack
# asm 1: mulq <t21_stack=stack64#14
# asm 2: mulq <t21_stack=104(%rsp)
mulq 104(%rsp)
# qhasm: carry? t90 += mulrax
# asm 1: add <mulrax=int64#7,<t90=int64#2
# asm 2: add <mulrax=%rax,<t90=%rsi
add %rax,%rsi
# qhasm: mulr01 += mulrdx + carry
# asm 1: adc <mulrdx=int64#3,<mulr01=int64#4
# asm 2: adc <mulrdx=%rdx,<mulr01=%rcx
adc %rdx,%rcx
# qhasm: mulrax = t30_stack
# asm 1: movq <t30_stack=stack64#33,>mulrax=int64#7
# asm 2: movq <t30_stack=256(%rsp),>mulrax=%rax
movq 256(%rsp),%rax
# qhasm: (uint128) mulrdx mulrax = mulrax * t20_stack
# asm 1: mulq <t20_stack=stack64#13
# asm 2: mulq <t20_stack=96(%rsp)
mulq 96(%rsp)
# qhasm: carry? t90 += mulrax
# asm 1: add <mulrax=int64#7,<t90=int64#2
# asm 2: add <mulrax=%rax,<t90=%rsi
add %rax,%rsi
# qhasm: mulr01 += mulrdx + carry
# asm 1: adc <mulrdx=int64#3,<mulr01=int64#4
# asm 2: adc <mulrdx=%rdx,<mulr01=%rcx
adc %rdx,%rcx
# qhasm: mulrax = t30_stack
# asm 1: movq <t30_stack=stack64#33,>mulrax=int64#7
# asm 2: movq <t30_stack=256(%rsp),>mulrax=%rax
movq 256(%rsp),%rax
# qhasm: (uint128) mulrdx mulrax = mulrax * t21_stack
# asm 1: mulq <t21_stack=stack64#14
# asm 2: mulq <t21_stack=104(%rsp)
mulq 104(%rsp)
# qhasm: t91 = mulrax
# asm 1: mov <mulrax=int64#7,>t91=int64#5
# asm 2: mov <mulrax=%rax,>t91=%r8
mov %rax,%r8
# qhasm: mulr11 = mulrdx
# asm 1: mov <mulrdx=int64#3,>mulr11=int64#6
# asm 2: mov <mulrdx=%rdx,>mulr11=%r9
mov %rdx,%r9
# qhasm: mulrax = t30_stack
# asm 1: movq <t30_stack=stack64#33,>mulrax=int64#7
# asm 2: movq <t30_stack=256(%rsp),>mulrax=%rax
movq 256(%rsp),%rax
# qhasm: (uint128) mulrdx mulrax = mulrax * t22_stack
# asm 1: mulq <t22_stack=stack64#15
# asm 2: mulq <t22_stack=112(%rsp)
mulq 112(%rsp)
# qhasm: t92 = mulrax
# asm 1: mov <mulrax=int64#7,>t92=int64#8
# asm 2: mov <mulrax=%rax,>t92=%r10
mov %rax,%r10
# qhasm: mulr21 = mulrdx
# asm 1: mov <mulrdx=int64#3,>mulr21=int64#9
# asm 2: mov <mulrdx=%rdx,>mulr21=%r11
mov %rdx,%r11
# qhasm: mulrax = t30_stack
# asm 1: movq <t30_stack=stack64#33,>mulrax=int64#7
# asm 2: movq <t30_stack=256(%rsp),>mulrax=%rax
movq 256(%rsp),%rax
# qhasm: (uint128) mulrdx mulrax = mulrax * t23_stack
# asm 1: mulq <t23_stack=stack64#16
# asm 2: mulq <t23_stack=120(%rsp)
mulq 120(%rsp)
# qhasm: t93 = mulrax
# asm 1: mov <mulrax=int64#7,>t93=int64#10
# asm 2: mov <mulrax=%rax,>t93=%r12
mov %rax,%r12
# qhasm: mulr31 = mulrdx
# asm 1: mov <mulrdx=int64#3,>mulr31=int64#11
# asm 2: mov <mulrdx=%rdx,>mulr31=%r13
mov %rdx,%r13
# qhasm: mulrax = t30_stack
# asm 1: movq <t30_stack=stack64#33,>mulrax=int64#7
# asm 2: movq <t30_stack=256(%rsp),>mulrax=%rax
movq 256(%rsp),%rax
# qhasm: (uint128) mulrdx mulrax = mulrax * t24_stack
# asm 1: mulq <t24_stack=stack64#17
# asm 2: mulq <t24_stack=128(%rsp)
mulq 128(%rsp)
# qhasm: t94 = mulrax
# asm 1: mov <mulrax=int64#7,>t94=int64#12
# asm 2: mov <mulrax=%rax,>t94=%r14
mov %rax,%r14
# qhasm: mulr41 = mulrdx
# asm 1: mov <mulrdx=int64#3,>mulr41=int64#13
# asm 2: mov <mulrdx=%rdx,>mulr41=%r15
mov %rdx,%r15
# qhasm: mulrax = t31_stack
# asm 1: movq <t31_stack=stack64#34,>mulrax=int64#7
# asm 2: movq <t31_stack=264(%rsp),>mulrax=%rax
movq 264(%rsp),%rax
# qhasm: (uint128) mulrdx mulrax = mulrax * t20_stack
# asm 1: mulq <t20_stack=stack64#13
# asm 2: mulq <t20_stack=96(%rsp)
mulq 96(%rsp)
# qhasm: carry? t91 += mulrax
# asm 1: add <mulrax=int64#7,<t91=int64#5
# asm 2: add <mulrax=%rax,<t91=%r8
add %rax,%r8
# qhasm: mulr11 += mulrdx + carry
# asm 1: adc <mulrdx=int64#3,<mulr11=int64#6
# asm 2: adc <mulrdx=%rdx,<mulr11=%r9
adc %rdx,%r9
# qhasm: mulrax = t31_stack
# asm 1: movq <t31_stack=stack64#34,>mulrax=int64#7
# asm 2: movq <t31_stack=264(%rsp),>mulrax=%rax
movq 264(%rsp),%rax
# qhasm: (uint128) mulrdx mulrax = mulrax * t21_stack
# asm 1: mulq <t21_stack=stack64#14
# asm 2: mulq <t21_stack=104(%rsp)
mulq 104(%rsp)
# qhasm: carry? t92 += mulrax
# asm 1: add <mulrax=int64#7,<t92=int64#8
# asm 2: add <mulrax=%rax,<t92=%r10
add %rax,%r10
# qhasm: mulr21 += mulrdx + carry
# asm 1: adc <mulrdx=int64#3,<mulr21=int64#9
# asm 2: adc <mulrdx=%rdx,<mulr21=%r11
adc %rdx,%r11
# qhasm: mulrax = t31_stack
# asm 1: movq <t31_stack=stack64#34,>mulrax=int64#7
# asm 2: movq <t31_stack=264(%rsp),>mulrax=%rax
movq 264(%rsp),%rax
# qhasm: (uint128) mulrdx mulrax = mulrax * t22_stack
# asm 1: mulq <t22_stack=stack64#15
# asm 2: mulq <t22_stack=112(%rsp)
mulq 112(%rsp)
# qhasm: carry? t93 += mulrax
# asm 1: add <mulrax=int64#7,<t93=int64#10
# asm 2: add <mulrax=%rax,<t93=%r12
add %rax,%r12
# qhasm: mulr31 += mulrdx + carry
# asm 1: adc <mulrdx=int64#3,<mulr31=int64#11
# asm 2: adc <mulrdx=%rdx,<mulr31=%r13
adc %rdx,%r13
# qhasm: mulrax = t31_stack
# asm 1: movq <t31_stack=stack64#34,>mulrax=int64#7
# asm 2: movq <t31_stack=264(%rsp),>mulrax=%rax
movq 264(%rsp),%rax
# qhasm: (uint128) mulrdx mulrax = mulrax * t23_stack
# asm 1: mulq <t23_stack=stack64#16
# asm 2: mulq <t23_stack=120(%rsp)
mulq 120(%rsp)
# qhasm: carry? t94 += mulrax
# asm 1: add <mulrax=int64#7,<t94=int64#12
# asm 2: add <mulrax=%rax,<t94=%r14
add %rax,%r14
# qhasm: mulr41 += mulrdx + carry
# asm 1: adc <mulrdx=int64#3,<mulr41=int64#13
# asm 2: adc <mulrdx=%rdx,<mulr41=%r15
adc %rdx,%r15
# qhasm: mulrax = t31_stack
# asm 1: movq <t31_stack=stack64#34,>mulrax=int64#3
# asm 2: movq <t31_stack=264(%rsp),>mulrax=%rdx
movq 264(%rsp),%rdx
# qhasm: mulrax *= 19
# asm 1: imulq $19,<mulrax=int64#3,>mulrax=int64#7
# asm 2: imulq $19,<mulrax=%rdx,>mulrax=%rax
imulq $19,%rdx,%rax
# qhasm: (uint128) mulrdx mulrax = mulrax * t24_stack
# asm 1: mulq <t24_stack=stack64#17
# asm 2: mulq <t24_stack=128(%rsp)
mulq 128(%rsp)
# qhasm: carry? t90 += mulrax
# asm 1: add <mulrax=int64#7,<t90=int64#2
# asm 2: add <mulrax=%rax,<t90=%rsi
add %rax,%rsi
# qhasm: mulr01 += mulrdx + carry
# asm 1: adc <mulrdx=int64#3,<mulr01=int64#4
# asm 2: adc <mulrdx=%rdx,<mulr01=%rcx
adc %rdx,%rcx
# qhasm: mulrax = t32_stack
# asm 1: movq <t32_stack=stack64#35,>mulrax=int64#7
# asm 2: movq <t32_stack=272(%rsp),>mulrax=%rax
movq 272(%rsp),%rax
# qhasm: (uint128) mulrdx mulrax = mulrax * t20_stack
# asm 1: mulq <t20_stack=stack64#13
# asm 2: mulq <t20_stack=96(%rsp)
mulq 96(%rsp)
# qhasm: carry? t92 += mulrax
# asm 1: add <mulrax=int64#7,<t92=int64#8
# asm 2: add <mulrax=%rax,<t92=%r10
add %rax,%r10
# qhasm: mulr21 += mulrdx + carry
# asm 1: adc <mulrdx=int64#3,<mulr21=int64#9
# asm 2: adc <mulrdx=%rdx,<mulr21=%r11
adc %rdx,%r11
# qhasm: mulrax = t32_stack
# asm 1: movq <t32_stack=stack64#35,>mulrax=int64#7
# asm 2: movq <t32_stack=272(%rsp),>mulrax=%rax
movq 272(%rsp),%rax
# qhasm: (uint128) mulrdx mulrax = mulrax * t21_stack
# asm 1: mulq <t21_stack=stack64#14
# asm 2: mulq <t21_stack=104(%rsp)
mulq 104(%rsp)
# qhasm: carry? t93 += mulrax
# asm 1: add <mulrax=int64#7,<t93=int64#10
# asm 2: add <mulrax=%rax,<t93=%r12
add %rax,%r12
# qhasm: mulr31 += mulrdx + carry
# asm 1: adc <mulrdx=int64#3,<mulr31=int64#11
# asm 2: adc <mulrdx=%rdx,<mulr31=%r13
adc %rdx,%r13
# qhasm: mulrax = t32_stack
# asm 1: movq <t32_stack=stack64#35,>mulrax=int64#7
# asm 2: movq <t32_stack=272(%rsp),>mulrax=%rax
movq 272(%rsp),%rax
# qhasm: (uint128) mulrdx mulrax = mulrax * t22_stack
# asm 1: mulq <t22_stack=stack64#15
# asm 2: mulq <t22_stack=112(%rsp)
mulq 112(%rsp)
# qhasm: carry? t94 += mulrax
# asm 1: add <mulrax=int64#7,<t94=int64#12
# asm 2: add <mulrax=%rax,<t94=%r14
add %rax,%r14
# qhasm: mulr41 += mulrdx + carry
# asm 1: adc <mulrdx=int64#3,<mulr41=int64#13
# asm 2: adc <mulrdx=%rdx,<mulr41=%r15
adc %rdx,%r15
# qhasm: mulrax = t32_stack
# asm 1: movq <t32_stack=stack64#35,>mulrax=int64#3
# asm 2: movq <t32_stack=272(%rsp),>mulrax=%rdx
movq 272(%rsp),%rdx
# qhasm: mulrax *= 19
# asm 1: imulq $19,<mulrax=int64#3,>mulrax=int64#7
# asm 2: imulq $19,<mulrax=%rdx,>mulrax=%rax
imulq $19,%rdx,%rax
# qhasm: (uint128) mulrdx mulrax = mulrax * t23_stack
# asm 1: mulq <t23_stack=stack64#16
# asm 2: mulq <t23_stack=120(%rsp)
mulq 120(%rsp)
# qhasm: carry? t90 += mulrax
# asm 1: add <mulrax=int64#7,<t90=int64#2
# asm 2: add <mulrax=%rax,<t90=%rsi
add %rax,%rsi
# qhasm: mulr01 += mulrdx + carry
# asm 1: adc <mulrdx=int64#3,<mulr01=int64#4
# asm 2: adc <mulrdx=%rdx,<mulr01=%rcx
adc %rdx,%rcx
# qhasm: mulrax = t32_stack
# asm 1: movq <t32_stack=stack64#35,>mulrax=int64#3
# asm 2: movq <t32_stack=272(%rsp),>mulrax=%rdx
movq 272(%rsp),%rdx
# qhasm: mulrax *= 19
# asm 1: imulq $19,<mulrax=int64#3,>mulrax=int64#7
# asm 2: imulq $19,<mulrax=%rdx,>mulrax=%rax
imulq $19,%rdx,%rax
# qhasm: (uint128) mulrdx mulrax = mulrax * t24_stack
# asm 1: mulq <t24_stack=stack64#17
# asm 2: mulq <t24_stack=128(%rsp)
mulq 128(%rsp)
# qhasm: carry? t91 += mulrax
# asm 1: add <mulrax=int64#7,<t91=int64#5
# asm 2: add <mulrax=%rax,<t91=%r8
add %rax,%r8
# qhasm: mulr11 += mulrdx + carry
# asm 1: adc <mulrdx=int64#3,<mulr11=int64#6
# asm 2: adc <mulrdx=%rdx,<mulr11=%r9
adc %rdx,%r9
# qhasm: mulrax = t33_stack
# asm 1: movq <t33_stack=stack64#36,>mulrax=int64#7
# asm 2: movq <t33_stack=280(%rsp),>mulrax=%rax
movq 280(%rsp),%rax
# qhasm: (uint128) mulrdx mulrax = mulrax * t20_stack
# asm 1: mulq <t20_stack=stack64#13
# asm 2: mulq <t20_stack=96(%rsp)
mulq 96(%rsp)
# qhasm: carry? t93 += mulrax
# asm 1: add <mulrax=int64#7,<t93=int64#10
# asm 2: add <mulrax=%rax,<t93=%r12
add %rax,%r12
# qhasm: mulr31 += mulrdx + carry
# asm 1: adc <mulrdx=int64#3,<mulr31=int64#11
# asm 2: adc <mulrdx=%rdx,<mulr31=%r13
adc %rdx,%r13
# qhasm: mulrax = t33_stack
# asm 1: movq <t33_stack=stack64#36,>mulrax=int64#7
# asm 2: movq <t33_stack=280(%rsp),>mulrax=%rax
movq 280(%rsp),%rax
# qhasm: (uint128) mulrdx mulrax = mulrax * t21_stack
# asm 1: mulq <t21_stack=stack64#14
# asm 2: mulq <t21_stack=104(%rsp)
mulq 104(%rsp)
# qhasm: carry? t94 += mulrax
# asm 1: add <mulrax=int64#7,<t94=int64#12
# asm 2: add <mulrax=%rax,<t94=%r14
add %rax,%r14
# qhasm: mulr41 += mulrdx + carry
# asm 1: adc <mulrdx=int64#3,<mulr41=int64#13
# asm 2: adc <mulrdx=%rdx,<mulr41=%r15
adc %rdx,%r15
# qhasm: mulrax = mulx319_stack
# asm 1: movq <mulx319_stack=stack64#43,>mulrax=int64#7
# asm 2: movq <mulx319_stack=336(%rsp),>mulrax=%rax
movq 336(%rsp),%rax
# qhasm: (uint128) mulrdx mulrax = mulrax * t23_stack
# asm 1: mulq <t23_stack=stack64#16
# asm 2: mulq <t23_stack=120(%rsp)
mulq 120(%rsp)
# qhasm: carry? t91 += mulrax
# asm 1: add <mulrax=int64#7,<t91=int64#5
# asm 2: add <mulrax=%rax,<t91=%r8
add %rax,%r8
# qhasm: mulr11 += mulrdx + carry
# asm 1: adc <mulrdx=int64#3,<mulr11=int64#6
# asm 2: adc <mulrdx=%rdx,<mulr11=%r9
adc %rdx,%r9
# qhasm: mulrax = mulx319_stack
# asm 1: movq <mulx319_stack=stack64#43,>mulrax=int64#7
# asm 2: movq <mulx319_stack=336(%rsp),>mulrax=%rax
movq 336(%rsp),%rax
# qhasm: (uint128) mulrdx mulrax = mulrax * t24_stack
# asm 1: mulq <t24_stack=stack64#17
# asm 2: mulq <t24_stack=128(%rsp)
mulq 128(%rsp)
# qhasm: carry? t92 += mulrax
# asm 1: add <mulrax=int64#7,<t92=int64#8
# asm 2: add <mulrax=%rax,<t92=%r10
add %rax,%r10
# qhasm: mulr21 += mulrdx + carry
# asm 1: adc <mulrdx=int64#3,<mulr21=int64#9
# asm 2: adc <mulrdx=%rdx,<mulr21=%r11
adc %rdx,%r11
# qhasm: mulrax = t34_stack
# asm 1: movq <t34_stack=stack64#37,>mulrax=int64#7
# asm 2: movq <t34_stack=288(%rsp),>mulrax=%rax
movq 288(%rsp),%rax
# qhasm: (uint128) mulrdx mulrax = mulrax * t20_stack
# asm 1: mulq <t20_stack=stack64#13
# asm 2: mulq <t20_stack=96(%rsp)
mulq 96(%rsp)
# qhasm: carry? t94 += mulrax
# asm 1: add <mulrax=int64#7,<t94=int64#12
# asm 2: add <mulrax=%rax,<t94=%r14
add %rax,%r14
# qhasm: mulr41 += mulrdx + carry
# asm 1: adc <mulrdx=int64#3,<mulr41=int64#13
# asm 2: adc <mulrdx=%rdx,<mulr41=%r15
adc %rdx,%r15
# qhasm: mulrax = mulx419_stack
# asm 1: movq <mulx419_stack=stack64#44,>mulrax=int64#7
# asm 2: movq <mulx419_stack=344(%rsp),>mulrax=%rax
movq 344(%rsp),%rax
# qhasm: (uint128) mulrdx mulrax = mulrax * t22_stack
# asm 1: mulq <t22_stack=stack64#15
# asm 2: mulq <t22_stack=112(%rsp)
mulq 112(%rsp)
# qhasm: carry? t91 += mulrax
# asm 1: add <mulrax=int64#7,<t91=int64#5
# asm 2: add <mulrax=%rax,<t91=%r8
add %rax,%r8
# qhasm: mulr11 += mulrdx + carry
# asm 1: adc <mulrdx=int64#3,<mulr11=int64#6
# asm 2: adc <mulrdx=%rdx,<mulr11=%r9
adc %rdx,%r9
# qhasm: mulrax = mulx419_stack
# asm 1: movq <mulx419_stack=stack64#44,>mulrax=int64#7
# asm 2: movq <mulx419_stack=344(%rsp),>mulrax=%rax
movq 344(%rsp),%rax
# qhasm: (uint128) mulrdx mulrax = mulrax * t23_stack
# asm 1: mulq <t23_stack=stack64#16
# asm 2: mulq <t23_stack=120(%rsp)
mulq 120(%rsp)
# qhasm: carry? t92 += mulrax
# asm 1: add <mulrax=int64#7,<t92=int64#8
# asm 2: add <mulrax=%rax,<t92=%r10
add %rax,%r10
# qhasm: mulr21 += mulrdx + carry
# asm 1: adc <mulrdx=int64#3,<mulr21=int64#9
# asm 2: adc <mulrdx=%rdx,<mulr21=%r11
adc %rdx,%r11
# qhasm: mulrax = mulx419_stack
# asm 1: movq <mulx419_stack=stack64#44,>mulrax=int64#7
# asm 2: movq <mulx419_stack=344(%rsp),>mulrax=%rax
movq 344(%rsp),%rax
# qhasm: (uint128) mulrdx mulrax = mulrax * t24_stack
# asm 1: mulq <t24_stack=stack64#17
# asm 2: mulq <t24_stack=128(%rsp)
mulq 128(%rsp)
# qhasm: carry? t93 += mulrax
# asm 1: add <mulrax=int64#7,<t93=int64#10
# asm 2: add <mulrax=%rax,<t93=%r12
add %rax,%r12
# qhasm: mulr31 += mulrdx + carry
# asm 1: adc <mulrdx=int64#3,<mulr31=int64#11
# asm 2: adc <mulrdx=%rdx,<mulr31=%r13
adc %rdx,%r13
# qhasm: mulredmask = *(uint64 *) &CRYPTO_SHARED_NAMESPACE(REDMASK51)
# asm 1: movq CRYPTO_SHARED_NAMESPACE(REDMASK51),>mulredmask=int64#3
# asm 2: movq CRYPTO_SHARED_NAMESPACE(REDMASK51),>mulredmask=%rdx
movq CRYPTO_SHARED_NAMESPACE(REDMASK51)(%rip),%rdx
# qhasm: mulr01 = (mulr01.t90) << 13
# asm 1: shld $13,<t90=int64#2,<mulr01=int64#4
# asm 2: shld $13,<t90=%rsi,<mulr01=%rcx
shld $13,%rsi,%rcx
# qhasm: t90 &= mulredmask
# asm 1: and <mulredmask=int64#3,<t90=int64#2
# asm 2: and <mulredmask=%rdx,<t90=%rsi
and %rdx,%rsi
# qhasm: mulr11 = (mulr11.t91) << 13
# asm 1: shld $13,<t91=int64#5,<mulr11=int64#6
# asm 2: shld $13,<t91=%r8,<mulr11=%r9
shld $13,%r8,%r9
# qhasm: t91 &= mulredmask
# asm 1: and <mulredmask=int64#3,<t91=int64#5
# asm 2: and <mulredmask=%rdx,<t91=%r8
and %rdx,%r8
# qhasm: t91 += mulr01
# asm 1: add <mulr01=int64#4,<t91=int64#5
# asm 2: add <mulr01=%rcx,<t91=%r8
add %rcx,%r8
# qhasm: mulr21 = (mulr21.t92) << 13
# asm 1: shld $13,<t92=int64#8,<mulr21=int64#9
# asm 2: shld $13,<t92=%r10,<mulr21=%r11
shld $13,%r10,%r11
# qhasm: t92 &= mulredmask
# asm 1: and <mulredmask=int64#3,<t92=int64#8
# asm 2: and <mulredmask=%rdx,<t92=%r10
and %rdx,%r10
# qhasm: t92 += mulr11
# asm 1: add <mulr11=int64#6,<t92=int64#8
# asm 2: add <mulr11=%r9,<t92=%r10
add %r9,%r10
# qhasm: mulr31 = (mulr31.t93) << 13
# asm 1: shld $13,<t93=int64#10,<mulr31=int64#11
# asm 2: shld $13,<t93=%r12,<mulr31=%r13
shld $13,%r12,%r13
# qhasm: t93 &= mulredmask
# asm 1: and <mulredmask=int64#3,<t93=int64#10
# asm 2: and <mulredmask=%rdx,<t93=%r12
and %rdx,%r12
# qhasm: t93 += mulr21
# asm 1: add <mulr21=int64#9,<t93=int64#10
# asm 2: add <mulr21=%r11,<t93=%r12
add %r11,%r12
# qhasm: mulr41 = (mulr41.t94) << 13
# asm 1: shld $13,<t94=int64#12,<mulr41=int64#13
# asm 2: shld $13,<t94=%r14,<mulr41=%r15
shld $13,%r14,%r15
# qhasm: t94 &= mulredmask
# asm 1: and <mulredmask=int64#3,<t94=int64#12
# asm 2: and <mulredmask=%rdx,<t94=%r14
and %rdx,%r14
# qhasm: t94 += mulr31
# asm 1: add <mulr31=int64#11,<t94=int64#12
# asm 2: add <mulr31=%r13,<t94=%r14
add %r13,%r14
# qhasm: mulr41 = mulr41 * 19
# asm 1: imulq $19,<mulr41=int64#13,>mulr41=int64#4
# asm 2: imulq $19,<mulr41=%r15,>mulr41=%rcx
imulq $19,%r15,%rcx
# qhasm: t90 += mulr41
# asm 1: add <mulr41=int64#4,<t90=int64#2
# asm 2: add <mulr41=%rcx,<t90=%rsi
add %rcx,%rsi
# qhasm: mult = t90
# asm 1: mov <t90=int64#2,>mult=int64#4
# asm 2: mov <t90=%rsi,>mult=%rcx
mov %rsi,%rcx
# qhasm: (uint64) mult >>= 51
# asm 1: shr $51,<mult=int64#4
# asm 2: shr $51,<mult=%rcx
shr $51,%rcx
# qhasm: mult += t91
# asm 1: add <t91=int64#5,<mult=int64#4
# asm 2: add <t91=%r8,<mult=%rcx
add %r8,%rcx
# qhasm: t91 = mult
# asm 1: mov <mult=int64#4,>t91=int64#5
# asm 2: mov <mult=%rcx,>t91=%r8
mov %rcx,%r8
# qhasm: (uint64) mult >>= 51
# asm 1: shr $51,<mult=int64#4
# asm 2: shr $51,<mult=%rcx
shr $51,%rcx
# qhasm: t90 &= mulredmask
# asm 1: and <mulredmask=int64#3,<t90=int64#2
# asm 2: and <mulredmask=%rdx,<t90=%rsi
and %rdx,%rsi
# qhasm: mult += t92
# asm 1: add <t92=int64#8,<mult=int64#4
# asm 2: add <t92=%r10,<mult=%rcx
add %r10,%rcx
# qhasm: t92 = mult
# asm 1: mov <mult=int64#4,>t92=int64#6
# asm 2: mov <mult=%rcx,>t92=%r9
mov %rcx,%r9
# qhasm: (uint64) mult >>= 51
# asm 1: shr $51,<mult=int64#4
# asm 2: shr $51,<mult=%rcx
shr $51,%rcx
# qhasm: t91 &= mulredmask
# asm 1: and <mulredmask=int64#3,<t91=int64#5
# asm 2: and <mulredmask=%rdx,<t91=%r8
and %rdx,%r8
# qhasm: mult += t93
# asm 1: add <t93=int64#10,<mult=int64#4
# asm 2: add <t93=%r12,<mult=%rcx
add %r12,%rcx
# qhasm: t93 = mult
# asm 1: mov <mult=int64#4,>t93=int64#7
# asm 2: mov <mult=%rcx,>t93=%rax
mov %rcx,%rax
# qhasm: (uint64) mult >>= 51
# asm 1: shr $51,<mult=int64#4
# asm 2: shr $51,<mult=%rcx
shr $51,%rcx
# qhasm: t92 &= mulredmask
# asm 1: and <mulredmask=int64#3,<t92=int64#6
# asm 2: and <mulredmask=%rdx,<t92=%r9
and %rdx,%r9
# qhasm: mult += t94
# asm 1: add <t94=int64#12,<mult=int64#4
# asm 2: add <t94=%r14,<mult=%rcx
add %r14,%rcx
# qhasm: t94 = mult
# asm 1: mov <mult=int64#4,>t94=int64#8
# asm 2: mov <mult=%rcx,>t94=%r10
mov %rcx,%r10
# qhasm: (uint64) mult >>= 51
# asm 1: shr $51,<mult=int64#4
# asm 2: shr $51,<mult=%rcx
shr $51,%rcx
# qhasm: t93 &= mulredmask
# asm 1: and <mulredmask=int64#3,<t93=int64#7
# asm 2: and <mulredmask=%rdx,<t93=%rax
and %rdx,%rax
# qhasm: mult *= 19
# asm 1: imulq $19,<mult=int64#4,>mult=int64#4
# asm 2: imulq $19,<mult=%rcx,>mult=%rcx
imulq $19,%rcx,%rcx
# qhasm: t90 += mult
# asm 1: add <mult=int64#4,<t90=int64#2
# asm 2: add <mult=%rcx,<t90=%rsi
add %rcx,%rsi
# qhasm: t94 &= mulredmask
# asm 1: and <mulredmask=int64#3,<t94=int64#8
# asm 2: and <mulredmask=%rdx,<t94=%r10
and %rdx,%r10
# qhasm: t90_stack = t90
# asm 1: movq <t90=int64#2,>t90_stack=stack64#13
# asm 2: movq <t90=%rsi,>t90_stack=96(%rsp)
movq %rsi,96(%rsp)
# qhasm: t91_stack = t91
# asm 1: movq <t91=int64#5,>t91_stack=stack64#14
# asm 2: movq <t91=%r8,>t91_stack=104(%rsp)
movq %r8,104(%rsp)
# qhasm: t92_stack = t92
# asm 1: movq <t92=int64#6,>t92_stack=stack64#15
# asm 2: movq <t92=%r9,>t92_stack=112(%rsp)
movq %r9,112(%rsp)
# qhasm: t93_stack = t93
# asm 1: movq <t93=int64#7,>t93_stack=stack64#16
# asm 2: movq <t93=%rax,>t93_stack=120(%rsp)
movq %rax,120(%rsp)
# qhasm: t94_stack = t94
# asm 1: movq <t94=int64#8,>t94_stack=stack64#17
# asm 2: movq <t94=%r10,>t94_stack=128(%rsp)
movq %r10,128(%rsp)
# qhasm: mulrax = t43_stack
# asm 1: movq <t43_stack=stack64#41,>mulrax=int64#2
# asm 2: movq <t43_stack=320(%rsp),>mulrax=%rsi
movq 320(%rsp),%rsi
# qhasm: mulrax *= 19
# asm 1: imulq $19,<mulrax=int64#2,>mulrax=int64#7
# asm 2: imulq $19,<mulrax=%rsi,>mulrax=%rax
imulq $19,%rsi,%rax
# qhasm: mulx319_stack = mulrax
# asm 1: movq <mulrax=int64#7,>mulx319_stack=stack64#33
# asm 2: movq <mulrax=%rax,>mulx319_stack=256(%rsp)
movq %rax,256(%rsp)
# qhasm: (uint128) mulrdx mulrax = mulrax * t12_stack
# asm 1: mulq <t12_stack=stack64#10
# asm 2: mulq <t12_stack=72(%rsp)
mulq 72(%rsp)
# qhasm: t80 = mulrax
# asm 1: mov <mulrax=int64#7,>t80=int64#2
# asm 2: mov <mulrax=%rax,>t80=%rsi
mov %rax,%rsi
# qhasm: mulr01 = mulrdx
# asm 1: mov <mulrdx=int64#3,>mulr01=int64#4
# asm 2: mov <mulrdx=%rdx,>mulr01=%rcx
mov %rdx,%rcx
# qhasm: mulrax = t44_stack
# asm 1: movq <t44_stack=stack64#42,>mulrax=int64#3
# asm 2: movq <t44_stack=328(%rsp),>mulrax=%rdx
movq 328(%rsp),%rdx
# qhasm: mulrax *= 19
# asm 1: imulq $19,<mulrax=int64#3,>mulrax=int64#7
# asm 2: imulq $19,<mulrax=%rdx,>mulrax=%rax
imulq $19,%rdx,%rax
# qhasm: mulx419_stack = mulrax
# asm 1: movq <mulrax=int64#7,>mulx419_stack=stack64#34
# asm 2: movq <mulrax=%rax,>mulx419_stack=264(%rsp)
movq %rax,264(%rsp)
# qhasm: (uint128) mulrdx mulrax = mulrax * t11_stack
# asm 1: mulq <t11_stack=stack64#9
# asm 2: mulq <t11_stack=64(%rsp)
mulq 64(%rsp)
# qhasm: carry? t80 += mulrax
# asm 1: add <mulrax=int64#7,<t80=int64#2
# asm 2: add <mulrax=%rax,<t80=%rsi
add %rax,%rsi
# qhasm: mulr01 += mulrdx + carry
# asm 1: adc <mulrdx=int64#3,<mulr01=int64#4
# asm 2: adc <mulrdx=%rdx,<mulr01=%rcx
adc %rdx,%rcx
# qhasm: mulrax = t40_stack
# asm 1: movq <t40_stack=stack64#38,>mulrax=int64#7
# asm 2: movq <t40_stack=296(%rsp),>mulrax=%rax
movq 296(%rsp),%rax
# qhasm: (uint128) mulrdx mulrax = mulrax * t10_stack
# asm 1: mulq <t10_stack=stack64#8
# asm 2: mulq <t10_stack=56(%rsp)
mulq 56(%rsp)
# qhasm: carry? t80 += mulrax
# asm 1: add <mulrax=int64#7,<t80=int64#2
# asm 2: add <mulrax=%rax,<t80=%rsi
add %rax,%rsi
# qhasm: mulr01 += mulrdx + carry
# asm 1: adc <mulrdx=int64#3,<mulr01=int64#4
# asm 2: adc <mulrdx=%rdx,<mulr01=%rcx
adc %rdx,%rcx
# qhasm: mulrax = t40_stack
# asm 1: movq <t40_stack=stack64#38,>mulrax=int64#7
# asm 2: movq <t40_stack=296(%rsp),>mulrax=%rax
movq 296(%rsp),%rax
# qhasm: (uint128) mulrdx mulrax = mulrax * t11_stack
# asm 1: mulq <t11_stack=stack64#9
# asm 2: mulq <t11_stack=64(%rsp)
mulq 64(%rsp)
# qhasm: t81 = mulrax
# asm 1: mov <mulrax=int64#7,>t81=int64#5
# asm 2: mov <mulrax=%rax,>t81=%r8
mov %rax,%r8
# qhasm: mulr11 = mulrdx
# asm 1: mov <mulrdx=int64#3,>mulr11=int64#6
# asm 2: mov <mulrdx=%rdx,>mulr11=%r9
mov %rdx,%r9
# qhasm: mulrax = t40_stack
# asm 1: movq <t40_stack=stack64#38,>mulrax=int64#7
# asm 2: movq <t40_stack=296(%rsp),>mulrax=%rax
movq 296(%rsp),%rax
# qhasm: (uint128) mulrdx mulrax = mulrax * t12_stack
# asm 1: mulq <t12_stack=stack64#10
# asm 2: mulq <t12_stack=72(%rsp)
mulq 72(%rsp)
# qhasm: t82 = mulrax
# asm 1: mov <mulrax=int64#7,>t82=int64#8
# asm 2: mov <mulrax=%rax,>t82=%r10
mov %rax,%r10
# qhasm: mulr21 = mulrdx
# asm 1: mov <mulrdx=int64#3,>mulr21=int64#9
# asm 2: mov <mulrdx=%rdx,>mulr21=%r11
mov %rdx,%r11
# qhasm: mulrax = t40_stack
# asm 1: movq <t40_stack=stack64#38,>mulrax=int64#7
# asm 2: movq <t40_stack=296(%rsp),>mulrax=%rax
movq 296(%rsp),%rax
# qhasm: (uint128) mulrdx mulrax = mulrax * t13_stack
# asm 1: mulq <t13_stack=stack64#11
# asm 2: mulq <t13_stack=80(%rsp)
mulq 80(%rsp)
# qhasm: t83 = mulrax
# asm 1: mov <mulrax=int64#7,>t83=int64#10
# asm 2: mov <mulrax=%rax,>t83=%r12
mov %rax,%r12
# qhasm: mulr31 = mulrdx
# asm 1: mov <mulrdx=int64#3,>mulr31=int64#11
# asm 2: mov <mulrdx=%rdx,>mulr31=%r13
mov %rdx,%r13
# qhasm: mulrax = t40_stack
# asm 1: movq <t40_stack=stack64#38,>mulrax=int64#7
# asm 2: movq <t40_stack=296(%rsp),>mulrax=%rax
movq 296(%rsp),%rax
# qhasm: (uint128) mulrdx mulrax = mulrax * t14_stack
# asm 1: mulq <t14_stack=stack64#12
# asm 2: mulq <t14_stack=88(%rsp)
mulq 88(%rsp)
# qhasm: t84 = mulrax
# asm 1: mov <mulrax=int64#7,>t84=int64#12
# asm 2: mov <mulrax=%rax,>t84=%r14
mov %rax,%r14
# qhasm: mulr41 = mulrdx
# asm 1: mov <mulrdx=int64#3,>mulr41=int64#13
# asm 2: mov <mulrdx=%rdx,>mulr41=%r15
mov %rdx,%r15
# qhasm: mulrax = t41_stack
# asm 1: movq <t41_stack=stack64#39,>mulrax=int64#7
# asm 2: movq <t41_stack=304(%rsp),>mulrax=%rax
movq 304(%rsp),%rax
# qhasm: (uint128) mulrdx mulrax = mulrax * t10_stack
# asm 1: mulq <t10_stack=stack64#8
# asm 2: mulq <t10_stack=56(%rsp)
mulq 56(%rsp)
# qhasm: carry? t81 += mulrax
# asm 1: add <mulrax=int64#7,<t81=int64#5
# asm 2: add <mulrax=%rax,<t81=%r8
add %rax,%r8
# qhasm: mulr11 += mulrdx + carry
# asm 1: adc <mulrdx=int64#3,<mulr11=int64#6
# asm 2: adc <mulrdx=%rdx,<mulr11=%r9
adc %rdx,%r9
# qhasm: mulrax = t41_stack
# asm 1: movq <t41_stack=stack64#39,>mulrax=int64#7
# asm 2: movq <t41_stack=304(%rsp),>mulrax=%rax
movq 304(%rsp),%rax
# qhasm: (uint128) mulrdx mulrax = mulrax * t11_stack
# asm 1: mulq <t11_stack=stack64#9
# asm 2: mulq <t11_stack=64(%rsp)
mulq 64(%rsp)
# qhasm: carry? t82 += mulrax
# asm 1: add <mulrax=int64#7,<t82=int64#8
# asm 2: add <mulrax=%rax,<t82=%r10
add %rax,%r10
# qhasm: mulr21 += mulrdx + carry
# asm 1: adc <mulrdx=int64#3,<mulr21=int64#9
# asm 2: adc <mulrdx=%rdx,<mulr21=%r11
adc %rdx,%r11
# qhasm: mulrax = t41_stack
# asm 1: movq <t41_stack=stack64#39,>mulrax=int64#7
# asm 2: movq <t41_stack=304(%rsp),>mulrax=%rax
movq 304(%rsp),%rax
# qhasm: (uint128) mulrdx mulrax = mulrax * t12_stack
# asm 1: mulq <t12_stack=stack64#10
# asm 2: mulq <t12_stack=72(%rsp)
mulq 72(%rsp)
# qhasm: carry? t83 += mulrax
# asm 1: add <mulrax=int64#7,<t83=int64#10
# asm 2: add <mulrax=%rax,<t83=%r12
add %rax,%r12
# qhasm: mulr31 += mulrdx + carry
# asm 1: adc <mulrdx=int64#3,<mulr31=int64#11
# asm 2: adc <mulrdx=%rdx,<mulr31=%r13
adc %rdx,%r13
# qhasm: mulrax = t41_stack
# asm 1: movq <t41_stack=stack64#39,>mulrax=int64#7
# asm 2: movq <t41_stack=304(%rsp),>mulrax=%rax
movq 304(%rsp),%rax
# qhasm: (uint128) mulrdx mulrax = mulrax * t13_stack
# asm 1: mulq <t13_stack=stack64#11
# asm 2: mulq <t13_stack=80(%rsp)
mulq 80(%rsp)
# qhasm: carry? t84 += mulrax
# asm 1: add <mulrax=int64#7,<t84=int64#12
# asm 2: add <mulrax=%rax,<t84=%r14
add %rax,%r14
# qhasm: mulr41 += mulrdx + carry
# asm 1: adc <mulrdx=int64#3,<mulr41=int64#13
# asm 2: adc <mulrdx=%rdx,<mulr41=%r15
adc %rdx,%r15
# qhasm: mulrax = t41_stack
# asm 1: movq <t41_stack=stack64#39,>mulrax=int64#3
# asm 2: movq <t41_stack=304(%rsp),>mulrax=%rdx
movq 304(%rsp),%rdx
# qhasm: mulrax *= 19
# asm 1: imulq $19,<mulrax=int64#3,>mulrax=int64#7
# asm 2: imulq $19,<mulrax=%rdx,>mulrax=%rax
imulq $19,%rdx,%rax
# qhasm: (uint128) mulrdx mulrax = mulrax * t14_stack
# asm 1: mulq <t14_stack=stack64#12
# asm 2: mulq <t14_stack=88(%rsp)
mulq 88(%rsp)
# qhasm: carry? t80 += mulrax
# asm 1: add <mulrax=int64#7,<t80=int64#2
# asm 2: add <mulrax=%rax,<t80=%rsi
add %rax,%rsi
# qhasm: mulr01 += mulrdx + carry
# asm 1: adc <mulrdx=int64#3,<mulr01=int64#4
# asm 2: adc <mulrdx=%rdx,<mulr01=%rcx
adc %rdx,%rcx
# qhasm: mulrax = t42_stack
# asm 1: movq <t42_stack=stack64#40,>mulrax=int64#7
# asm 2: movq <t42_stack=312(%rsp),>mulrax=%rax
movq 312(%rsp),%rax
# qhasm: (uint128) mulrdx mulrax = mulrax * t10_stack
# asm 1: mulq <t10_stack=stack64#8
# asm 2: mulq <t10_stack=56(%rsp)
mulq 56(%rsp)
# qhasm: carry? t82 += mulrax
# asm 1: add <mulrax=int64#7,<t82=int64#8
# asm 2: add <mulrax=%rax,<t82=%r10
add %rax,%r10
# qhasm: mulr21 += mulrdx + carry
# asm 1: adc <mulrdx=int64#3,<mulr21=int64#9
# asm 2: adc <mulrdx=%rdx,<mulr21=%r11
adc %rdx,%r11
# qhasm: mulrax = t42_stack
# asm 1: movq <t42_stack=stack64#40,>mulrax=int64#7
# asm 2: movq <t42_stack=312(%rsp),>mulrax=%rax
movq 312(%rsp),%rax
# qhasm: (uint128) mulrdx mulrax = mulrax * t11_stack
# asm 1: mulq <t11_stack=stack64#9
# asm 2: mulq <t11_stack=64(%rsp)
mulq 64(%rsp)
# qhasm: carry? t83 += mulrax
# asm 1: add <mulrax=int64#7,<t83=int64#10
# asm 2: add <mulrax=%rax,<t83=%r12
add %rax,%r12
# qhasm: mulr31 += mulrdx + carry
# asm 1: adc <mulrdx=int64#3,<mulr31=int64#11
# asm 2: adc <mulrdx=%rdx,<mulr31=%r13
adc %rdx,%r13
# qhasm: mulrax = t42_stack
# asm 1: movq <t42_stack=stack64#40,>mulrax=int64#7
# asm 2: movq <t42_stack=312(%rsp),>mulrax=%rax
movq 312(%rsp),%rax
# qhasm: (uint128) mulrdx mulrax = mulrax * t12_stack
# asm 1: mulq <t12_stack=stack64#10
# asm 2: mulq <t12_stack=72(%rsp)
mulq 72(%rsp)
# qhasm: carry? t84 += mulrax
# asm 1: add <mulrax=int64#7,<t84=int64#12
# asm 2: add <mulrax=%rax,<t84=%r14
add %rax,%r14
# qhasm: mulr41 += mulrdx + carry
# asm 1: adc <mulrdx=int64#3,<mulr41=int64#13
# asm 2: adc <mulrdx=%rdx,<mulr41=%r15
adc %rdx,%r15
# qhasm: mulrax = t42_stack
# asm 1: movq <t42_stack=stack64#40,>mulrax=int64#3
# asm 2: movq <t42_stack=312(%rsp),>mulrax=%rdx
movq 312(%rsp),%rdx
# qhasm: mulrax *= 19
# asm 1: imulq $19,<mulrax=int64#3,>mulrax=int64#7
# asm 2: imulq $19,<mulrax=%rdx,>mulrax=%rax
imulq $19,%rdx,%rax
# qhasm: (uint128) mulrdx mulrax = mulrax * t13_stack
# asm 1: mulq <t13_stack=stack64#11
# asm 2: mulq <t13_stack=80(%rsp)
mulq 80(%rsp)
# qhasm: carry? t80 += mulrax
# asm 1: add <mulrax=int64#7,<t80=int64#2
# asm 2: add <mulrax=%rax,<t80=%rsi
add %rax,%rsi
# qhasm: mulr01 += mulrdx + carry
# asm 1: adc <mulrdx=int64#3,<mulr01=int64#4
# asm 2: adc <mulrdx=%rdx,<mulr01=%rcx
adc %rdx,%rcx
# qhasm: mulrax = t42_stack
# asm 1: movq <t42_stack=stack64#40,>mulrax=int64#3
# asm 2: movq <t42_stack=312(%rsp),>mulrax=%rdx
movq 312(%rsp),%rdx
# qhasm: mulrax *= 19
# asm 1: imulq $19,<mulrax=int64#3,>mulrax=int64#7
# asm 2: imulq $19,<mulrax=%rdx,>mulrax=%rax
imulq $19,%rdx,%rax
# qhasm: (uint128) mulrdx mulrax = mulrax * t14_stack
# asm 1: mulq <t14_stack=stack64#12
# asm 2: mulq <t14_stack=88(%rsp)
mulq 88(%rsp)
# qhasm: carry? t81 += mulrax
# asm 1: add <mulrax=int64#7,<t81=int64#5
# asm 2: add <mulrax=%rax,<t81=%r8
add %rax,%r8
# qhasm: mulr11 += mulrdx + carry
# asm 1: adc <mulrdx=int64#3,<mulr11=int64#6
# asm 2: adc <mulrdx=%rdx,<mulr11=%r9
adc %rdx,%r9
# qhasm: mulrax = t43_stack
# asm 1: movq <t43_stack=stack64#41,>mulrax=int64#7
# asm 2: movq <t43_stack=320(%rsp),>mulrax=%rax
movq 320(%rsp),%rax
# qhasm: (uint128) mulrdx mulrax = mulrax * t10_stack
# asm 1: mulq <t10_stack=stack64#8
# asm 2: mulq <t10_stack=56(%rsp)
mulq 56(%rsp)
# qhasm: carry? t83 += mulrax
# asm 1: add <mulrax=int64#7,<t83=int64#10
# asm 2: add <mulrax=%rax,<t83=%r12
add %rax,%r12
# qhasm: mulr31 += mulrdx + carry
# asm 1: adc <mulrdx=int64#3,<mulr31=int64#11
# asm 2: adc <mulrdx=%rdx,<mulr31=%r13
adc %rdx,%r13
# qhasm: mulrax = t43_stack
# asm 1: movq <t43_stack=stack64#41,>mulrax=int64#7
# asm 2: movq <t43_stack=320(%rsp),>mulrax=%rax
movq 320(%rsp),%rax
# qhasm: (uint128) mulrdx mulrax = mulrax * t11_stack
# asm 1: mulq <t11_stack=stack64#9
# asm 2: mulq <t11_stack=64(%rsp)
mulq 64(%rsp)
# qhasm: carry? t84 += mulrax
# asm 1: add <mulrax=int64#7,<t84=int64#12
# asm 2: add <mulrax=%rax,<t84=%r14
add %rax,%r14
# qhasm: mulr41 += mulrdx + carry
# asm 1: adc <mulrdx=int64#3,<mulr41=int64#13
# asm 2: adc <mulrdx=%rdx,<mulr41=%r15
adc %rdx,%r15
# qhasm: mulrax = mulx319_stack
# asm 1: movq <mulx319_stack=stack64#33,>mulrax=int64#7
# asm 2: movq <mulx319_stack=256(%rsp),>mulrax=%rax
movq 256(%rsp),%rax
# qhasm: (uint128) mulrdx mulrax = mulrax * t13_stack
# asm 1: mulq <t13_stack=stack64#11
# asm 2: mulq <t13_stack=80(%rsp)
mulq 80(%rsp)
# qhasm: carry? t81 += mulrax
# asm 1: add <mulrax=int64#7,<t81=int64#5
# asm 2: add <mulrax=%rax,<t81=%r8
add %rax,%r8
# qhasm: mulr11 += mulrdx + carry
# asm 1: adc <mulrdx=int64#3,<mulr11=int64#6
# asm 2: adc <mulrdx=%rdx,<mulr11=%r9
adc %rdx,%r9
# qhasm: mulrax = mulx319_stack
# asm 1: movq <mulx319_stack=stack64#33,>mulrax=int64#7
# asm 2: movq <mulx319_stack=256(%rsp),>mulrax=%rax
movq 256(%rsp),%rax
# qhasm: (uint128) mulrdx mulrax = mulrax * t14_stack
# asm 1: mulq <t14_stack=stack64#12
# asm 2: mulq <t14_stack=88(%rsp)
mulq 88(%rsp)
# qhasm: carry? t82 += mulrax
# asm 1: add <mulrax=int64#7,<t82=int64#8
# asm 2: add <mulrax=%rax,<t82=%r10
add %rax,%r10
# qhasm: mulr21 += mulrdx + carry
# asm 1: adc <mulrdx=int64#3,<mulr21=int64#9
# asm 2: adc <mulrdx=%rdx,<mulr21=%r11
adc %rdx,%r11
# qhasm: mulrax = t44_stack
# asm 1: movq <t44_stack=stack64#42,>mulrax=int64#7
# asm 2: movq <t44_stack=328(%rsp),>mulrax=%rax
movq 328(%rsp),%rax
# qhasm: (uint128) mulrdx mulrax = mulrax * t10_stack
# asm 1: mulq <t10_stack=stack64#8
# asm 2: mulq <t10_stack=56(%rsp)
mulq 56(%rsp)
# qhasm: carry? t84 += mulrax
# asm 1: add <mulrax=int64#7,<t84=int64#12
# asm 2: add <mulrax=%rax,<t84=%r14
add %rax,%r14
# qhasm: mulr41 += mulrdx + carry
# asm 1: adc <mulrdx=int64#3,<mulr41=int64#13
# asm 2: adc <mulrdx=%rdx,<mulr41=%r15
adc %rdx,%r15
# qhasm: mulrax = mulx419_stack
# asm 1: movq <mulx419_stack=stack64#34,>mulrax=int64#7
# asm 2: movq <mulx419_stack=264(%rsp),>mulrax=%rax
movq 264(%rsp),%rax
# qhasm: (uint128) mulrdx mulrax = mulrax * t12_stack
# asm 1: mulq <t12_stack=stack64#10
# asm 2: mulq <t12_stack=72(%rsp)
mulq 72(%rsp)
# qhasm: carry? t81 += mulrax
# asm 1: add <mulrax=int64#7,<t81=int64#5
# asm 2: add <mulrax=%rax,<t81=%r8
add %rax,%r8
# qhasm: mulr11 += mulrdx + carry
# asm 1: adc <mulrdx=int64#3,<mulr11=int64#6
# asm 2: adc <mulrdx=%rdx,<mulr11=%r9
adc %rdx,%r9
# qhasm: mulrax = mulx419_stack
# asm 1: movq <mulx419_stack=stack64#34,>mulrax=int64#7
# asm 2: movq <mulx419_stack=264(%rsp),>mulrax=%rax
movq 264(%rsp),%rax
# qhasm: (uint128) mulrdx mulrax = mulrax * t13_stack
# asm 1: mulq <t13_stack=stack64#11
# asm 2: mulq <t13_stack=80(%rsp)
mulq 80(%rsp)
# qhasm: carry? t82 += mulrax
# asm 1: add <mulrax=int64#7,<t82=int64#8
# asm 2: add <mulrax=%rax,<t82=%r10
add %rax,%r10
# qhasm: mulr21 += mulrdx + carry
# asm 1: adc <mulrdx=int64#3,<mulr21=int64#9
# asm 2: adc <mulrdx=%rdx,<mulr21=%r11
adc %rdx,%r11
# qhasm: mulrax = mulx419_stack
# asm 1: movq <mulx419_stack=stack64#34,>mulrax=int64#7
# asm 2: movq <mulx419_stack=264(%rsp),>mulrax=%rax
movq 264(%rsp),%rax
# qhasm: (uint128) mulrdx mulrax = mulrax * t14_stack
# asm 1: mulq <t14_stack=stack64#12
# asm 2: mulq <t14_stack=88(%rsp)
mulq 88(%rsp)
# qhasm: carry? t83 += mulrax
# asm 1: add <mulrax=int64#7,<t83=int64#10
# asm 2: add <mulrax=%rax,<t83=%r12
add %rax,%r12
# qhasm: mulr31 += mulrdx + carry
# asm 1: adc <mulrdx=int64#3,<mulr31=int64#11
# asm 2: adc <mulrdx=%rdx,<mulr31=%r13
adc %rdx,%r13
# qhasm: mulredmask = *(uint64 *) &CRYPTO_SHARED_NAMESPACE(REDMASK51)
# asm 1: movq CRYPTO_SHARED_NAMESPACE(REDMASK51),>mulredmask=int64#3
# asm 2: movq CRYPTO_SHARED_NAMESPACE(REDMASK51),>mulredmask=%rdx
movq CRYPTO_SHARED_NAMESPACE(REDMASK51)(%rip),%rdx
# qhasm: mulr01 = (mulr01.t80) << 13
# asm 1: shld $13,<t80=int64#2,<mulr01=int64#4
# asm 2: shld $13,<t80=%rsi,<mulr01=%rcx
shld $13,%rsi,%rcx
# qhasm: t80 &= mulredmask
# asm 1: and <mulredmask=int64#3,<t80=int64#2
# asm 2: and <mulredmask=%rdx,<t80=%rsi
and %rdx,%rsi
# qhasm: mulr11 = (mulr11.t81) << 13
# asm 1: shld $13,<t81=int64#5,<mulr11=int64#6
# asm 2: shld $13,<t81=%r8,<mulr11=%r9
shld $13,%r8,%r9
# qhasm: t81 &= mulredmask
# asm 1: and <mulredmask=int64#3,<t81=int64#5
# asm 2: and <mulredmask=%rdx,<t81=%r8
and %rdx,%r8
# qhasm: t81 += mulr01
# asm 1: add <mulr01=int64#4,<t81=int64#5
# asm 2: add <mulr01=%rcx,<t81=%r8
add %rcx,%r8
# qhasm: mulr21 = (mulr21.t82) << 13
# asm 1: shld $13,<t82=int64#8,<mulr21=int64#9
# asm 2: shld $13,<t82=%r10,<mulr21=%r11
shld $13,%r10,%r11
# qhasm: t82 &= mulredmask
# asm 1: and <mulredmask=int64#3,<t82=int64#8
# asm 2: and <mulredmask=%rdx,<t82=%r10
and %rdx,%r10
# qhasm: t82 += mulr11
# asm 1: add <mulr11=int64#6,<t82=int64#8
# asm 2: add <mulr11=%r9,<t82=%r10
add %r9,%r10
# qhasm: mulr31 = (mulr31.t83) << 13
# asm 1: shld $13,<t83=int64#10,<mulr31=int64#11
# asm 2: shld $13,<t83=%r12,<mulr31=%r13
shld $13,%r12,%r13
# qhasm: t83 &= mulredmask
# asm 1: and <mulredmask=int64#3,<t83=int64#10
# asm 2: and <mulredmask=%rdx,<t83=%r12
and %rdx,%r12
# qhasm: t83 += mulr21
# asm 1: add <mulr21=int64#9,<t83=int64#10
# asm 2: add <mulr21=%r11,<t83=%r12
add %r11,%r12
# qhasm: mulr41 = (mulr41.t84) << 13
# asm 1: shld $13,<t84=int64#12,<mulr41=int64#13
# asm 2: shld $13,<t84=%r14,<mulr41=%r15
shld $13,%r14,%r15
# qhasm: t84 &= mulredmask
# asm 1: and <mulredmask=int64#3,<t84=int64#12
# asm 2: and <mulredmask=%rdx,<t84=%r14
and %rdx,%r14
# qhasm: t84 += mulr31
# asm 1: add <mulr31=int64#11,<t84=int64#12
# asm 2: add <mulr31=%r13,<t84=%r14
add %r13,%r14
# qhasm: mulr41 = mulr41 * 19
# asm 1: imulq $19,<mulr41=int64#13,>mulr41=int64#4
# asm 2: imulq $19,<mulr41=%r15,>mulr41=%rcx
imulq $19,%r15,%rcx
# qhasm: t80 += mulr41
# asm 1: add <mulr41=int64#4,<t80=int64#2
# asm 2: add <mulr41=%rcx,<t80=%rsi
add %rcx,%rsi
# qhasm: mult = t80
# asm 1: mov <t80=int64#2,>mult=int64#4
# asm 2: mov <t80=%rsi,>mult=%rcx
mov %rsi,%rcx
# qhasm: (uint64) mult >>= 51
# asm 1: shr $51,<mult=int64#4
# asm 2: shr $51,<mult=%rcx
shr $51,%rcx
# qhasm: mult += t81
# asm 1: add <t81=int64#5,<mult=int64#4
# asm 2: add <t81=%r8,<mult=%rcx
add %r8,%rcx
# qhasm: t81 = mult
# asm 1: mov <mult=int64#4,>t81=int64#5
# asm 2: mov <mult=%rcx,>t81=%r8
mov %rcx,%r8
# qhasm: (uint64) mult >>= 51
# asm 1: shr $51,<mult=int64#4
# asm 2: shr $51,<mult=%rcx
shr $51,%rcx
# qhasm: t80 &= mulredmask
# asm 1: and <mulredmask=int64#3,<t80=int64#2
# asm 2: and <mulredmask=%rdx,<t80=%rsi
and %rdx,%rsi
# qhasm: mult += t82
# asm 1: add <t82=int64#8,<mult=int64#4
# asm 2: add <t82=%r10,<mult=%rcx
add %r10,%rcx
# qhasm: t82 = mult
# asm 1: mov <mult=int64#4,>t82=int64#6
# asm 2: mov <mult=%rcx,>t82=%r9
mov %rcx,%r9
# qhasm: (uint64) mult >>= 51
# asm 1: shr $51,<mult=int64#4
# asm 2: shr $51,<mult=%rcx
shr $51,%rcx
# qhasm: t81 &= mulredmask
# asm 1: and <mulredmask=int64#3,<t81=int64#5
# asm 2: and <mulredmask=%rdx,<t81=%r8
and %rdx,%r8
# qhasm: mult += t83
# asm 1: add <t83=int64#10,<mult=int64#4
# asm 2: add <t83=%r12,<mult=%rcx
add %r12,%rcx
# qhasm: t83 = mult
# asm 1: mov <mult=int64#4,>t83=int64#7
# asm 2: mov <mult=%rcx,>t83=%rax
mov %rcx,%rax
# qhasm: (uint64) mult >>= 51
# asm 1: shr $51,<mult=int64#4
# asm 2: shr $51,<mult=%rcx
shr $51,%rcx
# qhasm: t82 &= mulredmask
# asm 1: and <mulredmask=int64#3,<t82=int64#6
# asm 2: and <mulredmask=%rdx,<t82=%r9
and %rdx,%r9
# qhasm: mult += t84
# asm 1: add <t84=int64#12,<mult=int64#4
# asm 2: add <t84=%r14,<mult=%rcx
add %r14,%rcx
# qhasm: t84 = mult
# asm 1: mov <mult=int64#4,>t84=int64#8
# asm 2: mov <mult=%rcx,>t84=%r10
mov %rcx,%r10
# qhasm: (uint64) mult >>= 51
# asm 1: shr $51,<mult=int64#4
# asm 2: shr $51,<mult=%rcx
shr $51,%rcx
# qhasm: t83 &= mulredmask
# asm 1: and <mulredmask=int64#3,<t83=int64#7
# asm 2: and <mulredmask=%rdx,<t83=%rax
and %rdx,%rax
# qhasm: mult *= 19
# asm 1: imulq $19,<mult=int64#4,>mult=int64#4
# asm 2: imulq $19,<mult=%rcx,>mult=%rcx
imulq $19,%rcx,%rcx
# qhasm: t80 += mult
# asm 1: add <mult=int64#4,<t80=int64#2
# asm 2: add <mult=%rcx,<t80=%rsi
add %rcx,%rsi
# qhasm: t84 &= mulredmask
# asm 1: and <mulredmask=int64#3,<t84=int64#8
# asm 2: and <mulredmask=%rdx,<t84=%r10
and %rdx,%r10
# qhasm: zq0 = t80
# asm 1: mov <t80=int64#2,>zq0=int64#3
# asm 2: mov <t80=%rsi,>zq0=%rdx
mov %rsi,%rdx
# qhasm: zq1 = t81
# asm 1: mov <t81=int64#5,>zq1=int64#4
# asm 2: mov <t81=%r8,>zq1=%rcx
mov %r8,%rcx
# qhasm: zq2 = t82
# asm 1: mov <t82=int64#6,>zq2=int64#9
# asm 2: mov <t82=%r9,>zq2=%r11
mov %r9,%r11
# qhasm: zq3 = t83
# asm 1: mov <t83=int64#7,>zq3=int64#10
# asm 2: mov <t83=%rax,>zq3=%r12
mov %rax,%r12
# qhasm: zq4 = t84
# asm 1: mov <t84=int64#8,>zq4=int64#11
# asm 2: mov <t84=%r10,>zq4=%r13
mov %r10,%r13
# qhasm: zq0 += *(uint64 *) &CRYPTO_SHARED_NAMESPACE(2P0)
# asm 1: add CRYPTO_SHARED_NAMESPACE(2P0),<zq0=int64#3
# asm 2: add CRYPTO_SHARED_NAMESPACE(2P0),<zq0=%rdx
add CRYPTO_SHARED_NAMESPACE(2P0)(%rip),%rdx
# qhasm: zq1 += *(uint64 *) &CRYPTO_SHARED_NAMESPACE(2P1234)
# asm 1: add CRYPTO_SHARED_NAMESPACE(2P1234),<zq1=int64#4
# asm 2: add CRYPTO_SHARED_NAMESPACE(2P1234),<zq1=%rcx
add CRYPTO_SHARED_NAMESPACE(2P1234)(%rip),%rcx
# qhasm: zq2 += *(uint64 *) &CRYPTO_SHARED_NAMESPACE(2P1234)
# asm 1: add CRYPTO_SHARED_NAMESPACE(2P1234),<zq2=int64#9
# asm 2: add CRYPTO_SHARED_NAMESPACE(2P1234),<zq2=%r11
add CRYPTO_SHARED_NAMESPACE(2P1234)(%rip),%r11
# qhasm: zq3 += *(uint64 *) &CRYPTO_SHARED_NAMESPACE(2P1234)
# asm 1: add CRYPTO_SHARED_NAMESPACE(2P1234),<zq3=int64#10
# asm 2: add CRYPTO_SHARED_NAMESPACE(2P1234),<zq3=%r12
add CRYPTO_SHARED_NAMESPACE(2P1234)(%rip),%r12
# qhasm: zq4 += *(uint64 *) &CRYPTO_SHARED_NAMESPACE(2P1234)
# asm 1: add CRYPTO_SHARED_NAMESPACE(2P1234),<zq4=int64#11
# asm 2: add CRYPTO_SHARED_NAMESPACE(2P1234),<zq4=%r13
add CRYPTO_SHARED_NAMESPACE(2P1234)(%rip),%r13
# qhasm: t80 += t90_stack
# asm 1: addq <t90_stack=stack64#13,<t80=int64#2
# asm 2: addq <t90_stack=96(%rsp),<t80=%rsi
addq 96(%rsp),%rsi
# qhasm: t81 += t91_stack
# asm 1: addq <t91_stack=stack64#14,<t81=int64#5
# asm 2: addq <t91_stack=104(%rsp),<t81=%r8
addq 104(%rsp),%r8
# qhasm: t82 += t92_stack
# asm 1: addq <t92_stack=stack64#15,<t82=int64#6
# asm 2: addq <t92_stack=112(%rsp),<t82=%r9
addq 112(%rsp),%r9
# qhasm: t83 += t93_stack
# asm 1: addq <t93_stack=stack64#16,<t83=int64#7
# asm 2: addq <t93_stack=120(%rsp),<t83=%rax
addq 120(%rsp),%rax
# qhasm: t84 += t94_stack
# asm 1: addq <t94_stack=stack64#17,<t84=int64#8
# asm 2: addq <t94_stack=128(%rsp),<t84=%r10
addq 128(%rsp),%r10
# qhasm: zq0 -= t90_stack
# asm 1: subq <t90_stack=stack64#13,<zq0=int64#3
# asm 2: subq <t90_stack=96(%rsp),<zq0=%rdx
subq 96(%rsp),%rdx
# qhasm: zq1 -= t91_stack
# asm 1: subq <t91_stack=stack64#14,<zq1=int64#4
# asm 2: subq <t91_stack=104(%rsp),<zq1=%rcx
subq 104(%rsp),%rcx
# qhasm: zq2 -= t92_stack
# asm 1: subq <t92_stack=stack64#15,<zq2=int64#9
# asm 2: subq <t92_stack=112(%rsp),<zq2=%r11
subq 112(%rsp),%r11
# qhasm: zq3 -= t93_stack
# asm 1: subq <t93_stack=stack64#16,<zq3=int64#10
# asm 2: subq <t93_stack=120(%rsp),<zq3=%r12
subq 120(%rsp),%r12
# qhasm: zq4 -= t94_stack
# asm 1: subq <t94_stack=stack64#17,<zq4=int64#11
# asm 2: subq <t94_stack=128(%rsp),<zq4=%r13
subq 128(%rsp),%r13
# qhasm: *(uint64 *)(workp + 120) = t80
# asm 1: movq <t80=int64#2,120(<workp=int64#1)
# asm 2: movq <t80=%rsi,120(<workp=%rdi)
movq %rsi,120(%rdi)
# qhasm: *(uint64 *)(workp + 128) = t81
# asm 1: movq <t81=int64#5,128(<workp=int64#1)
# asm 2: movq <t81=%r8,128(<workp=%rdi)
movq %r8,128(%rdi)
# qhasm: *(uint64 *)(workp + 136) = t82
# asm 1: movq <t82=int64#6,136(<workp=int64#1)
# asm 2: movq <t82=%r9,136(<workp=%rdi)
movq %r9,136(%rdi)
# qhasm: *(uint64 *)(workp + 144) = t83
# asm 1: movq <t83=int64#7,144(<workp=int64#1)
# asm 2: movq <t83=%rax,144(<workp=%rdi)
movq %rax,144(%rdi)
# qhasm: *(uint64 *)(workp + 152) = t84
# asm 1: movq <t84=int64#8,152(<workp=int64#1)
# asm 2: movq <t84=%r10,152(<workp=%rdi)
movq %r10,152(%rdi)
# qhasm: *(uint64 *)(workp + 160) = zq0
# asm 1: movq <zq0=int64#3,160(<workp=int64#1)
# asm 2: movq <zq0=%rdx,160(<workp=%rdi)
movq %rdx,160(%rdi)
# qhasm: *(uint64 *)(workp + 168) = zq1
# asm 1: movq <zq1=int64#4,168(<workp=int64#1)
# asm 2: movq <zq1=%rcx,168(<workp=%rdi)
movq %rcx,168(%rdi)
# qhasm: *(uint64 *)(workp + 176) = zq2
# asm 1: movq <zq2=int64#9,176(<workp=int64#1)
# asm 2: movq <zq2=%r11,176(<workp=%rdi)
movq %r11,176(%rdi)
# qhasm: *(uint64 *)(workp + 184) = zq3
# asm 1: movq <zq3=int64#10,184(<workp=int64#1)
# asm 2: movq <zq3=%r12,184(<workp=%rdi)
movq %r12,184(%rdi)
# qhasm: *(uint64 *)(workp + 192) = zq4
# asm 1: movq <zq4=int64#11,192(<workp=int64#1)
# asm 2: movq <zq4=%r13,192(<workp=%rdi)
movq %r13,192(%rdi)
# qhasm: squarerax = *(uint64 *)(workp + 120)
# asm 1: movq 120(<workp=int64#1),>squarerax=int64#7
# asm 2: movq 120(<workp=%rdi),>squarerax=%rax
movq 120(%rdi),%rax
# qhasm: (uint128) squarerdx squarerax = squarerax * *(uint64 *)(workp + 120)
# asm 1: mulq 120(<workp=int64#1)
# asm 2: mulq 120(<workp=%rdi)
mulq 120(%rdi)
# qhasm: xq0 = squarerax
# asm 1: mov <squarerax=int64#7,>xq0=int64#2
# asm 2: mov <squarerax=%rax,>xq0=%rsi
mov %rax,%rsi
# qhasm: squarer01 = squarerdx
# asm 1: mov <squarerdx=int64#3,>squarer01=int64#4
# asm 2: mov <squarerdx=%rdx,>squarer01=%rcx
mov %rdx,%rcx
# qhasm: squarerax = *(uint64 *)(workp + 120)
# asm 1: movq 120(<workp=int64#1),>squarerax=int64#7
# asm 2: movq 120(<workp=%rdi),>squarerax=%rax
movq 120(%rdi),%rax
# qhasm: squarerax <<= 1
# asm 1: shl $1,<squarerax=int64#7
# asm 2: shl $1,<squarerax=%rax
shl $1,%rax
# qhasm: (uint128) squarerdx squarerax = squarerax * *(uint64 *)(workp + 128)
# asm 1: mulq 128(<workp=int64#1)
# asm 2: mulq 128(<workp=%rdi)
mulq 128(%rdi)
# qhasm: xq1 = squarerax
# asm 1: mov <squarerax=int64#7,>xq1=int64#5
# asm 2: mov <squarerax=%rax,>xq1=%r8
mov %rax,%r8
# qhasm: squarer11 = squarerdx
# asm 1: mov <squarerdx=int64#3,>squarer11=int64#6
# asm 2: mov <squarerdx=%rdx,>squarer11=%r9
mov %rdx,%r9
# qhasm: squarerax = *(uint64 *)(workp + 120)
# asm 1: movq 120(<workp=int64#1),>squarerax=int64#7
# asm 2: movq 120(<workp=%rdi),>squarerax=%rax
movq 120(%rdi),%rax
# qhasm: squarerax <<= 1
# asm 1: shl $1,<squarerax=int64#7
# asm 2: shl $1,<squarerax=%rax
shl $1,%rax
# qhasm: (uint128) squarerdx squarerax = squarerax * *(uint64 *)(workp + 136)
# asm 1: mulq 136(<workp=int64#1)
# asm 2: mulq 136(<workp=%rdi)
mulq 136(%rdi)
# qhasm: xq2 = squarerax
# asm 1: mov <squarerax=int64#7,>xq2=int64#8
# asm 2: mov <squarerax=%rax,>xq2=%r10
mov %rax,%r10
# qhasm: squarer21 = squarerdx
# asm 1: mov <squarerdx=int64#3,>squarer21=int64#9
# asm 2: mov <squarerdx=%rdx,>squarer21=%r11
mov %rdx,%r11
# qhasm: squarerax = *(uint64 *)(workp + 120)
# asm 1: movq 120(<workp=int64#1),>squarerax=int64#7
# asm 2: movq 120(<workp=%rdi),>squarerax=%rax
movq 120(%rdi),%rax
# qhasm: squarerax <<= 1
# asm 1: shl $1,<squarerax=int64#7
# asm 2: shl $1,<squarerax=%rax
shl $1,%rax
# qhasm: (uint128) squarerdx squarerax = squarerax * *(uint64 *)(workp + 144)
# asm 1: mulq 144(<workp=int64#1)
# asm 2: mulq 144(<workp=%rdi)
mulq 144(%rdi)
# qhasm: xq3 = squarerax
# asm 1: mov <squarerax=int64#7,>xq3=int64#10
# asm 2: mov <squarerax=%rax,>xq3=%r12
mov %rax,%r12
# qhasm: squarer31 = squarerdx
# asm 1: mov <squarerdx=int64#3,>squarer31=int64#11
# asm 2: mov <squarerdx=%rdx,>squarer31=%r13
mov %rdx,%r13
# qhasm: squarerax = *(uint64 *)(workp + 120)
# asm 1: movq 120(<workp=int64#1),>squarerax=int64#7
# asm 2: movq 120(<workp=%rdi),>squarerax=%rax
movq 120(%rdi),%rax
# qhasm: squarerax <<= 1
# asm 1: shl $1,<squarerax=int64#7
# asm 2: shl $1,<squarerax=%rax
shl $1,%rax
# qhasm: (uint128) squarerdx squarerax = squarerax * *(uint64 *)(workp + 152)
# asm 1: mulq 152(<workp=int64#1)
# asm 2: mulq 152(<workp=%rdi)
mulq 152(%rdi)
# qhasm: xq4 = squarerax
# asm 1: mov <squarerax=int64#7,>xq4=int64#12
# asm 2: mov <squarerax=%rax,>xq4=%r14
mov %rax,%r14
# qhasm: squarer41 = squarerdx
# asm 1: mov <squarerdx=int64#3,>squarer41=int64#13
# asm 2: mov <squarerdx=%rdx,>squarer41=%r15
mov %rdx,%r15
# qhasm: squarerax = *(uint64 *)(workp + 128)
# asm 1: movq 128(<workp=int64#1),>squarerax=int64#7
# asm 2: movq 128(<workp=%rdi),>squarerax=%rax
movq 128(%rdi),%rax
# qhasm: (uint128) squarerdx squarerax = squarerax * *(uint64 *)(workp + 128)
# asm 1: mulq 128(<workp=int64#1)
# asm 2: mulq 128(<workp=%rdi)
mulq 128(%rdi)
# qhasm: carry? xq2 += squarerax
# asm 1: add <squarerax=int64#7,<xq2=int64#8
# asm 2: add <squarerax=%rax,<xq2=%r10
add %rax,%r10
# qhasm: squarer21 += squarerdx + carry
# asm 1: adc <squarerdx=int64#3,<squarer21=int64#9
# asm 2: adc <squarerdx=%rdx,<squarer21=%r11
adc %rdx,%r11
# qhasm: squarerax = *(uint64 *)(workp + 128)
# asm 1: movq 128(<workp=int64#1),>squarerax=int64#7
# asm 2: movq 128(<workp=%rdi),>squarerax=%rax
movq 128(%rdi),%rax
# qhasm: squarerax <<= 1
# asm 1: shl $1,<squarerax=int64#7
# asm 2: shl $1,<squarerax=%rax
shl $1,%rax
# qhasm: (uint128) squarerdx squarerax = squarerax * *(uint64 *)(workp + 136)
# asm 1: mulq 136(<workp=int64#1)
# asm 2: mulq 136(<workp=%rdi)
mulq 136(%rdi)
# qhasm: carry? xq3 += squarerax
# asm 1: add <squarerax=int64#7,<xq3=int64#10
# asm 2: add <squarerax=%rax,<xq3=%r12
add %rax,%r12
# qhasm: squarer31 += squarerdx + carry
# asm 1: adc <squarerdx=int64#3,<squarer31=int64#11
# asm 2: adc <squarerdx=%rdx,<squarer31=%r13
adc %rdx,%r13
# qhasm: squarerax = *(uint64 *)(workp + 128)
# asm 1: movq 128(<workp=int64#1),>squarerax=int64#7
# asm 2: movq 128(<workp=%rdi),>squarerax=%rax
movq 128(%rdi),%rax
# qhasm: squarerax <<= 1
# asm 1: shl $1,<squarerax=int64#7
# asm 2: shl $1,<squarerax=%rax
shl $1,%rax
# qhasm: (uint128) squarerdx squarerax = squarerax * *(uint64 *)(workp + 144)
# asm 1: mulq 144(<workp=int64#1)
# asm 2: mulq 144(<workp=%rdi)
mulq 144(%rdi)
# qhasm: carry? xq4 += squarerax
# asm 1: add <squarerax=int64#7,<xq4=int64#12
# asm 2: add <squarerax=%rax,<xq4=%r14
add %rax,%r14
# qhasm: squarer41 += squarerdx + carry
# asm 1: adc <squarerdx=int64#3,<squarer41=int64#13
# asm 2: adc <squarerdx=%rdx,<squarer41=%r15
adc %rdx,%r15
# qhasm: squarerax = *(uint64 *)(workp + 128)
# asm 1: movq 128(<workp=int64#1),>squarerax=int64#3
# asm 2: movq 128(<workp=%rdi),>squarerax=%rdx
movq 128(%rdi),%rdx
# qhasm: squarerax *= 38
# asm 1: imulq $38,<squarerax=int64#3,>squarerax=int64#7
# asm 2: imulq $38,<squarerax=%rdx,>squarerax=%rax
imulq $38,%rdx,%rax
# qhasm: (uint128) squarerdx squarerax = squarerax * *(uint64 *)(workp + 152)
# asm 1: mulq 152(<workp=int64#1)
# asm 2: mulq 152(<workp=%rdi)
mulq 152(%rdi)
# qhasm: carry? xq0 += squarerax
# asm 1: add <squarerax=int64#7,<xq0=int64#2
# asm 2: add <squarerax=%rax,<xq0=%rsi
add %rax,%rsi
# qhasm: squarer01 += squarerdx + carry
# asm 1: adc <squarerdx=int64#3,<squarer01=int64#4
# asm 2: adc <squarerdx=%rdx,<squarer01=%rcx
adc %rdx,%rcx
# qhasm: squarerax = *(uint64 *)(workp + 136)
# asm 1: movq 136(<workp=int64#1),>squarerax=int64#7
# asm 2: movq 136(<workp=%rdi),>squarerax=%rax
movq 136(%rdi),%rax
# qhasm: (uint128) squarerdx squarerax = squarerax * *(uint64 *)(workp + 136)
# asm 1: mulq 136(<workp=int64#1)
# asm 2: mulq 136(<workp=%rdi)
mulq 136(%rdi)
# qhasm: carry? xq4 += squarerax
# asm 1: add <squarerax=int64#7,<xq4=int64#12
# asm 2: add <squarerax=%rax,<xq4=%r14
add %rax,%r14
# qhasm: squarer41 += squarerdx + carry
# asm 1: adc <squarerdx=int64#3,<squarer41=int64#13
# asm 2: adc <squarerdx=%rdx,<squarer41=%r15
adc %rdx,%r15
# qhasm: squarerax = *(uint64 *)(workp + 136)
# asm 1: movq 136(<workp=int64#1),>squarerax=int64#3
# asm 2: movq 136(<workp=%rdi),>squarerax=%rdx
movq 136(%rdi),%rdx
# qhasm: squarerax *= 38
# asm 1: imulq $38,<squarerax=int64#3,>squarerax=int64#7
# asm 2: imulq $38,<squarerax=%rdx,>squarerax=%rax
imulq $38,%rdx,%rax
# qhasm: (uint128) squarerdx squarerax = squarerax * *(uint64 *)(workp + 144)
# asm 1: mulq 144(<workp=int64#1)
# asm 2: mulq 144(<workp=%rdi)
mulq 144(%rdi)
# qhasm: carry? xq0 += squarerax
# asm 1: add <squarerax=int64#7,<xq0=int64#2
# asm 2: add <squarerax=%rax,<xq0=%rsi
add %rax,%rsi
# qhasm: squarer01 += squarerdx + carry
# asm 1: adc <squarerdx=int64#3,<squarer01=int64#4
# asm 2: adc <squarerdx=%rdx,<squarer01=%rcx
adc %rdx,%rcx
# qhasm: squarerax = *(uint64 *)(workp + 136)
# asm 1: movq 136(<workp=int64#1),>squarerax=int64#3
# asm 2: movq 136(<workp=%rdi),>squarerax=%rdx
movq 136(%rdi),%rdx
# qhasm: squarerax *= 38
# asm 1: imulq $38,<squarerax=int64#3,>squarerax=int64#7
# asm 2: imulq $38,<squarerax=%rdx,>squarerax=%rax
imulq $38,%rdx,%rax
# qhasm: (uint128) squarerdx squarerax = squarerax * *(uint64 *)(workp + 152)
# asm 1: mulq 152(<workp=int64#1)
# asm 2: mulq 152(<workp=%rdi)
mulq 152(%rdi)
# qhasm: carry? xq1 += squarerax
# asm 1: add <squarerax=int64#7,<xq1=int64#5
# asm 2: add <squarerax=%rax,<xq1=%r8
add %rax,%r8
# qhasm: squarer11 += squarerdx + carry
# asm 1: adc <squarerdx=int64#3,<squarer11=int64#6
# asm 2: adc <squarerdx=%rdx,<squarer11=%r9
adc %rdx,%r9
# qhasm: squarerax = *(uint64 *)(workp + 144)
# asm 1: movq 144(<workp=int64#1),>squarerax=int64#3
# asm 2: movq 144(<workp=%rdi),>squarerax=%rdx
movq 144(%rdi),%rdx
# qhasm: squarerax *= 19
# asm 1: imulq $19,<squarerax=int64#3,>squarerax=int64#7
# asm 2: imulq $19,<squarerax=%rdx,>squarerax=%rax
imulq $19,%rdx,%rax
# qhasm: (uint128) squarerdx squarerax = squarerax * *(uint64 *)(workp + 144)
# asm 1: mulq 144(<workp=int64#1)
# asm 2: mulq 144(<workp=%rdi)
mulq 144(%rdi)
# qhasm: carry? xq1 += squarerax
# asm 1: add <squarerax=int64#7,<xq1=int64#5
# asm 2: add <squarerax=%rax,<xq1=%r8
add %rax,%r8
# qhasm: squarer11 += squarerdx + carry
# asm 1: adc <squarerdx=int64#3,<squarer11=int64#6
# asm 2: adc <squarerdx=%rdx,<squarer11=%r9
adc %rdx,%r9
# qhasm: squarerax = *(uint64 *)(workp + 144)
# asm 1: movq 144(<workp=int64#1),>squarerax=int64#3
# asm 2: movq 144(<workp=%rdi),>squarerax=%rdx
movq 144(%rdi),%rdx
# qhasm: squarerax *= 38
# asm 1: imulq $38,<squarerax=int64#3,>squarerax=int64#7
# asm 2: imulq $38,<squarerax=%rdx,>squarerax=%rax
imulq $38,%rdx,%rax
# qhasm: (uint128) squarerdx squarerax = squarerax * *(uint64 *)(workp + 152)
# asm 1: mulq 152(<workp=int64#1)
# asm 2: mulq 152(<workp=%rdi)
mulq 152(%rdi)
# qhasm: carry? xq2 += squarerax
# asm 1: add <squarerax=int64#7,<xq2=int64#8
# asm 2: add <squarerax=%rax,<xq2=%r10
add %rax,%r10
# qhasm: squarer21 += squarerdx + carry
# asm 1: adc <squarerdx=int64#3,<squarer21=int64#9
# asm 2: adc <squarerdx=%rdx,<squarer21=%r11
adc %rdx,%r11
# qhasm: squarerax = *(uint64 *)(workp + 152)
# asm 1: movq 152(<workp=int64#1),>squarerax=int64#3
# asm 2: movq 152(<workp=%rdi),>squarerax=%rdx
movq 152(%rdi),%rdx
# qhasm: squarerax *= 19
# asm 1: imulq $19,<squarerax=int64#3,>squarerax=int64#7
# asm 2: imulq $19,<squarerax=%rdx,>squarerax=%rax
imulq $19,%rdx,%rax
# qhasm: (uint128) squarerdx squarerax = squarerax * *(uint64 *)(workp + 152)
# asm 1: mulq 152(<workp=int64#1)
# asm 2: mulq 152(<workp=%rdi)
mulq 152(%rdi)
# qhasm: carry? xq3 += squarerax
# asm 1: add <squarerax=int64#7,<xq3=int64#10
# asm 2: add <squarerax=%rax,<xq3=%r12
add %rax,%r12
# qhasm: squarer31 += squarerdx + carry
# asm 1: adc <squarerdx=int64#3,<squarer31=int64#11
# asm 2: adc <squarerdx=%rdx,<squarer31=%r13
adc %rdx,%r13
# qhasm: squareredmask = *(uint64 *) &CRYPTO_SHARED_NAMESPACE(REDMASK51)
# asm 1: movq CRYPTO_SHARED_NAMESPACE(REDMASK51),>squareredmask=int64#3
# asm 2: movq CRYPTO_SHARED_NAMESPACE(REDMASK51),>squareredmask=%rdx
movq CRYPTO_SHARED_NAMESPACE(REDMASK51)(%rip),%rdx
# qhasm: squarer01 = (squarer01.xq0) << 13
# asm 1: shld $13,<xq0=int64#2,<squarer01=int64#4
# asm 2: shld $13,<xq0=%rsi,<squarer01=%rcx
shld $13,%rsi,%rcx
# qhasm: xq0 &= squareredmask
# asm 1: and <squareredmask=int64#3,<xq0=int64#2
# asm 2: and <squareredmask=%rdx,<xq0=%rsi
and %rdx,%rsi
# qhasm: squarer11 = (squarer11.xq1) << 13
# asm 1: shld $13,<xq1=int64#5,<squarer11=int64#6
# asm 2: shld $13,<xq1=%r8,<squarer11=%r9
shld $13,%r8,%r9
# qhasm: xq1 &= squareredmask
# asm 1: and <squareredmask=int64#3,<xq1=int64#5
# asm 2: and <squareredmask=%rdx,<xq1=%r8
and %rdx,%r8
# qhasm: xq1 += squarer01
# asm 1: add <squarer01=int64#4,<xq1=int64#5
# asm 2: add <squarer01=%rcx,<xq1=%r8
add %rcx,%r8
# qhasm: squarer21 = (squarer21.xq2) << 13
# asm 1: shld $13,<xq2=int64#8,<squarer21=int64#9
# asm 2: shld $13,<xq2=%r10,<squarer21=%r11
shld $13,%r10,%r11
# qhasm: xq2 &= squareredmask
# asm 1: and <squareredmask=int64#3,<xq2=int64#8
# asm 2: and <squareredmask=%rdx,<xq2=%r10
and %rdx,%r10
# qhasm: xq2 += squarer11
# asm 1: add <squarer11=int64#6,<xq2=int64#8
# asm 2: add <squarer11=%r9,<xq2=%r10
add %r9,%r10
# qhasm: squarer31 = (squarer31.xq3) << 13
# asm 1: shld $13,<xq3=int64#10,<squarer31=int64#11
# asm 2: shld $13,<xq3=%r12,<squarer31=%r13
shld $13,%r12,%r13
# qhasm: xq3 &= squareredmask
# asm 1: and <squareredmask=int64#3,<xq3=int64#10
# asm 2: and <squareredmask=%rdx,<xq3=%r12
and %rdx,%r12
# qhasm: xq3 += squarer21
# asm 1: add <squarer21=int64#9,<xq3=int64#10
# asm 2: add <squarer21=%r11,<xq3=%r12
add %r11,%r12
# qhasm: squarer41 = (squarer41.xq4) << 13
# asm 1: shld $13,<xq4=int64#12,<squarer41=int64#13
# asm 2: shld $13,<xq4=%r14,<squarer41=%r15
shld $13,%r14,%r15
# qhasm: xq4 &= squareredmask
# asm 1: and <squareredmask=int64#3,<xq4=int64#12
# asm 2: and <squareredmask=%rdx,<xq4=%r14
and %rdx,%r14
# qhasm: xq4 += squarer31
# asm 1: add <squarer31=int64#11,<xq4=int64#12
# asm 2: add <squarer31=%r13,<xq4=%r14
add %r13,%r14
# qhasm: squarer41 = squarer41 * 19
# asm 1: imulq $19,<squarer41=int64#13,>squarer41=int64#4
# asm 2: imulq $19,<squarer41=%r15,>squarer41=%rcx
imulq $19,%r15,%rcx
# qhasm: xq0 += squarer41
# asm 1: add <squarer41=int64#4,<xq0=int64#2
# asm 2: add <squarer41=%rcx,<xq0=%rsi
add %rcx,%rsi
# qhasm: squaret = xq0
# asm 1: mov <xq0=int64#2,>squaret=int64#4
# asm 2: mov <xq0=%rsi,>squaret=%rcx
mov %rsi,%rcx
# qhasm: (uint64) squaret >>= 51
# asm 1: shr $51,<squaret=int64#4
# asm 2: shr $51,<squaret=%rcx
shr $51,%rcx
# qhasm: squaret += xq1
# asm 1: add <xq1=int64#5,<squaret=int64#4
# asm 2: add <xq1=%r8,<squaret=%rcx
add %r8,%rcx
# qhasm: xq0 &= squareredmask
# asm 1: and <squareredmask=int64#3,<xq0=int64#2
# asm 2: and <squareredmask=%rdx,<xq0=%rsi
and %rdx,%rsi
# qhasm: xq1 = squaret
# asm 1: mov <squaret=int64#4,>xq1=int64#5
# asm 2: mov <squaret=%rcx,>xq1=%r8
mov %rcx,%r8
# qhasm: (uint64) squaret >>= 51
# asm 1: shr $51,<squaret=int64#4
# asm 2: shr $51,<squaret=%rcx
shr $51,%rcx
# qhasm: squaret += xq2
# asm 1: add <xq2=int64#8,<squaret=int64#4
# asm 2: add <xq2=%r10,<squaret=%rcx
add %r10,%rcx
# qhasm: xq1 &= squareredmask
# asm 1: and <squareredmask=int64#3,<xq1=int64#5
# asm 2: and <squareredmask=%rdx,<xq1=%r8
and %rdx,%r8
# qhasm: xq2 = squaret
# asm 1: mov <squaret=int64#4,>xq2=int64#6
# asm 2: mov <squaret=%rcx,>xq2=%r9
mov %rcx,%r9
# qhasm: (uint64) squaret >>= 51
# asm 1: shr $51,<squaret=int64#4
# asm 2: shr $51,<squaret=%rcx
shr $51,%rcx
# qhasm: squaret += xq3
# asm 1: add <xq3=int64#10,<squaret=int64#4
# asm 2: add <xq3=%r12,<squaret=%rcx
add %r12,%rcx
# qhasm: xq2 &= squareredmask
# asm 1: and <squareredmask=int64#3,<xq2=int64#6
# asm 2: and <squareredmask=%rdx,<xq2=%r9
and %rdx,%r9
# qhasm: xq3 = squaret
# asm 1: mov <squaret=int64#4,>xq3=int64#7
# asm 2: mov <squaret=%rcx,>xq3=%rax
mov %rcx,%rax
# qhasm: (uint64) squaret >>= 51
# asm 1: shr $51,<squaret=int64#4
# asm 2: shr $51,<squaret=%rcx
shr $51,%rcx
# qhasm: squaret += xq4
# asm 1: add <xq4=int64#12,<squaret=int64#4
# asm 2: add <xq4=%r14,<squaret=%rcx
add %r14,%rcx
# qhasm: xq3 &= squareredmask
# asm 1: and <squareredmask=int64#3,<xq3=int64#7
# asm 2: and <squareredmask=%rdx,<xq3=%rax
and %rdx,%rax
# qhasm: xq4 = squaret
# asm 1: mov <squaret=int64#4,>xq4=int64#8
# asm 2: mov <squaret=%rcx,>xq4=%r10
mov %rcx,%r10
# qhasm: (uint64) squaret >>= 51
# asm 1: shr $51,<squaret=int64#4
# asm 2: shr $51,<squaret=%rcx
shr $51,%rcx
# qhasm: squaret *= 19
# asm 1: imulq $19,<squaret=int64#4,>squaret=int64#4
# asm 2: imulq $19,<squaret=%rcx,>squaret=%rcx
imulq $19,%rcx,%rcx
# qhasm: xq0 += squaret
# asm 1: add <squaret=int64#4,<xq0=int64#2
# asm 2: add <squaret=%rcx,<xq0=%rsi
add %rcx,%rsi
# qhasm: xq4 &= squareredmask
# asm 1: and <squareredmask=int64#3,<xq4=int64#8
# asm 2: and <squareredmask=%rdx,<xq4=%r10
and %rdx,%r10
# qhasm: *(uint64 *)(workp + 120) = xq0
# asm 1: movq <xq0=int64#2,120(<workp=int64#1)
# asm 2: movq <xq0=%rsi,120(<workp=%rdi)
movq %rsi,120(%rdi)
# qhasm: *(uint64 *)(workp + 128) = xq1
# asm 1: movq <xq1=int64#5,128(<workp=int64#1)
# asm 2: movq <xq1=%r8,128(<workp=%rdi)
movq %r8,128(%rdi)
# qhasm: *(uint64 *)(workp + 136) = xq2
# asm 1: movq <xq2=int64#6,136(<workp=int64#1)
# asm 2: movq <xq2=%r9,136(<workp=%rdi)
movq %r9,136(%rdi)
# qhasm: *(uint64 *)(workp + 144) = xq3
# asm 1: movq <xq3=int64#7,144(<workp=int64#1)
# asm 2: movq <xq3=%rax,144(<workp=%rdi)
movq %rax,144(%rdi)
# qhasm: *(uint64 *)(workp + 152) = xq4
# asm 1: movq <xq4=int64#8,152(<workp=int64#1)
# asm 2: movq <xq4=%r10,152(<workp=%rdi)
movq %r10,152(%rdi)
# qhasm: squarerax = *(uint64 *)(workp + 160)
# asm 1: movq 160(<workp=int64#1),>squarerax=int64#7
# asm 2: movq 160(<workp=%rdi),>squarerax=%rax
movq 160(%rdi),%rax
# qhasm: (uint128) squarerdx squarerax = squarerax * *(uint64 *)(workp + 160)
# asm 1: mulq 160(<workp=int64#1)
# asm 2: mulq 160(<workp=%rdi)
mulq 160(%rdi)
# qhasm: zq0 = squarerax
# asm 1: mov <squarerax=int64#7,>zq0=int64#2
# asm 2: mov <squarerax=%rax,>zq0=%rsi
mov %rax,%rsi
# qhasm: squarer01 = squarerdx
# asm 1: mov <squarerdx=int64#3,>squarer01=int64#4
# asm 2: mov <squarerdx=%rdx,>squarer01=%rcx
mov %rdx,%rcx
# qhasm: squarerax = *(uint64 *)(workp + 160)
# asm 1: movq 160(<workp=int64#1),>squarerax=int64#7
# asm 2: movq 160(<workp=%rdi),>squarerax=%rax
movq 160(%rdi),%rax
# qhasm: squarerax <<= 1
# asm 1: shl $1,<squarerax=int64#7
# asm 2: shl $1,<squarerax=%rax
shl $1,%rax
# qhasm: (uint128) squarerdx squarerax = squarerax * *(uint64 *)(workp + 168)
# asm 1: mulq 168(<workp=int64#1)
# asm 2: mulq 168(<workp=%rdi)
mulq 168(%rdi)
# qhasm: zq1 = squarerax
# asm 1: mov <squarerax=int64#7,>zq1=int64#5
# asm 2: mov <squarerax=%rax,>zq1=%r8
mov %rax,%r8
# qhasm: squarer11 = squarerdx
# asm 1: mov <squarerdx=int64#3,>squarer11=int64#6
# asm 2: mov <squarerdx=%rdx,>squarer11=%r9
mov %rdx,%r9
# qhasm: squarerax = *(uint64 *)(workp + 160)
# asm 1: movq 160(<workp=int64#1),>squarerax=int64#7
# asm 2: movq 160(<workp=%rdi),>squarerax=%rax
movq 160(%rdi),%rax
# qhasm: squarerax <<= 1
# asm 1: shl $1,<squarerax=int64#7
# asm 2: shl $1,<squarerax=%rax
shl $1,%rax
# qhasm: (uint128) squarerdx squarerax = squarerax * *(uint64 *)(workp + 176)
# asm 1: mulq 176(<workp=int64#1)
# asm 2: mulq 176(<workp=%rdi)
mulq 176(%rdi)
# qhasm: zq2 = squarerax
# asm 1: mov <squarerax=int64#7,>zq2=int64#8
# asm 2: mov <squarerax=%rax,>zq2=%r10
mov %rax,%r10
# qhasm: squarer21 = squarerdx
# asm 1: mov <squarerdx=int64#3,>squarer21=int64#9
# asm 2: mov <squarerdx=%rdx,>squarer21=%r11
mov %rdx,%r11
# qhasm: squarerax = *(uint64 *)(workp + 160)
# asm 1: movq 160(<workp=int64#1),>squarerax=int64#7
# asm 2: movq 160(<workp=%rdi),>squarerax=%rax
movq 160(%rdi),%rax
# qhasm: squarerax <<= 1
# asm 1: shl $1,<squarerax=int64#7
# asm 2: shl $1,<squarerax=%rax
shl $1,%rax
# qhasm: (uint128) squarerdx squarerax = squarerax * *(uint64 *)(workp + 184)
# asm 1: mulq 184(<workp=int64#1)
# asm 2: mulq 184(<workp=%rdi)
mulq 184(%rdi)
# qhasm: zq3 = squarerax
# asm 1: mov <squarerax=int64#7,>zq3=int64#10
# asm 2: mov <squarerax=%rax,>zq3=%r12
mov %rax,%r12
# qhasm: squarer31 = squarerdx
# asm 1: mov <squarerdx=int64#3,>squarer31=int64#11
# asm 2: mov <squarerdx=%rdx,>squarer31=%r13
mov %rdx,%r13
# qhasm: squarerax = *(uint64 *)(workp + 160)
# asm 1: movq 160(<workp=int64#1),>squarerax=int64#7
# asm 2: movq 160(<workp=%rdi),>squarerax=%rax
movq 160(%rdi),%rax
# qhasm: squarerax <<= 1
# asm 1: shl $1,<squarerax=int64#7
# asm 2: shl $1,<squarerax=%rax
shl $1,%rax
# qhasm: (uint128) squarerdx squarerax = squarerax * *(uint64 *)(workp + 192)
# asm 1: mulq 192(<workp=int64#1)
# asm 2: mulq 192(<workp=%rdi)
mulq 192(%rdi)
# qhasm: zq4 = squarerax
# asm 1: mov <squarerax=int64#7,>zq4=int64#12
# asm 2: mov <squarerax=%rax,>zq4=%r14
mov %rax,%r14
# qhasm: squarer41 = squarerdx
# asm 1: mov <squarerdx=int64#3,>squarer41=int64#13
# asm 2: mov <squarerdx=%rdx,>squarer41=%r15
mov %rdx,%r15
# qhasm: squarerax = *(uint64 *)(workp + 168)
# asm 1: movq 168(<workp=int64#1),>squarerax=int64#7
# asm 2: movq 168(<workp=%rdi),>squarerax=%rax
movq 168(%rdi),%rax
# qhasm: (uint128) squarerdx squarerax = squarerax * *(uint64 *)(workp + 168)
# asm 1: mulq 168(<workp=int64#1)
# asm 2: mulq 168(<workp=%rdi)
mulq 168(%rdi)
# qhasm: carry? zq2 += squarerax
# asm 1: add <squarerax=int64#7,<zq2=int64#8
# asm 2: add <squarerax=%rax,<zq2=%r10
add %rax,%r10
# qhasm: squarer21 += squarerdx + carry
# asm 1: adc <squarerdx=int64#3,<squarer21=int64#9
# asm 2: adc <squarerdx=%rdx,<squarer21=%r11
adc %rdx,%r11
# qhasm: squarerax = *(uint64 *)(workp + 168)
# asm 1: movq 168(<workp=int64#1),>squarerax=int64#7
# asm 2: movq 168(<workp=%rdi),>squarerax=%rax
movq 168(%rdi),%rax
# qhasm: squarerax <<= 1
# asm 1: shl $1,<squarerax=int64#7
# asm 2: shl $1,<squarerax=%rax
shl $1,%rax
# qhasm: (uint128) squarerdx squarerax = squarerax * *(uint64 *)(workp + 176)
# asm 1: mulq 176(<workp=int64#1)
# asm 2: mulq 176(<workp=%rdi)
mulq 176(%rdi)
# qhasm: carry? zq3 += squarerax
# asm 1: add <squarerax=int64#7,<zq3=int64#10
# asm 2: add <squarerax=%rax,<zq3=%r12
add %rax,%r12
# qhasm: squarer31 += squarerdx + carry
# asm 1: adc <squarerdx=int64#3,<squarer31=int64#11
# asm 2: adc <squarerdx=%rdx,<squarer31=%r13
adc %rdx,%r13
# qhasm: squarerax = *(uint64 *)(workp + 168)
# asm 1: movq 168(<workp=int64#1),>squarerax=int64#7
# asm 2: movq 168(<workp=%rdi),>squarerax=%rax
movq 168(%rdi),%rax
# qhasm: squarerax <<= 1
# asm 1: shl $1,<squarerax=int64#7
# asm 2: shl $1,<squarerax=%rax
shl $1,%rax
# qhasm: (uint128) squarerdx squarerax = squarerax * *(uint64 *)(workp + 184)
# asm 1: mulq 184(<workp=int64#1)
# asm 2: mulq 184(<workp=%rdi)
mulq 184(%rdi)
# qhasm: carry? zq4 += squarerax
# asm 1: add <squarerax=int64#7,<zq4=int64#12
# asm 2: add <squarerax=%rax,<zq4=%r14
add %rax,%r14
# qhasm: squarer41 += squarerdx + carry
# asm 1: adc <squarerdx=int64#3,<squarer41=int64#13
# asm 2: adc <squarerdx=%rdx,<squarer41=%r15
adc %rdx,%r15
# qhasm: squarerax = *(uint64 *)(workp + 168)
# asm 1: movq 168(<workp=int64#1),>squarerax=int64#3
# asm 2: movq 168(<workp=%rdi),>squarerax=%rdx
movq 168(%rdi),%rdx
# qhasm: squarerax *= 38
# asm 1: imulq $38,<squarerax=int64#3,>squarerax=int64#7
# asm 2: imulq $38,<squarerax=%rdx,>squarerax=%rax
imulq $38,%rdx,%rax
# qhasm: (uint128) squarerdx squarerax = squarerax * *(uint64 *)(workp + 192)
# asm 1: mulq 192(<workp=int64#1)
# asm 2: mulq 192(<workp=%rdi)
mulq 192(%rdi)
# qhasm: carry? zq0 += squarerax
# asm 1: add <squarerax=int64#7,<zq0=int64#2
# asm 2: add <squarerax=%rax,<zq0=%rsi
add %rax,%rsi
# qhasm: squarer01 += squarerdx + carry
# asm 1: adc <squarerdx=int64#3,<squarer01=int64#4
# asm 2: adc <squarerdx=%rdx,<squarer01=%rcx
adc %rdx,%rcx
# qhasm: squarerax = *(uint64 *)(workp + 176)
# asm 1: movq 176(<workp=int64#1),>squarerax=int64#7
# asm 2: movq 176(<workp=%rdi),>squarerax=%rax
movq 176(%rdi),%rax
# qhasm: (uint128) squarerdx squarerax = squarerax * *(uint64 *)(workp + 176)
# asm 1: mulq 176(<workp=int64#1)
# asm 2: mulq 176(<workp=%rdi)
mulq 176(%rdi)
# qhasm: carry? zq4 += squarerax
# asm 1: add <squarerax=int64#7,<zq4=int64#12
# asm 2: add <squarerax=%rax,<zq4=%r14
add %rax,%r14
# qhasm: squarer41 += squarerdx + carry
# asm 1: adc <squarerdx=int64#3,<squarer41=int64#13
# asm 2: adc <squarerdx=%rdx,<squarer41=%r15
adc %rdx,%r15
# qhasm: squarerax = *(uint64 *)(workp + 176)
# asm 1: movq 176(<workp=int64#1),>squarerax=int64#3
# asm 2: movq 176(<workp=%rdi),>squarerax=%rdx
movq 176(%rdi),%rdx
# qhasm: squarerax *= 38
# asm 1: imulq $38,<squarerax=int64#3,>squarerax=int64#7
# asm 2: imulq $38,<squarerax=%rdx,>squarerax=%rax
imulq $38,%rdx,%rax
# qhasm: (uint128) squarerdx squarerax = squarerax * *(uint64 *)(workp + 184)
# asm 1: mulq 184(<workp=int64#1)
# asm 2: mulq 184(<workp=%rdi)
mulq 184(%rdi)
# qhasm: carry? zq0 += squarerax
# asm 1: add <squarerax=int64#7,<zq0=int64#2
# asm 2: add <squarerax=%rax,<zq0=%rsi
add %rax,%rsi
# qhasm: squarer01 += squarerdx + carry
# asm 1: adc <squarerdx=int64#3,<squarer01=int64#4
# asm 2: adc <squarerdx=%rdx,<squarer01=%rcx
adc %rdx,%rcx
# qhasm: squarerax = *(uint64 *)(workp + 176)
# asm 1: movq 176(<workp=int64#1),>squarerax=int64#3
# asm 2: movq 176(<workp=%rdi),>squarerax=%rdx
movq 176(%rdi),%rdx
# qhasm: squarerax *= 38
# asm 1: imulq $38,<squarerax=int64#3,>squarerax=int64#7
# asm 2: imulq $38,<squarerax=%rdx,>squarerax=%rax
imulq $38,%rdx,%rax
# qhasm: (uint128) squarerdx squarerax = squarerax * *(uint64 *)(workp + 192)
# asm 1: mulq 192(<workp=int64#1)
# asm 2: mulq 192(<workp=%rdi)
mulq 192(%rdi)
# qhasm: carry? zq1 += squarerax
# asm 1: add <squarerax=int64#7,<zq1=int64#5
# asm 2: add <squarerax=%rax,<zq1=%r8
add %rax,%r8
# qhasm: squarer11 += squarerdx + carry
# asm 1: adc <squarerdx=int64#3,<squarer11=int64#6
# asm 2: adc <squarerdx=%rdx,<squarer11=%r9
adc %rdx,%r9
# qhasm: squarerax = *(uint64 *)(workp + 184)
# asm 1: movq 184(<workp=int64#1),>squarerax=int64#3
# asm 2: movq 184(<workp=%rdi),>squarerax=%rdx
movq 184(%rdi),%rdx
# qhasm: squarerax *= 19
# asm 1: imulq $19,<squarerax=int64#3,>squarerax=int64#7
# asm 2: imulq $19,<squarerax=%rdx,>squarerax=%rax
imulq $19,%rdx,%rax
# qhasm: (uint128) squarerdx squarerax = squarerax * *(uint64 *)(workp + 184)
# asm 1: mulq 184(<workp=int64#1)
# asm 2: mulq 184(<workp=%rdi)
mulq 184(%rdi)
# qhasm: carry? zq1 += squarerax
# asm 1: add <squarerax=int64#7,<zq1=int64#5
# asm 2: add <squarerax=%rax,<zq1=%r8
add %rax,%r8
# qhasm: squarer11 += squarerdx + carry
# asm 1: adc <squarerdx=int64#3,<squarer11=int64#6
# asm 2: adc <squarerdx=%rdx,<squarer11=%r9
adc %rdx,%r9
# qhasm: squarerax = *(uint64 *)(workp + 184)
# asm 1: movq 184(<workp=int64#1),>squarerax=int64#3
# asm 2: movq 184(<workp=%rdi),>squarerax=%rdx
movq 184(%rdi),%rdx
# qhasm: squarerax *= 38
# asm 1: imulq $38,<squarerax=int64#3,>squarerax=int64#7
# asm 2: imulq $38,<squarerax=%rdx,>squarerax=%rax
imulq $38,%rdx,%rax
# qhasm: (uint128) squarerdx squarerax = squarerax * *(uint64 *)(workp + 192)
# asm 1: mulq 192(<workp=int64#1)
# asm 2: mulq 192(<workp=%rdi)
mulq 192(%rdi)
# qhasm: carry? zq2 += squarerax
# asm 1: add <squarerax=int64#7,<zq2=int64#8
# asm 2: add <squarerax=%rax,<zq2=%r10
add %rax,%r10
# qhasm: squarer21 += squarerdx + carry
# asm 1: adc <squarerdx=int64#3,<squarer21=int64#9
# asm 2: adc <squarerdx=%rdx,<squarer21=%r11
adc %rdx,%r11
# qhasm: squarerax = *(uint64 *)(workp + 192)
# asm 1: movq 192(<workp=int64#1),>squarerax=int64#3
# asm 2: movq 192(<workp=%rdi),>squarerax=%rdx
movq 192(%rdi),%rdx
# qhasm: squarerax *= 19
# asm 1: imulq $19,<squarerax=int64#3,>squarerax=int64#7
# asm 2: imulq $19,<squarerax=%rdx,>squarerax=%rax
imulq $19,%rdx,%rax
# qhasm: (uint128) squarerdx squarerax = squarerax * *(uint64 *)(workp + 192)
# asm 1: mulq 192(<workp=int64#1)
# asm 2: mulq 192(<workp=%rdi)
mulq 192(%rdi)
# qhasm: carry? zq3 += squarerax
# asm 1: add <squarerax=int64#7,<zq3=int64#10
# asm 2: add <squarerax=%rax,<zq3=%r12
add %rax,%r12
# qhasm: squarer31 += squarerdx + carry
# asm 1: adc <squarerdx=int64#3,<squarer31=int64#11
# asm 2: adc <squarerdx=%rdx,<squarer31=%r13
adc %rdx,%r13
# qhasm: squareredmask = *(uint64 *) &CRYPTO_SHARED_NAMESPACE(REDMASK51)
# asm 1: movq CRYPTO_SHARED_NAMESPACE(REDMASK51),>squareredmask=int64#3
# asm 2: movq CRYPTO_SHARED_NAMESPACE(REDMASK51),>squareredmask=%rdx
movq CRYPTO_SHARED_NAMESPACE(REDMASK51)(%rip),%rdx
# qhasm: squarer01 = (squarer01.zq0) << 13
# asm 1: shld $13,<zq0=int64#2,<squarer01=int64#4
# asm 2: shld $13,<zq0=%rsi,<squarer01=%rcx
shld $13,%rsi,%rcx
# qhasm: zq0 &= squareredmask
# asm 1: and <squareredmask=int64#3,<zq0=int64#2
# asm 2: and <squareredmask=%rdx,<zq0=%rsi
and %rdx,%rsi
# qhasm: squarer11 = (squarer11.zq1) << 13
# asm 1: shld $13,<zq1=int64#5,<squarer11=int64#6
# asm 2: shld $13,<zq1=%r8,<squarer11=%r9
shld $13,%r8,%r9
# qhasm: zq1 &= squareredmask
# asm 1: and <squareredmask=int64#3,<zq1=int64#5
# asm 2: and <squareredmask=%rdx,<zq1=%r8
and %rdx,%r8
# qhasm: zq1 += squarer01
# asm 1: add <squarer01=int64#4,<zq1=int64#5
# asm 2: add <squarer01=%rcx,<zq1=%r8
add %rcx,%r8
# qhasm: squarer21 = (squarer21.zq2) << 13
# asm 1: shld $13,<zq2=int64#8,<squarer21=int64#9
# asm 2: shld $13,<zq2=%r10,<squarer21=%r11
shld $13,%r10,%r11
# qhasm: zq2 &= squareredmask
# asm 1: and <squareredmask=int64#3,<zq2=int64#8
# asm 2: and <squareredmask=%rdx,<zq2=%r10
and %rdx,%r10
# qhasm: zq2 += squarer11
# asm 1: add <squarer11=int64#6,<zq2=int64#8
# asm 2: add <squarer11=%r9,<zq2=%r10
add %r9,%r10
# qhasm: squarer31 = (squarer31.zq3) << 13
# asm 1: shld $13,<zq3=int64#10,<squarer31=int64#11
# asm 2: shld $13,<zq3=%r12,<squarer31=%r13
shld $13,%r12,%r13
# qhasm: zq3 &= squareredmask
# asm 1: and <squareredmask=int64#3,<zq3=int64#10
# asm 2: and <squareredmask=%rdx,<zq3=%r12
and %rdx,%r12
# qhasm: zq3 += squarer21
# asm 1: add <squarer21=int64#9,<zq3=int64#10
# asm 2: add <squarer21=%r11,<zq3=%r12
add %r11,%r12
# qhasm: squarer41 = (squarer41.zq4) << 13
# asm 1: shld $13,<zq4=int64#12,<squarer41=int64#13
# asm 2: shld $13,<zq4=%r14,<squarer41=%r15
shld $13,%r14,%r15
# qhasm: zq4 &= squareredmask
# asm 1: and <squareredmask=int64#3,<zq4=int64#12
# asm 2: and <squareredmask=%rdx,<zq4=%r14
and %rdx,%r14
# qhasm: zq4 += squarer31
# asm 1: add <squarer31=int64#11,<zq4=int64#12
# asm 2: add <squarer31=%r13,<zq4=%r14
add %r13,%r14
# qhasm: squarer41 = squarer41 * 19
# asm 1: imulq $19,<squarer41=int64#13,>squarer41=int64#4
# asm 2: imulq $19,<squarer41=%r15,>squarer41=%rcx
imulq $19,%r15,%rcx
# qhasm: zq0 += squarer41
# asm 1: add <squarer41=int64#4,<zq0=int64#2
# asm 2: add <squarer41=%rcx,<zq0=%rsi
add %rcx,%rsi
# qhasm: squaret = zq0
# asm 1: mov <zq0=int64#2,>squaret=int64#4
# asm 2: mov <zq0=%rsi,>squaret=%rcx
mov %rsi,%rcx
# qhasm: (uint64) squaret >>= 51
# asm 1: shr $51,<squaret=int64#4
# asm 2: shr $51,<squaret=%rcx
shr $51,%rcx
# qhasm: squaret += zq1
# asm 1: add <zq1=int64#5,<squaret=int64#4
# asm 2: add <zq1=%r8,<squaret=%rcx
add %r8,%rcx
# qhasm: zq0 &= squareredmask
# asm 1: and <squareredmask=int64#3,<zq0=int64#2
# asm 2: and <squareredmask=%rdx,<zq0=%rsi
and %rdx,%rsi
# qhasm: zq1 = squaret
# asm 1: mov <squaret=int64#4,>zq1=int64#5
# asm 2: mov <squaret=%rcx,>zq1=%r8
mov %rcx,%r8
# qhasm: (uint64) squaret >>= 51
# asm 1: shr $51,<squaret=int64#4
# asm 2: shr $51,<squaret=%rcx
shr $51,%rcx
# qhasm: squaret += zq2
# asm 1: add <zq2=int64#8,<squaret=int64#4
# asm 2: add <zq2=%r10,<squaret=%rcx
add %r10,%rcx
# qhasm: zq1 &= squareredmask
# asm 1: and <squareredmask=int64#3,<zq1=int64#5
# asm 2: and <squareredmask=%rdx,<zq1=%r8
and %rdx,%r8
# qhasm: zq2 = squaret
# asm 1: mov <squaret=int64#4,>zq2=int64#6
# asm 2: mov <squaret=%rcx,>zq2=%r9
mov %rcx,%r9
# qhasm: (uint64) squaret >>= 51
# asm 1: shr $51,<squaret=int64#4
# asm 2: shr $51,<squaret=%rcx
shr $51,%rcx
# qhasm: squaret += zq3
# asm 1: add <zq3=int64#10,<squaret=int64#4
# asm 2: add <zq3=%r12,<squaret=%rcx
add %r12,%rcx
# qhasm: zq2 &= squareredmask
# asm 1: and <squareredmask=int64#3,<zq2=int64#6
# asm 2: and <squareredmask=%rdx,<zq2=%r9
and %rdx,%r9
# qhasm: zq3 = squaret
# asm 1: mov <squaret=int64#4,>zq3=int64#7
# asm 2: mov <squaret=%rcx,>zq3=%rax
mov %rcx,%rax
# qhasm: (uint64) squaret >>= 51
# asm 1: shr $51,<squaret=int64#4
# asm 2: shr $51,<squaret=%rcx
shr $51,%rcx
# qhasm: squaret += zq4
# asm 1: add <zq4=int64#12,<squaret=int64#4
# asm 2: add <zq4=%r14,<squaret=%rcx
add %r14,%rcx
# qhasm: zq3 &= squareredmask
# asm 1: and <squareredmask=int64#3,<zq3=int64#7
# asm 2: and <squareredmask=%rdx,<zq3=%rax
and %rdx,%rax
# qhasm: zq4 = squaret
# asm 1: mov <squaret=int64#4,>zq4=int64#8
# asm 2: mov <squaret=%rcx,>zq4=%r10
mov %rcx,%r10
# qhasm: (uint64) squaret >>= 51
# asm 1: shr $51,<squaret=int64#4
# asm 2: shr $51,<squaret=%rcx
shr $51,%rcx
# qhasm: squaret *= 19
# asm 1: imulq $19,<squaret=int64#4,>squaret=int64#4
# asm 2: imulq $19,<squaret=%rcx,>squaret=%rcx
imulq $19,%rcx,%rcx
# qhasm: zq0 += squaret
# asm 1: add <squaret=int64#4,<zq0=int64#2
# asm 2: add <squaret=%rcx,<zq0=%rsi
add %rcx,%rsi
# qhasm: zq4 &= squareredmask
# asm 1: and <squareredmask=int64#3,<zq4=int64#8
# asm 2: and <squareredmask=%rdx,<zq4=%r10
and %rdx,%r10
# qhasm: *(uint64 *)(workp + 160) = zq0
# asm 1: movq <zq0=int64#2,160(<workp=int64#1)
# asm 2: movq <zq0=%rsi,160(<workp=%rdi)
movq %rsi,160(%rdi)
# qhasm: *(uint64 *)(workp + 168) = zq1
# asm 1: movq <zq1=int64#5,168(<workp=int64#1)
# asm 2: movq <zq1=%r8,168(<workp=%rdi)
movq %r8,168(%rdi)
# qhasm: *(uint64 *)(workp + 176) = zq2
# asm 1: movq <zq2=int64#6,176(<workp=int64#1)
# asm 2: movq <zq2=%r9,176(<workp=%rdi)
movq %r9,176(%rdi)
# qhasm: *(uint64 *)(workp + 184) = zq3
# asm 1: movq <zq3=int64#7,184(<workp=int64#1)
# asm 2: movq <zq3=%rax,184(<workp=%rdi)
movq %rax,184(%rdi)
# qhasm: *(uint64 *)(workp + 192) = zq4
# asm 1: movq <zq4=int64#8,192(<workp=int64#1)
# asm 2: movq <zq4=%r10,192(<workp=%rdi)
movq %r10,192(%rdi)
# qhasm: mulrax = *(uint64 *)(workp + 184)
# asm 1: movq 184(<workp=int64#1),>mulrax=int64#2
# asm 2: movq 184(<workp=%rdi),>mulrax=%rsi
movq 184(%rdi),%rsi
# qhasm: mulrax *= 19
# asm 1: imulq $19,<mulrax=int64#2,>mulrax=int64#7
# asm 2: imulq $19,<mulrax=%rsi,>mulrax=%rax
imulq $19,%rsi,%rax
# qhasm: mulx319_stack = mulrax
# asm 1: movq <mulrax=int64#7,>mulx319_stack=stack64#8
# asm 2: movq <mulrax=%rax,>mulx319_stack=56(%rsp)
movq %rax,56(%rsp)
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)(workp + 16)
# asm 1: mulq 16(<workp=int64#1)
# asm 2: mulq 16(<workp=%rdi)
mulq 16(%rdi)
# qhasm: zq0 = mulrax
# asm 1: mov <mulrax=int64#7,>zq0=int64#2
# asm 2: mov <mulrax=%rax,>zq0=%rsi
mov %rax,%rsi
# qhasm: mulr01 = mulrdx
# asm 1: mov <mulrdx=int64#3,>mulr01=int64#4
# asm 2: mov <mulrdx=%rdx,>mulr01=%rcx
mov %rdx,%rcx
# qhasm: mulrax = *(uint64 *)(workp + 192)
# asm 1: movq 192(<workp=int64#1),>mulrax=int64#3
# asm 2: movq 192(<workp=%rdi),>mulrax=%rdx
movq 192(%rdi),%rdx
# qhasm: mulrax *= 19
# asm 1: imulq $19,<mulrax=int64#3,>mulrax=int64#7
# asm 2: imulq $19,<mulrax=%rdx,>mulrax=%rax
imulq $19,%rdx,%rax
# qhasm: mulx419_stack = mulrax
# asm 1: movq <mulrax=int64#7,>mulx419_stack=stack64#9
# asm 2: movq <mulrax=%rax,>mulx419_stack=64(%rsp)
movq %rax,64(%rsp)
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)(workp + 8)
# asm 1: mulq 8(<workp=int64#1)
# asm 2: mulq 8(<workp=%rdi)
mulq 8(%rdi)
# qhasm: carry? zq0 += mulrax
# asm 1: add <mulrax=int64#7,<zq0=int64#2
# asm 2: add <mulrax=%rax,<zq0=%rsi
add %rax,%rsi
# qhasm: mulr01 += mulrdx + carry
# asm 1: adc <mulrdx=int64#3,<mulr01=int64#4
# asm 2: adc <mulrdx=%rdx,<mulr01=%rcx
adc %rdx,%rcx
# qhasm: mulrax = *(uint64 *)(workp + 160)
# asm 1: movq 160(<workp=int64#1),>mulrax=int64#7
# asm 2: movq 160(<workp=%rdi),>mulrax=%rax
movq 160(%rdi),%rax
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)(workp + 0)
# asm 1: mulq 0(<workp=int64#1)
# asm 2: mulq 0(<workp=%rdi)
mulq 0(%rdi)
# qhasm: carry? zq0 += mulrax
# asm 1: add <mulrax=int64#7,<zq0=int64#2
# asm 2: add <mulrax=%rax,<zq0=%rsi
add %rax,%rsi
# qhasm: mulr01 += mulrdx + carry
# asm 1: adc <mulrdx=int64#3,<mulr01=int64#4
# asm 2: adc <mulrdx=%rdx,<mulr01=%rcx
adc %rdx,%rcx
# qhasm: mulrax = *(uint64 *)(workp + 160)
# asm 1: movq 160(<workp=int64#1),>mulrax=int64#7
# asm 2: movq 160(<workp=%rdi),>mulrax=%rax
movq 160(%rdi),%rax
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)(workp + 8)
# asm 1: mulq 8(<workp=int64#1)
# asm 2: mulq 8(<workp=%rdi)
mulq 8(%rdi)
# qhasm: zq1 = mulrax
# asm 1: mov <mulrax=int64#7,>zq1=int64#5
# asm 2: mov <mulrax=%rax,>zq1=%r8
mov %rax,%r8
# qhasm: mulr11 = mulrdx
# asm 1: mov <mulrdx=int64#3,>mulr11=int64#6
# asm 2: mov <mulrdx=%rdx,>mulr11=%r9
mov %rdx,%r9
# qhasm: mulrax = *(uint64 *)(workp + 160)
# asm 1: movq 160(<workp=int64#1),>mulrax=int64#7
# asm 2: movq 160(<workp=%rdi),>mulrax=%rax
movq 160(%rdi),%rax
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)(workp + 16)
# asm 1: mulq 16(<workp=int64#1)
# asm 2: mulq 16(<workp=%rdi)
mulq 16(%rdi)
# qhasm: zq2 = mulrax
# asm 1: mov <mulrax=int64#7,>zq2=int64#8
# asm 2: mov <mulrax=%rax,>zq2=%r10
mov %rax,%r10
# qhasm: mulr21 = mulrdx
# asm 1: mov <mulrdx=int64#3,>mulr21=int64#9
# asm 2: mov <mulrdx=%rdx,>mulr21=%r11
mov %rdx,%r11
# qhasm: mulrax = *(uint64 *)(workp + 160)
# asm 1: movq 160(<workp=int64#1),>mulrax=int64#7
# asm 2: movq 160(<workp=%rdi),>mulrax=%rax
movq 160(%rdi),%rax
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)(workp + 24)
# asm 1: mulq 24(<workp=int64#1)
# asm 2: mulq 24(<workp=%rdi)
mulq 24(%rdi)
# qhasm: zq3 = mulrax
# asm 1: mov <mulrax=int64#7,>zq3=int64#10
# asm 2: mov <mulrax=%rax,>zq3=%r12
mov %rax,%r12
# qhasm: mulr31 = mulrdx
# asm 1: mov <mulrdx=int64#3,>mulr31=int64#11
# asm 2: mov <mulrdx=%rdx,>mulr31=%r13
mov %rdx,%r13
# qhasm: mulrax = *(uint64 *)(workp + 160)
# asm 1: movq 160(<workp=int64#1),>mulrax=int64#7
# asm 2: movq 160(<workp=%rdi),>mulrax=%rax
movq 160(%rdi),%rax
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)(workp + 32)
# asm 1: mulq 32(<workp=int64#1)
# asm 2: mulq 32(<workp=%rdi)
mulq 32(%rdi)
# qhasm: zq4 = mulrax
# asm 1: mov <mulrax=int64#7,>zq4=int64#12
# asm 2: mov <mulrax=%rax,>zq4=%r14
mov %rax,%r14
# qhasm: mulr41 = mulrdx
# asm 1: mov <mulrdx=int64#3,>mulr41=int64#13
# asm 2: mov <mulrdx=%rdx,>mulr41=%r15
mov %rdx,%r15
# qhasm: mulrax = *(uint64 *)(workp + 168)
# asm 1: movq 168(<workp=int64#1),>mulrax=int64#7
# asm 2: movq 168(<workp=%rdi),>mulrax=%rax
movq 168(%rdi),%rax
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)(workp + 0)
# asm 1: mulq 0(<workp=int64#1)
# asm 2: mulq 0(<workp=%rdi)
mulq 0(%rdi)
# qhasm: carry? zq1 += mulrax
# asm 1: add <mulrax=int64#7,<zq1=int64#5
# asm 2: add <mulrax=%rax,<zq1=%r8
add %rax,%r8
# qhasm: mulr11 += mulrdx + carry
# asm 1: adc <mulrdx=int64#3,<mulr11=int64#6
# asm 2: adc <mulrdx=%rdx,<mulr11=%r9
adc %rdx,%r9
# qhasm: mulrax = *(uint64 *)(workp + 168)
# asm 1: movq 168(<workp=int64#1),>mulrax=int64#7
# asm 2: movq 168(<workp=%rdi),>mulrax=%rax
movq 168(%rdi),%rax
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)(workp + 8)
# asm 1: mulq 8(<workp=int64#1)
# asm 2: mulq 8(<workp=%rdi)
mulq 8(%rdi)
# qhasm: carry? zq2 += mulrax
# asm 1: add <mulrax=int64#7,<zq2=int64#8
# asm 2: add <mulrax=%rax,<zq2=%r10
add %rax,%r10
# qhasm: mulr21 += mulrdx + carry
# asm 1: adc <mulrdx=int64#3,<mulr21=int64#9
# asm 2: adc <mulrdx=%rdx,<mulr21=%r11
adc %rdx,%r11
# qhasm: mulrax = *(uint64 *)(workp + 168)
# asm 1: movq 168(<workp=int64#1),>mulrax=int64#7
# asm 2: movq 168(<workp=%rdi),>mulrax=%rax
movq 168(%rdi),%rax
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)(workp + 16)
# asm 1: mulq 16(<workp=int64#1)
# asm 2: mulq 16(<workp=%rdi)
mulq 16(%rdi)
# qhasm: carry? zq3 += mulrax
# asm 1: add <mulrax=int64#7,<zq3=int64#10
# asm 2: add <mulrax=%rax,<zq3=%r12
add %rax,%r12
# qhasm: mulr31 += mulrdx + carry
# asm 1: adc <mulrdx=int64#3,<mulr31=int64#11
# asm 2: adc <mulrdx=%rdx,<mulr31=%r13
adc %rdx,%r13
# qhasm: mulrax = *(uint64 *)(workp + 168)
# asm 1: movq 168(<workp=int64#1),>mulrax=int64#7
# asm 2: movq 168(<workp=%rdi),>mulrax=%rax
movq 168(%rdi),%rax
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)(workp + 24)
# asm 1: mulq 24(<workp=int64#1)
# asm 2: mulq 24(<workp=%rdi)
mulq 24(%rdi)
# qhasm: carry? zq4 += mulrax
# asm 1: add <mulrax=int64#7,<zq4=int64#12
# asm 2: add <mulrax=%rax,<zq4=%r14
add %rax,%r14
# qhasm: mulr41 += mulrdx + carry
# asm 1: adc <mulrdx=int64#3,<mulr41=int64#13
# asm 2: adc <mulrdx=%rdx,<mulr41=%r15
adc %rdx,%r15
# qhasm: mulrax = *(uint64 *)(workp + 168)
# asm 1: movq 168(<workp=int64#1),>mulrax=int64#3
# asm 2: movq 168(<workp=%rdi),>mulrax=%rdx
movq 168(%rdi),%rdx
# qhasm: mulrax *= 19
# asm 1: imulq $19,<mulrax=int64#3,>mulrax=int64#7
# asm 2: imulq $19,<mulrax=%rdx,>mulrax=%rax
imulq $19,%rdx,%rax
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)(workp + 32)
# asm 1: mulq 32(<workp=int64#1)
# asm 2: mulq 32(<workp=%rdi)
mulq 32(%rdi)
# qhasm: carry? zq0 += mulrax
# asm 1: add <mulrax=int64#7,<zq0=int64#2
# asm 2: add <mulrax=%rax,<zq0=%rsi
add %rax,%rsi
# qhasm: mulr01 += mulrdx + carry
# asm 1: adc <mulrdx=int64#3,<mulr01=int64#4
# asm 2: adc <mulrdx=%rdx,<mulr01=%rcx
adc %rdx,%rcx
# qhasm: mulrax = *(uint64 *)(workp + 176)
# asm 1: movq 176(<workp=int64#1),>mulrax=int64#7
# asm 2: movq 176(<workp=%rdi),>mulrax=%rax
movq 176(%rdi),%rax
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)(workp + 0)
# asm 1: mulq 0(<workp=int64#1)
# asm 2: mulq 0(<workp=%rdi)
mulq 0(%rdi)
# qhasm: carry? zq2 += mulrax
# asm 1: add <mulrax=int64#7,<zq2=int64#8
# asm 2: add <mulrax=%rax,<zq2=%r10
add %rax,%r10
# qhasm: mulr21 += mulrdx + carry
# asm 1: adc <mulrdx=int64#3,<mulr21=int64#9
# asm 2: adc <mulrdx=%rdx,<mulr21=%r11
adc %rdx,%r11
# qhasm: mulrax = *(uint64 *)(workp + 176)
# asm 1: movq 176(<workp=int64#1),>mulrax=int64#7
# asm 2: movq 176(<workp=%rdi),>mulrax=%rax
movq 176(%rdi),%rax
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)(workp + 8)
# asm 1: mulq 8(<workp=int64#1)
# asm 2: mulq 8(<workp=%rdi)
mulq 8(%rdi)
# qhasm: carry? zq3 += mulrax
# asm 1: add <mulrax=int64#7,<zq3=int64#10
# asm 2: add <mulrax=%rax,<zq3=%r12
add %rax,%r12
# qhasm: mulr31 += mulrdx + carry
# asm 1: adc <mulrdx=int64#3,<mulr31=int64#11
# asm 2: adc <mulrdx=%rdx,<mulr31=%r13
adc %rdx,%r13
# qhasm: mulrax = *(uint64 *)(workp + 176)
# asm 1: movq 176(<workp=int64#1),>mulrax=int64#7
# asm 2: movq 176(<workp=%rdi),>mulrax=%rax
movq 176(%rdi),%rax
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)(workp + 16)
# asm 1: mulq 16(<workp=int64#1)
# asm 2: mulq 16(<workp=%rdi)
mulq 16(%rdi)
# qhasm: carry? zq4 += mulrax
# asm 1: add <mulrax=int64#7,<zq4=int64#12
# asm 2: add <mulrax=%rax,<zq4=%r14
add %rax,%r14
# qhasm: mulr41 += mulrdx + carry
# asm 1: adc <mulrdx=int64#3,<mulr41=int64#13
# asm 2: adc <mulrdx=%rdx,<mulr41=%r15
adc %rdx,%r15
# qhasm: mulrax = *(uint64 *)(workp + 176)
# asm 1: movq 176(<workp=int64#1),>mulrax=int64#3
# asm 2: movq 176(<workp=%rdi),>mulrax=%rdx
movq 176(%rdi),%rdx
# qhasm: mulrax *= 19
# asm 1: imulq $19,<mulrax=int64#3,>mulrax=int64#7
# asm 2: imulq $19,<mulrax=%rdx,>mulrax=%rax
imulq $19,%rdx,%rax
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)(workp + 24)
# asm 1: mulq 24(<workp=int64#1)
# asm 2: mulq 24(<workp=%rdi)
mulq 24(%rdi)
# qhasm: carry? zq0 += mulrax
# asm 1: add <mulrax=int64#7,<zq0=int64#2
# asm 2: add <mulrax=%rax,<zq0=%rsi
add %rax,%rsi
# qhasm: mulr01 += mulrdx + carry
# asm 1: adc <mulrdx=int64#3,<mulr01=int64#4
# asm 2: adc <mulrdx=%rdx,<mulr01=%rcx
adc %rdx,%rcx
# qhasm: mulrax = *(uint64 *)(workp + 176)
# asm 1: movq 176(<workp=int64#1),>mulrax=int64#3
# asm 2: movq 176(<workp=%rdi),>mulrax=%rdx
movq 176(%rdi),%rdx
# qhasm: mulrax *= 19
# asm 1: imulq $19,<mulrax=int64#3,>mulrax=int64#7
# asm 2: imulq $19,<mulrax=%rdx,>mulrax=%rax
imulq $19,%rdx,%rax
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)(workp + 32)
# asm 1: mulq 32(<workp=int64#1)
# asm 2: mulq 32(<workp=%rdi)
mulq 32(%rdi)
# qhasm: carry? zq1 += mulrax
# asm 1: add <mulrax=int64#7,<zq1=int64#5
# asm 2: add <mulrax=%rax,<zq1=%r8
add %rax,%r8
# qhasm: mulr11 += mulrdx + carry
# asm 1: adc <mulrdx=int64#3,<mulr11=int64#6
# asm 2: adc <mulrdx=%rdx,<mulr11=%r9
adc %rdx,%r9
# qhasm: mulrax = *(uint64 *)(workp + 184)
# asm 1: movq 184(<workp=int64#1),>mulrax=int64#7
# asm 2: movq 184(<workp=%rdi),>mulrax=%rax
movq 184(%rdi),%rax
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)(workp + 0)
# asm 1: mulq 0(<workp=int64#1)
# asm 2: mulq 0(<workp=%rdi)
mulq 0(%rdi)
# qhasm: carry? zq3 += mulrax
# asm 1: add <mulrax=int64#7,<zq3=int64#10
# asm 2: add <mulrax=%rax,<zq3=%r12
add %rax,%r12
# qhasm: mulr31 += mulrdx + carry
# asm 1: adc <mulrdx=int64#3,<mulr31=int64#11
# asm 2: adc <mulrdx=%rdx,<mulr31=%r13
adc %rdx,%r13
# qhasm: mulrax = *(uint64 *)(workp + 184)
# asm 1: movq 184(<workp=int64#1),>mulrax=int64#7
# asm 2: movq 184(<workp=%rdi),>mulrax=%rax
movq 184(%rdi),%rax
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)(workp + 8)
# asm 1: mulq 8(<workp=int64#1)
# asm 2: mulq 8(<workp=%rdi)
mulq 8(%rdi)
# qhasm: carry? zq4 += mulrax
# asm 1: add <mulrax=int64#7,<zq4=int64#12
# asm 2: add <mulrax=%rax,<zq4=%r14
add %rax,%r14
# qhasm: mulr41 += mulrdx + carry
# asm 1: adc <mulrdx=int64#3,<mulr41=int64#13
# asm 2: adc <mulrdx=%rdx,<mulr41=%r15
adc %rdx,%r15
# qhasm: mulrax = mulx319_stack
# asm 1: movq <mulx319_stack=stack64#8,>mulrax=int64#7
# asm 2: movq <mulx319_stack=56(%rsp),>mulrax=%rax
movq 56(%rsp),%rax
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)(workp + 24)
# asm 1: mulq 24(<workp=int64#1)
# asm 2: mulq 24(<workp=%rdi)
mulq 24(%rdi)
# qhasm: carry? zq1 += mulrax
# asm 1: add <mulrax=int64#7,<zq1=int64#5
# asm 2: add <mulrax=%rax,<zq1=%r8
add %rax,%r8
# qhasm: mulr11 += mulrdx + carry
# asm 1: adc <mulrdx=int64#3,<mulr11=int64#6
# asm 2: adc <mulrdx=%rdx,<mulr11=%r9
adc %rdx,%r9
# qhasm: mulrax = mulx319_stack
# asm 1: movq <mulx319_stack=stack64#8,>mulrax=int64#7
# asm 2: movq <mulx319_stack=56(%rsp),>mulrax=%rax
movq 56(%rsp),%rax
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)(workp + 32)
# asm 1: mulq 32(<workp=int64#1)
# asm 2: mulq 32(<workp=%rdi)
mulq 32(%rdi)
# qhasm: carry? zq2 += mulrax
# asm 1: add <mulrax=int64#7,<zq2=int64#8
# asm 2: add <mulrax=%rax,<zq2=%r10
add %rax,%r10
# qhasm: mulr21 += mulrdx + carry
# asm 1: adc <mulrdx=int64#3,<mulr21=int64#9
# asm 2: adc <mulrdx=%rdx,<mulr21=%r11
adc %rdx,%r11
# qhasm: mulrax = *(uint64 *)(workp + 192)
# asm 1: movq 192(<workp=int64#1),>mulrax=int64#7
# asm 2: movq 192(<workp=%rdi),>mulrax=%rax
movq 192(%rdi),%rax
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)(workp + 0)
# asm 1: mulq 0(<workp=int64#1)
# asm 2: mulq 0(<workp=%rdi)
mulq 0(%rdi)
# qhasm: carry? zq4 += mulrax
# asm 1: add <mulrax=int64#7,<zq4=int64#12
# asm 2: add <mulrax=%rax,<zq4=%r14
add %rax,%r14
# qhasm: mulr41 += mulrdx + carry
# asm 1: adc <mulrdx=int64#3,<mulr41=int64#13
# asm 2: adc <mulrdx=%rdx,<mulr41=%r15
adc %rdx,%r15
# qhasm: mulrax = mulx419_stack
# asm 1: movq <mulx419_stack=stack64#9,>mulrax=int64#7
# asm 2: movq <mulx419_stack=64(%rsp),>mulrax=%rax
movq 64(%rsp),%rax
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)(workp + 16)
# asm 1: mulq 16(<workp=int64#1)
# asm 2: mulq 16(<workp=%rdi)
mulq 16(%rdi)
# qhasm: carry? zq1 += mulrax
# asm 1: add <mulrax=int64#7,<zq1=int64#5
# asm 2: add <mulrax=%rax,<zq1=%r8
add %rax,%r8
# qhasm: mulr11 += mulrdx + carry
# asm 1: adc <mulrdx=int64#3,<mulr11=int64#6
# asm 2: adc <mulrdx=%rdx,<mulr11=%r9
adc %rdx,%r9
# qhasm: mulrax = mulx419_stack
# asm 1: movq <mulx419_stack=stack64#9,>mulrax=int64#7
# asm 2: movq <mulx419_stack=64(%rsp),>mulrax=%rax
movq 64(%rsp),%rax
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)(workp + 24)
# asm 1: mulq 24(<workp=int64#1)
# asm 2: mulq 24(<workp=%rdi)
mulq 24(%rdi)
# qhasm: carry? zq2 += mulrax
# asm 1: add <mulrax=int64#7,<zq2=int64#8
# asm 2: add <mulrax=%rax,<zq2=%r10
add %rax,%r10
# qhasm: mulr21 += mulrdx + carry
# asm 1: adc <mulrdx=int64#3,<mulr21=int64#9
# asm 2: adc <mulrdx=%rdx,<mulr21=%r11
adc %rdx,%r11
# qhasm: mulrax = mulx419_stack
# asm 1: movq <mulx419_stack=stack64#9,>mulrax=int64#7
# asm 2: movq <mulx419_stack=64(%rsp),>mulrax=%rax
movq 64(%rsp),%rax
# qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)(workp + 32)
# asm 1: mulq 32(<workp=int64#1)
# asm 2: mulq 32(<workp=%rdi)
mulq 32(%rdi)
# qhasm: carry? zq3 += mulrax
# asm 1: add <mulrax=int64#7,<zq3=int64#10
# asm 2: add <mulrax=%rax,<zq3=%r12
add %rax,%r12
# qhasm: mulr31 += mulrdx + carry
# asm 1: adc <mulrdx=int64#3,<mulr31=int64#11
# asm 2: adc <mulrdx=%rdx,<mulr31=%r13
adc %rdx,%r13
# qhasm: mulredmask = *(uint64 *) &CRYPTO_SHARED_NAMESPACE(REDMASK51)
# asm 1: movq CRYPTO_SHARED_NAMESPACE(REDMASK51),>mulredmask=int64#3
# asm 2: movq CRYPTO_SHARED_NAMESPACE(REDMASK51),>mulredmask=%rdx
movq CRYPTO_SHARED_NAMESPACE(REDMASK51)(%rip),%rdx
# qhasm: mulr01 = (mulr01.zq0) << 13
# asm 1: shld $13,<zq0=int64#2,<mulr01=int64#4
# asm 2: shld $13,<zq0=%rsi,<mulr01=%rcx
shld $13,%rsi,%rcx
# qhasm: zq0 &= mulredmask
# asm 1: and <mulredmask=int64#3,<zq0=int64#2
# asm 2: and <mulredmask=%rdx,<zq0=%rsi
and %rdx,%rsi
# qhasm: mulr11 = (mulr11.zq1) << 13
# asm 1: shld $13,<zq1=int64#5,<mulr11=int64#6
# asm 2: shld $13,<zq1=%r8,<mulr11=%r9
shld $13,%r8,%r9
# qhasm: zq1 &= mulredmask
# asm 1: and <mulredmask=int64#3,<zq1=int64#5
# asm 2: and <mulredmask=%rdx,<zq1=%r8
and %rdx,%r8
# qhasm: zq1 += mulr01
# asm 1: add <mulr01=int64#4,<zq1=int64#5
# asm 2: add <mulr01=%rcx,<zq1=%r8
add %rcx,%r8
# qhasm: mulr21 = (mulr21.zq2) << 13
# asm 1: shld $13,<zq2=int64#8,<mulr21=int64#9
# asm 2: shld $13,<zq2=%r10,<mulr21=%r11
shld $13,%r10,%r11
# qhasm: zq2 &= mulredmask
# asm 1: and <mulredmask=int64#3,<zq2=int64#8
# asm 2: and <mulredmask=%rdx,<zq2=%r10
and %rdx,%r10
# qhasm: zq2 += mulr11
# asm 1: add <mulr11=int64#6,<zq2=int64#8
# asm 2: add <mulr11=%r9,<zq2=%r10
add %r9,%r10
# qhasm: mulr31 = (mulr31.zq3) << 13
# asm 1: shld $13,<zq3=int64#10,<mulr31=int64#11
# asm 2: shld $13,<zq3=%r12,<mulr31=%r13
shld $13,%r12,%r13
# qhasm: zq3 &= mulredmask
# asm 1: and <mulredmask=int64#3,<zq3=int64#10
# asm 2: and <mulredmask=%rdx,<zq3=%r12
and %rdx,%r12
# qhasm: zq3 += mulr21
# asm 1: add <mulr21=int64#9,<zq3=int64#10
# asm 2: add <mulr21=%r11,<zq3=%r12
add %r11,%r12
# qhasm: mulr41 = (mulr41.zq4) << 13
# asm 1: shld $13,<zq4=int64#12,<mulr41=int64#13
# asm 2: shld $13,<zq4=%r14,<mulr41=%r15
shld $13,%r14,%r15
# qhasm: zq4 &= mulredmask
# asm 1: and <mulredmask=int64#3,<zq4=int64#12
# asm 2: and <mulredmask=%rdx,<zq4=%r14
and %rdx,%r14
# qhasm: zq4 += mulr31
# asm 1: add <mulr31=int64#11,<zq4=int64#12
# asm 2: add <mulr31=%r13,<zq4=%r14
add %r13,%r14
# qhasm: mulr41 = mulr41 * 19
# asm 1: imulq $19,<mulr41=int64#13,>mulr41=int64#4
# asm 2: imulq $19,<mulr41=%r15,>mulr41=%rcx
imulq $19,%r15,%rcx
# qhasm: zq0 += mulr41
# asm 1: add <mulr41=int64#4,<zq0=int64#2
# asm 2: add <mulr41=%rcx,<zq0=%rsi
add %rcx,%rsi
# qhasm: mult = zq0
# asm 1: mov <zq0=int64#2,>mult=int64#4
# asm 2: mov <zq0=%rsi,>mult=%rcx
mov %rsi,%rcx
# qhasm: (uint64) mult >>= 51
# asm 1: shr $51,<mult=int64#4
# asm 2: shr $51,<mult=%rcx
shr $51,%rcx
# qhasm: mult += zq1
# asm 1: add <zq1=int64#5,<mult=int64#4
# asm 2: add <zq1=%r8,<mult=%rcx
add %r8,%rcx
# qhasm: zq1 = mult
# asm 1: mov <mult=int64#4,>zq1=int64#5
# asm 2: mov <mult=%rcx,>zq1=%r8
mov %rcx,%r8
# qhasm: (uint64) mult >>= 51
# asm 1: shr $51,<mult=int64#4
# asm 2: shr $51,<mult=%rcx
shr $51,%rcx
# qhasm: zq0 &= mulredmask
# asm 1: and <mulredmask=int64#3,<zq0=int64#2
# asm 2: and <mulredmask=%rdx,<zq0=%rsi
and %rdx,%rsi
# qhasm: mult += zq2
# asm 1: add <zq2=int64#8,<mult=int64#4
# asm 2: add <zq2=%r10,<mult=%rcx
add %r10,%rcx
# qhasm: zq2 = mult
# asm 1: mov <mult=int64#4,>zq2=int64#6
# asm 2: mov <mult=%rcx,>zq2=%r9
mov %rcx,%r9
# qhasm: (uint64) mult >>= 51
# asm 1: shr $51,<mult=int64#4
# asm 2: shr $51,<mult=%rcx
shr $51,%rcx
# qhasm: zq1 &= mulredmask
# asm 1: and <mulredmask=int64#3,<zq1=int64#5
# asm 2: and <mulredmask=%rdx,<zq1=%r8
and %rdx,%r8
# qhasm: mult += zq3
# asm 1: add <zq3=int64#10,<mult=int64#4
# asm 2: add <zq3=%r12,<mult=%rcx
add %r12,%rcx
# qhasm: zq3 = mult
# asm 1: mov <mult=int64#4,>zq3=int64#7
# asm 2: mov <mult=%rcx,>zq3=%rax
mov %rcx,%rax
# qhasm: (uint64) mult >>= 51
# asm 1: shr $51,<mult=int64#4
# asm 2: shr $51,<mult=%rcx
shr $51,%rcx
# qhasm: zq2 &= mulredmask
# asm 1: and <mulredmask=int64#3,<zq2=int64#6
# asm 2: and <mulredmask=%rdx,<zq2=%r9
and %rdx,%r9
# qhasm: mult += zq4
# asm 1: add <zq4=int64#12,<mult=int64#4
# asm 2: add <zq4=%r14,<mult=%rcx
add %r14,%rcx
# qhasm: zq4 = mult
# asm 1: mov <mult=int64#4,>zq4=int64#8
# asm 2: mov <mult=%rcx,>zq4=%r10
mov %rcx,%r10
# qhasm: (uint64) mult >>= 51
# asm 1: shr $51,<mult=int64#4
# asm 2: shr $51,<mult=%rcx
shr $51,%rcx
# qhasm: zq3 &= mulredmask
# asm 1: and <mulredmask=int64#3,<zq3=int64#7
# asm 2: and <mulredmask=%rdx,<zq3=%rax
and %rdx,%rax
# qhasm: mult *= 19
# asm 1: imulq $19,<mult=int64#4,>mult=int64#4
# asm 2: imulq $19,<mult=%rcx,>mult=%rcx
imulq $19,%rcx,%rcx
# qhasm: zq0 += mult
# asm 1: add <mult=int64#4,<zq0=int64#2
# asm 2: add <mult=%rcx,<zq0=%rsi
add %rcx,%rsi
# qhasm: zq4 &= mulredmask
# asm 1: and <mulredmask=int64#3,<zq4=int64#8
# asm 2: and <mulredmask=%rdx,<zq4=%r10
and %rdx,%r10
# qhasm: *(uint64 *)(workp + 160) = zq0
# asm 1: movq <zq0=int64#2,160(<workp=int64#1)
# asm 2: movq <zq0=%rsi,160(<workp=%rdi)
movq %rsi,160(%rdi)
# qhasm: *(uint64 *)(workp + 168) = zq1
# asm 1: movq <zq1=int64#5,168(<workp=int64#1)
# asm 2: movq <zq1=%r8,168(<workp=%rdi)
movq %r8,168(%rdi)
# qhasm: *(uint64 *)(workp + 176) = zq2
# asm 1: movq <zq2=int64#6,176(<workp=int64#1)
# asm 2: movq <zq2=%r9,176(<workp=%rdi)
movq %r9,176(%rdi)
# qhasm: *(uint64 *)(workp + 184) = zq3
# asm 1: movq <zq3=int64#7,184(<workp=int64#1)
# asm 2: movq <zq3=%rax,184(<workp=%rdi)
movq %rax,184(%rdi)
# qhasm: *(uint64 *)(workp + 192) = zq4
# asm 1: movq <zq4=int64#8,192(<workp=int64#1)
# asm 2: movq <zq4=%r10,192(<workp=%rdi)
movq %r10,192(%rdi)
# qhasm: mulrax = t63_stack
# asm 1: movq <t63_stack=stack64#26,>mulrax=int64#2
# asm 2: movq <t63_stack=200(%rsp),>mulrax=%rsi
movq 200(%rsp),%rsi
# qhasm: mulrax *= 19
# asm 1: imulq $19,<mulrax=int64#2,>mulrax=int64#7
# asm 2: imulq $19,<mulrax=%rsi,>mulrax=%rax
imulq $19,%rsi,%rax
# qhasm: mulx319_stack = mulrax
# asm 1: movq <mulrax=int64#7,>mulx319_stack=stack64#8
# asm 2: movq <mulrax=%rax,>mulx319_stack=56(%rsp)
movq %rax,56(%rsp)
# qhasm: (uint128) mulrdx mulrax = mulrax * t72_stack
# asm 1: mulq <t72_stack=stack64#20
# asm 2: mulq <t72_stack=152(%rsp)
mulq 152(%rsp)
# qhasm: xp0 = mulrax
# asm 1: mov <mulrax=int64#7,>xp0=int64#2
# asm 2: mov <mulrax=%rax,>xp0=%rsi
mov %rax,%rsi
# qhasm: mulr01 = mulrdx
# asm 1: mov <mulrdx=int64#3,>mulr01=int64#4
# asm 2: mov <mulrdx=%rdx,>mulr01=%rcx
mov %rdx,%rcx
# qhasm: mulrax = t64_stack
# asm 1: movq <t64_stack=stack64#27,>mulrax=int64#3
# asm 2: movq <t64_stack=208(%rsp),>mulrax=%rdx
movq 208(%rsp),%rdx
# qhasm: mulrax *= 19
# asm 1: imulq $19,<mulrax=int64#3,>mulrax=int64#7
# asm 2: imulq $19,<mulrax=%rdx,>mulrax=%rax
imulq $19,%rdx,%rax
# qhasm: mulx419_stack = mulrax
# asm 1: movq <mulrax=int64#7,>mulx419_stack=stack64#9
# asm 2: movq <mulrax=%rax,>mulx419_stack=64(%rsp)
movq %rax,64(%rsp)
# qhasm: (uint128) mulrdx mulrax = mulrax * t71_stack
# asm 1: mulq <t71_stack=stack64#19
# asm 2: mulq <t71_stack=144(%rsp)
mulq 144(%rsp)
# qhasm: carry? xp0 += mulrax
# asm 1: add <mulrax=int64#7,<xp0=int64#2
# asm 2: add <mulrax=%rax,<xp0=%rsi
add %rax,%rsi
# qhasm: mulr01 += mulrdx + carry
# asm 1: adc <mulrdx=int64#3,<mulr01=int64#4
# asm 2: adc <mulrdx=%rdx,<mulr01=%rcx
adc %rdx,%rcx
# qhasm: mulrax = t60_stack
# asm 1: movq <t60_stack=stack64#23,>mulrax=int64#7
# asm 2: movq <t60_stack=176(%rsp),>mulrax=%rax
movq 176(%rsp),%rax
# qhasm: (uint128) mulrdx mulrax = mulrax * t70_stack
# asm 1: mulq <t70_stack=stack64#18
# asm 2: mulq <t70_stack=136(%rsp)
mulq 136(%rsp)
# qhasm: carry? xp0 += mulrax
# asm 1: add <mulrax=int64#7,<xp0=int64#2
# asm 2: add <mulrax=%rax,<xp0=%rsi
add %rax,%rsi
# qhasm: mulr01 += mulrdx + carry
# asm 1: adc <mulrdx=int64#3,<mulr01=int64#4
# asm 2: adc <mulrdx=%rdx,<mulr01=%rcx
adc %rdx,%rcx
# qhasm: mulrax = t60_stack
# asm 1: movq <t60_stack=stack64#23,>mulrax=int64#7
# asm 2: movq <t60_stack=176(%rsp),>mulrax=%rax
movq 176(%rsp),%rax
# qhasm: (uint128) mulrdx mulrax = mulrax * t71_stack
# asm 1: mulq <t71_stack=stack64#19
# asm 2: mulq <t71_stack=144(%rsp)
mulq 144(%rsp)
# qhasm: xp1 = mulrax
# asm 1: mov <mulrax=int64#7,>xp1=int64#5
# asm 2: mov <mulrax=%rax,>xp1=%r8
mov %rax,%r8
# qhasm: mulr11 = mulrdx
# asm 1: mov <mulrdx=int64#3,>mulr11=int64#6
# asm 2: mov <mulrdx=%rdx,>mulr11=%r9
mov %rdx,%r9
# qhasm: mulrax = t60_stack
# asm 1: movq <t60_stack=stack64#23,>mulrax=int64#7
# asm 2: movq <t60_stack=176(%rsp),>mulrax=%rax
movq 176(%rsp),%rax
# qhasm: (uint128) mulrdx mulrax = mulrax * t72_stack
# asm 1: mulq <t72_stack=stack64#20
# asm 2: mulq <t72_stack=152(%rsp)
mulq 152(%rsp)
# qhasm: xp2 = mulrax
# asm 1: mov <mulrax=int64#7,>xp2=int64#8
# asm 2: mov <mulrax=%rax,>xp2=%r10
mov %rax,%r10
# qhasm: mulr21 = mulrdx
# asm 1: mov <mulrdx=int64#3,>mulr21=int64#9
# asm 2: mov <mulrdx=%rdx,>mulr21=%r11
mov %rdx,%r11
# qhasm: mulrax = t60_stack
# asm 1: movq <t60_stack=stack64#23,>mulrax=int64#7
# asm 2: movq <t60_stack=176(%rsp),>mulrax=%rax
movq 176(%rsp),%rax
# qhasm: (uint128) mulrdx mulrax = mulrax * t73_stack
# asm 1: mulq <t73_stack=stack64#21
# asm 2: mulq <t73_stack=160(%rsp)
mulq 160(%rsp)
# qhasm: xp3 = mulrax
# asm 1: mov <mulrax=int64#7,>xp3=int64#10
# asm 2: mov <mulrax=%rax,>xp3=%r12
mov %rax,%r12
# qhasm: mulr31 = mulrdx
# asm 1: mov <mulrdx=int64#3,>mulr31=int64#11
# asm 2: mov <mulrdx=%rdx,>mulr31=%r13
mov %rdx,%r13
# qhasm: mulrax = t60_stack
# asm 1: movq <t60_stack=stack64#23,>mulrax=int64#7
# asm 2: movq <t60_stack=176(%rsp),>mulrax=%rax
movq 176(%rsp),%rax
# qhasm: (uint128) mulrdx mulrax = mulrax * t74_stack
# asm 1: mulq <t74_stack=stack64#22
# asm 2: mulq <t74_stack=168(%rsp)
mulq 168(%rsp)
# qhasm: xp4 = mulrax
# asm 1: mov <mulrax=int64#7,>xp4=int64#12
# asm 2: mov <mulrax=%rax,>xp4=%r14
mov %rax,%r14
# qhasm: mulr41 = mulrdx
# asm 1: mov <mulrdx=int64#3,>mulr41=int64#13
# asm 2: mov <mulrdx=%rdx,>mulr41=%r15
mov %rdx,%r15
# qhasm: mulrax = t61_stack
# asm 1: movq <t61_stack=stack64#24,>mulrax=int64#7
# asm 2: movq <t61_stack=184(%rsp),>mulrax=%rax
movq 184(%rsp),%rax
# qhasm: (uint128) mulrdx mulrax = mulrax * t70_stack
# asm 1: mulq <t70_stack=stack64#18
# asm 2: mulq <t70_stack=136(%rsp)
mulq 136(%rsp)
# qhasm: carry? xp1 += mulrax
# asm 1: add <mulrax=int64#7,<xp1=int64#5
# asm 2: add <mulrax=%rax,<xp1=%r8
add %rax,%r8
# qhasm: mulr11 += mulrdx + carry
# asm 1: adc <mulrdx=int64#3,<mulr11=int64#6
# asm 2: adc <mulrdx=%rdx,<mulr11=%r9
adc %rdx,%r9
# qhasm: mulrax = t61_stack
# asm 1: movq <t61_stack=stack64#24,>mulrax=int64#7
# asm 2: movq <t61_stack=184(%rsp),>mulrax=%rax
movq 184(%rsp),%rax
# qhasm: (uint128) mulrdx mulrax = mulrax * t71_stack
# asm 1: mulq <t71_stack=stack64#19
# asm 2: mulq <t71_stack=144(%rsp)
mulq 144(%rsp)
# qhasm: carry? xp2 += mulrax
# asm 1: add <mulrax=int64#7,<xp2=int64#8
# asm 2: add <mulrax=%rax,<xp2=%r10
add %rax,%r10
# qhasm: mulr21 += mulrdx + carry
# asm 1: adc <mulrdx=int64#3,<mulr21=int64#9
# asm 2: adc <mulrdx=%rdx,<mulr21=%r11
adc %rdx,%r11
# qhasm: mulrax = t61_stack
# asm 1: movq <t61_stack=stack64#24,>mulrax=int64#7
# asm 2: movq <t61_stack=184(%rsp),>mulrax=%rax
movq 184(%rsp),%rax
# qhasm: (uint128) mulrdx mulrax = mulrax * t72_stack
# asm 1: mulq <t72_stack=stack64#20
# asm 2: mulq <t72_stack=152(%rsp)
mulq 152(%rsp)
# qhasm: carry? xp3 += mulrax
# asm 1: add <mulrax=int64#7,<xp3=int64#10
# asm 2: add <mulrax=%rax,<xp3=%r12
add %rax,%r12
# qhasm: mulr31 += mulrdx + carry
# asm 1: adc <mulrdx=int64#3,<mulr31=int64#11
# asm 2: adc <mulrdx=%rdx,<mulr31=%r13
adc %rdx,%r13
# qhasm: mulrax = t61_stack
# asm 1: movq <t61_stack=stack64#24,>mulrax=int64#7
# asm 2: movq <t61_stack=184(%rsp),>mulrax=%rax
movq 184(%rsp),%rax
# qhasm: (uint128) mulrdx mulrax = mulrax * t73_stack
# asm 1: mulq <t73_stack=stack64#21
# asm 2: mulq <t73_stack=160(%rsp)
mulq 160(%rsp)
# qhasm: carry? xp4 += mulrax
# asm 1: add <mulrax=int64#7,<xp4=int64#12
# asm 2: add <mulrax=%rax,<xp4=%r14
add %rax,%r14
# qhasm: mulr41 += mulrdx + carry
# asm 1: adc <mulrdx=int64#3,<mulr41=int64#13
# asm 2: adc <mulrdx=%rdx,<mulr41=%r15
adc %rdx,%r15
# qhasm: mulrax = t61_stack
# asm 1: movq <t61_stack=stack64#24,>mulrax=int64#3
# asm 2: movq <t61_stack=184(%rsp),>mulrax=%rdx
movq 184(%rsp),%rdx
# qhasm: mulrax *= 19
# asm 1: imulq $19,<mulrax=int64#3,>mulrax=int64#7
# asm 2: imulq $19,<mulrax=%rdx,>mulrax=%rax
imulq $19,%rdx,%rax
# qhasm: (uint128) mulrdx mulrax = mulrax * t74_stack
# asm 1: mulq <t74_stack=stack64#22
# asm 2: mulq <t74_stack=168(%rsp)
mulq 168(%rsp)
# qhasm: carry? xp0 += mulrax
# asm 1: add <mulrax=int64#7,<xp0=int64#2
# asm 2: add <mulrax=%rax,<xp0=%rsi
add %rax,%rsi
# qhasm: mulr01 += mulrdx + carry
# asm 1: adc <mulrdx=int64#3,<mulr01=int64#4
# asm 2: adc <mulrdx=%rdx,<mulr01=%rcx
adc %rdx,%rcx
# qhasm: mulrax = t62_stack
# asm 1: movq <t62_stack=stack64#25,>mulrax=int64#7
# asm 2: movq <t62_stack=192(%rsp),>mulrax=%rax
movq 192(%rsp),%rax
# qhasm: (uint128) mulrdx mulrax = mulrax * t70_stack
# asm 1: mulq <t70_stack=stack64#18
# asm 2: mulq <t70_stack=136(%rsp)
mulq 136(%rsp)
# qhasm: carry? xp2 += mulrax
# asm 1: add <mulrax=int64#7,<xp2=int64#8
# asm 2: add <mulrax=%rax,<xp2=%r10
add %rax,%r10
# qhasm: mulr21 += mulrdx + carry
# asm 1: adc <mulrdx=int64#3,<mulr21=int64#9
# asm 2: adc <mulrdx=%rdx,<mulr21=%r11
adc %rdx,%r11
# qhasm: mulrax = t62_stack
# asm 1: movq <t62_stack=stack64#25,>mulrax=int64#7
# asm 2: movq <t62_stack=192(%rsp),>mulrax=%rax
movq 192(%rsp),%rax
# qhasm: (uint128) mulrdx mulrax = mulrax * t71_stack
# asm 1: mulq <t71_stack=stack64#19
# asm 2: mulq <t71_stack=144(%rsp)
mulq 144(%rsp)
# qhasm: carry? xp3 += mulrax
# asm 1: add <mulrax=int64#7,<xp3=int64#10
# asm 2: add <mulrax=%rax,<xp3=%r12
add %rax,%r12
# qhasm: mulr31 += mulrdx + carry
# asm 1: adc <mulrdx=int64#3,<mulr31=int64#11
# asm 2: adc <mulrdx=%rdx,<mulr31=%r13
adc %rdx,%r13
# qhasm: mulrax = t62_stack
# asm 1: movq <t62_stack=stack64#25,>mulrax=int64#7
# asm 2: movq <t62_stack=192(%rsp),>mulrax=%rax
movq 192(%rsp),%rax
# qhasm: (uint128) mulrdx mulrax = mulrax * t72_stack
# asm 1: mulq <t72_stack=stack64#20
# asm 2: mulq <t72_stack=152(%rsp)
mulq 152(%rsp)
# qhasm: carry? xp4 += mulrax
# asm 1: add <mulrax=int64#7,<xp4=int64#12
# asm 2: add <mulrax=%rax,<xp4=%r14
add %rax,%r14
# qhasm: mulr41 += mulrdx + carry
# asm 1: adc <mulrdx=int64#3,<mulr41=int64#13
# asm 2: adc <mulrdx=%rdx,<mulr41=%r15
adc %rdx,%r15
# qhasm: mulrax = t62_stack
# asm 1: movq <t62_stack=stack64#25,>mulrax=int64#3
# asm 2: movq <t62_stack=192(%rsp),>mulrax=%rdx
movq 192(%rsp),%rdx
# qhasm: mulrax *= 19
# asm 1: imulq $19,<mulrax=int64#3,>mulrax=int64#7
# asm 2: imulq $19,<mulrax=%rdx,>mulrax=%rax
imulq $19,%rdx,%rax
# qhasm: (uint128) mulrdx mulrax = mulrax * t73_stack
# asm 1: mulq <t73_stack=stack64#21
# asm 2: mulq <t73_stack=160(%rsp)
mulq 160(%rsp)
# qhasm: carry? xp0 += mulrax
# asm 1: add <mulrax=int64#7,<xp0=int64#2
# asm 2: add <mulrax=%rax,<xp0=%rsi
add %rax,%rsi
# qhasm: mulr01 += mulrdx + carry
# asm 1: adc <mulrdx=int64#3,<mulr01=int64#4
# asm 2: adc <mulrdx=%rdx,<mulr01=%rcx
adc %rdx,%rcx
# qhasm: mulrax = t62_stack
# asm 1: movq <t62_stack=stack64#25,>mulrax=int64#3
# asm 2: movq <t62_stack=192(%rsp),>mulrax=%rdx
movq 192(%rsp),%rdx
# qhasm: mulrax *= 19
# asm 1: imulq $19,<mulrax=int64#3,>mulrax=int64#7
# asm 2: imulq $19,<mulrax=%rdx,>mulrax=%rax
imulq $19,%rdx,%rax
# qhasm: (uint128) mulrdx mulrax = mulrax * t74_stack
# asm 1: mulq <t74_stack=stack64#22
# asm 2: mulq <t74_stack=168(%rsp)
mulq 168(%rsp)
# qhasm: carry? xp1 += mulrax
# asm 1: add <mulrax=int64#7,<xp1=int64#5
# asm 2: add <mulrax=%rax,<xp1=%r8
add %rax,%r8
# qhasm: mulr11 += mulrdx + carry
# asm 1: adc <mulrdx=int64#3,<mulr11=int64#6
# asm 2: adc <mulrdx=%rdx,<mulr11=%r9
adc %rdx,%r9
# qhasm: mulrax = t63_stack
# asm 1: movq <t63_stack=stack64#26,>mulrax=int64#7
# asm 2: movq <t63_stack=200(%rsp),>mulrax=%rax
movq 200(%rsp),%rax
# qhasm: (uint128) mulrdx mulrax = mulrax * t70_stack
# asm 1: mulq <t70_stack=stack64#18
# asm 2: mulq <t70_stack=136(%rsp)
mulq 136(%rsp)
# qhasm: carry? xp3 += mulrax
# asm 1: add <mulrax=int64#7,<xp3=int64#10
# asm 2: add <mulrax=%rax,<xp3=%r12
add %rax,%r12
# qhasm: mulr31 += mulrdx + carry
# asm 1: adc <mulrdx=int64#3,<mulr31=int64#11
# asm 2: adc <mulrdx=%rdx,<mulr31=%r13
adc %rdx,%r13
# qhasm: mulrax = t63_stack
# asm 1: movq <t63_stack=stack64#26,>mulrax=int64#7
# asm 2: movq <t63_stack=200(%rsp),>mulrax=%rax
movq 200(%rsp),%rax
# qhasm: (uint128) mulrdx mulrax = mulrax * t71_stack
# asm 1: mulq <t71_stack=stack64#19
# asm 2: mulq <t71_stack=144(%rsp)
mulq 144(%rsp)
# qhasm: carry? xp4 += mulrax
# asm 1: add <mulrax=int64#7,<xp4=int64#12
# asm 2: add <mulrax=%rax,<xp4=%r14
add %rax,%r14
# qhasm: mulr41 += mulrdx + carry
# asm 1: adc <mulrdx=int64#3,<mulr41=int64#13
# asm 2: adc <mulrdx=%rdx,<mulr41=%r15
adc %rdx,%r15
# qhasm: mulrax = mulx319_stack
# asm 1: movq <mulx319_stack=stack64#8,>mulrax=int64#7
# asm 2: movq <mulx319_stack=56(%rsp),>mulrax=%rax
movq 56(%rsp),%rax
# qhasm: (uint128) mulrdx mulrax = mulrax * t73_stack
# asm 1: mulq <t73_stack=stack64#21
# asm 2: mulq <t73_stack=160(%rsp)
mulq 160(%rsp)
# qhasm: carry? xp1 += mulrax
# asm 1: add <mulrax=int64#7,<xp1=int64#5
# asm 2: add <mulrax=%rax,<xp1=%r8
add %rax,%r8
# qhasm: mulr11 += mulrdx + carry
# asm 1: adc <mulrdx=int64#3,<mulr11=int64#6
# asm 2: adc <mulrdx=%rdx,<mulr11=%r9
adc %rdx,%r9
# qhasm: mulrax = mulx319_stack
# asm 1: movq <mulx319_stack=stack64#8,>mulrax=int64#7
# asm 2: movq <mulx319_stack=56(%rsp),>mulrax=%rax
movq 56(%rsp),%rax
# qhasm: (uint128) mulrdx mulrax = mulrax * t74_stack
# asm 1: mulq <t74_stack=stack64#22
# asm 2: mulq <t74_stack=168(%rsp)
mulq 168(%rsp)
# qhasm: carry? xp2 += mulrax
# asm 1: add <mulrax=int64#7,<xp2=int64#8
# asm 2: add <mulrax=%rax,<xp2=%r10
add %rax,%r10
# qhasm: mulr21 += mulrdx + carry
# asm 1: adc <mulrdx=int64#3,<mulr21=int64#9
# asm 2: adc <mulrdx=%rdx,<mulr21=%r11
adc %rdx,%r11
# qhasm: mulrax = t64_stack
# asm 1: movq <t64_stack=stack64#27,>mulrax=int64#7
# asm 2: movq <t64_stack=208(%rsp),>mulrax=%rax
movq 208(%rsp),%rax
# qhasm: (uint128) mulrdx mulrax = mulrax * t70_stack
# asm 1: mulq <t70_stack=stack64#18
# asm 2: mulq <t70_stack=136(%rsp)
mulq 136(%rsp)
# qhasm: carry? xp4 += mulrax
# asm 1: add <mulrax=int64#7,<xp4=int64#12
# asm 2: add <mulrax=%rax,<xp4=%r14
add %rax,%r14
# qhasm: mulr41 += mulrdx + carry
# asm 1: adc <mulrdx=int64#3,<mulr41=int64#13
# asm 2: adc <mulrdx=%rdx,<mulr41=%r15
adc %rdx,%r15
# qhasm: mulrax = mulx419_stack
# asm 1: movq <mulx419_stack=stack64#9,>mulrax=int64#7
# asm 2: movq <mulx419_stack=64(%rsp),>mulrax=%rax
movq 64(%rsp),%rax
# qhasm: (uint128) mulrdx mulrax = mulrax * t72_stack
# asm 1: mulq <t72_stack=stack64#20
# asm 2: mulq <t72_stack=152(%rsp)
mulq 152(%rsp)
# qhasm: carry? xp1 += mulrax
# asm 1: add <mulrax=int64#7,<xp1=int64#5
# asm 2: add <mulrax=%rax,<xp1=%r8
add %rax,%r8
# qhasm: mulr11 += mulrdx + carry
# asm 1: adc <mulrdx=int64#3,<mulr11=int64#6
# asm 2: adc <mulrdx=%rdx,<mulr11=%r9
adc %rdx,%r9
# qhasm: mulrax = mulx419_stack
# asm 1: movq <mulx419_stack=stack64#9,>mulrax=int64#7
# asm 2: movq <mulx419_stack=64(%rsp),>mulrax=%rax
movq 64(%rsp),%rax
# qhasm: (uint128) mulrdx mulrax = mulrax * t73_stack
# asm 1: mulq <t73_stack=stack64#21
# asm 2: mulq <t73_stack=160(%rsp)
mulq 160(%rsp)
# qhasm: carry? xp2 += mulrax
# asm 1: add <mulrax=int64#7,<xp2=int64#8
# asm 2: add <mulrax=%rax,<xp2=%r10
add %rax,%r10
# qhasm: mulr21 += mulrdx + carry
# asm 1: adc <mulrdx=int64#3,<mulr21=int64#9
# asm 2: adc <mulrdx=%rdx,<mulr21=%r11
adc %rdx,%r11
# qhasm: mulrax = mulx419_stack
# asm 1: movq <mulx419_stack=stack64#9,>mulrax=int64#7
# asm 2: movq <mulx419_stack=64(%rsp),>mulrax=%rax
movq 64(%rsp),%rax
# qhasm: (uint128) mulrdx mulrax = mulrax * t74_stack
# asm 1: mulq <t74_stack=stack64#22
# asm 2: mulq <t74_stack=168(%rsp)
mulq 168(%rsp)
# qhasm: carry? xp3 += mulrax
# asm 1: add <mulrax=int64#7,<xp3=int64#10
# asm 2: add <mulrax=%rax,<xp3=%r12
add %rax,%r12
# qhasm: mulr31 += mulrdx + carry
# asm 1: adc <mulrdx=int64#3,<mulr31=int64#11
# asm 2: adc <mulrdx=%rdx,<mulr31=%r13
adc %rdx,%r13
# qhasm: mulredmask = *(uint64 *) &CRYPTO_SHARED_NAMESPACE(REDMASK51)
# asm 1: movq CRYPTO_SHARED_NAMESPACE(REDMASK51),>mulredmask=int64#3
# asm 2: movq CRYPTO_SHARED_NAMESPACE(REDMASK51),>mulredmask=%rdx
movq CRYPTO_SHARED_NAMESPACE(REDMASK51)(%rip),%rdx
# qhasm: mulr01 = (mulr01.xp0) << 13
# asm 1: shld $13,<xp0=int64#2,<mulr01=int64#4
# asm 2: shld $13,<xp0=%rsi,<mulr01=%rcx
shld $13,%rsi,%rcx
# qhasm: xp0 &= mulredmask
# asm 1: and <mulredmask=int64#3,<xp0=int64#2
# asm 2: and <mulredmask=%rdx,<xp0=%rsi
and %rdx,%rsi
# qhasm: mulr11 = (mulr11.xp1) << 13
# asm 1: shld $13,<xp1=int64#5,<mulr11=int64#6
# asm 2: shld $13,<xp1=%r8,<mulr11=%r9
shld $13,%r8,%r9
# qhasm: xp1 &= mulredmask
# asm 1: and <mulredmask=int64#3,<xp1=int64#5
# asm 2: and <mulredmask=%rdx,<xp1=%r8
and %rdx,%r8
# qhasm: xp1 += mulr01
# asm 1: add <mulr01=int64#4,<xp1=int64#5
# asm 2: add <mulr01=%rcx,<xp1=%r8
add %rcx,%r8
# qhasm: mulr21 = (mulr21.xp2) << 13
# asm 1: shld $13,<xp2=int64#8,<mulr21=int64#9
# asm 2: shld $13,<xp2=%r10,<mulr21=%r11
shld $13,%r10,%r11
# qhasm: xp2 &= mulredmask
# asm 1: and <mulredmask=int64#3,<xp2=int64#8
# asm 2: and <mulredmask=%rdx,<xp2=%r10
and %rdx,%r10
# qhasm: xp2 += mulr11
# asm 1: add <mulr11=int64#6,<xp2=int64#8
# asm 2: add <mulr11=%r9,<xp2=%r10
add %r9,%r10
# qhasm: mulr31 = (mulr31.xp3) << 13
# asm 1: shld $13,<xp3=int64#10,<mulr31=int64#11
# asm 2: shld $13,<xp3=%r12,<mulr31=%r13
shld $13,%r12,%r13
# qhasm: xp3 &= mulredmask
# asm 1: and <mulredmask=int64#3,<xp3=int64#10
# asm 2: and <mulredmask=%rdx,<xp3=%r12
and %rdx,%r12
# qhasm: xp3 += mulr21
# asm 1: add <mulr21=int64#9,<xp3=int64#10
# asm 2: add <mulr21=%r11,<xp3=%r12
add %r11,%r12
# qhasm: mulr41 = (mulr41.xp4) << 13
# asm 1: shld $13,<xp4=int64#12,<mulr41=int64#13
# asm 2: shld $13,<xp4=%r14,<mulr41=%r15
shld $13,%r14,%r15
# qhasm: xp4 &= mulredmask
# asm 1: and <mulredmask=int64#3,<xp4=int64#12
# asm 2: and <mulredmask=%rdx,<xp4=%r14
and %rdx,%r14
# qhasm: xp4 += mulr31
# asm 1: add <mulr31=int64#11,<xp4=int64#12
# asm 2: add <mulr31=%r13,<xp4=%r14
add %r13,%r14
# qhasm: mulr41 = mulr41 * 19
# asm 1: imulq $19,<mulr41=int64#13,>mulr41=int64#4
# asm 2: imulq $19,<mulr41=%r15,>mulr41=%rcx
imulq $19,%r15,%rcx
# qhasm: xp0 += mulr41
# asm 1: add <mulr41=int64#4,<xp0=int64#2
# asm 2: add <mulr41=%rcx,<xp0=%rsi
add %rcx,%rsi
# qhasm: mult = xp0
# asm 1: mov <xp0=int64#2,>mult=int64#4
# asm 2: mov <xp0=%rsi,>mult=%rcx
mov %rsi,%rcx
# qhasm: (uint64) mult >>= 51
# asm 1: shr $51,<mult=int64#4
# asm 2: shr $51,<mult=%rcx
shr $51,%rcx
# qhasm: mult += xp1
# asm 1: add <xp1=int64#5,<mult=int64#4
# asm 2: add <xp1=%r8,<mult=%rcx
add %r8,%rcx
# qhasm: xp1 = mult
# asm 1: mov <mult=int64#4,>xp1=int64#5
# asm 2: mov <mult=%rcx,>xp1=%r8
mov %rcx,%r8
# qhasm: (uint64) mult >>= 51
# asm 1: shr $51,<mult=int64#4
# asm 2: shr $51,<mult=%rcx
shr $51,%rcx
# qhasm: xp0 &= mulredmask
# asm 1: and <mulredmask=int64#3,<xp0=int64#2
# asm 2: and <mulredmask=%rdx,<xp0=%rsi
and %rdx,%rsi
# qhasm: mult += xp2
# asm 1: add <xp2=int64#8,<mult=int64#4
# asm 2: add <xp2=%r10,<mult=%rcx
add %r10,%rcx
# qhasm: xp2 = mult
# asm 1: mov <mult=int64#4,>xp2=int64#6
# asm 2: mov <mult=%rcx,>xp2=%r9
mov %rcx,%r9
# qhasm: (uint64) mult >>= 51
# asm 1: shr $51,<mult=int64#4
# asm 2: shr $51,<mult=%rcx
shr $51,%rcx
# qhasm: xp1 &= mulredmask
# asm 1: and <mulredmask=int64#3,<xp1=int64#5
# asm 2: and <mulredmask=%rdx,<xp1=%r8
and %rdx,%r8
# qhasm: mult += xp3
# asm 1: add <xp3=int64#10,<mult=int64#4
# asm 2: add <xp3=%r12,<mult=%rcx
add %r12,%rcx
# qhasm: xp3 = mult
# asm 1: mov <mult=int64#4,>xp3=int64#7
# asm 2: mov <mult=%rcx,>xp3=%rax
mov %rcx,%rax
# qhasm: (uint64) mult >>= 51
# asm 1: shr $51,<mult=int64#4
# asm 2: shr $51,<mult=%rcx
shr $51,%rcx
# qhasm: xp2 &= mulredmask
# asm 1: and <mulredmask=int64#3,<xp2=int64#6
# asm 2: and <mulredmask=%rdx,<xp2=%r9
and %rdx,%r9
# qhasm: mult += xp4
# asm 1: add <xp4=int64#12,<mult=int64#4
# asm 2: add <xp4=%r14,<mult=%rcx
add %r14,%rcx
# qhasm: xp4 = mult
# asm 1: mov <mult=int64#4,>xp4=int64#8
# asm 2: mov <mult=%rcx,>xp4=%r10
mov %rcx,%r10
# qhasm: (uint64) mult >>= 51
# asm 1: shr $51,<mult=int64#4
# asm 2: shr $51,<mult=%rcx
shr $51,%rcx
# qhasm: xp3 &= mulredmask
# asm 1: and <mulredmask=int64#3,<xp3=int64#7
# asm 2: and <mulredmask=%rdx,<xp3=%rax
and %rdx,%rax
# qhasm: mult *= 19
# asm 1: imulq $19,<mult=int64#4,>mult=int64#4
# asm 2: imulq $19,<mult=%rcx,>mult=%rcx
imulq $19,%rcx,%rcx
# qhasm: xp0 += mult
# asm 1: add <mult=int64#4,<xp0=int64#2
# asm 2: add <mult=%rcx,<xp0=%rsi
add %rcx,%rsi
# qhasm: xp4 &= mulredmask
# asm 1: and <mulredmask=int64#3,<xp4=int64#8
# asm 2: and <mulredmask=%rdx,<xp4=%r10
and %rdx,%r10
# qhasm: *(uint64 *)(workp + 40) = xp0
# asm 1: movq <xp0=int64#2,40(<workp=int64#1)
# asm 2: movq <xp0=%rsi,40(<workp=%rdi)
movq %rsi,40(%rdi)
# qhasm: *(uint64 *)(workp + 48) = xp1
# asm 1: movq <xp1=int64#5,48(<workp=int64#1)
# asm 2: movq <xp1=%r8,48(<workp=%rdi)
movq %r8,48(%rdi)
# qhasm: *(uint64 *)(workp + 56) = xp2
# asm 1: movq <xp2=int64#6,56(<workp=int64#1)
# asm 2: movq <xp2=%r9,56(<workp=%rdi)
movq %r9,56(%rdi)
# qhasm: *(uint64 *)(workp + 64) = xp3
# asm 1: movq <xp3=int64#7,64(<workp=int64#1)
# asm 2: movq <xp3=%rax,64(<workp=%rdi)
movq %rax,64(%rdi)
# qhasm: *(uint64 *)(workp + 72) = xp4
# asm 1: movq <xp4=int64#8,72(<workp=int64#1)
# asm 2: movq <xp4=%r10,72(<workp=%rdi)
movq %r10,72(%rdi)
# qhasm: mul121666rax = t50_stack
# asm 1: movq <t50_stack=stack64#28,>mul121666rax=int64#7
# asm 2: movq <t50_stack=216(%rsp),>mul121666rax=%rax
movq 216(%rsp),%rax
# qhasm: (uint128) mul121666rdx mul121666rax = mul121666rax * *(uint64 *) &CRYPTO_SHARED_NAMESPACE(121666_213)
mulq CRYPTO_SHARED_NAMESPACE(121666_213)(%rip)
# qhasm: (uint64) mul121666rax >>= 13
# asm 1: shr $13,<mul121666rax=int64#7
# asm 2: shr $13,<mul121666rax=%rax
shr $13,%rax
# qhasm: zp0 = mul121666rax
# asm 1: mov <mul121666rax=int64#7,>zp0=int64#2
# asm 2: mov <mul121666rax=%rax,>zp0=%rsi
mov %rax,%rsi
# qhasm: zp1 = mul121666rdx
# asm 1: mov <mul121666rdx=int64#3,>zp1=int64#4
# asm 2: mov <mul121666rdx=%rdx,>zp1=%rcx
mov %rdx,%rcx
# qhasm: mul121666rax = t51_stack
# asm 1: movq <t51_stack=stack64#29,>mul121666rax=int64#7
# asm 2: movq <t51_stack=224(%rsp),>mul121666rax=%rax
movq 224(%rsp),%rax
# qhasm: (uint128) mul121666rdx mul121666rax = mul121666rax * *(uint64 *) &CRYPTO_SHARED_NAMESPACE(121666_213)
mulq CRYPTO_SHARED_NAMESPACE(121666_213)(%rip)
# qhasm: (uint64) mul121666rax >>= 13
# asm 1: shr $13,<mul121666rax=int64#7
# asm 2: shr $13,<mul121666rax=%rax
shr $13,%rax
# qhasm: zp1 += mul121666rax
# asm 1: add <mul121666rax=int64#7,<zp1=int64#4
# asm 2: add <mul121666rax=%rax,<zp1=%rcx
add %rax,%rcx
# qhasm: zp2 = mul121666rdx
# asm 1: mov <mul121666rdx=int64#3,>zp2=int64#5
# asm 2: mov <mul121666rdx=%rdx,>zp2=%r8
mov %rdx,%r8
# qhasm: mul121666rax = t52_stack
# asm 1: movq <t52_stack=stack64#30,>mul121666rax=int64#7
# asm 2: movq <t52_stack=232(%rsp),>mul121666rax=%rax
movq 232(%rsp),%rax
# qhasm: (uint128) mul121666rdx mul121666rax = mul121666rax * *(uint64 *) &CRYPTO_SHARED_NAMESPACE(121666_213)
mulq CRYPTO_SHARED_NAMESPACE(121666_213)(%rip)
# qhasm: (uint64) mul121666rax >>= 13
# asm 1: shr $13,<mul121666rax=int64#7
# asm 2: shr $13,<mul121666rax=%rax
shr $13,%rax
# qhasm: zp2 += mul121666rax
# asm 1: add <mul121666rax=int64#7,<zp2=int64#5
# asm 2: add <mul121666rax=%rax,<zp2=%r8
add %rax,%r8
# qhasm: zp3 = mul121666rdx
# asm 1: mov <mul121666rdx=int64#3,>zp3=int64#6
# asm 2: mov <mul121666rdx=%rdx,>zp3=%r9
mov %rdx,%r9
# qhasm: mul121666rax = t53_stack
# asm 1: movq <t53_stack=stack64#31,>mul121666rax=int64#7
# asm 2: movq <t53_stack=240(%rsp),>mul121666rax=%rax
movq 240(%rsp),%rax
# qhasm: (uint128) mul121666rdx mul121666rax = mul121666rax * *(uint64 *) &CRYPTO_SHARED_NAMESPACE(121666_213)
mulq CRYPTO_SHARED_NAMESPACE(121666_213)(%rip)
# qhasm: (uint64) mul121666rax >>= 13
# asm 1: shr $13,<mul121666rax=int64#7
# asm 2: shr $13,<mul121666rax=%rax
shr $13,%rax
# qhasm: zp3 += mul121666rax
# asm 1: add <mul121666rax=int64#7,<zp3=int64#6
# asm 2: add <mul121666rax=%rax,<zp3=%r9
add %rax,%r9
# qhasm: zp4 = mul121666rdx
# asm 1: mov <mul121666rdx=int64#3,>zp4=int64#8
# asm 2: mov <mul121666rdx=%rdx,>zp4=%r10
mov %rdx,%r10
# qhasm: mul121666rax = t54_stack
# asm 1: movq <t54_stack=stack64#32,>mul121666rax=int64#7
# asm 2: movq <t54_stack=248(%rsp),>mul121666rax=%rax
movq 248(%rsp),%rax
# qhasm: (uint128) mul121666rdx mul121666rax = mul121666rax * *(uint64 *) &CRYPTO_SHARED_NAMESPACE(121666_213)
mulq CRYPTO_SHARED_NAMESPACE(121666_213)(%rip)
# qhasm: (uint64) mul121666rax >>= 13
# asm 1: shr $13,<mul121666rax=int64#7
# asm 2: shr $13,<mul121666rax=%rax
shr $13,%rax
# qhasm: zp4 += mul121666rax
# asm 1: add <mul121666rax=int64#7,<zp4=int64#8
# asm 2: add <mul121666rax=%rax,<zp4=%r10
add %rax,%r10
# qhasm: mul121666rdx *= 19
# asm 1: imulq $19,<mul121666rdx=int64#3,>mul121666rdx=int64#3
# asm 2: imulq $19,<mul121666rdx=%rdx,>mul121666rdx=%rdx
imulq $19,%rdx,%rdx
# qhasm: zp0 += mul121666rdx
# asm 1: add <mul121666rdx=int64#3,<zp0=int64#2
# asm 2: add <mul121666rdx=%rdx,<zp0=%rsi
add %rdx,%rsi
# qhasm: zp0 += t70_stack
# asm 1: addq <t70_stack=stack64#18,<zp0=int64#2
# asm 2: addq <t70_stack=136(%rsp),<zp0=%rsi
addq 136(%rsp),%rsi
# qhasm: zp1 += t71_stack
# asm 1: addq <t71_stack=stack64#19,<zp1=int64#4
# asm 2: addq <t71_stack=144(%rsp),<zp1=%rcx
addq 144(%rsp),%rcx
# qhasm: zp2 += t72_stack
# asm 1: addq <t72_stack=stack64#20,<zp2=int64#5
# asm 2: addq <t72_stack=152(%rsp),<zp2=%r8
addq 152(%rsp),%r8
# qhasm: zp3 += t73_stack
# asm 1: addq <t73_stack=stack64#21,<zp3=int64#6
# asm 2: addq <t73_stack=160(%rsp),<zp3=%r9
addq 160(%rsp),%r9
# qhasm: zp4 += t74_stack
# asm 1: addq <t74_stack=stack64#22,<zp4=int64#8
# asm 2: addq <t74_stack=168(%rsp),<zp4=%r10
addq 168(%rsp),%r10
# qhasm: *(uint64 *)(workp + 80) = zp0
# asm 1: movq <zp0=int64#2,80(<workp=int64#1)
# asm 2: movq <zp0=%rsi,80(<workp=%rdi)
movq %rsi,80(%rdi)
# qhasm: *(uint64 *)(workp + 88) = zp1
# asm 1: movq <zp1=int64#4,88(<workp=int64#1)
# asm 2: movq <zp1=%rcx,88(<workp=%rdi)
movq %rcx,88(%rdi)
# qhasm: *(uint64 *)(workp + 96) = zp2
# asm 1: movq <zp2=int64#5,96(<workp=int64#1)
# asm 2: movq <zp2=%r8,96(<workp=%rdi)
movq %r8,96(%rdi)
# qhasm: *(uint64 *)(workp + 104) = zp3
# asm 1: movq <zp3=int64#6,104(<workp=int64#1)
# asm 2: movq <zp3=%r9,104(<workp=%rdi)
movq %r9,104(%rdi)
# qhasm: *(uint64 *)(workp + 112) = zp4
# asm 1: movq <zp4=int64#8,112(<workp=int64#1)
# asm 2: movq <zp4=%r10,112(<workp=%rdi)
movq %r10,112(%rdi)
# qhasm: mulrax = *(uint64 *)(workp + 104)
# asm 1: movq 104(<workp=int64#1),>mulrax=int64#2
# asm 2: movq 104(<workp=%rdi),>mulrax=%rsi
movq 104(%rdi),%rsi
# qhasm: mulrax *= 19
# asm 1: imulq $19,<mulrax=int64#2,>mulrax=int64#7
# asm 2: imulq $19,<mulrax=%rsi,>mulrax=%rax
imulq $19,%rsi,%rax
# qhasm: mulx319_stack = mulrax
# asm 1: movq <mulrax=int64#7,>mulx319_stack=stack64#8
# asm 2: movq <mulrax=%rax,>mulx319_stack=56(%rsp)
movq %rax,56(%rsp)
# qhasm: (uint128) mulrdx mulrax = mulrax * t52_stack
# asm 1: mulq <t52_stack=stack64#30
# asm 2: mulq <t52_stack=232(%rsp)
mulq 232(%rsp)
# qhasm: zp0 = mulrax
# asm 1: mov <mulrax=int64#7,>zp0=int64#2
# asm 2: mov <mulrax=%rax,>zp0=%rsi
mov %rax,%rsi
# qhasm: mulr01 = mulrdx
# asm 1: mov <mulrdx=int64#3,>mulr01=int64#4
# asm 2: mov <mulrdx=%rdx,>mulr01=%rcx
mov %rdx,%rcx
# qhasm: mulrax = *(uint64 *)(workp + 112)
# asm 1: movq 112(<workp=int64#1),>mulrax=int64#3
# asm 2: movq 112(<workp=%rdi),>mulrax=%rdx
movq 112(%rdi),%rdx
# qhasm: mulrax *= 19
# asm 1: imulq $19,<mulrax=int64#3,>mulrax=int64#7
# asm 2: imulq $19,<mulrax=%rdx,>mulrax=%rax
imulq $19,%rdx,%rax
# qhasm: mulx419_stack = mulrax
# asm 1: movq <mulrax=int64#7,>mulx419_stack=stack64#9
# asm 2: movq <mulrax=%rax,>mulx419_stack=64(%rsp)
movq %rax,64(%rsp)
# qhasm: (uint128) mulrdx mulrax = mulrax * t51_stack
# asm 1: mulq <t51_stack=stack64#29
# asm 2: mulq <t51_stack=224(%rsp)
mulq 224(%rsp)
# qhasm: carry? zp0 += mulrax
# asm 1: add <mulrax=int64#7,<zp0=int64#2
# asm 2: add <mulrax=%rax,<zp0=%rsi
add %rax,%rsi
# qhasm: mulr01 += mulrdx + carry
# asm 1: adc <mulrdx=int64#3,<mulr01=int64#4
# asm 2: adc <mulrdx=%rdx,<mulr01=%rcx
adc %rdx,%rcx
# qhasm: mulrax = *(uint64 *)(workp + 80)
# asm 1: movq 80(<workp=int64#1),>mulrax=int64#7
# asm 2: movq 80(<workp=%rdi),>mulrax=%rax
movq 80(%rdi),%rax
# qhasm: (uint128) mulrdx mulrax = mulrax * t50_stack
# asm 1: mulq <t50_stack=stack64#28
# asm 2: mulq <t50_stack=216(%rsp)
mulq 216(%rsp)
# qhasm: carry? zp0 += mulrax
# asm 1: add <mulrax=int64#7,<zp0=int64#2
# asm 2: add <mulrax=%rax,<zp0=%rsi
add %rax,%rsi
# qhasm: mulr01 += mulrdx + carry
# asm 1: adc <mulrdx=int64#3,<mulr01=int64#4
# asm 2: adc <mulrdx=%rdx,<mulr01=%rcx
adc %rdx,%rcx
# qhasm: mulrax = *(uint64 *)(workp + 80)
# asm 1: movq 80(<workp=int64#1),>mulrax=int64#7
# asm 2: movq 80(<workp=%rdi),>mulrax=%rax
movq 80(%rdi),%rax
# qhasm: (uint128) mulrdx mulrax = mulrax * t51_stack
# asm 1: mulq <t51_stack=stack64#29
# asm 2: mulq <t51_stack=224(%rsp)
mulq 224(%rsp)
# qhasm: zp1 = mulrax
# asm 1: mov <mulrax=int64#7,>zp1=int64#5
# asm 2: mov <mulrax=%rax,>zp1=%r8
mov %rax,%r8
# qhasm: mulr11 = mulrdx
# asm 1: mov <mulrdx=int64#3,>mulr11=int64#6
# asm 2: mov <mulrdx=%rdx,>mulr11=%r9
mov %rdx,%r9
# qhasm: mulrax = *(uint64 *)(workp + 80)
# asm 1: movq 80(<workp=int64#1),>mulrax=int64#7
# asm 2: movq 80(<workp=%rdi),>mulrax=%rax
movq 80(%rdi),%rax
# qhasm: (uint128) mulrdx mulrax = mulrax * t52_stack
# asm 1: mulq <t52_stack=stack64#30
# asm 2: mulq <t52_stack=232(%rsp)
mulq 232(%rsp)
# qhasm: zp2 = mulrax
# asm 1: mov <mulrax=int64#7,>zp2=int64#8
# asm 2: mov <mulrax=%rax,>zp2=%r10
mov %rax,%r10
# qhasm: mulr21 = mulrdx
# asm 1: mov <mulrdx=int64#3,>mulr21=int64#9
# asm 2: mov <mulrdx=%rdx,>mulr21=%r11
mov %rdx,%r11
# qhasm: mulrax = *(uint64 *)(workp + 80)
# asm 1: movq 80(<workp=int64#1),>mulrax=int64#7
# asm 2: movq 80(<workp=%rdi),>mulrax=%rax
movq 80(%rdi),%rax
# qhasm: (uint128) mulrdx mulrax = mulrax * t53_stack
# asm 1: mulq <t53_stack=stack64#31
# asm 2: mulq <t53_stack=240(%rsp)
mulq 240(%rsp)
# qhasm: zp3 = mulrax
# asm 1: mov <mulrax=int64#7,>zp3=int64#10
# asm 2: mov <mulrax=%rax,>zp3=%r12
mov %rax,%r12
# qhasm: mulr31 = mulrdx
# asm 1: mov <mulrdx=int64#3,>mulr31=int64#11
# asm 2: mov <mulrdx=%rdx,>mulr31=%r13
mov %rdx,%r13
# qhasm: mulrax = *(uint64 *)(workp + 80)
# asm 1: movq 80(<workp=int64#1),>mulrax=int64#7
# asm 2: movq 80(<workp=%rdi),>mulrax=%rax
movq 80(%rdi),%rax
# qhasm: (uint128) mulrdx mulrax = mulrax * t54_stack
# asm 1: mulq <t54_stack=stack64#32
# asm 2: mulq <t54_stack=248(%rsp)
mulq 248(%rsp)
# qhasm: zp4 = mulrax
# asm 1: mov <mulrax=int64#7,>zp4=int64#12
# asm 2: mov <mulrax=%rax,>zp4=%r14
mov %rax,%r14
# qhasm: mulr41 = mulrdx
# asm 1: mov <mulrdx=int64#3,>mulr41=int64#13
# asm 2: mov <mulrdx=%rdx,>mulr41=%r15
mov %rdx,%r15
# qhasm: mulrax = *(uint64 *)(workp + 88)
# asm 1: movq 88(<workp=int64#1),>mulrax=int64#7
# asm 2: movq 88(<workp=%rdi),>mulrax=%rax
movq 88(%rdi),%rax
# qhasm: (uint128) mulrdx mulrax = mulrax * t50_stack
# asm 1: mulq <t50_stack=stack64#28
# asm 2: mulq <t50_stack=216(%rsp)
mulq 216(%rsp)
# qhasm: carry? zp1 += mulrax
# asm 1: add <mulrax=int64#7,<zp1=int64#5
# asm 2: add <mulrax=%rax,<zp1=%r8
add %rax,%r8
# qhasm: mulr11 += mulrdx + carry
# asm 1: adc <mulrdx=int64#3,<mulr11=int64#6
# asm 2: adc <mulrdx=%rdx,<mulr11=%r9
adc %rdx,%r9
# qhasm: mulrax = *(uint64 *)(workp + 88)
# asm 1: movq 88(<workp=int64#1),>mulrax=int64#7
# asm 2: movq 88(<workp=%rdi),>mulrax=%rax
movq 88(%rdi),%rax
# qhasm: (uint128) mulrdx mulrax = mulrax * t51_stack
# asm 1: mulq <t51_stack=stack64#29
# asm 2: mulq <t51_stack=224(%rsp)
mulq 224(%rsp)
# qhasm: carry? zp2 += mulrax
# asm 1: add <mulrax=int64#7,<zp2=int64#8
# asm 2: add <mulrax=%rax,<zp2=%r10
add %rax,%r10
# qhasm: mulr21 += mulrdx + carry
# asm 1: adc <mulrdx=int64#3,<mulr21=int64#9
# asm 2: adc <mulrdx=%rdx,<mulr21=%r11
adc %rdx,%r11
# qhasm: mulrax = *(uint64 *)(workp + 88)
# asm 1: movq 88(<workp=int64#1),>mulrax=int64#7
# asm 2: movq 88(<workp=%rdi),>mulrax=%rax
movq 88(%rdi),%rax
# qhasm: (uint128) mulrdx mulrax = mulrax * t52_stack
# asm 1: mulq <t52_stack=stack64#30
# asm 2: mulq <t52_stack=232(%rsp)
mulq 232(%rsp)
# qhasm: carry? zp3 += mulrax
# asm 1: add <mulrax=int64#7,<zp3=int64#10
# asm 2: add <mulrax=%rax,<zp3=%r12
add %rax,%r12
# qhasm: mulr31 += mulrdx + carry
# asm 1: adc <mulrdx=int64#3,<mulr31=int64#11
# asm 2: adc <mulrdx=%rdx,<mulr31=%r13
adc %rdx,%r13
# qhasm: mulrax = *(uint64 *)(workp + 88)
# asm 1: movq 88(<workp=int64#1),>mulrax=int64#7
# asm 2: movq 88(<workp=%rdi),>mulrax=%rax
movq 88(%rdi),%rax
# qhasm: (uint128) mulrdx mulrax = mulrax * t53_stack
# asm 1: mulq <t53_stack=stack64#31
# asm 2: mulq <t53_stack=240(%rsp)
mulq 240(%rsp)
# qhasm: carry? zp4 += mulrax
# asm 1: add <mulrax=int64#7,<zp4=int64#12
# asm 2: add <mulrax=%rax,<zp4=%r14
add %rax,%r14
# qhasm: mulr41 += mulrdx + carry
# asm 1: adc <mulrdx=int64#3,<mulr41=int64#13
# asm 2: adc <mulrdx=%rdx,<mulr41=%r15
adc %rdx,%r15
# qhasm: mulrax = *(uint64 *)(workp + 88)
# asm 1: movq 88(<workp=int64#1),>mulrax=int64#3
# asm 2: movq 88(<workp=%rdi),>mulrax=%rdx
movq 88(%rdi),%rdx
# qhasm: mulrax *= 19
# asm 1: imulq $19,<mulrax=int64#3,>mulrax=int64#7
# asm 2: imulq $19,<mulrax=%rdx,>mulrax=%rax
imulq $19,%rdx,%rax
# qhasm: (uint128) mulrdx mulrax = mulrax * t54_stack
# asm 1: mulq <t54_stack=stack64#32
# asm 2: mulq <t54_stack=248(%rsp)
mulq 248(%rsp)
# qhasm: carry? zp0 += mulrax
# asm 1: add <mulrax=int64#7,<zp0=int64#2
# asm 2: add <mulrax=%rax,<zp0=%rsi
add %rax,%rsi
# qhasm: mulr01 += mulrdx + carry
# asm 1: adc <mulrdx=int64#3,<mulr01=int64#4
# asm 2: adc <mulrdx=%rdx,<mulr01=%rcx
adc %rdx,%rcx
# qhasm: mulrax = *(uint64 *)(workp + 96)
# asm 1: movq 96(<workp=int64#1),>mulrax=int64#7
# asm 2: movq 96(<workp=%rdi),>mulrax=%rax
movq 96(%rdi),%rax
# qhasm: (uint128) mulrdx mulrax = mulrax * t50_stack
# asm 1: mulq <t50_stack=stack64#28
# asm 2: mulq <t50_stack=216(%rsp)
mulq 216(%rsp)
# qhasm: carry? zp2 += mulrax
# asm 1: add <mulrax=int64#7,<zp2=int64#8
# asm 2: add <mulrax=%rax,<zp2=%r10
add %rax,%r10
# qhasm: mulr21 += mulrdx + carry
# asm 1: adc <mulrdx=int64#3,<mulr21=int64#9
# asm 2: adc <mulrdx=%rdx,<mulr21=%r11
adc %rdx,%r11
# qhasm: mulrax = *(uint64 *)(workp + 96)
# asm 1: movq 96(<workp=int64#1),>mulrax=int64#7
# asm 2: movq 96(<workp=%rdi),>mulrax=%rax
movq 96(%rdi),%rax
# qhasm: (uint128) mulrdx mulrax = mulrax * t51_stack
# asm 1: mulq <t51_stack=stack64#29
# asm 2: mulq <t51_stack=224(%rsp)
mulq 224(%rsp)
# qhasm: carry? zp3 += mulrax
# asm 1: add <mulrax=int64#7,<zp3=int64#10
# asm 2: add <mulrax=%rax,<zp3=%r12
add %rax,%r12
# qhasm: mulr31 += mulrdx + carry
# asm 1: adc <mulrdx=int64#3,<mulr31=int64#11
# asm 2: adc <mulrdx=%rdx,<mulr31=%r13
adc %rdx,%r13
# qhasm: mulrax = *(uint64 *)(workp + 96)
# asm 1: movq 96(<workp=int64#1),>mulrax=int64#7
# asm 2: movq 96(<workp=%rdi),>mulrax=%rax
movq 96(%rdi),%rax
# qhasm: (uint128) mulrdx mulrax = mulrax * t52_stack
# asm 1: mulq <t52_stack=stack64#30
# asm 2: mulq <t52_stack=232(%rsp)
mulq 232(%rsp)
# qhasm: carry? zp4 += mulrax
# asm 1: add <mulrax=int64#7,<zp4=int64#12
# asm 2: add <mulrax=%rax,<zp4=%r14
add %rax,%r14
# qhasm: mulr41 += mulrdx + carry
# asm 1: adc <mulrdx=int64#3,<mulr41=int64#13
# asm 2: adc <mulrdx=%rdx,<mulr41=%r15
adc %rdx,%r15
# qhasm: mulrax = *(uint64 *)(workp + 96)
# asm 1: movq 96(<workp=int64#1),>mulrax=int64#3
# asm 2: movq 96(<workp=%rdi),>mulrax=%rdx
movq 96(%rdi),%rdx
# qhasm: mulrax *= 19
# asm 1: imulq $19,<mulrax=int64#3,>mulrax=int64#7
# asm 2: imulq $19,<mulrax=%rdx,>mulrax=%rax
imulq $19,%rdx,%rax
# qhasm: (uint128) mulrdx mulrax = mulrax * t53_stack
# asm 1: mulq <t53_stack=stack64#31
# asm 2: mulq <t53_stack=240(%rsp)
mulq 240(%rsp)
# qhasm: carry? zp0 += mulrax
# asm 1: add <mulrax=int64#7,<zp0=int64#2
# asm 2: add <mulrax=%rax,<zp0=%rsi
add %rax,%rsi
# qhasm: mulr01 += mulrdx + carry
# asm 1: adc <mulrdx=int64#3,<mulr01=int64#4
# asm 2: adc <mulrdx=%rdx,<mulr01=%rcx
adc %rdx,%rcx
# qhasm: mulrax = *(uint64 *)(workp + 96)
# asm 1: movq 96(<workp=int64#1),>mulrax=int64#3
# asm 2: movq 96(<workp=%rdi),>mulrax=%rdx
movq 96(%rdi),%rdx
# qhasm: mulrax *= 19
# asm 1: imulq $19,<mulrax=int64#3,>mulrax=int64#7
# asm 2: imulq $19,<mulrax=%rdx,>mulrax=%rax
imulq $19,%rdx,%rax
# qhasm: (uint128) mulrdx mulrax = mulrax * t54_stack
# asm 1: mulq <t54_stack=stack64#32
# asm 2: mulq <t54_stack=248(%rsp)
mulq 248(%rsp)
# qhasm: carry? zp1 += mulrax
# asm 1: add <mulrax=int64#7,<zp1=int64#5
# asm 2: add <mulrax=%rax,<zp1=%r8
add %rax,%r8
# qhasm: mulr11 += mulrdx + carry
# asm 1: adc <mulrdx=int64#3,<mulr11=int64#6
# asm 2: adc <mulrdx=%rdx,<mulr11=%r9
adc %rdx,%r9
# qhasm: mulrax = *(uint64 *)(workp + 104)
# asm 1: movq 104(<workp=int64#1),>mulrax=int64#7
# asm 2: movq 104(<workp=%rdi),>mulrax=%rax
movq 104(%rdi),%rax
# qhasm: (uint128) mulrdx mulrax = mulrax * t50_stack
# asm 1: mulq <t50_stack=stack64#28
# asm 2: mulq <t50_stack=216(%rsp)
mulq 216(%rsp)
# qhasm: carry? zp3 += mulrax
# asm 1: add <mulrax=int64#7,<zp3=int64#10
# asm 2: add <mulrax=%rax,<zp3=%r12
add %rax,%r12
# qhasm: mulr31 += mulrdx + carry
# asm 1: adc <mulrdx=int64#3,<mulr31=int64#11
# asm 2: adc <mulrdx=%rdx,<mulr31=%r13
adc %rdx,%r13
# qhasm: mulrax = *(uint64 *)(workp + 104)
# asm 1: movq 104(<workp=int64#1),>mulrax=int64#7
# asm 2: movq 104(<workp=%rdi),>mulrax=%rax
movq 104(%rdi),%rax
# qhasm: (uint128) mulrdx mulrax = mulrax * t51_stack
# asm 1: mulq <t51_stack=stack64#29
# asm 2: mulq <t51_stack=224(%rsp)
mulq 224(%rsp)
# qhasm: carry? zp4 += mulrax
# asm 1: add <mulrax=int64#7,<zp4=int64#12
# asm 2: add <mulrax=%rax,<zp4=%r14
add %rax,%r14
# qhasm: mulr41 += mulrdx + carry
# asm 1: adc <mulrdx=int64#3,<mulr41=int64#13
# asm 2: adc <mulrdx=%rdx,<mulr41=%r15
adc %rdx,%r15
# qhasm: mulrax = mulx319_stack
# asm 1: movq <mulx319_stack=stack64#8,>mulrax=int64#7
# asm 2: movq <mulx319_stack=56(%rsp),>mulrax=%rax
movq 56(%rsp),%rax
# qhasm: (uint128) mulrdx mulrax = mulrax * t53_stack
# asm 1: mulq <t53_stack=stack64#31
# asm 2: mulq <t53_stack=240(%rsp)
mulq 240(%rsp)
# qhasm: carry? zp1 += mulrax
# asm 1: add <mulrax=int64#7,<zp1=int64#5
# asm 2: add <mulrax=%rax,<zp1=%r8
add %rax,%r8
# qhasm: mulr11 += mulrdx + carry
# asm 1: adc <mulrdx=int64#3,<mulr11=int64#6
# asm 2: adc <mulrdx=%rdx,<mulr11=%r9
adc %rdx,%r9
# qhasm: mulrax = mulx319_stack
# asm 1: movq <mulx319_stack=stack64#8,>mulrax=int64#7
# asm 2: movq <mulx319_stack=56(%rsp),>mulrax=%rax
movq 56(%rsp),%rax
# qhasm: (uint128) mulrdx mulrax = mulrax * t54_stack
# asm 1: mulq <t54_stack=stack64#32
# asm 2: mulq <t54_stack=248(%rsp)
mulq 248(%rsp)
# qhasm: carry? zp2 += mulrax
# asm 1: add <mulrax=int64#7,<zp2=int64#8
# asm 2: add <mulrax=%rax,<zp2=%r10
add %rax,%r10
# qhasm: mulr21 += mulrdx + carry
# asm 1: adc <mulrdx=int64#3,<mulr21=int64#9
# asm 2: adc <mulrdx=%rdx,<mulr21=%r11
adc %rdx,%r11
# qhasm: mulrax = *(uint64 *)(workp + 112)
# asm 1: movq 112(<workp=int64#1),>mulrax=int64#7
# asm 2: movq 112(<workp=%rdi),>mulrax=%rax
movq 112(%rdi),%rax
# qhasm: (uint128) mulrdx mulrax = mulrax * t50_stack
# asm 1: mulq <t50_stack=stack64#28
# asm 2: mulq <t50_stack=216(%rsp)
mulq 216(%rsp)
# qhasm: carry? zp4 += mulrax
# asm 1: add <mulrax=int64#7,<zp4=int64#12
# asm 2: add <mulrax=%rax,<zp4=%r14
add %rax,%r14
# qhasm: mulr41 += mulrdx + carry
# asm 1: adc <mulrdx=int64#3,<mulr41=int64#13
# asm 2: adc <mulrdx=%rdx,<mulr41=%r15
adc %rdx,%r15
# qhasm: mulrax = mulx419_stack
# asm 1: movq <mulx419_stack=stack64#9,>mulrax=int64#7
# asm 2: movq <mulx419_stack=64(%rsp),>mulrax=%rax
movq 64(%rsp),%rax
# qhasm: (uint128) mulrdx mulrax = mulrax * t52_stack
# asm 1: mulq <t52_stack=stack64#30
# asm 2: mulq <t52_stack=232(%rsp)
mulq 232(%rsp)
# qhasm: carry? zp1 += mulrax
# asm 1: add <mulrax=int64#7,<zp1=int64#5
# asm 2: add <mulrax=%rax,<zp1=%r8
add %rax,%r8
# qhasm: mulr11 += mulrdx + carry
# asm 1: adc <mulrdx=int64#3,<mulr11=int64#6
# asm 2: adc <mulrdx=%rdx,<mulr11=%r9
adc %rdx,%r9
# qhasm: mulrax = mulx419_stack
# asm 1: movq <mulx419_stack=stack64#9,>mulrax=int64#7
# asm 2: movq <mulx419_stack=64(%rsp),>mulrax=%rax
movq 64(%rsp),%rax
# qhasm: (uint128) mulrdx mulrax = mulrax * t53_stack
# asm 1: mulq <t53_stack=stack64#31
# asm 2: mulq <t53_stack=240(%rsp)
mulq 240(%rsp)
# qhasm: carry? zp2 += mulrax
# asm 1: add <mulrax=int64#7,<zp2=int64#8
# asm 2: add <mulrax=%rax,<zp2=%r10
add %rax,%r10
# qhasm: mulr21 += mulrdx + carry
# asm 1: adc <mulrdx=int64#3,<mulr21=int64#9
# asm 2: adc <mulrdx=%rdx,<mulr21=%r11
adc %rdx,%r11
# qhasm: mulrax = mulx419_stack
# asm 1: movq <mulx419_stack=stack64#9,>mulrax=int64#7
# asm 2: movq <mulx419_stack=64(%rsp),>mulrax=%rax
movq 64(%rsp),%rax
# qhasm: (uint128) mulrdx mulrax = mulrax * t54_stack
# asm 1: mulq <t54_stack=stack64#32
# asm 2: mulq <t54_stack=248(%rsp)
mulq 248(%rsp)
# qhasm: carry? zp3 += mulrax
# asm 1: add <mulrax=int64#7,<zp3=int64#10
# asm 2: add <mulrax=%rax,<zp3=%r12
add %rax,%r12
# qhasm: mulr31 += mulrdx + carry
# asm 1: adc <mulrdx=int64#3,<mulr31=int64#11
# asm 2: adc <mulrdx=%rdx,<mulr31=%r13
adc %rdx,%r13
# qhasm: mulredmask = *(uint64 *) &CRYPTO_SHARED_NAMESPACE(REDMASK51)
# asm 1: movq CRYPTO_SHARED_NAMESPACE(REDMASK51),>mulredmask=int64#3
# asm 2: movq CRYPTO_SHARED_NAMESPACE(REDMASK51),>mulredmask=%rdx
movq CRYPTO_SHARED_NAMESPACE(REDMASK51)(%rip),%rdx
# qhasm: mulr01 = (mulr01.zp0) << 13
# asm 1: shld $13,<zp0=int64#2,<mulr01=int64#4
# asm 2: shld $13,<zp0=%rsi,<mulr01=%rcx
shld $13,%rsi,%rcx
# qhasm: zp0 &= mulredmask
# asm 1: and <mulredmask=int64#3,<zp0=int64#2
# asm 2: and <mulredmask=%rdx,<zp0=%rsi
and %rdx,%rsi
# qhasm: mulr11 = (mulr11.zp1) << 13
# asm 1: shld $13,<zp1=int64#5,<mulr11=int64#6
# asm 2: shld $13,<zp1=%r8,<mulr11=%r9
shld $13,%r8,%r9
# qhasm: zp1 &= mulredmask
# asm 1: and <mulredmask=int64#3,<zp1=int64#5
# asm 2: and <mulredmask=%rdx,<zp1=%r8
and %rdx,%r8
# qhasm: zp1 += mulr01
# asm 1: add <mulr01=int64#4,<zp1=int64#5
# asm 2: add <mulr01=%rcx,<zp1=%r8
add %rcx,%r8
# qhasm: mulr21 = (mulr21.zp2) << 13
# asm 1: shld $13,<zp2=int64#8,<mulr21=int64#9
# asm 2: shld $13,<zp2=%r10,<mulr21=%r11
shld $13,%r10,%r11
# qhasm: zp2 &= mulredmask
# asm 1: and <mulredmask=int64#3,<zp2=int64#8
# asm 2: and <mulredmask=%rdx,<zp2=%r10
and %rdx,%r10
# qhasm: zp2 += mulr11
# asm 1: add <mulr11=int64#6,<zp2=int64#8
# asm 2: add <mulr11=%r9,<zp2=%r10
add %r9,%r10
# qhasm: mulr31 = (mulr31.zp3) << 13
# asm 1: shld $13,<zp3=int64#10,<mulr31=int64#11
# asm 2: shld $13,<zp3=%r12,<mulr31=%r13
shld $13,%r12,%r13
# qhasm: zp3 &= mulredmask
# asm 1: and <mulredmask=int64#3,<zp3=int64#10
# asm 2: and <mulredmask=%rdx,<zp3=%r12
and %rdx,%r12
# qhasm: zp3 += mulr21
# asm 1: add <mulr21=int64#9,<zp3=int64#10
# asm 2: add <mulr21=%r11,<zp3=%r12
add %r11,%r12
# qhasm: mulr41 = (mulr41.zp4) << 13
# asm 1: shld $13,<zp4=int64#12,<mulr41=int64#13
# asm 2: shld $13,<zp4=%r14,<mulr41=%r15
shld $13,%r14,%r15
# qhasm: zp4 &= mulredmask
# asm 1: and <mulredmask=int64#3,<zp4=int64#12
# asm 2: and <mulredmask=%rdx,<zp4=%r14
and %rdx,%r14
# qhasm: zp4 += mulr31
# asm 1: add <mulr31=int64#11,<zp4=int64#12
# asm 2: add <mulr31=%r13,<zp4=%r14
add %r13,%r14
# qhasm: mulr41 = mulr41 * 19
# asm 1: imulq $19,<mulr41=int64#13,>mulr41=int64#4
# asm 2: imulq $19,<mulr41=%r15,>mulr41=%rcx
imulq $19,%r15,%rcx
# qhasm: zp0 += mulr41
# asm 1: add <mulr41=int64#4,<zp0=int64#2
# asm 2: add <mulr41=%rcx,<zp0=%rsi
add %rcx,%rsi
# qhasm: mult = zp0
# asm 1: mov <zp0=int64#2,>mult=int64#4
# asm 2: mov <zp0=%rsi,>mult=%rcx
mov %rsi,%rcx
# qhasm: (uint64) mult >>= 51
# asm 1: shr $51,<mult=int64#4
# asm 2: shr $51,<mult=%rcx
shr $51,%rcx
# qhasm: mult += zp1
# asm 1: add <zp1=int64#5,<mult=int64#4
# asm 2: add <zp1=%r8,<mult=%rcx
add %r8,%rcx
# qhasm: zp1 = mult
# asm 1: mov <mult=int64#4,>zp1=int64#5
# asm 2: mov <mult=%rcx,>zp1=%r8
mov %rcx,%r8
# qhasm: (uint64) mult >>= 51
# asm 1: shr $51,<mult=int64#4
# asm 2: shr $51,<mult=%rcx
shr $51,%rcx
# qhasm: zp0 &= mulredmask
# asm 1: and <mulredmask=int64#3,<zp0=int64#2
# asm 2: and <mulredmask=%rdx,<zp0=%rsi
and %rdx,%rsi
# qhasm: mult += zp2
# asm 1: add <zp2=int64#8,<mult=int64#4
# asm 2: add <zp2=%r10,<mult=%rcx
add %r10,%rcx
# qhasm: zp2 = mult
# asm 1: mov <mult=int64#4,>zp2=int64#6
# asm 2: mov <mult=%rcx,>zp2=%r9
mov %rcx,%r9
# qhasm: (uint64) mult >>= 51
# asm 1: shr $51,<mult=int64#4
# asm 2: shr $51,<mult=%rcx
shr $51,%rcx
# qhasm: zp1 &= mulredmask
# asm 1: and <mulredmask=int64#3,<zp1=int64#5
# asm 2: and <mulredmask=%rdx,<zp1=%r8
and %rdx,%r8
# qhasm: mult += zp3
# asm 1: add <zp3=int64#10,<mult=int64#4
# asm 2: add <zp3=%r12,<mult=%rcx
add %r12,%rcx
# qhasm: zp3 = mult
# asm 1: mov <mult=int64#4,>zp3=int64#7
# asm 2: mov <mult=%rcx,>zp3=%rax
mov %rcx,%rax
# qhasm: (uint64) mult >>= 51
# asm 1: shr $51,<mult=int64#4
# asm 2: shr $51,<mult=%rcx
shr $51,%rcx
# qhasm: zp2 &= mulredmask
# asm 1: and <mulredmask=int64#3,<zp2=int64#6
# asm 2: and <mulredmask=%rdx,<zp2=%r9
and %rdx,%r9
# qhasm: mult += zp4
# asm 1: add <zp4=int64#12,<mult=int64#4
# asm 2: add <zp4=%r14,<mult=%rcx
add %r14,%rcx
# qhasm: zp4 = mult
# asm 1: mov <mult=int64#4,>zp4=int64#8
# asm 2: mov <mult=%rcx,>zp4=%r10
mov %rcx,%r10
# qhasm: (uint64) mult >>= 51
# asm 1: shr $51,<mult=int64#4
# asm 2: shr $51,<mult=%rcx
shr $51,%rcx
# qhasm: zp3 &= mulredmask
# asm 1: and <mulredmask=int64#3,<zp3=int64#7
# asm 2: and <mulredmask=%rdx,<zp3=%rax
and %rdx,%rax
# qhasm: mult *= 19
# asm 1: imulq $19,<mult=int64#4,>mult=int64#4
# asm 2: imulq $19,<mult=%rcx,>mult=%rcx
imulq $19,%rcx,%rcx
# qhasm: zp0 += mult
# asm 1: add <mult=int64#4,<zp0=int64#2
# asm 2: add <mult=%rcx,<zp0=%rsi
add %rcx,%rsi
# qhasm: zp4 &= mulredmask
# asm 1: and <mulredmask=int64#3,<zp4=int64#8
# asm 2: and <mulredmask=%rdx,<zp4=%r10
and %rdx,%r10
# qhasm: *(uint64 *)(workp + 80) = zp0
# asm 1: movq <zp0=int64#2,80(<workp=int64#1)
# asm 2: movq <zp0=%rsi,80(<workp=%rdi)
movq %rsi,80(%rdi)
# qhasm: *(uint64 *)(workp + 88) = zp1
# asm 1: movq <zp1=int64#5,88(<workp=int64#1)
# asm 2: movq <zp1=%r8,88(<workp=%rdi)
movq %r8,88(%rdi)
# qhasm: *(uint64 *)(workp + 96) = zp2
# asm 1: movq <zp2=int64#6,96(<workp=int64#1)
# asm 2: movq <zp2=%r9,96(<workp=%rdi)
movq %r9,96(%rdi)
# qhasm: *(uint64 *)(workp + 104) = zp3
# asm 1: movq <zp3=int64#7,104(<workp=int64#1)
# asm 2: movq <zp3=%rax,104(<workp=%rdi)
movq %rax,104(%rdi)
# qhasm: *(uint64 *)(workp + 112) = zp4
# asm 1: movq <zp4=int64#8,112(<workp=int64#1)
# asm 2: movq <zp4=%r10,112(<workp=%rdi)
movq %r10,112(%rdi)
# qhasm: caller1 = caller1_stack
# asm 1: movq <caller1_stack=stack64#1,>caller1=int64#9
# asm 2: movq <caller1_stack=0(%rsp),>caller1=%r11
movq 0(%rsp),%r11
# qhasm: caller2 = caller2_stack
# asm 1: movq <caller2_stack=stack64#2,>caller2=int64#10
# asm 2: movq <caller2_stack=8(%rsp),>caller2=%r12
movq 8(%rsp),%r12
# qhasm: caller3 = caller3_stack
# asm 1: movq <caller3_stack=stack64#3,>caller3=int64#11
# asm 2: movq <caller3_stack=16(%rsp),>caller3=%r13
movq 16(%rsp),%r13
# qhasm: caller4 = caller4_stack
# asm 1: movq <caller4_stack=stack64#4,>caller4=int64#12
# asm 2: movq <caller4_stack=24(%rsp),>caller4=%r14
movq 24(%rsp),%r14
# qhasm: caller5 = caller5_stack
# asm 1: movq <caller5_stack=stack64#5,>caller5=int64#13
# asm 2: movq <caller5_stack=32(%rsp),>caller5=%r15
movq 32(%rsp),%r15
# qhasm: caller6 = caller6_stack
# asm 1: movq <caller6_stack=stack64#6,>caller6=int64#14
# asm 2: movq <caller6_stack=40(%rsp),>caller6=%rbx
movq 40(%rsp),%rbx
# qhasm: caller7 = caller7_stack
# asm 1: movq <caller7_stack=stack64#7,>caller7=int64#15
# asm 2: movq <caller7_stack=48(%rsp),>caller7=%rbp
movq 48(%rsp),%rbp
# qhasm: leave
add %r11,%rsp
mov %rdi,%rax
mov %rsi,%rdx
ret