// linker define ladderstep // linker use 38 // linker use 121666 # 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: stack64 t10_stack # qhasm: stack64 t11_stack # qhasm: stack64 t12_stack # qhasm: stack64 t13_stack # qhasm: int64 t20 # qhasm: int64 t21 # qhasm: int64 t22 # qhasm: int64 t23 # qhasm: stack64 t20_stack # qhasm: stack64 t21_stack # qhasm: stack64 t22_stack # qhasm: stack64 t23_stack # qhasm: int64 t30 # qhasm: int64 t31 # qhasm: int64 t32 # qhasm: int64 t33 # qhasm: stack64 t30_stack # qhasm: stack64 t31_stack # qhasm: stack64 t32_stack # qhasm: stack64 t33_stack # qhasm: int64 t40 # qhasm: int64 t41 # qhasm: int64 t42 # qhasm: int64 t43 # qhasm: stack64 t40_stack # qhasm: stack64 t41_stack # qhasm: stack64 t42_stack # qhasm: stack64 t43_stack # qhasm: int64 t50 # qhasm: int64 t51 # qhasm: int64 t52 # qhasm: int64 t53 # qhasm: stack64 t50_stack # qhasm: stack64 t51_stack # qhasm: stack64 t52_stack # qhasm: stack64 t53_stack # qhasm: int64 t60 # qhasm: int64 t61 # qhasm: int64 t62 # qhasm: int64 t63 # qhasm: stack64 t60_stack # qhasm: stack64 t61_stack # qhasm: stack64 t62_stack # qhasm: stack64 t63_stack # qhasm: int64 t70 # qhasm: int64 t71 # qhasm: int64 t72 # qhasm: int64 t73 # qhasm: stack64 t70_stack # qhasm: stack64 t71_stack # qhasm: stack64 t72_stack # qhasm: stack64 t73_stack # qhasm: int64 t80 # qhasm: int64 t81 # qhasm: int64 t82 # qhasm: int64 t83 # qhasm: stack64 t80_stack # qhasm: stack64 t81_stack # qhasm: stack64 t82_stack # qhasm: stack64 t83_stack # qhasm: int64 t90 # qhasm: int64 t91 # qhasm: int64 t92 # qhasm: int64 t93 # qhasm: stack64 t90_stack # qhasm: stack64 t91_stack # qhasm: stack64 t92_stack # qhasm: stack64 t93_stack # qhasm: int64 xp0 # qhasm: int64 xp1 # qhasm: int64 xp2 # qhasm: int64 xp3 # qhasm: int64 zp0 # qhasm: int64 zp1 # qhasm: int64 zp2 # qhasm: int64 zp3 # qhasm: int64 xq0 # qhasm: int64 xq1 # qhasm: int64 xq2 # qhasm: int64 xq3 # qhasm: int64 zq0 # qhasm: int64 zq1 # qhasm: int64 zq2 # qhasm: int64 zq3 # qhasm: int64 mulr4 # qhasm: int64 mulr5 # qhasm: int64 mulr6 # qhasm: int64 mulr7 # qhasm: int64 mulr8 # qhasm: int64 mulrax # qhasm: int64 mulrdx # qhasm: int64 mulx0 # qhasm: int64 mulx1 # qhasm: int64 mulx2 # qhasm: int64 mulx3 # qhasm: int64 mulc # qhasm: int64 mulzero # qhasm: int64 muli38 # qhasm: int64 squarer4 # qhasm: int64 squarer5 # qhasm: int64 squarer6 # qhasm: int64 squarer7 # qhasm: int64 squarer8 # qhasm: int64 squarerax # qhasm: int64 squarerdx # qhasm: int64 squaret1 # qhasm: int64 squaret2 # qhasm: int64 squaret3 # qhasm: int64 squarec # qhasm: int64 squarezero # qhasm: int64 squarei38 # qhasm: int64 mul121666rax # qhasm: int64 mul121666rdx # qhasm: int64 mul121666r4 # qhasm: int64 mul121666t1 # qhasm: int64 mul121666t2 # qhasm: int64 mul121666t3 # qhasm: int64 addt0 # qhasm: int64 addt1 # qhasm: int64 subt0 # qhasm: int64 subt1 # qhasm: enter CRYPTO_SHARED_NAMESPACE(ladderstep) .text .p2align 5 .globl _CRYPTO_SHARED_NAMESPACE(ladderstep) .globl CRYPTO_SHARED_NAMESPACE(ladderstep) _CRYPTO_SHARED_NAMESPACE(ladderstep): CRYPTO_SHARED_NAMESPACE(ladderstep): mov %rsp,%r11 and $31,%r11 add $288,%r11 sub %r11,%rsp # qhasm: caller1_stack = caller1 # asm 1: movq caller1_stack=stack64#1 # asm 2: movq caller1_stack=0(%rsp) movq %r11,0(%rsp) # qhasm: caller2_stack = caller2 # asm 1: movq caller2_stack=stack64#2 # asm 2: movq caller2_stack=8(%rsp) movq %r12,8(%rsp) # qhasm: caller3_stack = caller3 # asm 1: movq caller3_stack=stack64#3 # asm 2: movq caller3_stack=16(%rsp) movq %r13,16(%rsp) # qhasm: caller4_stack = caller4 # asm 1: movq caller4_stack=stack64#4 # asm 2: movq caller4_stack=24(%rsp) movq %r14,24(%rsp) # qhasm: caller5_stack = caller5 # asm 1: movq caller5_stack=stack64#5 # asm 2: movq caller5_stack=32(%rsp) movq %r15,32(%rsp) # qhasm: caller6_stack = caller6 # asm 1: movq caller6_stack=stack64#6 # asm 2: movq caller6_stack=40(%rsp) movq %rbx,40(%rsp) # qhasm: caller7_stack = caller7 # asm 1: movq caller7_stack=stack64#7 # asm 2: movq caller7_stack=48(%rsp) movq %rbp,48(%rsp) # qhasm: t10 = *(uint64 *)(workp + 32) # asm 1: movq 32(t10=int64#2 # asm 2: movq 32(t10=%rsi movq 32(%rdi),%rsi # qhasm: t11 = *(uint64 *)(workp + 40) # asm 1: movq 40(t11=int64#3 # asm 2: movq 40(t11=%rdx movq 40(%rdi),%rdx # qhasm: t12 = *(uint64 *)(workp + 48) # asm 1: movq 48(t12=int64#4 # asm 2: movq 48(t12=%rcx movq 48(%rdi),%rcx # qhasm: t13 = *(uint64 *)(workp + 56) # asm 1: movq 56(t13=int64#5 # asm 2: movq 56(t13=%r8 movq 56(%rdi),%r8 # qhasm: t20 = t10 # asm 1: mov t20=int64#6 # asm 2: mov t20=%r9 mov %rsi,%r9 # qhasm: t21 = t11 # asm 1: mov t21=int64#7 # asm 2: mov t21=%rax mov %rdx,%rax # qhasm: t22 = t12 # asm 1: mov t22=int64#8 # asm 2: mov t22=%r10 mov %rcx,%r10 # qhasm: t23 = t13 # asm 1: mov t23=int64#9 # asm 2: mov t23=%r11 mov %r8,%r11 # qhasm: carry? t10 += *(uint64 *)(workp + 64) # asm 1: addq 64(addt0=int64#10 # asm 2: mov $0,>addt0=%r12 mov $0,%r12 # qhasm: addt1 = 38 # asm 1: mov $38,>addt1=int64#11 # asm 2: mov $38,>addt1=%r13 mov $38,%r13 # qhasm: addt1 = addt0 if !carry # asm 1: cmovae subt0=int64#10 # asm 2: mov $0,>subt0=%r12 mov $0,%r12 # qhasm: subt1 = 38 # asm 1: mov $38,>subt1=int64#11 # asm 2: mov $38,>subt1=%r13 mov $38,%r13 # qhasm: subt1 = subt0 if !carry # asm 1: cmovae t10_stack=stack64#8 # asm 2: movq t10_stack=56(%rsp) movq %rsi,56(%rsp) # qhasm: t11_stack = t11 # asm 1: movq t11_stack=stack64#9 # asm 2: movq t11_stack=64(%rsp) movq %rdx,64(%rsp) # qhasm: t12_stack = t12 # asm 1: movq t12_stack=stack64#10 # asm 2: movq t12_stack=72(%rsp) movq %rcx,72(%rsp) # qhasm: t13_stack = t13 # asm 1: movq t13_stack=stack64#11 # asm 2: movq t13_stack=80(%rsp) movq %r8,80(%rsp) # qhasm: t20_stack = t20 # asm 1: movq t20_stack=stack64#12 # asm 2: movq t20_stack=88(%rsp) movq %r9,88(%rsp) # qhasm: t21_stack = t21 # asm 1: movq t21_stack=stack64#13 # asm 2: movq t21_stack=96(%rsp) movq %rax,96(%rsp) # qhasm: t22_stack = t22 # asm 1: movq t22_stack=stack64#14 # asm 2: movq t22_stack=104(%rsp) movq %r10,104(%rsp) # qhasm: t23_stack = t23 # asm 1: movq t23_stack=stack64#15 # asm 2: movq t23_stack=112(%rsp) movq %r11,112(%rsp) # qhasm: squarer7 = 0 # asm 1: mov $0,>squarer7=int64#2 # asm 2: mov $0,>squarer7=%rsi mov $0,%rsi # qhasm: squarerax = t21_stack # asm 1: movq squarerax=int64#7 # asm 2: movq squarerax=%rax movq 96(%rsp),%rax # qhasm: (uint128) squarerdx squarerax = squarerax * t20_stack # asm 1: mulq t71=int64#4 # asm 2: mov t71=%rcx mov %rax,%rcx # qhasm: t72 = squarerdx # asm 1: mov t72=int64#5 # asm 2: mov t72=%r8 mov %rdx,%r8 # qhasm: squarerax = t22_stack # asm 1: movq squarerax=int64#7 # asm 2: movq squarerax=%rax movq 104(%rsp),%rax # qhasm: (uint128) squarerdx squarerax = squarerax * t21_stack # asm 1: mulq t73=int64#6 # asm 2: mov t73=%r9 mov %rax,%r9 # qhasm: squarer4 = squarerdx # asm 1: mov squarer4=int64#8 # asm 2: mov squarer4=%r10 mov %rdx,%r10 # qhasm: squarerax = t23_stack # asm 1: movq squarerax=int64#7 # asm 2: movq squarerax=%rax movq 112(%rsp),%rax # qhasm: (uint128) squarerdx squarerax = squarerax * t22_stack # asm 1: mulq squarer5=int64#9 # asm 2: mov squarer5=%r11 mov %rax,%r11 # qhasm: squarer6 = squarerdx # asm 1: mov squarer6=int64#10 # asm 2: mov squarer6=%r12 mov %rdx,%r12 # qhasm: squarerax = t22_stack # asm 1: movq squarerax=int64#7 # asm 2: movq squarerax=%rax movq 104(%rsp),%rax # qhasm: (uint128) squarerdx squarerax = squarerax * t20_stack # asm 1: mulq squarerax=int64#7 # asm 2: movq squarerax=%rax movq 112(%rsp),%rax # qhasm: (uint128) squarerdx squarerax = squarerax * t21_stack # asm 1: mulq squarerax=int64#7 # asm 2: movq squarerax=%rax movq 112(%rsp),%rax # qhasm: (uint128) squarerdx squarerax = squarerax * t20_stack # asm 1: mulq squarerax=int64#7 # asm 2: movq squarerax=%rax movq 88(%rsp),%rax # qhasm: (uint128) squarerdx squarerax = squarerax * t20_stack # asm 1: mulq t70=int64#11 # asm 2: mov t70=%r13 mov %rax,%r13 # qhasm: squaret1 = squarerdx # asm 1: mov squaret1=int64#12 # asm 2: mov squaret1=%r14 mov %rdx,%r14 # qhasm: squarerax = t21_stack # asm 1: movq squarerax=int64#7 # asm 2: movq squarerax=%rax movq 96(%rsp),%rax # qhasm: (uint128) squarerdx squarerax = squarerax * t21_stack # asm 1: mulq squaret2=int64#13 # asm 2: mov squaret2=%r15 mov %rax,%r15 # qhasm: squaret3 = squarerdx # asm 1: mov squaret3=int64#14 # asm 2: mov squaret3=%rbx mov %rdx,%rbx # qhasm: squarerax = t22_stack # asm 1: movq squarerax=int64#7 # asm 2: movq squarerax=%rax movq 104(%rsp),%rax # qhasm: (uint128) squarerdx squarerax = squarerax * t22_stack # asm 1: mulq squarerax=int64#7 # asm 2: movq squarerax=%rax movq 112(%rsp),%rax # qhasm: (uint128) squarerdx squarerax = squarerax * t23_stack # asm 1: mulq squarerax=int64#7 # asm 2: mov squarerax=%rax mov %r10,%rax # qhasm: (uint128) squarerdx squarerax = squarerax * *(uint64 *)&CRYPTO_SHARED_NAMESPACE(38) mulq CRYPTO_SHARED_NAMESPACE(38)(%rip) # qhasm: squarer4 = squarerax # asm 1: mov squarer4=int64#8 # asm 2: mov squarer4=%r10 mov %rax,%r10 # qhasm: squarerax = squarer5 # asm 1: mov squarerax=int64#7 # asm 2: mov squarerax=%rax mov %r11,%rax # qhasm: squarer5 = squarerdx # asm 1: mov squarer5=int64#9 # asm 2: mov squarer5=%r11 mov %rdx,%r11 # qhasm: (uint128) squarerdx squarerax = squarerax * *(uint64 *)&CRYPTO_SHARED_NAMESPACE(38) mulq CRYPTO_SHARED_NAMESPACE(38)(%rip) # qhasm: carry? squarer5 += squarerax # asm 1: add squarerax=int64#7 # asm 2: mov squarerax=%rax mov %r12,%rax # qhasm: squarer6 = 0 # asm 1: mov $0,>squarer6=int64#10 # asm 2: mov $0,>squarer6=%r12 mov $0,%r12 # qhasm: squarer6 += squarerdx + carry # asm 1: adc squarerax=int64#7 # asm 2: mov squarerax=%rax mov %rsi,%rax # qhasm: squarer7 = 0 # asm 1: mov $0,>squarer7=int64#2 # asm 2: mov $0,>squarer7=%rsi mov $0,%rsi # qhasm: squarer7 += squarerdx + carry # asm 1: adc squarer8=int64#7 # asm 2: mov $0,>squarer8=%rax mov $0,%rax # qhasm: squarer8 += squarerdx + carry # asm 1: adc squarezero=int64#2 # asm 2: mov $0,>squarezero=%rsi mov $0,%rsi # qhasm: squarer8 += squarezero + carry # asm 1: adc squarer8=int64#3 # asm 2: imulq $38,squarer8=%rdx imulq $38,%rax,%rdx # qhasm: carry? t70 += squarer8 # asm 1: add squarezero=int64#2 # asm 2: imulq $38,squarezero=%rsi imulq $38,%rsi,%rsi # qhasm: t70 += squarezero # asm 1: add t70_stack=stack64#16 # asm 2: movq t70_stack=120(%rsp) movq %r13,120(%rsp) # qhasm: t71_stack = t71 # asm 1: movq t71_stack=stack64#17 # asm 2: movq t71_stack=128(%rsp) movq %rcx,128(%rsp) # qhasm: t72_stack = t72 # asm 1: movq t72_stack=stack64#18 # asm 2: movq t72_stack=136(%rsp) movq %r8,136(%rsp) # qhasm: t73_stack = t73 # asm 1: movq t73_stack=stack64#19 # asm 2: movq t73_stack=144(%rsp) movq %r9,144(%rsp) # qhasm: squarer7 = 0 # asm 1: mov $0,>squarer7=int64#2 # asm 2: mov $0,>squarer7=%rsi mov $0,%rsi # qhasm: squarerax = t11_stack # asm 1: movq squarerax=int64#7 # asm 2: movq squarerax=%rax movq 64(%rsp),%rax # qhasm: (uint128) squarerdx squarerax = squarerax * t10_stack # asm 1: mulq t61=int64#4 # asm 2: mov t61=%rcx mov %rax,%rcx # qhasm: t62 = squarerdx # asm 1: mov t62=int64#5 # asm 2: mov t62=%r8 mov %rdx,%r8 # qhasm: squarerax = t12_stack # asm 1: movq squarerax=int64#7 # asm 2: movq squarerax=%rax movq 72(%rsp),%rax # qhasm: (uint128) squarerdx squarerax = squarerax * t11_stack # asm 1: mulq t63=int64#6 # asm 2: mov t63=%r9 mov %rax,%r9 # qhasm: squarer4 = squarerdx # asm 1: mov squarer4=int64#8 # asm 2: mov squarer4=%r10 mov %rdx,%r10 # qhasm: squarerax = t13_stack # asm 1: movq squarerax=int64#7 # asm 2: movq squarerax=%rax movq 80(%rsp),%rax # qhasm: (uint128) squarerdx squarerax = squarerax * t12_stack # asm 1: mulq squarer5=int64#9 # asm 2: mov squarer5=%r11 mov %rax,%r11 # qhasm: squarer6 = squarerdx # asm 1: mov squarer6=int64#10 # asm 2: mov squarer6=%r12 mov %rdx,%r12 # qhasm: squarerax = t12_stack # asm 1: movq squarerax=int64#7 # asm 2: movq squarerax=%rax movq 72(%rsp),%rax # qhasm: (uint128) squarerdx squarerax = squarerax * t10_stack # asm 1: mulq squarerax=int64#7 # asm 2: movq squarerax=%rax movq 80(%rsp),%rax # qhasm: (uint128) squarerdx squarerax = squarerax * t11_stack # asm 1: mulq squarerax=int64#7 # asm 2: movq squarerax=%rax movq 80(%rsp),%rax # qhasm: (uint128) squarerdx squarerax = squarerax * t10_stack # asm 1: mulq squarerax=int64#7 # asm 2: movq squarerax=%rax movq 56(%rsp),%rax # qhasm: (uint128) squarerdx squarerax = squarerax * t10_stack # asm 1: mulq t60=int64#11 # asm 2: mov t60=%r13 mov %rax,%r13 # qhasm: squaret1 = squarerdx # asm 1: mov squaret1=int64#12 # asm 2: mov squaret1=%r14 mov %rdx,%r14 # qhasm: squarerax = t11_stack # asm 1: movq squarerax=int64#7 # asm 2: movq squarerax=%rax movq 64(%rsp),%rax # qhasm: (uint128) squarerdx squarerax = squarerax * t11_stack # asm 1: mulq squaret2=int64#13 # asm 2: mov squaret2=%r15 mov %rax,%r15 # qhasm: squaret3 = squarerdx # asm 1: mov squaret3=int64#14 # asm 2: mov squaret3=%rbx mov %rdx,%rbx # qhasm: squarerax = t12_stack # asm 1: movq squarerax=int64#7 # asm 2: movq squarerax=%rax movq 72(%rsp),%rax # qhasm: (uint128) squarerdx squarerax = squarerax * t12_stack # asm 1: mulq squarerax=int64#7 # asm 2: movq squarerax=%rax movq 80(%rsp),%rax # qhasm: (uint128) squarerdx squarerax = squarerax * t13_stack # asm 1: mulq squarerax=int64#7 # asm 2: mov squarerax=%rax mov %r10,%rax # qhasm: (uint128) squarerdx squarerax = squarerax * *(uint64 *)&CRYPTO_SHARED_NAMESPACE(38) mulq CRYPTO_SHARED_NAMESPACE(38)(%rip) # qhasm: squarer4 = squarerax # asm 1: mov squarer4=int64#8 # asm 2: mov squarer4=%r10 mov %rax,%r10 # qhasm: squarerax = squarer5 # asm 1: mov squarerax=int64#7 # asm 2: mov squarerax=%rax mov %r11,%rax # qhasm: squarer5 = squarerdx # asm 1: mov squarer5=int64#9 # asm 2: mov squarer5=%r11 mov %rdx,%r11 # qhasm: (uint128) squarerdx squarerax = squarerax * *(uint64 *)&CRYPTO_SHARED_NAMESPACE(38) mulq CRYPTO_SHARED_NAMESPACE(38)(%rip) # qhasm: carry? squarer5 += squarerax # asm 1: add squarerax=int64#7 # asm 2: mov squarerax=%rax mov %r12,%rax # qhasm: squarer6 = 0 # asm 1: mov $0,>squarer6=int64#10 # asm 2: mov $0,>squarer6=%r12 mov $0,%r12 # qhasm: squarer6 += squarerdx + carry # asm 1: adc squarerax=int64#7 # asm 2: mov squarerax=%rax mov %rsi,%rax # qhasm: squarer7 = 0 # asm 1: mov $0,>squarer7=int64#2 # asm 2: mov $0,>squarer7=%rsi mov $0,%rsi # qhasm: squarer7 += squarerdx + carry # asm 1: adc squarer8=int64#7 # asm 2: mov $0,>squarer8=%rax mov $0,%rax # qhasm: squarer8 += squarerdx + carry # asm 1: adc squarezero=int64#2 # asm 2: mov $0,>squarezero=%rsi mov $0,%rsi # qhasm: squarer8 += squarezero + carry # asm 1: adc squarer8=int64#3 # asm 2: imulq $38,squarer8=%rdx imulq $38,%rax,%rdx # qhasm: carry? t60 += squarer8 # asm 1: add squarezero=int64#2 # asm 2: imulq $38,squarezero=%rsi imulq $38,%rsi,%rsi # qhasm: t60 += squarezero # asm 1: add t60_stack=stack64#20 # asm 2: movq t60_stack=152(%rsp) movq %r13,152(%rsp) # qhasm: t61_stack = t61 # asm 1: movq t61_stack=stack64#21 # asm 2: movq t61_stack=160(%rsp) movq %rcx,160(%rsp) # qhasm: t62_stack = t62 # asm 1: movq t62_stack=stack64#22 # asm 2: movq t62_stack=168(%rsp) movq %r8,168(%rsp) # qhasm: t63_stack = t63 # asm 1: movq t63_stack=stack64#23 # asm 2: movq t63_stack=176(%rsp) movq %r9,176(%rsp) # qhasm: t50 = t60 # asm 1: mov t50=int64#2 # asm 2: mov t50=%rsi mov %r13,%rsi # qhasm: t51 = t61 # asm 1: mov t51=int64#3 # asm 2: mov t51=%rdx mov %rcx,%rdx # qhasm: t52 = t62 # asm 1: mov t52=int64#4 # asm 2: mov t52=%rcx mov %r8,%rcx # qhasm: t53 = t63 # asm 1: mov t53=int64#5 # asm 2: mov t53=%r8 mov %r9,%r8 # qhasm: carry? t50 -= t70_stack # asm 1: subq subt0=int64#6 # asm 2: mov $0,>subt0=%r9 mov $0,%r9 # qhasm: subt1 = 38 # asm 1: mov $38,>subt1=int64#7 # asm 2: mov $38,>subt1=%rax mov $38,%rax # qhasm: subt1 = subt0 if !carry # asm 1: cmovae t50_stack=stack64#24 # asm 2: movq t50_stack=184(%rsp) movq %rsi,184(%rsp) # qhasm: t51_stack = t51 # asm 1: movq t51_stack=stack64#25 # asm 2: movq t51_stack=192(%rsp) movq %rdx,192(%rsp) # qhasm: t52_stack = t52 # asm 1: movq t52_stack=stack64#26 # asm 2: movq t52_stack=200(%rsp) movq %rcx,200(%rsp) # qhasm: t53_stack = t53 # asm 1: movq t53_stack=stack64#27 # asm 2: movq t53_stack=208(%rsp) movq %r8,208(%rsp) # qhasm: t30 = *(uint64 *)(workp + 96) # asm 1: movq 96(t30=int64#2 # asm 2: movq 96(t30=%rsi movq 96(%rdi),%rsi # qhasm: t31 = *(uint64 *)(workp + 104) # asm 1: movq 104(t31=int64#3 # asm 2: movq 104(t31=%rdx movq 104(%rdi),%rdx # qhasm: t32 = *(uint64 *)(workp + 112) # asm 1: movq 112(t32=int64#4 # asm 2: movq 112(t32=%rcx movq 112(%rdi),%rcx # qhasm: t33 = *(uint64 *)(workp + 120) # asm 1: movq 120(t33=int64#5 # asm 2: movq 120(t33=%r8 movq 120(%rdi),%r8 # qhasm: t40 = t30 # asm 1: mov t40=int64#6 # asm 2: mov t40=%r9 mov %rsi,%r9 # qhasm: t41 = t31 # asm 1: mov t41=int64#7 # asm 2: mov t41=%rax mov %rdx,%rax # qhasm: t42 = t32 # asm 1: mov t42=int64#8 # asm 2: mov t42=%r10 mov %rcx,%r10 # qhasm: t43 = t33 # asm 1: mov t43=int64#9 # asm 2: mov t43=%r11 mov %r8,%r11 # qhasm: carry? t30 += *(uint64 *)(workp + 128) # asm 1: addq 128(addt0=int64#10 # asm 2: mov $0,>addt0=%r12 mov $0,%r12 # qhasm: addt1 = 38 # asm 1: mov $38,>addt1=int64#11 # asm 2: mov $38,>addt1=%r13 mov $38,%r13 # qhasm: addt1 = addt0 if !carry # asm 1: cmovae subt0=int64#10 # asm 2: mov $0,>subt0=%r12 mov $0,%r12 # qhasm: subt1 = 38 # asm 1: mov $38,>subt1=int64#11 # asm 2: mov $38,>subt1=%r13 mov $38,%r13 # qhasm: subt1 = subt0 if !carry # asm 1: cmovae t30_stack=stack64#28 # asm 2: movq t30_stack=216(%rsp) movq %rsi,216(%rsp) # qhasm: t31_stack = t31 # asm 1: movq t31_stack=stack64#29 # asm 2: movq t31_stack=224(%rsp) movq %rdx,224(%rsp) # qhasm: t32_stack = t32 # asm 1: movq t32_stack=stack64#30 # asm 2: movq t32_stack=232(%rsp) movq %rcx,232(%rsp) # qhasm: t33_stack = t33 # asm 1: movq t33_stack=stack64#31 # asm 2: movq t33_stack=240(%rsp) movq %r8,240(%rsp) # qhasm: t40_stack = t40 # asm 1: movq t40_stack=stack64#32 # asm 2: movq t40_stack=248(%rsp) movq %r9,248(%rsp) # qhasm: t41_stack = t41 # asm 1: movq t41_stack=stack64#33 # asm 2: movq t41_stack=256(%rsp) movq %rax,256(%rsp) # qhasm: t42_stack = t42 # asm 1: movq t42_stack=stack64#34 # asm 2: movq t42_stack=264(%rsp) movq %r10,264(%rsp) # qhasm: t43_stack = t43 # asm 1: movq t43_stack=stack64#35 # asm 2: movq t43_stack=272(%rsp) movq %r11,272(%rsp) # qhasm: mulr4 = 0 # asm 1: mov $0,>mulr4=int64#2 # asm 2: mov $0,>mulr4=%rsi mov $0,%rsi # qhasm: mulr5 = 0 # asm 1: mov $0,>mulr5=int64#4 # asm 2: mov $0,>mulr5=%rcx mov $0,%rcx # qhasm: mulr6 = 0 # asm 1: mov $0,>mulr6=int64#5 # asm 2: mov $0,>mulr6=%r8 mov $0,%r8 # qhasm: mulr7 = 0 # asm 1: mov $0,>mulr7=int64#6 # asm 2: mov $0,>mulr7=%r9 mov $0,%r9 # qhasm: mulx0 = t30_stack # asm 1: movq mulx0=int64#8 # asm 2: movq mulx0=%r10 movq 216(%rsp),%r10 # qhasm: mulrax = t20_stack # asm 1: movq mulrax=int64#7 # asm 2: movq mulrax=%rax movq 88(%rsp),%rax # qhasm: (uint128) mulrdx mulrax = mulrax * mulx0 # asm 1: mul t90=int64#9 # asm 2: mov t90=%r11 mov %rax,%r11 # qhasm: t91 = mulrdx # asm 1: mov t91=int64#10 # asm 2: mov t91=%r12 mov %rdx,%r12 # qhasm: mulrax = t21_stack # asm 1: movq mulrax=int64#7 # asm 2: movq mulrax=%rax movq 96(%rsp),%rax # qhasm: (uint128) mulrdx mulrax = mulrax * mulx0 # asm 1: mul t92=int64#11 # asm 2: mov $0,>t92=%r13 mov $0,%r13 # qhasm: t92 += mulrdx + carry # asm 1: adc mulrax=int64#7 # asm 2: movq mulrax=%rax movq 104(%rsp),%rax # qhasm: (uint128) mulrdx mulrax = mulrax * mulx0 # asm 1: mul t93=int64#12 # asm 2: mov $0,>t93=%r14 mov $0,%r14 # qhasm: t93 += mulrdx + carry # asm 1: adc mulrax=int64#7 # asm 2: movq mulrax=%rax movq 112(%rsp),%rax # qhasm: (uint128) mulrdx mulrax = mulrax * mulx0 # asm 1: mul mulx1=int64#8 # asm 2: movq mulx1=%r10 movq 224(%rsp),%r10 # qhasm: mulrax = t20_stack # asm 1: movq mulrax=int64#7 # asm 2: movq mulrax=%rax movq 88(%rsp),%rax # qhasm: (uint128) mulrdx mulrax = mulrax * mulx1 # asm 1: mul mulc=int64#13 # asm 2: mov $0,>mulc=%r15 mov $0,%r15 # qhasm: mulc += mulrdx + carry # asm 1: adc mulrax=int64#7 # asm 2: movq mulrax=%rax movq 96(%rsp),%rax # qhasm: (uint128) mulrdx mulrax = mulrax * mulx1 # asm 1: mul mulc=int64#13 # asm 2: mov $0,>mulc=%r15 mov $0,%r15 # qhasm: mulc += mulrdx + carry # asm 1: adc mulrax=int64#7 # asm 2: movq mulrax=%rax movq 104(%rsp),%rax # qhasm: (uint128) mulrdx mulrax = mulrax * mulx1 # asm 1: mul mulc=int64#13 # asm 2: mov $0,>mulc=%r15 mov $0,%r15 # qhasm: mulc += mulrdx + carry # asm 1: adc mulrax=int64#7 # asm 2: movq mulrax=%rax movq 112(%rsp),%rax # qhasm: (uint128) mulrdx mulrax = mulrax * mulx1 # asm 1: mul mulx2=int64#8 # asm 2: movq mulx2=%r10 movq 232(%rsp),%r10 # qhasm: mulrax = t20_stack # asm 1: movq mulrax=int64#7 # asm 2: movq mulrax=%rax movq 88(%rsp),%rax # qhasm: (uint128) mulrdx mulrax = mulrax * mulx2 # asm 1: mul mulc=int64#13 # asm 2: mov $0,>mulc=%r15 mov $0,%r15 # qhasm: mulc += mulrdx + carry # asm 1: adc mulrax=int64#7 # asm 2: movq mulrax=%rax movq 96(%rsp),%rax # qhasm: (uint128) mulrdx mulrax = mulrax * mulx2 # asm 1: mul mulc=int64#13 # asm 2: mov $0,>mulc=%r15 mov $0,%r15 # qhasm: mulc += mulrdx + carry # asm 1: adc mulrax=int64#7 # asm 2: movq mulrax=%rax movq 104(%rsp),%rax # qhasm: (uint128) mulrdx mulrax = mulrax * mulx2 # asm 1: mul mulc=int64#13 # asm 2: mov $0,>mulc=%r15 mov $0,%r15 # qhasm: mulc += mulrdx + carry # asm 1: adc mulrax=int64#7 # asm 2: movq mulrax=%rax movq 112(%rsp),%rax # qhasm: (uint128) mulrdx mulrax = mulrax * mulx2 # asm 1: mul mulx3=int64#8 # asm 2: movq mulx3=%r10 movq 240(%rsp),%r10 # qhasm: mulrax = t20_stack # asm 1: movq mulrax=int64#7 # asm 2: movq mulrax=%rax movq 88(%rsp),%rax # qhasm: (uint128) mulrdx mulrax = mulrax * mulx3 # asm 1: mul mulc=int64#13 # asm 2: mov $0,>mulc=%r15 mov $0,%r15 # qhasm: mulc += mulrdx + carry # asm 1: adc mulrax=int64#7 # asm 2: movq mulrax=%rax movq 96(%rsp),%rax # qhasm: (uint128) mulrdx mulrax = mulrax * mulx3 # asm 1: mul mulc=int64#13 # asm 2: mov $0,>mulc=%r15 mov $0,%r15 # qhasm: mulc += mulrdx + carry # asm 1: adc mulrax=int64#7 # asm 2: movq mulrax=%rax movq 104(%rsp),%rax # qhasm: (uint128) mulrdx mulrax = mulrax * mulx3 # asm 1: mul mulc=int64#13 # asm 2: mov $0,>mulc=%r15 mov $0,%r15 # qhasm: mulc += mulrdx + carry # asm 1: adc mulrax=int64#7 # asm 2: movq mulrax=%rax movq 112(%rsp),%rax # qhasm: (uint128) mulrdx mulrax = mulrax * mulx3 # asm 1: mul mulrax=int64#7 # asm 2: mov mulrax=%rax mov %rsi,%rax # qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&CRYPTO_SHARED_NAMESPACE(38) mulq CRYPTO_SHARED_NAMESPACE(38)(%rip) # qhasm: mulr4 = mulrax # asm 1: mov mulr4=int64#2 # asm 2: mov mulr4=%rsi mov %rax,%rsi # qhasm: mulrax = mulr5 # asm 1: mov mulrax=int64#7 # asm 2: mov mulrax=%rax mov %rcx,%rax # qhasm: mulr5 = mulrdx # asm 1: mov mulr5=int64#4 # asm 2: mov mulr5=%rcx mov %rdx,%rcx # qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&CRYPTO_SHARED_NAMESPACE(38) mulq CRYPTO_SHARED_NAMESPACE(38)(%rip) # qhasm: carry? mulr5 += mulrax # asm 1: add mulrax=int64#7 # asm 2: mov mulrax=%rax mov %r8,%rax # qhasm: mulr6 = 0 # asm 1: mov $0,>mulr6=int64#5 # asm 2: mov $0,>mulr6=%r8 mov $0,%r8 # qhasm: mulr6 += mulrdx + carry # asm 1: adc mulrax=int64#7 # asm 2: mov mulrax=%rax mov %r9,%rax # qhasm: mulr7 = 0 # asm 1: mov $0,>mulr7=int64#6 # asm 2: mov $0,>mulr7=%r9 mov $0,%r9 # qhasm: mulr7 += mulrdx + carry # asm 1: adc mulr8=int64#7 # asm 2: mov $0,>mulr8=%rax mov $0,%rax # qhasm: mulr8 += mulrdx + carry # asm 1: adc mulzero=int64#2 # asm 2: mov $0,>mulzero=%rsi mov $0,%rsi # qhasm: mulr8 += mulzero + carry # asm 1: adc mulr8=int64#3 # asm 2: imulq $38,mulr8=%rdx imulq $38,%rax,%rdx # qhasm: carry? t90 += mulr8 # asm 1: add mulzero=int64#2 # asm 2: imulq $38,mulzero=%rsi imulq $38,%rsi,%rsi # qhasm: t90 += mulzero # asm 1: add t90_stack=stack64#12 # asm 2: movq t90_stack=88(%rsp) movq %r11,88(%rsp) # qhasm: t91_stack = t91 # asm 1: movq t91_stack=stack64#13 # asm 2: movq t91_stack=96(%rsp) movq %r12,96(%rsp) # qhasm: t92_stack = t92 # asm 1: movq t92_stack=stack64#14 # asm 2: movq t92_stack=104(%rsp) movq %r13,104(%rsp) # qhasm: t93_stack = t93 # asm 1: movq t93_stack=stack64#15 # asm 2: movq t93_stack=112(%rsp) movq %r14,112(%rsp) # qhasm: mulr4 = 0 # asm 1: mov $0,>mulr4=int64#2 # asm 2: mov $0,>mulr4=%rsi mov $0,%rsi # qhasm: mulr5 = 0 # asm 1: mov $0,>mulr5=int64#4 # asm 2: mov $0,>mulr5=%rcx mov $0,%rcx # qhasm: mulr6 = 0 # asm 1: mov $0,>mulr6=int64#5 # asm 2: mov $0,>mulr6=%r8 mov $0,%r8 # qhasm: mulr7 = 0 # asm 1: mov $0,>mulr7=int64#6 # asm 2: mov $0,>mulr7=%r9 mov $0,%r9 # qhasm: mulx0 = t40_stack # asm 1: movq mulx0=int64#8 # asm 2: movq mulx0=%r10 movq 248(%rsp),%r10 # qhasm: mulrax = t10_stack # asm 1: movq mulrax=int64#7 # asm 2: movq mulrax=%rax movq 56(%rsp),%rax # qhasm: (uint128) mulrdx mulrax = mulrax * mulx0 # asm 1: mul t80=int64#9 # asm 2: mov t80=%r11 mov %rax,%r11 # qhasm: t81 = mulrdx # asm 1: mov t81=int64#10 # asm 2: mov t81=%r12 mov %rdx,%r12 # qhasm: mulrax = t11_stack # asm 1: movq mulrax=int64#7 # asm 2: movq mulrax=%rax movq 64(%rsp),%rax # qhasm: (uint128) mulrdx mulrax = mulrax * mulx0 # asm 1: mul t82=int64#11 # asm 2: mov $0,>t82=%r13 mov $0,%r13 # qhasm: t82 += mulrdx + carry # asm 1: adc mulrax=int64#7 # asm 2: movq mulrax=%rax movq 72(%rsp),%rax # qhasm: (uint128) mulrdx mulrax = mulrax * mulx0 # asm 1: mul t83=int64#12 # asm 2: mov $0,>t83=%r14 mov $0,%r14 # qhasm: t83 += mulrdx + carry # asm 1: adc mulrax=int64#7 # asm 2: movq mulrax=%rax movq 80(%rsp),%rax # qhasm: (uint128) mulrdx mulrax = mulrax * mulx0 # asm 1: mul mulx1=int64#8 # asm 2: movq mulx1=%r10 movq 256(%rsp),%r10 # qhasm: mulrax = t10_stack # asm 1: movq mulrax=int64#7 # asm 2: movq mulrax=%rax movq 56(%rsp),%rax # qhasm: (uint128) mulrdx mulrax = mulrax * mulx1 # asm 1: mul mulc=int64#13 # asm 2: mov $0,>mulc=%r15 mov $0,%r15 # qhasm: mulc += mulrdx + carry # asm 1: adc mulrax=int64#7 # asm 2: movq mulrax=%rax movq 64(%rsp),%rax # qhasm: (uint128) mulrdx mulrax = mulrax * mulx1 # asm 1: mul mulc=int64#13 # asm 2: mov $0,>mulc=%r15 mov $0,%r15 # qhasm: mulc += mulrdx + carry # asm 1: adc mulrax=int64#7 # asm 2: movq mulrax=%rax movq 72(%rsp),%rax # qhasm: (uint128) mulrdx mulrax = mulrax * mulx1 # asm 1: mul mulc=int64#13 # asm 2: mov $0,>mulc=%r15 mov $0,%r15 # qhasm: mulc += mulrdx + carry # asm 1: adc mulrax=int64#7 # asm 2: movq mulrax=%rax movq 80(%rsp),%rax # qhasm: (uint128) mulrdx mulrax = mulrax * mulx1 # asm 1: mul mulx2=int64#8 # asm 2: movq mulx2=%r10 movq 264(%rsp),%r10 # qhasm: mulrax = t10_stack # asm 1: movq mulrax=int64#7 # asm 2: movq mulrax=%rax movq 56(%rsp),%rax # qhasm: (uint128) mulrdx mulrax = mulrax * mulx2 # asm 1: mul mulc=int64#13 # asm 2: mov $0,>mulc=%r15 mov $0,%r15 # qhasm: mulc += mulrdx + carry # asm 1: adc mulrax=int64#7 # asm 2: movq mulrax=%rax movq 64(%rsp),%rax # qhasm: (uint128) mulrdx mulrax = mulrax * mulx2 # asm 1: mul mulc=int64#13 # asm 2: mov $0,>mulc=%r15 mov $0,%r15 # qhasm: mulc += mulrdx + carry # asm 1: adc mulrax=int64#7 # asm 2: movq mulrax=%rax movq 72(%rsp),%rax # qhasm: (uint128) mulrdx mulrax = mulrax * mulx2 # asm 1: mul mulc=int64#13 # asm 2: mov $0,>mulc=%r15 mov $0,%r15 # qhasm: mulc += mulrdx + carry # asm 1: adc mulrax=int64#7 # asm 2: movq mulrax=%rax movq 80(%rsp),%rax # qhasm: (uint128) mulrdx mulrax = mulrax * mulx2 # asm 1: mul mulx3=int64#8 # asm 2: movq mulx3=%r10 movq 272(%rsp),%r10 # qhasm: mulrax = t10_stack # asm 1: movq mulrax=int64#7 # asm 2: movq mulrax=%rax movq 56(%rsp),%rax # qhasm: (uint128) mulrdx mulrax = mulrax * mulx3 # asm 1: mul mulc=int64#13 # asm 2: mov $0,>mulc=%r15 mov $0,%r15 # qhasm: mulc += mulrdx + carry # asm 1: adc mulrax=int64#7 # asm 2: movq mulrax=%rax movq 64(%rsp),%rax # qhasm: (uint128) mulrdx mulrax = mulrax * mulx3 # asm 1: mul mulc=int64#13 # asm 2: mov $0,>mulc=%r15 mov $0,%r15 # qhasm: mulc += mulrdx + carry # asm 1: adc mulrax=int64#7 # asm 2: movq mulrax=%rax movq 72(%rsp),%rax # qhasm: (uint128) mulrdx mulrax = mulrax * mulx3 # asm 1: mul mulc=int64#13 # asm 2: mov $0,>mulc=%r15 mov $0,%r15 # qhasm: mulc += mulrdx + carry # asm 1: adc mulrax=int64#7 # asm 2: movq mulrax=%rax movq 80(%rsp),%rax # qhasm: (uint128) mulrdx mulrax = mulrax * mulx3 # asm 1: mul mulrax=int64#7 # asm 2: mov mulrax=%rax mov %rsi,%rax # qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&CRYPTO_SHARED_NAMESPACE(38) mulq CRYPTO_SHARED_NAMESPACE(38)(%rip) # qhasm: mulr4 = mulrax # asm 1: mov mulr4=int64#2 # asm 2: mov mulr4=%rsi mov %rax,%rsi # qhasm: mulrax = mulr5 # asm 1: mov mulrax=int64#7 # asm 2: mov mulrax=%rax mov %rcx,%rax # qhasm: mulr5 = mulrdx # asm 1: mov mulr5=int64#4 # asm 2: mov mulr5=%rcx mov %rdx,%rcx # qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&CRYPTO_SHARED_NAMESPACE(38) mulq CRYPTO_SHARED_NAMESPACE(38)(%rip) # qhasm: carry? mulr5 += mulrax # asm 1: add mulrax=int64#7 # asm 2: mov mulrax=%rax mov %r8,%rax # qhasm: mulr6 = 0 # asm 1: mov $0,>mulr6=int64#5 # asm 2: mov $0,>mulr6=%r8 mov $0,%r8 # qhasm: mulr6 += mulrdx + carry # asm 1: adc mulrax=int64#7 # asm 2: mov mulrax=%rax mov %r9,%rax # qhasm: mulr7 = 0 # asm 1: mov $0,>mulr7=int64#6 # asm 2: mov $0,>mulr7=%r9 mov $0,%r9 # qhasm: mulr7 += mulrdx + carry # asm 1: adc mulr8=int64#7 # asm 2: mov $0,>mulr8=%rax mov $0,%rax # qhasm: mulr8 += mulrdx + carry # asm 1: adc mulzero=int64#2 # asm 2: mov $0,>mulzero=%rsi mov $0,%rsi # qhasm: mulr8 += mulzero + carry # asm 1: adc mulr8=int64#3 # asm 2: imulq $38,mulr8=%rdx imulq $38,%rax,%rdx # qhasm: carry? t80 += mulr8 # asm 1: add mulzero=int64#2 # asm 2: imulq $38,mulzero=%rsi imulq $38,%rsi,%rsi # qhasm: t80 += mulzero # asm 1: add zq0=int64#2 # asm 2: mov zq0=%rsi mov %r11,%rsi # qhasm: zq1 = t81 # asm 1: mov zq1=int64#3 # asm 2: mov zq1=%rdx mov %r12,%rdx # qhasm: zq2 = t82 # asm 1: mov zq2=int64#4 # asm 2: mov zq2=%rcx mov %r13,%rcx # qhasm: zq3 = t83 # asm 1: mov zq3=int64#5 # asm 2: mov zq3=%r8 mov %r14,%r8 # qhasm: carry? zq0 -= t90_stack # asm 1: subq subt0=int64#6 # asm 2: mov $0,>subt0=%r9 mov $0,%r9 # qhasm: subt1 = 38 # asm 1: mov $38,>subt1=int64#7 # asm 2: mov $38,>subt1=%rax mov $38,%rax # qhasm: subt1 = subt0 if !carry # asm 1: cmovae addt0=int64#6 # asm 2: mov $0,>addt0=%r9 mov $0,%r9 # qhasm: addt1 = 38 # asm 1: mov $38,>addt1=int64#7 # asm 2: mov $38,>addt1=%rax mov $38,%rax # qhasm: addt1 = addt0 if !carry # asm 1: cmovae squarer7=int64#2 # asm 2: mov $0,>squarer7=%rsi mov $0,%rsi # qhasm: squarerax = *(uint64 *)(workp + 104) # asm 1: movq 104(squarerax=int64#7 # asm 2: movq 104(squarerax=%rax movq 104(%rdi),%rax # qhasm: (uint128) squarerdx squarerax = squarerax * *(uint64 *)(workp + 96) # asm 1: mulq 96(xq1=int64#4 # asm 2: mov xq1=%rcx mov %rax,%rcx # qhasm: xq2 = squarerdx # asm 1: mov xq2=int64#5 # asm 2: mov xq2=%r8 mov %rdx,%r8 # qhasm: squarerax = *(uint64 *)(workp + 112) # asm 1: movq 112(squarerax=int64#7 # asm 2: movq 112(squarerax=%rax movq 112(%rdi),%rax # qhasm: (uint128) squarerdx squarerax = squarerax * *(uint64 *)(workp + 104) # asm 1: mulq 104(xq3=int64#6 # asm 2: mov xq3=%r9 mov %rax,%r9 # qhasm: squarer4 = squarerdx # asm 1: mov squarer4=int64#8 # asm 2: mov squarer4=%r10 mov %rdx,%r10 # qhasm: squarerax = *(uint64 *)(workp + 120) # asm 1: movq 120(squarerax=int64#7 # asm 2: movq 120(squarerax=%rax movq 120(%rdi),%rax # qhasm: (uint128) squarerdx squarerax = squarerax * *(uint64 *)(workp + 112) # asm 1: mulq 112(squarer5=int64#9 # asm 2: mov squarer5=%r11 mov %rax,%r11 # qhasm: squarer6 = squarerdx # asm 1: mov squarer6=int64#10 # asm 2: mov squarer6=%r12 mov %rdx,%r12 # qhasm: squarerax = *(uint64 *)(workp + 112) # asm 1: movq 112(squarerax=int64#7 # asm 2: movq 112(squarerax=%rax movq 112(%rdi),%rax # qhasm: (uint128) squarerdx squarerax = squarerax * *(uint64 *)(workp + 96) # asm 1: mulq 96(squarerax=int64#7 # asm 2: movq 120(squarerax=%rax movq 120(%rdi),%rax # qhasm: (uint128) squarerdx squarerax = squarerax * *(uint64 *)(workp + 104) # asm 1: mulq 104(squarerax=int64#7 # asm 2: movq 120(squarerax=%rax movq 120(%rdi),%rax # qhasm: (uint128) squarerdx squarerax = squarerax * *(uint64 *)(workp + 96) # asm 1: mulq 96(squarerax=int64#7 # asm 2: movq 96(squarerax=%rax movq 96(%rdi),%rax # qhasm: (uint128) squarerdx squarerax = squarerax * *(uint64 *)(workp + 96) # asm 1: mulq 96(xq0=int64#11 # asm 2: mov xq0=%r13 mov %rax,%r13 # qhasm: squaret1 = squarerdx # asm 1: mov squaret1=int64#12 # asm 2: mov squaret1=%r14 mov %rdx,%r14 # qhasm: squarerax = *(uint64 *)(workp + 104) # asm 1: movq 104(squarerax=int64#7 # asm 2: movq 104(squarerax=%rax movq 104(%rdi),%rax # qhasm: (uint128) squarerdx squarerax = squarerax * *(uint64 *)(workp + 104) # asm 1: mulq 104(squaret2=int64#13 # asm 2: mov squaret2=%r15 mov %rax,%r15 # qhasm: squaret3 = squarerdx # asm 1: mov squaret3=int64#14 # asm 2: mov squaret3=%rbx mov %rdx,%rbx # qhasm: squarerax = *(uint64 *)(workp + 112) # asm 1: movq 112(squarerax=int64#7 # asm 2: movq 112(squarerax=%rax movq 112(%rdi),%rax # qhasm: (uint128) squarerdx squarerax = squarerax * *(uint64 *)(workp + 112) # asm 1: mulq 112(squarerax=int64#7 # asm 2: movq 120(squarerax=%rax movq 120(%rdi),%rax # qhasm: (uint128) squarerdx squarerax = squarerax * *(uint64 *)(workp + 120) # asm 1: mulq 120(squarerax=int64#7 # asm 2: mov squarerax=%rax mov %r10,%rax # qhasm: (uint128) squarerdx squarerax = squarerax * *(uint64 *)&CRYPTO_SHARED_NAMESPACE(38) mulq CRYPTO_SHARED_NAMESPACE(38)(%rip) # qhasm: squarer4 = squarerax # asm 1: mov squarer4=int64#8 # asm 2: mov squarer4=%r10 mov %rax,%r10 # qhasm: squarerax = squarer5 # asm 1: mov squarerax=int64#7 # asm 2: mov squarerax=%rax mov %r11,%rax # qhasm: squarer5 = squarerdx # asm 1: mov squarer5=int64#9 # asm 2: mov squarer5=%r11 mov %rdx,%r11 # qhasm: (uint128) squarerdx squarerax = squarerax * *(uint64 *)&CRYPTO_SHARED_NAMESPACE(38) mulq CRYPTO_SHARED_NAMESPACE(38)(%rip) # qhasm: carry? squarer5 += squarerax # asm 1: add squarerax=int64#7 # asm 2: mov squarerax=%rax mov %r12,%rax # qhasm: squarer6 = 0 # asm 1: mov $0,>squarer6=int64#10 # asm 2: mov $0,>squarer6=%r12 mov $0,%r12 # qhasm: squarer6 += squarerdx + carry # asm 1: adc squarerax=int64#7 # asm 2: mov squarerax=%rax mov %rsi,%rax # qhasm: squarer7 = 0 # asm 1: mov $0,>squarer7=int64#2 # asm 2: mov $0,>squarer7=%rsi mov $0,%rsi # qhasm: squarer7 += squarerdx + carry # asm 1: adc squarer8=int64#7 # asm 2: mov $0,>squarer8=%rax mov $0,%rax # qhasm: squarer8 += squarerdx + carry # asm 1: adc squarezero=int64#2 # asm 2: mov $0,>squarezero=%rsi mov $0,%rsi # qhasm: squarer8 += squarezero + carry # asm 1: adc squarer8=int64#3 # asm 2: imulq $38,squarer8=%rdx imulq $38,%rax,%rdx # qhasm: carry? xq0 += squarer8 # asm 1: add squarezero=int64#2 # asm 2: imulq $38,squarezero=%rsi imulq $38,%rsi,%rsi # qhasm: xq0 += squarezero # asm 1: add squarer7=int64#2 # asm 2: mov $0,>squarer7=%rsi mov $0,%rsi # qhasm: squarerax = *(uint64 *)(workp + 136) # asm 1: movq 136(squarerax=int64#7 # asm 2: movq 136(squarerax=%rax movq 136(%rdi),%rax # qhasm: (uint128) squarerdx squarerax = squarerax * *(uint64 *)(workp + 128) # asm 1: mulq 128(zq1=int64#4 # asm 2: mov zq1=%rcx mov %rax,%rcx # qhasm: zq2 = squarerdx # asm 1: mov zq2=int64#5 # asm 2: mov zq2=%r8 mov %rdx,%r8 # qhasm: squarerax = *(uint64 *)(workp + 144) # asm 1: movq 144(squarerax=int64#7 # asm 2: movq 144(squarerax=%rax movq 144(%rdi),%rax # qhasm: (uint128) squarerdx squarerax = squarerax * *(uint64 *)(workp + 136) # asm 1: mulq 136(zq3=int64#6 # asm 2: mov zq3=%r9 mov %rax,%r9 # qhasm: squarer4 = squarerdx # asm 1: mov squarer4=int64#8 # asm 2: mov squarer4=%r10 mov %rdx,%r10 # qhasm: squarerax = *(uint64 *)(workp + 152) # asm 1: movq 152(squarerax=int64#7 # asm 2: movq 152(squarerax=%rax movq 152(%rdi),%rax # qhasm: (uint128) squarerdx squarerax = squarerax * *(uint64 *)(workp + 144) # asm 1: mulq 144(squarer5=int64#9 # asm 2: mov squarer5=%r11 mov %rax,%r11 # qhasm: squarer6 = squarerdx # asm 1: mov squarer6=int64#10 # asm 2: mov squarer6=%r12 mov %rdx,%r12 # qhasm: squarerax = *(uint64 *)(workp + 144) # asm 1: movq 144(squarerax=int64#7 # asm 2: movq 144(squarerax=%rax movq 144(%rdi),%rax # qhasm: (uint128) squarerdx squarerax = squarerax * *(uint64 *)(workp + 128) # asm 1: mulq 128(squarerax=int64#7 # asm 2: movq 152(squarerax=%rax movq 152(%rdi),%rax # qhasm: (uint128) squarerdx squarerax = squarerax * *(uint64 *)(workp + 136) # asm 1: mulq 136(squarerax=int64#7 # asm 2: movq 152(squarerax=%rax movq 152(%rdi),%rax # qhasm: (uint128) squarerdx squarerax = squarerax * *(uint64 *)(workp + 128) # asm 1: mulq 128(squarerax=int64#7 # asm 2: movq 128(squarerax=%rax movq 128(%rdi),%rax # qhasm: (uint128) squarerdx squarerax = squarerax * *(uint64 *)(workp + 128) # asm 1: mulq 128(zq0=int64#11 # asm 2: mov zq0=%r13 mov %rax,%r13 # qhasm: squaret1 = squarerdx # asm 1: mov squaret1=int64#12 # asm 2: mov squaret1=%r14 mov %rdx,%r14 # qhasm: squarerax = *(uint64 *)(workp + 136) # asm 1: movq 136(squarerax=int64#7 # asm 2: movq 136(squarerax=%rax movq 136(%rdi),%rax # qhasm: (uint128) squarerdx squarerax = squarerax * *(uint64 *)(workp + 136) # asm 1: mulq 136(squaret2=int64#13 # asm 2: mov squaret2=%r15 mov %rax,%r15 # qhasm: squaret3 = squarerdx # asm 1: mov squaret3=int64#14 # asm 2: mov squaret3=%rbx mov %rdx,%rbx # qhasm: squarerax = *(uint64 *)(workp + 144) # asm 1: movq 144(squarerax=int64#7 # asm 2: movq 144(squarerax=%rax movq 144(%rdi),%rax # qhasm: (uint128) squarerdx squarerax = squarerax * *(uint64 *)(workp + 144) # asm 1: mulq 144(squarerax=int64#7 # asm 2: movq 152(squarerax=%rax movq 152(%rdi),%rax # qhasm: (uint128) squarerdx squarerax = squarerax * *(uint64 *)(workp + 152) # asm 1: mulq 152(squarerax=int64#7 # asm 2: mov squarerax=%rax mov %r10,%rax # qhasm: (uint128) squarerdx squarerax = squarerax * *(uint64 *)&CRYPTO_SHARED_NAMESPACE(38) mulq CRYPTO_SHARED_NAMESPACE(38)(%rip) # qhasm: squarer4 = squarerax # asm 1: mov squarer4=int64#8 # asm 2: mov squarer4=%r10 mov %rax,%r10 # qhasm: squarerax = squarer5 # asm 1: mov squarerax=int64#7 # asm 2: mov squarerax=%rax mov %r11,%rax # qhasm: squarer5 = squarerdx # asm 1: mov squarer5=int64#9 # asm 2: mov squarer5=%r11 mov %rdx,%r11 # qhasm: (uint128) squarerdx squarerax = squarerax * *(uint64 *)&CRYPTO_SHARED_NAMESPACE(38) mulq CRYPTO_SHARED_NAMESPACE(38)(%rip) # qhasm: carry? squarer5 += squarerax # asm 1: add squarerax=int64#7 # asm 2: mov squarerax=%rax mov %r12,%rax # qhasm: squarer6 = 0 # asm 1: mov $0,>squarer6=int64#10 # asm 2: mov $0,>squarer6=%r12 mov $0,%r12 # qhasm: squarer6 += squarerdx + carry # asm 1: adc squarerax=int64#7 # asm 2: mov squarerax=%rax mov %rsi,%rax # qhasm: squarer7 = 0 # asm 1: mov $0,>squarer7=int64#2 # asm 2: mov $0,>squarer7=%rsi mov $0,%rsi # qhasm: squarer7 += squarerdx + carry # asm 1: adc squarer8=int64#7 # asm 2: mov $0,>squarer8=%rax mov $0,%rax # qhasm: squarer8 += squarerdx + carry # asm 1: adc squarezero=int64#2 # asm 2: mov $0,>squarezero=%rsi mov $0,%rsi # qhasm: squarer8 += squarezero + carry # asm 1: adc squarer8=int64#3 # asm 2: imulq $38,squarer8=%rdx imulq $38,%rax,%rdx # qhasm: carry? zq0 += squarer8 # asm 1: add squarezero=int64#2 # asm 2: imulq $38,squarezero=%rsi imulq $38,%rsi,%rsi # qhasm: zq0 += squarezero # asm 1: add mulr4=int64#2 # asm 2: mov $0,>mulr4=%rsi mov $0,%rsi # qhasm: mulr5 = 0 # asm 1: mov $0,>mulr5=int64#4 # asm 2: mov $0,>mulr5=%rcx mov $0,%rcx # qhasm: mulr6 = 0 # asm 1: mov $0,>mulr6=int64#5 # asm 2: mov $0,>mulr6=%r8 mov $0,%r8 # qhasm: mulr7 = 0 # asm 1: mov $0,>mulr7=int64#6 # asm 2: mov $0,>mulr7=%r9 mov $0,%r9 # qhasm: mulx0 = *(uint64 *)(workp + 128) # asm 1: movq 128(mulx0=int64#8 # asm 2: movq 128(mulx0=%r10 movq 128(%rdi),%r10 # qhasm: mulrax = *(uint64 *)(workp + 0) # asm 1: movq 0(mulrax=int64#7 # asm 2: movq 0(mulrax=%rax movq 0(%rdi),%rax # qhasm: (uint128) mulrdx mulrax = mulrax * mulx0 # asm 1: mul zq0=int64#9 # asm 2: mov zq0=%r11 mov %rax,%r11 # qhasm: zq1 = mulrdx # asm 1: mov zq1=int64#10 # asm 2: mov zq1=%r12 mov %rdx,%r12 # qhasm: mulrax = *(uint64 *)(workp + 8) # asm 1: movq 8(mulrax=int64#7 # asm 2: movq 8(mulrax=%rax movq 8(%rdi),%rax # qhasm: (uint128) mulrdx mulrax = mulrax * mulx0 # asm 1: mul zq2=int64#11 # asm 2: mov $0,>zq2=%r13 mov $0,%r13 # qhasm: zq2 += mulrdx + carry # asm 1: adc mulrax=int64#7 # asm 2: movq 16(mulrax=%rax movq 16(%rdi),%rax # qhasm: (uint128) mulrdx mulrax = mulrax * mulx0 # asm 1: mul zq3=int64#12 # asm 2: mov $0,>zq3=%r14 mov $0,%r14 # qhasm: zq3 += mulrdx + carry # asm 1: adc mulrax=int64#7 # asm 2: movq 24(mulrax=%rax movq 24(%rdi),%rax # qhasm: (uint128) mulrdx mulrax = mulrax * mulx0 # asm 1: mul mulx1=int64#8 # asm 2: movq 136(mulx1=%r10 movq 136(%rdi),%r10 # qhasm: mulrax = *(uint64 *)(workp + 0) # asm 1: movq 0(mulrax=int64#7 # asm 2: movq 0(mulrax=%rax movq 0(%rdi),%rax # qhasm: (uint128) mulrdx mulrax = mulrax * mulx1 # asm 1: mul mulc=int64#13 # asm 2: mov $0,>mulc=%r15 mov $0,%r15 # qhasm: mulc += mulrdx + carry # asm 1: adc mulrax=int64#7 # asm 2: movq 8(mulrax=%rax movq 8(%rdi),%rax # qhasm: (uint128) mulrdx mulrax = mulrax * mulx1 # asm 1: mul mulc=int64#13 # asm 2: mov $0,>mulc=%r15 mov $0,%r15 # qhasm: mulc += mulrdx + carry # asm 1: adc mulrax=int64#7 # asm 2: movq 16(mulrax=%rax movq 16(%rdi),%rax # qhasm: (uint128) mulrdx mulrax = mulrax * mulx1 # asm 1: mul mulc=int64#13 # asm 2: mov $0,>mulc=%r15 mov $0,%r15 # qhasm: mulc += mulrdx + carry # asm 1: adc mulrax=int64#7 # asm 2: movq 24(mulrax=%rax movq 24(%rdi),%rax # qhasm: (uint128) mulrdx mulrax = mulrax * mulx1 # asm 1: mul mulx2=int64#8 # asm 2: movq 144(mulx2=%r10 movq 144(%rdi),%r10 # qhasm: mulrax = *(uint64 *)(workp + 0) # asm 1: movq 0(mulrax=int64#7 # asm 2: movq 0(mulrax=%rax movq 0(%rdi),%rax # qhasm: (uint128) mulrdx mulrax = mulrax * mulx2 # asm 1: mul mulc=int64#13 # asm 2: mov $0,>mulc=%r15 mov $0,%r15 # qhasm: mulc += mulrdx + carry # asm 1: adc mulrax=int64#7 # asm 2: movq 8(mulrax=%rax movq 8(%rdi),%rax # qhasm: (uint128) mulrdx mulrax = mulrax * mulx2 # asm 1: mul mulc=int64#13 # asm 2: mov $0,>mulc=%r15 mov $0,%r15 # qhasm: mulc += mulrdx + carry # asm 1: adc mulrax=int64#7 # asm 2: movq 16(mulrax=%rax movq 16(%rdi),%rax # qhasm: (uint128) mulrdx mulrax = mulrax * mulx2 # asm 1: mul mulc=int64#13 # asm 2: mov $0,>mulc=%r15 mov $0,%r15 # qhasm: mulc += mulrdx + carry # asm 1: adc mulrax=int64#7 # asm 2: movq 24(mulrax=%rax movq 24(%rdi),%rax # qhasm: (uint128) mulrdx mulrax = mulrax * mulx2 # asm 1: mul mulx3=int64#8 # asm 2: movq 152(mulx3=%r10 movq 152(%rdi),%r10 # qhasm: mulrax = *(uint64 *)(workp + 0) # asm 1: movq 0(mulrax=int64#7 # asm 2: movq 0(mulrax=%rax movq 0(%rdi),%rax # qhasm: (uint128) mulrdx mulrax = mulrax * mulx3 # asm 1: mul mulc=int64#13 # asm 2: mov $0,>mulc=%r15 mov $0,%r15 # qhasm: mulc += mulrdx + carry # asm 1: adc mulrax=int64#7 # asm 2: movq 8(mulrax=%rax movq 8(%rdi),%rax # qhasm: (uint128) mulrdx mulrax = mulrax * mulx3 # asm 1: mul mulc=int64#13 # asm 2: mov $0,>mulc=%r15 mov $0,%r15 # qhasm: mulc += mulrdx + carry # asm 1: adc mulrax=int64#7 # asm 2: movq 16(mulrax=%rax movq 16(%rdi),%rax # qhasm: (uint128) mulrdx mulrax = mulrax * mulx3 # asm 1: mul mulc=int64#13 # asm 2: mov $0,>mulc=%r15 mov $0,%r15 # qhasm: mulc += mulrdx + carry # asm 1: adc mulrax=int64#7 # asm 2: movq 24(mulrax=%rax movq 24(%rdi),%rax # qhasm: (uint128) mulrdx mulrax = mulrax * mulx3 # asm 1: mul mulrax=int64#7 # asm 2: mov mulrax=%rax mov %rsi,%rax # qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&CRYPTO_SHARED_NAMESPACE(38) mulq CRYPTO_SHARED_NAMESPACE(38)(%rip) # qhasm: mulr4 = mulrax # asm 1: mov mulr4=int64#2 # asm 2: mov mulr4=%rsi mov %rax,%rsi # qhasm: mulrax = mulr5 # asm 1: mov mulrax=int64#7 # asm 2: mov mulrax=%rax mov %rcx,%rax # qhasm: mulr5 = mulrdx # asm 1: mov mulr5=int64#4 # asm 2: mov mulr5=%rcx mov %rdx,%rcx # qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&CRYPTO_SHARED_NAMESPACE(38) mulq CRYPTO_SHARED_NAMESPACE(38)(%rip) # qhasm: carry? mulr5 += mulrax # asm 1: add mulrax=int64#7 # asm 2: mov mulrax=%rax mov %r8,%rax # qhasm: mulr6 = 0 # asm 1: mov $0,>mulr6=int64#5 # asm 2: mov $0,>mulr6=%r8 mov $0,%r8 # qhasm: mulr6 += mulrdx + carry # asm 1: adc mulrax=int64#7 # asm 2: mov mulrax=%rax mov %r9,%rax # qhasm: mulr7 = 0 # asm 1: mov $0,>mulr7=int64#6 # asm 2: mov $0,>mulr7=%r9 mov $0,%r9 # qhasm: mulr7 += mulrdx + carry # asm 1: adc mulr8=int64#7 # asm 2: mov $0,>mulr8=%rax mov $0,%rax # qhasm: mulr8 += mulrdx + carry # asm 1: adc mulzero=int64#2 # asm 2: mov $0,>mulzero=%rsi mov $0,%rsi # qhasm: mulr8 += mulzero + carry # asm 1: adc mulr8=int64#3 # asm 2: imulq $38,mulr8=%rdx imulq $38,%rax,%rdx # qhasm: carry? zq0 += mulr8 # asm 1: add mulzero=int64#2 # asm 2: imulq $38,mulzero=%rsi imulq $38,%rsi,%rsi # qhasm: zq0 += mulzero # asm 1: add mulr4=int64#2 # asm 2: mov $0,>mulr4=%rsi mov $0,%rsi # qhasm: mulr5 = 0 # asm 1: mov $0,>mulr5=int64#4 # asm 2: mov $0,>mulr5=%rcx mov $0,%rcx # qhasm: mulr6 = 0 # asm 1: mov $0,>mulr6=int64#5 # asm 2: mov $0,>mulr6=%r8 mov $0,%r8 # qhasm: mulr7 = 0 # asm 1: mov $0,>mulr7=int64#6 # asm 2: mov $0,>mulr7=%r9 mov $0,%r9 # qhasm: mulx0 = t60_stack # asm 1: movq mulx0=int64#8 # asm 2: movq mulx0=%r10 movq 152(%rsp),%r10 # qhasm: mulrax = t70_stack # asm 1: movq mulrax=int64#7 # asm 2: movq mulrax=%rax movq 120(%rsp),%rax # qhasm: (uint128) mulrdx mulrax = mulrax * mulx0 # asm 1: mul xp0=int64#9 # asm 2: mov xp0=%r11 mov %rax,%r11 # qhasm: xp1 = mulrdx # asm 1: mov xp1=int64#10 # asm 2: mov xp1=%r12 mov %rdx,%r12 # qhasm: mulrax = t71_stack # asm 1: movq mulrax=int64#7 # asm 2: movq mulrax=%rax movq 128(%rsp),%rax # qhasm: (uint128) mulrdx mulrax = mulrax * mulx0 # asm 1: mul xp2=int64#11 # asm 2: mov $0,>xp2=%r13 mov $0,%r13 # qhasm: xp2 += mulrdx + carry # asm 1: adc mulrax=int64#7 # asm 2: movq mulrax=%rax movq 136(%rsp),%rax # qhasm: (uint128) mulrdx mulrax = mulrax * mulx0 # asm 1: mul xp3=int64#12 # asm 2: mov $0,>xp3=%r14 mov $0,%r14 # qhasm: xp3 += mulrdx + carry # asm 1: adc mulrax=int64#7 # asm 2: movq mulrax=%rax movq 144(%rsp),%rax # qhasm: (uint128) mulrdx mulrax = mulrax * mulx0 # asm 1: mul mulx1=int64#8 # asm 2: movq mulx1=%r10 movq 160(%rsp),%r10 # qhasm: mulrax = t70_stack # asm 1: movq mulrax=int64#7 # asm 2: movq mulrax=%rax movq 120(%rsp),%rax # qhasm: (uint128) mulrdx mulrax = mulrax * mulx1 # asm 1: mul mulc=int64#13 # asm 2: mov $0,>mulc=%r15 mov $0,%r15 # qhasm: mulc += mulrdx + carry # asm 1: adc mulrax=int64#7 # asm 2: movq mulrax=%rax movq 128(%rsp),%rax # qhasm: (uint128) mulrdx mulrax = mulrax * mulx1 # asm 1: mul mulc=int64#13 # asm 2: mov $0,>mulc=%r15 mov $0,%r15 # qhasm: mulc += mulrdx + carry # asm 1: adc mulrax=int64#7 # asm 2: movq mulrax=%rax movq 136(%rsp),%rax # qhasm: (uint128) mulrdx mulrax = mulrax * mulx1 # asm 1: mul mulc=int64#13 # asm 2: mov $0,>mulc=%r15 mov $0,%r15 # qhasm: mulc += mulrdx + carry # asm 1: adc mulrax=int64#7 # asm 2: movq mulrax=%rax movq 144(%rsp),%rax # qhasm: (uint128) mulrdx mulrax = mulrax * mulx1 # asm 1: mul mulx2=int64#8 # asm 2: movq mulx2=%r10 movq 168(%rsp),%r10 # qhasm: mulrax = t70_stack # asm 1: movq mulrax=int64#7 # asm 2: movq mulrax=%rax movq 120(%rsp),%rax # qhasm: (uint128) mulrdx mulrax = mulrax * mulx2 # asm 1: mul mulc=int64#13 # asm 2: mov $0,>mulc=%r15 mov $0,%r15 # qhasm: mulc += mulrdx + carry # asm 1: adc mulrax=int64#7 # asm 2: movq mulrax=%rax movq 128(%rsp),%rax # qhasm: (uint128) mulrdx mulrax = mulrax * mulx2 # asm 1: mul mulc=int64#13 # asm 2: mov $0,>mulc=%r15 mov $0,%r15 # qhasm: mulc += mulrdx + carry # asm 1: adc mulrax=int64#7 # asm 2: movq mulrax=%rax movq 136(%rsp),%rax # qhasm: (uint128) mulrdx mulrax = mulrax * mulx2 # asm 1: mul mulc=int64#13 # asm 2: mov $0,>mulc=%r15 mov $0,%r15 # qhasm: mulc += mulrdx + carry # asm 1: adc mulrax=int64#7 # asm 2: movq mulrax=%rax movq 144(%rsp),%rax # qhasm: (uint128) mulrdx mulrax = mulrax * mulx2 # asm 1: mul mulx3=int64#8 # asm 2: movq mulx3=%r10 movq 176(%rsp),%r10 # qhasm: mulrax = t70_stack # asm 1: movq mulrax=int64#7 # asm 2: movq mulrax=%rax movq 120(%rsp),%rax # qhasm: (uint128) mulrdx mulrax = mulrax * mulx3 # asm 1: mul mulc=int64#13 # asm 2: mov $0,>mulc=%r15 mov $0,%r15 # qhasm: mulc += mulrdx + carry # asm 1: adc mulrax=int64#7 # asm 2: movq mulrax=%rax movq 128(%rsp),%rax # qhasm: (uint128) mulrdx mulrax = mulrax * mulx3 # asm 1: mul mulc=int64#13 # asm 2: mov $0,>mulc=%r15 mov $0,%r15 # qhasm: mulc += mulrdx + carry # asm 1: adc mulrax=int64#7 # asm 2: movq mulrax=%rax movq 136(%rsp),%rax # qhasm: (uint128) mulrdx mulrax = mulrax * mulx3 # asm 1: mul mulc=int64#13 # asm 2: mov $0,>mulc=%r15 mov $0,%r15 # qhasm: mulc += mulrdx + carry # asm 1: adc mulrax=int64#7 # asm 2: movq mulrax=%rax movq 144(%rsp),%rax # qhasm: (uint128) mulrdx mulrax = mulrax * mulx3 # asm 1: mul mulrax=int64#7 # asm 2: mov mulrax=%rax mov %rsi,%rax # qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&CRYPTO_SHARED_NAMESPACE(38) mulq CRYPTO_SHARED_NAMESPACE(38)(%rip) # qhasm: mulr4 = mulrax # asm 1: mov mulr4=int64#2 # asm 2: mov mulr4=%rsi mov %rax,%rsi # qhasm: mulrax = mulr5 # asm 1: mov mulrax=int64#7 # asm 2: mov mulrax=%rax mov %rcx,%rax # qhasm: mulr5 = mulrdx # asm 1: mov mulr5=int64#4 # asm 2: mov mulr5=%rcx mov %rdx,%rcx # qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&CRYPTO_SHARED_NAMESPACE(38) mulq CRYPTO_SHARED_NAMESPACE(38)(%rip) # qhasm: carry? mulr5 += mulrax # asm 1: add mulrax=int64#7 # asm 2: mov mulrax=%rax mov %r8,%rax # qhasm: mulr6 = 0 # asm 1: mov $0,>mulr6=int64#5 # asm 2: mov $0,>mulr6=%r8 mov $0,%r8 # qhasm: mulr6 += mulrdx + carry # asm 1: adc mulrax=int64#7 # asm 2: mov mulrax=%rax mov %r9,%rax # qhasm: mulr7 = 0 # asm 1: mov $0,>mulr7=int64#6 # asm 2: mov $0,>mulr7=%r9 mov $0,%r9 # qhasm: mulr7 += mulrdx + carry # asm 1: adc mulr8=int64#7 # asm 2: mov $0,>mulr8=%rax mov $0,%rax # qhasm: mulr8 += mulrdx + carry # asm 1: adc mulzero=int64#2 # asm 2: mov $0,>mulzero=%rsi mov $0,%rsi # qhasm: mulr8 += mulzero + carry # asm 1: adc mulr8=int64#3 # asm 2: imulq $38,mulr8=%rdx imulq $38,%rax,%rdx # qhasm: carry? xp0 += mulr8 # asm 1: add mulzero=int64#2 # asm 2: imulq $38,mulzero=%rsi imulq $38,%rsi,%rsi # qhasm: xp0 += mulzero # asm 1: add mul121666rax=int64#7 # asm 2: movq mul121666rax=%rax movq 184(%rsp),%rax # qhasm: (uint128) mul121666rdx mul121666rax = mul121666rax * *(uint64 *)&CRYPTO_SHARED_NAMESPACE(121666) mulq CRYPTO_SHARED_NAMESPACE(121666)(%rip) # qhasm: zp0 = mul121666rax # asm 1: mov zp0=int64#2 # asm 2: mov zp0=%rsi mov %rax,%rsi # qhasm: zp1 = mul121666rdx # asm 1: mov zp1=int64#4 # asm 2: mov zp1=%rcx mov %rdx,%rcx # qhasm: mul121666rax = t52_stack # asm 1: movq mul121666rax=int64#7 # asm 2: movq mul121666rax=%rax movq 200(%rsp),%rax # qhasm: (uint128) mul121666rdx mul121666rax = mul121666rax * *(uint64 *)&CRYPTO_SHARED_NAMESPACE(121666) mulq CRYPTO_SHARED_NAMESPACE(121666)(%rip) # qhasm: zp2 = mul121666rax # asm 1: mov zp2=int64#5 # asm 2: mov zp2=%r8 mov %rax,%r8 # qhasm: zp3 = mul121666rdx # asm 1: mov zp3=int64#6 # asm 2: mov zp3=%r9 mov %rdx,%r9 # qhasm: mul121666rax = t51_stack # asm 1: movq mul121666rax=int64#7 # asm 2: movq mul121666rax=%rax movq 192(%rsp),%rax # qhasm: (uint128) mul121666rdx mul121666rax = mul121666rax * *(uint64 *)&CRYPTO_SHARED_NAMESPACE(121666) mulq CRYPTO_SHARED_NAMESPACE(121666)(%rip) # qhasm: mul121666t1 = mul121666rax # asm 1: mov mul121666t1=int64#8 # asm 2: mov mul121666t1=%r10 mov %rax,%r10 # qhasm: mul121666t2 = mul121666rdx # asm 1: mov mul121666t2=int64#9 # asm 2: mov mul121666t2=%r11 mov %rdx,%r11 # qhasm: mul121666rax = t53_stack # asm 1: movq mul121666rax=int64#7 # asm 2: movq mul121666rax=%rax movq 208(%rsp),%rax # qhasm: (uint128) mul121666rdx mul121666rax = mul121666rax * *(uint64 *)&CRYPTO_SHARED_NAMESPACE(121666) mulq CRYPTO_SHARED_NAMESPACE(121666)(%rip) # qhasm: mul121666t3 = mul121666rax # asm 1: mov mul121666t3=int64#7 # asm 2: mov mul121666t3=%rax mov %rax,%rax # qhasm: mul121666r4 = mul121666rdx # asm 1: mov mul121666r4=int64#3 # asm 2: mov mul121666r4=%rdx mov %rdx,%rdx # qhasm: carry? zp1 += mul121666t1 # asm 1: add mul121666r4=int64#3 # asm 2: imulq $38,mul121666r4=%rdx imulq $38,%rdx,%rdx # qhasm: carry? zp0 += mul121666r4 # asm 1: add mul121666t1=int64#3 # asm 2: mov $38,>mul121666t1=%rdx mov $38,%rdx # qhasm: mul121666t2 = 0 # asm 1: mov $0,>mul121666t2=int64#7 # asm 2: mov $0,>mul121666t2=%rax mov $0,%rax # qhasm: mul121666t1 = mul121666t2 if !carry # asm 1: cmovae addt0=int64#3 # asm 2: mov $0,>addt0=%rdx mov $0,%rdx # qhasm: addt1 = 38 # asm 1: mov $38,>addt1=int64#7 # asm 2: mov $38,>addt1=%rax mov $38,%rax # qhasm: addt1 = addt0 if !carry # asm 1: cmovae mulr4=int64#2 # asm 2: mov $0,>mulr4=%rsi mov $0,%rsi # qhasm: mulr5 = 0 # asm 1: mov $0,>mulr5=int64#4 # asm 2: mov $0,>mulr5=%rcx mov $0,%rcx # qhasm: mulr6 = 0 # asm 1: mov $0,>mulr6=int64#5 # asm 2: mov $0,>mulr6=%r8 mov $0,%r8 # qhasm: mulr7 = 0 # asm 1: mov $0,>mulr7=int64#6 # asm 2: mov $0,>mulr7=%r9 mov $0,%r9 # qhasm: mulx0 = *(uint64 *)(workp + 64) # asm 1: movq 64(mulx0=int64#8 # asm 2: movq 64(mulx0=%r10 movq 64(%rdi),%r10 # qhasm: mulrax = t50_stack # asm 1: movq mulrax=int64#7 # asm 2: movq mulrax=%rax movq 184(%rsp),%rax # qhasm: (uint128) mulrdx mulrax = mulrax * mulx0 # asm 1: mul zp0=int64#9 # asm 2: mov zp0=%r11 mov %rax,%r11 # qhasm: zp1 = mulrdx # asm 1: mov zp1=int64#10 # asm 2: mov zp1=%r12 mov %rdx,%r12 # qhasm: mulrax = t51_stack # asm 1: movq mulrax=int64#7 # asm 2: movq mulrax=%rax movq 192(%rsp),%rax # qhasm: (uint128) mulrdx mulrax = mulrax * mulx0 # asm 1: mul zp2=int64#11 # asm 2: mov $0,>zp2=%r13 mov $0,%r13 # qhasm: zp2 += mulrdx + carry # asm 1: adc mulrax=int64#7 # asm 2: movq mulrax=%rax movq 200(%rsp),%rax # qhasm: (uint128) mulrdx mulrax = mulrax * mulx0 # asm 1: mul zp3=int64#12 # asm 2: mov $0,>zp3=%r14 mov $0,%r14 # qhasm: zp3 += mulrdx + carry # asm 1: adc mulrax=int64#7 # asm 2: movq mulrax=%rax movq 208(%rsp),%rax # qhasm: (uint128) mulrdx mulrax = mulrax * mulx0 # asm 1: mul mulx1=int64#8 # asm 2: movq 72(mulx1=%r10 movq 72(%rdi),%r10 # qhasm: mulrax = t50_stack # asm 1: movq mulrax=int64#7 # asm 2: movq mulrax=%rax movq 184(%rsp),%rax # qhasm: (uint128) mulrdx mulrax = mulrax * mulx1 # asm 1: mul mulc=int64#13 # asm 2: mov $0,>mulc=%r15 mov $0,%r15 # qhasm: mulc += mulrdx + carry # asm 1: adc mulrax=int64#7 # asm 2: movq mulrax=%rax movq 192(%rsp),%rax # qhasm: (uint128) mulrdx mulrax = mulrax * mulx1 # asm 1: mul mulc=int64#13 # asm 2: mov $0,>mulc=%r15 mov $0,%r15 # qhasm: mulc += mulrdx + carry # asm 1: adc mulrax=int64#7 # asm 2: movq mulrax=%rax movq 200(%rsp),%rax # qhasm: (uint128) mulrdx mulrax = mulrax * mulx1 # asm 1: mul mulc=int64#13 # asm 2: mov $0,>mulc=%r15 mov $0,%r15 # qhasm: mulc += mulrdx + carry # asm 1: adc mulrax=int64#7 # asm 2: movq mulrax=%rax movq 208(%rsp),%rax # qhasm: (uint128) mulrdx mulrax = mulrax * mulx1 # asm 1: mul mulx2=int64#8 # asm 2: movq 80(mulx2=%r10 movq 80(%rdi),%r10 # qhasm: mulrax = t50_stack # asm 1: movq mulrax=int64#7 # asm 2: movq mulrax=%rax movq 184(%rsp),%rax # qhasm: (uint128) mulrdx mulrax = mulrax * mulx2 # asm 1: mul mulc=int64#13 # asm 2: mov $0,>mulc=%r15 mov $0,%r15 # qhasm: mulc += mulrdx + carry # asm 1: adc mulrax=int64#7 # asm 2: movq mulrax=%rax movq 192(%rsp),%rax # qhasm: (uint128) mulrdx mulrax = mulrax * mulx2 # asm 1: mul mulc=int64#13 # asm 2: mov $0,>mulc=%r15 mov $0,%r15 # qhasm: mulc += mulrdx + carry # asm 1: adc mulrax=int64#7 # asm 2: movq mulrax=%rax movq 200(%rsp),%rax # qhasm: (uint128) mulrdx mulrax = mulrax * mulx2 # asm 1: mul mulc=int64#13 # asm 2: mov $0,>mulc=%r15 mov $0,%r15 # qhasm: mulc += mulrdx + carry # asm 1: adc mulrax=int64#7 # asm 2: movq mulrax=%rax movq 208(%rsp),%rax # qhasm: (uint128) mulrdx mulrax = mulrax * mulx2 # asm 1: mul mulx3=int64#8 # asm 2: movq 88(mulx3=%r10 movq 88(%rdi),%r10 # qhasm: mulrax = t50_stack # asm 1: movq mulrax=int64#7 # asm 2: movq mulrax=%rax movq 184(%rsp),%rax # qhasm: (uint128) mulrdx mulrax = mulrax * mulx3 # asm 1: mul mulc=int64#13 # asm 2: mov $0,>mulc=%r15 mov $0,%r15 # qhasm: mulc += mulrdx + carry # asm 1: adc mulrax=int64#7 # asm 2: movq mulrax=%rax movq 192(%rsp),%rax # qhasm: (uint128) mulrdx mulrax = mulrax * mulx3 # asm 1: mul mulc=int64#13 # asm 2: mov $0,>mulc=%r15 mov $0,%r15 # qhasm: mulc += mulrdx + carry # asm 1: adc mulrax=int64#7 # asm 2: movq mulrax=%rax movq 200(%rsp),%rax # qhasm: (uint128) mulrdx mulrax = mulrax * mulx3 # asm 1: mul mulc=int64#13 # asm 2: mov $0,>mulc=%r15 mov $0,%r15 # qhasm: mulc += mulrdx + carry # asm 1: adc mulrax=int64#7 # asm 2: movq mulrax=%rax movq 208(%rsp),%rax # qhasm: (uint128) mulrdx mulrax = mulrax * mulx3 # asm 1: mul mulrax=int64#7 # asm 2: mov mulrax=%rax mov %rsi,%rax # qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&CRYPTO_SHARED_NAMESPACE(38) mulq CRYPTO_SHARED_NAMESPACE(38)(%rip) # qhasm: mulr4 = mulrax # asm 1: mov mulr4=int64#2 # asm 2: mov mulr4=%rsi mov %rax,%rsi # qhasm: mulrax = mulr5 # asm 1: mov mulrax=int64#7 # asm 2: mov mulrax=%rax mov %rcx,%rax # qhasm: mulr5 = mulrdx # asm 1: mov mulr5=int64#4 # asm 2: mov mulr5=%rcx mov %rdx,%rcx # qhasm: (uint128) mulrdx mulrax = mulrax * *(uint64 *)&CRYPTO_SHARED_NAMESPACE(38) mulq CRYPTO_SHARED_NAMESPACE(38)(%rip) # qhasm: carry? mulr5 += mulrax # asm 1: add mulrax=int64#7 # asm 2: mov mulrax=%rax mov %r8,%rax # qhasm: mulr6 = 0 # asm 1: mov $0,>mulr6=int64#5 # asm 2: mov $0,>mulr6=%r8 mov $0,%r8 # qhasm: mulr6 += mulrdx + carry # asm 1: adc mulrax=int64#7 # asm 2: mov mulrax=%rax mov %r9,%rax # qhasm: mulr7 = 0 # asm 1: mov $0,>mulr7=int64#6 # asm 2: mov $0,>mulr7=%r9 mov $0,%r9 # qhasm: mulr7 += mulrdx + carry # asm 1: adc mulr8=int64#7 # asm 2: mov $0,>mulr8=%rax mov $0,%rax # qhasm: mulr8 += mulrdx + carry # asm 1: adc mulzero=int64#2 # asm 2: mov $0,>mulzero=%rsi mov $0,%rsi # qhasm: mulr8 += mulzero + carry # asm 1: adc mulr8=int64#3 # asm 2: imulq $38,mulr8=%rdx imulq $38,%rax,%rdx # qhasm: carry? zp0 += mulr8 # asm 1: add mulzero=int64#2 # asm 2: imulq $38,mulzero=%rsi imulq $38,%rsi,%rsi # qhasm: zp0 += mulzero # asm 1: add caller1=int64#9 # asm 2: movq caller1=%r11 movq 0(%rsp),%r11 # qhasm: caller2 = caller2_stack # asm 1: movq caller2=int64#10 # asm 2: movq caller2=%r12 movq 8(%rsp),%r12 # qhasm: caller3 = caller3_stack # asm 1: movq caller3=int64#11 # asm 2: movq caller3=%r13 movq 16(%rsp),%r13 # qhasm: caller4 = caller4_stack # asm 1: movq caller4=int64#12 # asm 2: movq caller4=%r14 movq 24(%rsp),%r14 # qhasm: caller5 = caller5_stack # asm 1: movq caller5=int64#13 # asm 2: movq caller5=%r15 movq 32(%rsp),%r15 # qhasm: caller6 = caller6_stack # asm 1: movq caller6=int64#14 # asm 2: movq caller6=%rbx movq 40(%rsp),%rbx # qhasm: caller7 = caller7_stack # asm 1: movq caller7=int64#15 # asm 2: movq caller7=%rbp movq 48(%rsp),%rbp # qhasm: leave add %r11,%rsp mov %rdi,%rax mov %rsi,%rdx ret