%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /usr/local/go119/src/crypto/internal/nistec/fiat/
Upload File :
Create Path :
Current File : //usr/local/go119/src/crypto/internal/nistec/fiat/p521_fiat64.go

// Code generated by Fiat Cryptography. DO NOT EDIT.
//
// Autogenerated: word_by_word_montgomery --lang Go --no-wide-int --cmovznz-by-mul --relax-primitive-carry-to-bitwidth 32,64 --internal-static --public-function-case camelCase --public-type-case camelCase --private-function-case camelCase --private-type-case camelCase --doc-text-before-function-name '' --doc-newline-before-package-declaration --doc-prepend-header 'Code generated by Fiat Cryptography. DO NOT EDIT.' --package-name fiat --no-prefix-fiat p521 64 '2^521 - 1' mul square add sub one from_montgomery to_montgomery selectznz to_bytes from_bytes
//
// curve description: p521
//
// machine_wordsize = 64 (from "64")
//
// requested operations: mul, square, add, sub, one, from_montgomery, to_montgomery, selectznz, to_bytes, from_bytes
//
// m = 0x1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff (from "2^521 - 1")
//
//
//
// NOTE: In addition to the bounds specified above each function, all
//
//   functions synthesized for this Montgomery arithmetic require the
//
//   input to be strictly less than the prime modulus (m), and also
//
//   require the input to be in the unique saturated representation.
//
//   All functions also ensure that these two properties are true of
//
//   return values.
//
//
//
// Computed values:
//
//   eval z = z[0] + (z[1] << 64) + (z[2] << 128) + (z[3] << 192) + (z[4] << 256) + (z[5] << 0x140) + (z[6] << 0x180) + (z[7] << 0x1c0) + (z[8] << 2^9)
//
//   bytes_eval z = z[0] + (z[1] << 8) + (z[2] << 16) + (z[3] << 24) + (z[4] << 32) + (z[5] << 40) + (z[6] << 48) + (z[7] << 56) + (z[8] << 64) + (z[9] << 72) + (z[10] << 80) + (z[11] << 88) + (z[12] << 96) + (z[13] << 104) + (z[14] << 112) + (z[15] << 120) + (z[16] << 128) + (z[17] << 136) + (z[18] << 144) + (z[19] << 152) + (z[20] << 160) + (z[21] << 168) + (z[22] << 176) + (z[23] << 184) + (z[24] << 192) + (z[25] << 200) + (z[26] << 208) + (z[27] << 216) + (z[28] << 224) + (z[29] << 232) + (z[30] << 240) + (z[31] << 248) + (z[32] << 256) + (z[33] << 0x108) + (z[34] << 0x110) + (z[35] << 0x118) + (z[36] << 0x120) + (z[37] << 0x128) + (z[38] << 0x130) + (z[39] << 0x138) + (z[40] << 0x140) + (z[41] << 0x148) + (z[42] << 0x150) + (z[43] << 0x158) + (z[44] << 0x160) + (z[45] << 0x168) + (z[46] << 0x170) + (z[47] << 0x178) + (z[48] << 0x180) + (z[49] << 0x188) + (z[50] << 0x190) + (z[51] << 0x198) + (z[52] << 0x1a0) + (z[53] << 0x1a8) + (z[54] << 0x1b0) + (z[55] << 0x1b8) + (z[56] << 0x1c0) + (z[57] << 0x1c8) + (z[58] << 0x1d0) + (z[59] << 0x1d8) + (z[60] << 0x1e0) + (z[61] << 0x1e8) + (z[62] << 0x1f0) + (z[63] << 0x1f8) + (z[64] << 2^9) + (z[65] << 0x208)
//
//   twos_complement_eval z = let x1 := z[0] + (z[1] << 64) + (z[2] << 128) + (z[3] << 192) + (z[4] << 256) + (z[5] << 0x140) + (z[6] << 0x180) + (z[7] << 0x1c0) + (z[8] << 2^9) in
//
//                            if x1 & (2^576-1) < 2^575 then x1 & (2^576-1) else (x1 & (2^576-1)) - 2^576

package fiat

import "math/bits"

type p521Uint1 uint64 // We use uint64 instead of a more narrow type for performance reasons; see https://github.com/mit-plv/fiat-crypto/pull/1006#issuecomment-892625927
type p521Int1 int64   // We use uint64 instead of a more narrow type for performance reasons; see https://github.com/mit-plv/fiat-crypto/pull/1006#issuecomment-892625927

// The type p521MontgomeryDomainFieldElement is a field element in the Montgomery domain.
//
// Bounds: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]]
type p521MontgomeryDomainFieldElement [9]uint64

// The type p521NonMontgomeryDomainFieldElement is a field element NOT in the Montgomery domain.
//
// Bounds: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]]
type p521NonMontgomeryDomainFieldElement [9]uint64

// p521CmovznzU64 is a single-word conditional move.
//
// Postconditions:
//
//	out1 = (if arg1 = 0 then arg2 else arg3)
//
// Input Bounds:
//
//	arg1: [0x0 ~> 0x1]
//	arg2: [0x0 ~> 0xffffffffffffffff]
//	arg3: [0x0 ~> 0xffffffffffffffff]
//
// Output Bounds:
//
//	out1: [0x0 ~> 0xffffffffffffffff]
func p521CmovznzU64(out1 *uint64, arg1 p521Uint1, arg2 uint64, arg3 uint64) {
	x1 := (uint64(arg1) * 0xffffffffffffffff)
	x2 := ((x1 & arg3) | ((^x1) & arg2))
	*out1 = x2
}

// p521Mul multiplies two field elements in the Montgomery domain.
//
// Preconditions:
//
//	0 ≤ eval arg1 < m
//	0 ≤ eval arg2 < m
//
// Postconditions:
//
//	eval (from_montgomery out1) mod m = (eval (from_montgomery arg1) * eval (from_montgomery arg2)) mod m
//	0 ≤ eval out1 < m
func p521Mul(out1 *p521MontgomeryDomainFieldElement, arg1 *p521MontgomeryDomainFieldElement, arg2 *p521MontgomeryDomainFieldElement) {
	x1 := arg1[1]
	x2 := arg1[2]
	x3 := arg1[3]
	x4 := arg1[4]
	x5 := arg1[5]
	x6 := arg1[6]
	x7 := arg1[7]
	x8 := arg1[8]
	x9 := arg1[0]
	var x10 uint64
	var x11 uint64
	x11, x10 = bits.Mul64(x9, arg2[8])
	var x12 uint64
	var x13 uint64
	x13, x12 = bits.Mul64(x9, arg2[7])
	var x14 uint64
	var x15 uint64
	x15, x14 = bits.Mul64(x9, arg2[6])
	var x16 uint64
	var x17 uint64
	x17, x16 = bits.Mul64(x9, arg2[5])
	var x18 uint64
	var x19 uint64
	x19, x18 = bits.Mul64(x9, arg2[4])
	var x20 uint64
	var x21 uint64
	x21, x20 = bits.Mul64(x9, arg2[3])
	var x22 uint64
	var x23 uint64
	x23, x22 = bits.Mul64(x9, arg2[2])
	var x24 uint64
	var x25 uint64
	x25, x24 = bits.Mul64(x9, arg2[1])
	var x26 uint64
	var x27 uint64
	x27, x26 = bits.Mul64(x9, arg2[0])
	var x28 uint64
	var x29 uint64
	x28, x29 = bits.Add64(x27, x24, uint64(0x0))
	var x30 uint64
	var x31 uint64
	x30, x31 = bits.Add64(x25, x22, uint64(p521Uint1(x29)))
	var x32 uint64
	var x33 uint64
	x32, x33 = bits.Add64(x23, x20, uint64(p521Uint1(x31)))
	var x34 uint64
	var x35 uint64
	x34, x35 = bits.Add64(x21, x18, uint64(p521Uint1(x33)))
	var x36 uint64
	var x37 uint64
	x36, x37 = bits.Add64(x19, x16, uint64(p521Uint1(x35)))
	var x38 uint64
	var x39 uint64
	x38, x39 = bits.Add64(x17, x14, uint64(p521Uint1(x37)))
	var x40 uint64
	var x41 uint64
	x40, x41 = bits.Add64(x15, x12, uint64(p521Uint1(x39)))
	var x42 uint64
	var x43 uint64
	x42, x43 = bits.Add64(x13, x10, uint64(p521Uint1(x41)))
	x44 := (uint64(p521Uint1(x43)) + x11)
	var x45 uint64
	var x46 uint64
	x46, x45 = bits.Mul64(x26, 0x1ff)
	var x47 uint64
	var x48 uint64
	x48, x47 = bits.Mul64(x26, 0xffffffffffffffff)
	var x49 uint64
	var x50 uint64
	x50, x49 = bits.Mul64(x26, 0xffffffffffffffff)
	var x51 uint64
	var x52 uint64
	x52, x51 = bits.Mul64(x26, 0xffffffffffffffff)
	var x53 uint64
	var x54 uint64
	x54, x53 = bits.Mul64(x26, 0xffffffffffffffff)
	var x55 uint64
	var x56 uint64
	x56, x55 = bits.Mul64(x26, 0xffffffffffffffff)
	var x57 uint64
	var x58 uint64
	x58, x57 = bits.Mul64(x26, 0xffffffffffffffff)
	var x59 uint64
	var x60 uint64
	x60, x59 = bits.Mul64(x26, 0xffffffffffffffff)
	var x61 uint64
	var x62 uint64
	x62, x61 = bits.Mul64(x26, 0xffffffffffffffff)
	var x63 uint64
	var x64 uint64
	x63, x64 = bits.Add64(x62, x59, uint64(0x0))
	var x65 uint64
	var x66 uint64
	x65, x66 = bits.Add64(x60, x57, uint64(p521Uint1(x64)))
	var x67 uint64
	var x68 uint64
	x67, x68 = bits.Add64(x58, x55, uint64(p521Uint1(x66)))
	var x69 uint64
	var x70 uint64
	x69, x70 = bits.Add64(x56, x53, uint64(p521Uint1(x68)))
	var x71 uint64
	var x72 uint64
	x71, x72 = bits.Add64(x54, x51, uint64(p521Uint1(x70)))
	var x73 uint64
	var x74 uint64
	x73, x74 = bits.Add64(x52, x49, uint64(p521Uint1(x72)))
	var x75 uint64
	var x76 uint64
	x75, x76 = bits.Add64(x50, x47, uint64(p521Uint1(x74)))
	var x77 uint64
	var x78 uint64
	x77, x78 = bits.Add64(x48, x45, uint64(p521Uint1(x76)))
	x79 := (uint64(p521Uint1(x78)) + x46)
	var x81 uint64
	_, x81 = bits.Add64(x26, x61, uint64(0x0))
	var x82 uint64
	var x83 uint64
	x82, x83 = bits.Add64(x28, x63, uint64(p521Uint1(x81)))
	var x84 uint64
	var x85 uint64
	x84, x85 = bits.Add64(x30, x65, uint64(p521Uint1(x83)))
	var x86 uint64
	var x87 uint64
	x86, x87 = bits.Add64(x32, x67, uint64(p521Uint1(x85)))
	var x88 uint64
	var x89 uint64
	x88, x89 = bits.Add64(x34, x69, uint64(p521Uint1(x87)))
	var x90 uint64
	var x91 uint64
	x90, x91 = bits.Add64(x36, x71, uint64(p521Uint1(x89)))
	var x92 uint64
	var x93 uint64
	x92, x93 = bits.Add64(x38, x73, uint64(p521Uint1(x91)))
	var x94 uint64
	var x95 uint64
	x94, x95 = bits.Add64(x40, x75, uint64(p521Uint1(x93)))
	var x96 uint64
	var x97 uint64
	x96, x97 = bits.Add64(x42, x77, uint64(p521Uint1(x95)))
	var x98 uint64
	var x99 uint64
	x98, x99 = bits.Add64(x44, x79, uint64(p521Uint1(x97)))
	var x100 uint64
	var x101 uint64
	x101, x100 = bits.Mul64(x1, arg2[8])
	var x102 uint64
	var x103 uint64
	x103, x102 = bits.Mul64(x1, arg2[7])
	var x104 uint64
	var x105 uint64
	x105, x104 = bits.Mul64(x1, arg2[6])
	var x106 uint64
	var x107 uint64
	x107, x106 = bits.Mul64(x1, arg2[5])
	var x108 uint64
	var x109 uint64
	x109, x108 = bits.Mul64(x1, arg2[4])
	var x110 uint64
	var x111 uint64
	x111, x110 = bits.Mul64(x1, arg2[3])
	var x112 uint64
	var x113 uint64
	x113, x112 = bits.Mul64(x1, arg2[2])
	var x114 uint64
	var x115 uint64
	x115, x114 = bits.Mul64(x1, arg2[1])
	var x116 uint64
	var x117 uint64
	x117, x116 = bits.Mul64(x1, arg2[0])
	var x118 uint64
	var x119 uint64
	x118, x119 = bits.Add64(x117, x114, uint64(0x0))
	var x120 uint64
	var x121 uint64
	x120, x121 = bits.Add64(x115, x112, uint64(p521Uint1(x119)))
	var x122 uint64
	var x123 uint64
	x122, x123 = bits.Add64(x113, x110, uint64(p521Uint1(x121)))
	var x124 uint64
	var x125 uint64
	x124, x125 = bits.Add64(x111, x108, uint64(p521Uint1(x123)))
	var x126 uint64
	var x127 uint64
	x126, x127 = bits.Add64(x109, x106, uint64(p521Uint1(x125)))
	var x128 uint64
	var x129 uint64
	x128, x129 = bits.Add64(x107, x104, uint64(p521Uint1(x127)))
	var x130 uint64
	var x131 uint64
	x130, x131 = bits.Add64(x105, x102, uint64(p521Uint1(x129)))
	var x132 uint64
	var x133 uint64
	x132, x133 = bits.Add64(x103, x100, uint64(p521Uint1(x131)))
	x134 := (uint64(p521Uint1(x133)) + x101)
	var x135 uint64
	var x136 uint64
	x135, x136 = bits.Add64(x82, x116, uint64(0x0))
	var x137 uint64
	var x138 uint64
	x137, x138 = bits.Add64(x84, x118, uint64(p521Uint1(x136)))
	var x139 uint64
	var x140 uint64
	x139, x140 = bits.Add64(x86, x120, uint64(p521Uint1(x138)))
	var x141 uint64
	var x142 uint64
	x141, x142 = bits.Add64(x88, x122, uint64(p521Uint1(x140)))
	var x143 uint64
	var x144 uint64
	x143, x144 = bits.Add64(x90, x124, uint64(p521Uint1(x142)))
	var x145 uint64
	var x146 uint64
	x145, x146 = bits.Add64(x92, x126, uint64(p521Uint1(x144)))
	var x147 uint64
	var x148 uint64
	x147, x148 = bits.Add64(x94, x128, uint64(p521Uint1(x146)))
	var x149 uint64
	var x150 uint64
	x149, x150 = bits.Add64(x96, x130, uint64(p521Uint1(x148)))
	var x151 uint64
	var x152 uint64
	x151, x152 = bits.Add64(x98, x132, uint64(p521Uint1(x150)))
	var x153 uint64
	var x154 uint64
	x153, x154 = bits.Add64(uint64(p521Uint1(x99)), x134, uint64(p521Uint1(x152)))
	var x155 uint64
	var x156 uint64
	x156, x155 = bits.Mul64(x135, 0x1ff)
	var x157 uint64
	var x158 uint64
	x158, x157 = bits.Mul64(x135, 0xffffffffffffffff)
	var x159 uint64
	var x160 uint64
	x160, x159 = bits.Mul64(x135, 0xffffffffffffffff)
	var x161 uint64
	var x162 uint64
	x162, x161 = bits.Mul64(x135, 0xffffffffffffffff)
	var x163 uint64
	var x164 uint64
	x164, x163 = bits.Mul64(x135, 0xffffffffffffffff)
	var x165 uint64
	var x166 uint64
	x166, x165 = bits.Mul64(x135, 0xffffffffffffffff)
	var x167 uint64
	var x168 uint64
	x168, x167 = bits.Mul64(x135, 0xffffffffffffffff)
	var x169 uint64
	var x170 uint64
	x170, x169 = bits.Mul64(x135, 0xffffffffffffffff)
	var x171 uint64
	var x172 uint64
	x172, x171 = bits.Mul64(x135, 0xffffffffffffffff)
	var x173 uint64
	var x174 uint64
	x173, x174 = bits.Add64(x172, x169, uint64(0x0))
	var x175 uint64
	var x176 uint64
	x175, x176 = bits.Add64(x170, x167, uint64(p521Uint1(x174)))
	var x177 uint64
	var x178 uint64
	x177, x178 = bits.Add64(x168, x165, uint64(p521Uint1(x176)))
	var x179 uint64
	var x180 uint64
	x179, x180 = bits.Add64(x166, x163, uint64(p521Uint1(x178)))
	var x181 uint64
	var x182 uint64
	x181, x182 = bits.Add64(x164, x161, uint64(p521Uint1(x180)))
	var x183 uint64
	var x184 uint64
	x183, x184 = bits.Add64(x162, x159, uint64(p521Uint1(x182)))
	var x185 uint64
	var x186 uint64
	x185, x186 = bits.Add64(x160, x157, uint64(p521Uint1(x184)))
	var x187 uint64
	var x188 uint64
	x187, x188 = bits.Add64(x158, x155, uint64(p521Uint1(x186)))
	x189 := (uint64(p521Uint1(x188)) + x156)
	var x191 uint64
	_, x191 = bits.Add64(x135, x171, uint64(0x0))
	var x192 uint64
	var x193 uint64
	x192, x193 = bits.Add64(x137, x173, uint64(p521Uint1(x191)))
	var x194 uint64
	var x195 uint64
	x194, x195 = bits.Add64(x139, x175, uint64(p521Uint1(x193)))
	var x196 uint64
	var x197 uint64
	x196, x197 = bits.Add64(x141, x177, uint64(p521Uint1(x195)))
	var x198 uint64
	var x199 uint64
	x198, x199 = bits.Add64(x143, x179, uint64(p521Uint1(x197)))
	var x200 uint64
	var x201 uint64
	x200, x201 = bits.Add64(x145, x181, uint64(p521Uint1(x199)))
	var x202 uint64
	var x203 uint64
	x202, x203 = bits.Add64(x147, x183, uint64(p521Uint1(x201)))
	var x204 uint64
	var x205 uint64
	x204, x205 = bits.Add64(x149, x185, uint64(p521Uint1(x203)))
	var x206 uint64
	var x207 uint64
	x206, x207 = bits.Add64(x151, x187, uint64(p521Uint1(x205)))
	var x208 uint64
	var x209 uint64
	x208, x209 = bits.Add64(x153, x189, uint64(p521Uint1(x207)))
	x210 := (uint64(p521Uint1(x209)) + uint64(p521Uint1(x154)))
	var x211 uint64
	var x212 uint64
	x212, x211 = bits.Mul64(x2, arg2[8])
	var x213 uint64
	var x214 uint64
	x214, x213 = bits.Mul64(x2, arg2[7])
	var x215 uint64
	var x216 uint64
	x216, x215 = bits.Mul64(x2, arg2[6])
	var x217 uint64
	var x218 uint64
	x218, x217 = bits.Mul64(x2, arg2[5])
	var x219 uint64
	var x220 uint64
	x220, x219 = bits.Mul64(x2, arg2[4])
	var x221 uint64
	var x222 uint64
	x222, x221 = bits.Mul64(x2, arg2[3])
	var x223 uint64
	var x224 uint64
	x224, x223 = bits.Mul64(x2, arg2[2])
	var x225 uint64
	var x226 uint64
	x226, x225 = bits.Mul64(x2, arg2[1])
	var x227 uint64
	var x228 uint64
	x228, x227 = bits.Mul64(x2, arg2[0])
	var x229 uint64
	var x230 uint64
	x229, x230 = bits.Add64(x228, x225, uint64(0x0))
	var x231 uint64
	var x232 uint64
	x231, x232 = bits.Add64(x226, x223, uint64(p521Uint1(x230)))
	var x233 uint64
	var x234 uint64
	x233, x234 = bits.Add64(x224, x221, uint64(p521Uint1(x232)))
	var x235 uint64
	var x236 uint64
	x235, x236 = bits.Add64(x222, x219, uint64(p521Uint1(x234)))
	var x237 uint64
	var x238 uint64
	x237, x238 = bits.Add64(x220, x217, uint64(p521Uint1(x236)))
	var x239 uint64
	var x240 uint64
	x239, x240 = bits.Add64(x218, x215, uint64(p521Uint1(x238)))
	var x241 uint64
	var x242 uint64
	x241, x242 = bits.Add64(x216, x213, uint64(p521Uint1(x240)))
	var x243 uint64
	var x244 uint64
	x243, x244 = bits.Add64(x214, x211, uint64(p521Uint1(x242)))
	x245 := (uint64(p521Uint1(x244)) + x212)
	var x246 uint64
	var x247 uint64
	x246, x247 = bits.Add64(x192, x227, uint64(0x0))
	var x248 uint64
	var x249 uint64
	x248, x249 = bits.Add64(x194, x229, uint64(p521Uint1(x247)))
	var x250 uint64
	var x251 uint64
	x250, x251 = bits.Add64(x196, x231, uint64(p521Uint1(x249)))
	var x252 uint64
	var x253 uint64
	x252, x253 = bits.Add64(x198, x233, uint64(p521Uint1(x251)))
	var x254 uint64
	var x255 uint64
	x254, x255 = bits.Add64(x200, x235, uint64(p521Uint1(x253)))
	var x256 uint64
	var x257 uint64
	x256, x257 = bits.Add64(x202, x237, uint64(p521Uint1(x255)))
	var x258 uint64
	var x259 uint64
	x258, x259 = bits.Add64(x204, x239, uint64(p521Uint1(x257)))
	var x260 uint64
	var x261 uint64
	x260, x261 = bits.Add64(x206, x241, uint64(p521Uint1(x259)))
	var x262 uint64
	var x263 uint64
	x262, x263 = bits.Add64(x208, x243, uint64(p521Uint1(x261)))
	var x264 uint64
	var x265 uint64
	x264, x265 = bits.Add64(x210, x245, uint64(p521Uint1(x263)))
	var x266 uint64
	var x267 uint64
	x267, x266 = bits.Mul64(x246, 0x1ff)
	var x268 uint64
	var x269 uint64
	x269, x268 = bits.Mul64(x246, 0xffffffffffffffff)
	var x270 uint64
	var x271 uint64
	x271, x270 = bits.Mul64(x246, 0xffffffffffffffff)
	var x272 uint64
	var x273 uint64
	x273, x272 = bits.Mul64(x246, 0xffffffffffffffff)
	var x274 uint64
	var x275 uint64
	x275, x274 = bits.Mul64(x246, 0xffffffffffffffff)
	var x276 uint64
	var x277 uint64
	x277, x276 = bits.Mul64(x246, 0xffffffffffffffff)
	var x278 uint64
	var x279 uint64
	x279, x278 = bits.Mul64(x246, 0xffffffffffffffff)
	var x280 uint64
	var x281 uint64
	x281, x280 = bits.Mul64(x246, 0xffffffffffffffff)
	var x282 uint64
	var x283 uint64
	x283, x282 = bits.Mul64(x246, 0xffffffffffffffff)
	var x284 uint64
	var x285 uint64
	x284, x285 = bits.Add64(x283, x280, uint64(0x0))
	var x286 uint64
	var x287 uint64
	x286, x287 = bits.Add64(x281, x278, uint64(p521Uint1(x285)))
	var x288 uint64
	var x289 uint64
	x288, x289 = bits.Add64(x279, x276, uint64(p521Uint1(x287)))
	var x290 uint64
	var x291 uint64
	x290, x291 = bits.Add64(x277, x274, uint64(p521Uint1(x289)))
	var x292 uint64
	var x293 uint64
	x292, x293 = bits.Add64(x275, x272, uint64(p521Uint1(x291)))
	var x294 uint64
	var x295 uint64
	x294, x295 = bits.Add64(x273, x270, uint64(p521Uint1(x293)))
	var x296 uint64
	var x297 uint64
	x296, x297 = bits.Add64(x271, x268, uint64(p521Uint1(x295)))
	var x298 uint64
	var x299 uint64
	x298, x299 = bits.Add64(x269, x266, uint64(p521Uint1(x297)))
	x300 := (uint64(p521Uint1(x299)) + x267)
	var x302 uint64
	_, x302 = bits.Add64(x246, x282, uint64(0x0))
	var x303 uint64
	var x304 uint64
	x303, x304 = bits.Add64(x248, x284, uint64(p521Uint1(x302)))
	var x305 uint64
	var x306 uint64
	x305, x306 = bits.Add64(x250, x286, uint64(p521Uint1(x304)))
	var x307 uint64
	var x308 uint64
	x307, x308 = bits.Add64(x252, x288, uint64(p521Uint1(x306)))
	var x309 uint64
	var x310 uint64
	x309, x310 = bits.Add64(x254, x290, uint64(p521Uint1(x308)))
	var x311 uint64
	var x312 uint64
	x311, x312 = bits.Add64(x256, x292, uint64(p521Uint1(x310)))
	var x313 uint64
	var x314 uint64
	x313, x314 = bits.Add64(x258, x294, uint64(p521Uint1(x312)))
	var x315 uint64
	var x316 uint64
	x315, x316 = bits.Add64(x260, x296, uint64(p521Uint1(x314)))
	var x317 uint64
	var x318 uint64
	x317, x318 = bits.Add64(x262, x298, uint64(p521Uint1(x316)))
	var x319 uint64
	var x320 uint64
	x319, x320 = bits.Add64(x264, x300, uint64(p521Uint1(x318)))
	x321 := (uint64(p521Uint1(x320)) + uint64(p521Uint1(x265)))
	var x322 uint64
	var x323 uint64
	x323, x322 = bits.Mul64(x3, arg2[8])
	var x324 uint64
	var x325 uint64
	x325, x324 = bits.Mul64(x3, arg2[7])
	var x326 uint64
	var x327 uint64
	x327, x326 = bits.Mul64(x3, arg2[6])
	var x328 uint64
	var x329 uint64
	x329, x328 = bits.Mul64(x3, arg2[5])
	var x330 uint64
	var x331 uint64
	x331, x330 = bits.Mul64(x3, arg2[4])
	var x332 uint64
	var x333 uint64
	x333, x332 = bits.Mul64(x3, arg2[3])
	var x334 uint64
	var x335 uint64
	x335, x334 = bits.Mul64(x3, arg2[2])
	var x336 uint64
	var x337 uint64
	x337, x336 = bits.Mul64(x3, arg2[1])
	var x338 uint64
	var x339 uint64
	x339, x338 = bits.Mul64(x3, arg2[0])
	var x340 uint64
	var x341 uint64
	x340, x341 = bits.Add64(x339, x336, uint64(0x0))
	var x342 uint64
	var x343 uint64
	x342, x343 = bits.Add64(x337, x334, uint64(p521Uint1(x341)))
	var x344 uint64
	var x345 uint64
	x344, x345 = bits.Add64(x335, x332, uint64(p521Uint1(x343)))
	var x346 uint64
	var x347 uint64
	x346, x347 = bits.Add64(x333, x330, uint64(p521Uint1(x345)))
	var x348 uint64
	var x349 uint64
	x348, x349 = bits.Add64(x331, x328, uint64(p521Uint1(x347)))
	var x350 uint64
	var x351 uint64
	x350, x351 = bits.Add64(x329, x326, uint64(p521Uint1(x349)))
	var x352 uint64
	var x353 uint64
	x352, x353 = bits.Add64(x327, x324, uint64(p521Uint1(x351)))
	var x354 uint64
	var x355 uint64
	x354, x355 = bits.Add64(x325, x322, uint64(p521Uint1(x353)))
	x356 := (uint64(p521Uint1(x355)) + x323)
	var x357 uint64
	var x358 uint64
	x357, x358 = bits.Add64(x303, x338, uint64(0x0))
	var x359 uint64
	var x360 uint64
	x359, x360 = bits.Add64(x305, x340, uint64(p521Uint1(x358)))
	var x361 uint64
	var x362 uint64
	x361, x362 = bits.Add64(x307, x342, uint64(p521Uint1(x360)))
	var x363 uint64
	var x364 uint64
	x363, x364 = bits.Add64(x309, x344, uint64(p521Uint1(x362)))
	var x365 uint64
	var x366 uint64
	x365, x366 = bits.Add64(x311, x346, uint64(p521Uint1(x364)))
	var x367 uint64
	var x368 uint64
	x367, x368 = bits.Add64(x313, x348, uint64(p521Uint1(x366)))
	var x369 uint64
	var x370 uint64
	x369, x370 = bits.Add64(x315, x350, uint64(p521Uint1(x368)))
	var x371 uint64
	var x372 uint64
	x371, x372 = bits.Add64(x317, x352, uint64(p521Uint1(x370)))
	var x373 uint64
	var x374 uint64
	x373, x374 = bits.Add64(x319, x354, uint64(p521Uint1(x372)))
	var x375 uint64
	var x376 uint64
	x375, x376 = bits.Add64(x321, x356, uint64(p521Uint1(x374)))
	var x377 uint64
	var x378 uint64
	x378, x377 = bits.Mul64(x357, 0x1ff)
	var x379 uint64
	var x380 uint64
	x380, x379 = bits.Mul64(x357, 0xffffffffffffffff)
	var x381 uint64
	var x382 uint64
	x382, x381 = bits.Mul64(x357, 0xffffffffffffffff)
	var x383 uint64
	var x384 uint64
	x384, x383 = bits.Mul64(x357, 0xffffffffffffffff)
	var x385 uint64
	var x386 uint64
	x386, x385 = bits.Mul64(x357, 0xffffffffffffffff)
	var x387 uint64
	var x388 uint64
	x388, x387 = bits.Mul64(x357, 0xffffffffffffffff)
	var x389 uint64
	var x390 uint64
	x390, x389 = bits.Mul64(x357, 0xffffffffffffffff)
	var x391 uint64
	var x392 uint64
	x392, x391 = bits.Mul64(x357, 0xffffffffffffffff)
	var x393 uint64
	var x394 uint64
	x394, x393 = bits.Mul64(x357, 0xffffffffffffffff)
	var x395 uint64
	var x396 uint64
	x395, x396 = bits.Add64(x394, x391, uint64(0x0))
	var x397 uint64
	var x398 uint64
	x397, x398 = bits.Add64(x392, x389, uint64(p521Uint1(x396)))
	var x399 uint64
	var x400 uint64
	x399, x400 = bits.Add64(x390, x387, uint64(p521Uint1(x398)))
	var x401 uint64
	var x402 uint64
	x401, x402 = bits.Add64(x388, x385, uint64(p521Uint1(x400)))
	var x403 uint64
	var x404 uint64
	x403, x404 = bits.Add64(x386, x383, uint64(p521Uint1(x402)))
	var x405 uint64
	var x406 uint64
	x405, x406 = bits.Add64(x384, x381, uint64(p521Uint1(x404)))
	var x407 uint64
	var x408 uint64
	x407, x408 = bits.Add64(x382, x379, uint64(p521Uint1(x406)))
	var x409 uint64
	var x410 uint64
	x409, x410 = bits.Add64(x380, x377, uint64(p521Uint1(x408)))
	x411 := (uint64(p521Uint1(x410)) + x378)
	var x413 uint64
	_, x413 = bits.Add64(x357, x393, uint64(0x0))
	var x414 uint64
	var x415 uint64
	x414, x415 = bits.Add64(x359, x395, uint64(p521Uint1(x413)))
	var x416 uint64
	var x417 uint64
	x416, x417 = bits.Add64(x361, x397, uint64(p521Uint1(x415)))
	var x418 uint64
	var x419 uint64
	x418, x419 = bits.Add64(x363, x399, uint64(p521Uint1(x417)))
	var x420 uint64
	var x421 uint64
	x420, x421 = bits.Add64(x365, x401, uint64(p521Uint1(x419)))
	var x422 uint64
	var x423 uint64
	x422, x423 = bits.Add64(x367, x403, uint64(p521Uint1(x421)))
	var x424 uint64
	var x425 uint64
	x424, x425 = bits.Add64(x369, x405, uint64(p521Uint1(x423)))
	var x426 uint64
	var x427 uint64
	x426, x427 = bits.Add64(x371, x407, uint64(p521Uint1(x425)))
	var x428 uint64
	var x429 uint64
	x428, x429 = bits.Add64(x373, x409, uint64(p521Uint1(x427)))
	var x430 uint64
	var x431 uint64
	x430, x431 = bits.Add64(x375, x411, uint64(p521Uint1(x429)))
	x432 := (uint64(p521Uint1(x431)) + uint64(p521Uint1(x376)))
	var x433 uint64
	var x434 uint64
	x434, x433 = bits.Mul64(x4, arg2[8])
	var x435 uint64
	var x436 uint64
	x436, x435 = bits.Mul64(x4, arg2[7])
	var x437 uint64
	var x438 uint64
	x438, x437 = bits.Mul64(x4, arg2[6])
	var x439 uint64
	var x440 uint64
	x440, x439 = bits.Mul64(x4, arg2[5])
	var x441 uint64
	var x442 uint64
	x442, x441 = bits.Mul64(x4, arg2[4])
	var x443 uint64
	var x444 uint64
	x444, x443 = bits.Mul64(x4, arg2[3])
	var x445 uint64
	var x446 uint64
	x446, x445 = bits.Mul64(x4, arg2[2])
	var x447 uint64
	var x448 uint64
	x448, x447 = bits.Mul64(x4, arg2[1])
	var x449 uint64
	var x450 uint64
	x450, x449 = bits.Mul64(x4, arg2[0])
	var x451 uint64
	var x452 uint64
	x451, x452 = bits.Add64(x450, x447, uint64(0x0))
	var x453 uint64
	var x454 uint64
	x453, x454 = bits.Add64(x448, x445, uint64(p521Uint1(x452)))
	var x455 uint64
	var x456 uint64
	x455, x456 = bits.Add64(x446, x443, uint64(p521Uint1(x454)))
	var x457 uint64
	var x458 uint64
	x457, x458 = bits.Add64(x444, x441, uint64(p521Uint1(x456)))
	var x459 uint64
	var x460 uint64
	x459, x460 = bits.Add64(x442, x439, uint64(p521Uint1(x458)))
	var x461 uint64
	var x462 uint64
	x461, x462 = bits.Add64(x440, x437, uint64(p521Uint1(x460)))
	var x463 uint64
	var x464 uint64
	x463, x464 = bits.Add64(x438, x435, uint64(p521Uint1(x462)))
	var x465 uint64
	var x466 uint64
	x465, x466 = bits.Add64(x436, x433, uint64(p521Uint1(x464)))
	x467 := (uint64(p521Uint1(x466)) + x434)
	var x468 uint64
	var x469 uint64
	x468, x469 = bits.Add64(x414, x449, uint64(0x0))
	var x470 uint64
	var x471 uint64
	x470, x471 = bits.Add64(x416, x451, uint64(p521Uint1(x469)))
	var x472 uint64
	var x473 uint64
	x472, x473 = bits.Add64(x418, x453, uint64(p521Uint1(x471)))
	var x474 uint64
	var x475 uint64
	x474, x475 = bits.Add64(x420, x455, uint64(p521Uint1(x473)))
	var x476 uint64
	var x477 uint64
	x476, x477 = bits.Add64(x422, x457, uint64(p521Uint1(x475)))
	var x478 uint64
	var x479 uint64
	x478, x479 = bits.Add64(x424, x459, uint64(p521Uint1(x477)))
	var x480 uint64
	var x481 uint64
	x480, x481 = bits.Add64(x426, x461, uint64(p521Uint1(x479)))
	var x482 uint64
	var x483 uint64
	x482, x483 = bits.Add64(x428, x463, uint64(p521Uint1(x481)))
	var x484 uint64
	var x485 uint64
	x484, x485 = bits.Add64(x430, x465, uint64(p521Uint1(x483)))
	var x486 uint64
	var x487 uint64
	x486, x487 = bits.Add64(x432, x467, uint64(p521Uint1(x485)))
	var x488 uint64
	var x489 uint64
	x489, x488 = bits.Mul64(x468, 0x1ff)
	var x490 uint64
	var x491 uint64
	x491, x490 = bits.Mul64(x468, 0xffffffffffffffff)
	var x492 uint64
	var x493 uint64
	x493, x492 = bits.Mul64(x468, 0xffffffffffffffff)
	var x494 uint64
	var x495 uint64
	x495, x494 = bits.Mul64(x468, 0xffffffffffffffff)
	var x496 uint64
	var x497 uint64
	x497, x496 = bits.Mul64(x468, 0xffffffffffffffff)
	var x498 uint64
	var x499 uint64
	x499, x498 = bits.Mul64(x468, 0xffffffffffffffff)
	var x500 uint64
	var x501 uint64
	x501, x500 = bits.Mul64(x468, 0xffffffffffffffff)
	var x502 uint64
	var x503 uint64
	x503, x502 = bits.Mul64(x468, 0xffffffffffffffff)
	var x504 uint64
	var x505 uint64
	x505, x504 = bits.Mul64(x468, 0xffffffffffffffff)
	var x506 uint64
	var x507 uint64
	x506, x507 = bits.Add64(x505, x502, uint64(0x0))
	var x508 uint64
	var x509 uint64
	x508, x509 = bits.Add64(x503, x500, uint64(p521Uint1(x507)))
	var x510 uint64
	var x511 uint64
	x510, x511 = bits.Add64(x501, x498, uint64(p521Uint1(x509)))
	var x512 uint64
	var x513 uint64
	x512, x513 = bits.Add64(x499, x496, uint64(p521Uint1(x511)))
	var x514 uint64
	var x515 uint64
	x514, x515 = bits.Add64(x497, x494, uint64(p521Uint1(x513)))
	var x516 uint64
	var x517 uint64
	x516, x517 = bits.Add64(x495, x492, uint64(p521Uint1(x515)))
	var x518 uint64
	var x519 uint64
	x518, x519 = bits.Add64(x493, x490, uint64(p521Uint1(x517)))
	var x520 uint64
	var x521 uint64
	x520, x521 = bits.Add64(x491, x488, uint64(p521Uint1(x519)))
	x522 := (uint64(p521Uint1(x521)) + x489)
	var x524 uint64
	_, x524 = bits.Add64(x468, x504, uint64(0x0))
	var x525 uint64
	var x526 uint64
	x525, x526 = bits.Add64(x470, x506, uint64(p521Uint1(x524)))
	var x527 uint64
	var x528 uint64
	x527, x528 = bits.Add64(x472, x508, uint64(p521Uint1(x526)))
	var x529 uint64
	var x530 uint64
	x529, x530 = bits.Add64(x474, x510, uint64(p521Uint1(x528)))
	var x531 uint64
	var x532 uint64
	x531, x532 = bits.Add64(x476, x512, uint64(p521Uint1(x530)))
	var x533 uint64
	var x534 uint64
	x533, x534 = bits.Add64(x478, x514, uint64(p521Uint1(x532)))
	var x535 uint64
	var x536 uint64
	x535, x536 = bits.Add64(x480, x516, uint64(p521Uint1(x534)))
	var x537 uint64
	var x538 uint64
	x537, x538 = bits.Add64(x482, x518, uint64(p521Uint1(x536)))
	var x539 uint64
	var x540 uint64
	x539, x540 = bits.Add64(x484, x520, uint64(p521Uint1(x538)))
	var x541 uint64
	var x542 uint64
	x541, x542 = bits.Add64(x486, x522, uint64(p521Uint1(x540)))
	x543 := (uint64(p521Uint1(x542)) + uint64(p521Uint1(x487)))
	var x544 uint64
	var x545 uint64
	x545, x544 = bits.Mul64(x5, arg2[8])
	var x546 uint64
	var x547 uint64
	x547, x546 = bits.Mul64(x5, arg2[7])
	var x548 uint64
	var x549 uint64
	x549, x548 = bits.Mul64(x5, arg2[6])
	var x550 uint64
	var x551 uint64
	x551, x550 = bits.Mul64(x5, arg2[5])
	var x552 uint64
	var x553 uint64
	x553, x552 = bits.Mul64(x5, arg2[4])
	var x554 uint64
	var x555 uint64
	x555, x554 = bits.Mul64(x5, arg2[3])
	var x556 uint64
	var x557 uint64
	x557, x556 = bits.Mul64(x5, arg2[2])
	var x558 uint64
	var x559 uint64
	x559, x558 = bits.Mul64(x5, arg2[1])
	var x560 uint64
	var x561 uint64
	x561, x560 = bits.Mul64(x5, arg2[0])
	var x562 uint64
	var x563 uint64
	x562, x563 = bits.Add64(x561, x558, uint64(0x0))
	var x564 uint64
	var x565 uint64
	x564, x565 = bits.Add64(x559, x556, uint64(p521Uint1(x563)))
	var x566 uint64
	var x567 uint64
	x566, x567 = bits.Add64(x557, x554, uint64(p521Uint1(x565)))
	var x568 uint64
	var x569 uint64
	x568, x569 = bits.Add64(x555, x552, uint64(p521Uint1(x567)))
	var x570 uint64
	var x571 uint64
	x570, x571 = bits.Add64(x553, x550, uint64(p521Uint1(x569)))
	var x572 uint64
	var x573 uint64
	x572, x573 = bits.Add64(x551, x548, uint64(p521Uint1(x571)))
	var x574 uint64
	var x575 uint64
	x574, x575 = bits.Add64(x549, x546, uint64(p521Uint1(x573)))
	var x576 uint64
	var x577 uint64
	x576, x577 = bits.Add64(x547, x544, uint64(p521Uint1(x575)))
	x578 := (uint64(p521Uint1(x577)) + x545)
	var x579 uint64
	var x580 uint64
	x579, x580 = bits.Add64(x525, x560, uint64(0x0))
	var x581 uint64
	var x582 uint64
	x581, x582 = bits.Add64(x527, x562, uint64(p521Uint1(x580)))
	var x583 uint64
	var x584 uint64
	x583, x584 = bits.Add64(x529, x564, uint64(p521Uint1(x582)))
	var x585 uint64
	var x586 uint64
	x585, x586 = bits.Add64(x531, x566, uint64(p521Uint1(x584)))
	var x587 uint64
	var x588 uint64
	x587, x588 = bits.Add64(x533, x568, uint64(p521Uint1(x586)))
	var x589 uint64
	var x590 uint64
	x589, x590 = bits.Add64(x535, x570, uint64(p521Uint1(x588)))
	var x591 uint64
	var x592 uint64
	x591, x592 = bits.Add64(x537, x572, uint64(p521Uint1(x590)))
	var x593 uint64
	var x594 uint64
	x593, x594 = bits.Add64(x539, x574, uint64(p521Uint1(x592)))
	var x595 uint64
	var x596 uint64
	x595, x596 = bits.Add64(x541, x576, uint64(p521Uint1(x594)))
	var x597 uint64
	var x598 uint64
	x597, x598 = bits.Add64(x543, x578, uint64(p521Uint1(x596)))
	var x599 uint64
	var x600 uint64
	x600, x599 = bits.Mul64(x579, 0x1ff)
	var x601 uint64
	var x602 uint64
	x602, x601 = bits.Mul64(x579, 0xffffffffffffffff)
	var x603 uint64
	var x604 uint64
	x604, x603 = bits.Mul64(x579, 0xffffffffffffffff)
	var x605 uint64
	var x606 uint64
	x606, x605 = bits.Mul64(x579, 0xffffffffffffffff)
	var x607 uint64
	var x608 uint64
	x608, x607 = bits.Mul64(x579, 0xffffffffffffffff)
	var x609 uint64
	var x610 uint64
	x610, x609 = bits.Mul64(x579, 0xffffffffffffffff)
	var x611 uint64
	var x612 uint64
	x612, x611 = bits.Mul64(x579, 0xffffffffffffffff)
	var x613 uint64
	var x614 uint64
	x614, x613 = bits.Mul64(x579, 0xffffffffffffffff)
	var x615 uint64
	var x616 uint64
	x616, x615 = bits.Mul64(x579, 0xffffffffffffffff)
	var x617 uint64
	var x618 uint64
	x617, x618 = bits.Add64(x616, x613, uint64(0x0))
	var x619 uint64
	var x620 uint64
	x619, x620 = bits.Add64(x614, x611, uint64(p521Uint1(x618)))
	var x621 uint64
	var x622 uint64
	x621, x622 = bits.Add64(x612, x609, uint64(p521Uint1(x620)))
	var x623 uint64
	var x624 uint64
	x623, x624 = bits.Add64(x610, x607, uint64(p521Uint1(x622)))
	var x625 uint64
	var x626 uint64
	x625, x626 = bits.Add64(x608, x605, uint64(p521Uint1(x624)))
	var x627 uint64
	var x628 uint64
	x627, x628 = bits.Add64(x606, x603, uint64(p521Uint1(x626)))
	var x629 uint64
	var x630 uint64
	x629, x630 = bits.Add64(x604, x601, uint64(p521Uint1(x628)))
	var x631 uint64
	var x632 uint64
	x631, x632 = bits.Add64(x602, x599, uint64(p521Uint1(x630)))
	x633 := (uint64(p521Uint1(x632)) + x600)
	var x635 uint64
	_, x635 = bits.Add64(x579, x615, uint64(0x0))
	var x636 uint64
	var x637 uint64
	x636, x637 = bits.Add64(x581, x617, uint64(p521Uint1(x635)))
	var x638 uint64
	var x639 uint64
	x638, x639 = bits.Add64(x583, x619, uint64(p521Uint1(x637)))
	var x640 uint64
	var x641 uint64
	x640, x641 = bits.Add64(x585, x621, uint64(p521Uint1(x639)))
	var x642 uint64
	var x643 uint64
	x642, x643 = bits.Add64(x587, x623, uint64(p521Uint1(x641)))
	var x644 uint64
	var x645 uint64
	x644, x645 = bits.Add64(x589, x625, uint64(p521Uint1(x643)))
	var x646 uint64
	var x647 uint64
	x646, x647 = bits.Add64(x591, x627, uint64(p521Uint1(x645)))
	var x648 uint64
	var x649 uint64
	x648, x649 = bits.Add64(x593, x629, uint64(p521Uint1(x647)))
	var x650 uint64
	var x651 uint64
	x650, x651 = bits.Add64(x595, x631, uint64(p521Uint1(x649)))
	var x652 uint64
	var x653 uint64
	x652, x653 = bits.Add64(x597, x633, uint64(p521Uint1(x651)))
	x654 := (uint64(p521Uint1(x653)) + uint64(p521Uint1(x598)))
	var x655 uint64
	var x656 uint64
	x656, x655 = bits.Mul64(x6, arg2[8])
	var x657 uint64
	var x658 uint64
	x658, x657 = bits.Mul64(x6, arg2[7])
	var x659 uint64
	var x660 uint64
	x660, x659 = bits.Mul64(x6, arg2[6])
	var x661 uint64
	var x662 uint64
	x662, x661 = bits.Mul64(x6, arg2[5])
	var x663 uint64
	var x664 uint64
	x664, x663 = bits.Mul64(x6, arg2[4])
	var x665 uint64
	var x666 uint64
	x666, x665 = bits.Mul64(x6, arg2[3])
	var x667 uint64
	var x668 uint64
	x668, x667 = bits.Mul64(x6, arg2[2])
	var x669 uint64
	var x670 uint64
	x670, x669 = bits.Mul64(x6, arg2[1])
	var x671 uint64
	var x672 uint64
	x672, x671 = bits.Mul64(x6, arg2[0])
	var x673 uint64
	var x674 uint64
	x673, x674 = bits.Add64(x672, x669, uint64(0x0))
	var x675 uint64
	var x676 uint64
	x675, x676 = bits.Add64(x670, x667, uint64(p521Uint1(x674)))
	var x677 uint64
	var x678 uint64
	x677, x678 = bits.Add64(x668, x665, uint64(p521Uint1(x676)))
	var x679 uint64
	var x680 uint64
	x679, x680 = bits.Add64(x666, x663, uint64(p521Uint1(x678)))
	var x681 uint64
	var x682 uint64
	x681, x682 = bits.Add64(x664, x661, uint64(p521Uint1(x680)))
	var x683 uint64
	var x684 uint64
	x683, x684 = bits.Add64(x662, x659, uint64(p521Uint1(x682)))
	var x685 uint64
	var x686 uint64
	x685, x686 = bits.Add64(x660, x657, uint64(p521Uint1(x684)))
	var x687 uint64
	var x688 uint64
	x687, x688 = bits.Add64(x658, x655, uint64(p521Uint1(x686)))
	x689 := (uint64(p521Uint1(x688)) + x656)
	var x690 uint64
	var x691 uint64
	x690, x691 = bits.Add64(x636, x671, uint64(0x0))
	var x692 uint64
	var x693 uint64
	x692, x693 = bits.Add64(x638, x673, uint64(p521Uint1(x691)))
	var x694 uint64
	var x695 uint64
	x694, x695 = bits.Add64(x640, x675, uint64(p521Uint1(x693)))
	var x696 uint64
	var x697 uint64
	x696, x697 = bits.Add64(x642, x677, uint64(p521Uint1(x695)))
	var x698 uint64
	var x699 uint64
	x698, x699 = bits.Add64(x644, x679, uint64(p521Uint1(x697)))
	var x700 uint64
	var x701 uint64
	x700, x701 = bits.Add64(x646, x681, uint64(p521Uint1(x699)))
	var x702 uint64
	var x703 uint64
	x702, x703 = bits.Add64(x648, x683, uint64(p521Uint1(x701)))
	var x704 uint64
	var x705 uint64
	x704, x705 = bits.Add64(x650, x685, uint64(p521Uint1(x703)))
	var x706 uint64
	var x707 uint64
	x706, x707 = bits.Add64(x652, x687, uint64(p521Uint1(x705)))
	var x708 uint64
	var x709 uint64
	x708, x709 = bits.Add64(x654, x689, uint64(p521Uint1(x707)))
	var x710 uint64
	var x711 uint64
	x711, x710 = bits.Mul64(x690, 0x1ff)
	var x712 uint64
	var x713 uint64
	x713, x712 = bits.Mul64(x690, 0xffffffffffffffff)
	var x714 uint64
	var x715 uint64
	x715, x714 = bits.Mul64(x690, 0xffffffffffffffff)
	var x716 uint64
	var x717 uint64
	x717, x716 = bits.Mul64(x690, 0xffffffffffffffff)
	var x718 uint64
	var x719 uint64
	x719, x718 = bits.Mul64(x690, 0xffffffffffffffff)
	var x720 uint64
	var x721 uint64
	x721, x720 = bits.Mul64(x690, 0xffffffffffffffff)
	var x722 uint64
	var x723 uint64
	x723, x722 = bits.Mul64(x690, 0xffffffffffffffff)
	var x724 uint64
	var x725 uint64
	x725, x724 = bits.Mul64(x690, 0xffffffffffffffff)
	var x726 uint64
	var x727 uint64
	x727, x726 = bits.Mul64(x690, 0xffffffffffffffff)
	var x728 uint64
	var x729 uint64
	x728, x729 = bits.Add64(x727, x724, uint64(0x0))
	var x730 uint64
	var x731 uint64
	x730, x731 = bits.Add64(x725, x722, uint64(p521Uint1(x729)))
	var x732 uint64
	var x733 uint64
	x732, x733 = bits.Add64(x723, x720, uint64(p521Uint1(x731)))
	var x734 uint64
	var x735 uint64
	x734, x735 = bits.Add64(x721, x718, uint64(p521Uint1(x733)))
	var x736 uint64
	var x737 uint64
	x736, x737 = bits.Add64(x719, x716, uint64(p521Uint1(x735)))
	var x738 uint64
	var x739 uint64
	x738, x739 = bits.Add64(x717, x714, uint64(p521Uint1(x737)))
	var x740 uint64
	var x741 uint64
	x740, x741 = bits.Add64(x715, x712, uint64(p521Uint1(x739)))
	var x742 uint64
	var x743 uint64
	x742, x743 = bits.Add64(x713, x710, uint64(p521Uint1(x741)))
	x744 := (uint64(p521Uint1(x743)) + x711)
	var x746 uint64
	_, x746 = bits.Add64(x690, x726, uint64(0x0))
	var x747 uint64
	var x748 uint64
	x747, x748 = bits.Add64(x692, x728, uint64(p521Uint1(x746)))
	var x749 uint64
	var x750 uint64
	x749, x750 = bits.Add64(x694, x730, uint64(p521Uint1(x748)))
	var x751 uint64
	var x752 uint64
	x751, x752 = bits.Add64(x696, x732, uint64(p521Uint1(x750)))
	var x753 uint64
	var x754 uint64
	x753, x754 = bits.Add64(x698, x734, uint64(p521Uint1(x752)))
	var x755 uint64
	var x756 uint64
	x755, x756 = bits.Add64(x700, x736, uint64(p521Uint1(x754)))
	var x757 uint64
	var x758 uint64
	x757, x758 = bits.Add64(x702, x738, uint64(p521Uint1(x756)))
	var x759 uint64
	var x760 uint64
	x759, x760 = bits.Add64(x704, x740, uint64(p521Uint1(x758)))
	var x761 uint64
	var x762 uint64
	x761, x762 = bits.Add64(x706, x742, uint64(p521Uint1(x760)))
	var x763 uint64
	var x764 uint64
	x763, x764 = bits.Add64(x708, x744, uint64(p521Uint1(x762)))
	x765 := (uint64(p521Uint1(x764)) + uint64(p521Uint1(x709)))
	var x766 uint64
	var x767 uint64
	x767, x766 = bits.Mul64(x7, arg2[8])
	var x768 uint64
	var x769 uint64
	x769, x768 = bits.Mul64(x7, arg2[7])
	var x770 uint64
	var x771 uint64
	x771, x770 = bits.Mul64(x7, arg2[6])
	var x772 uint64
	var x773 uint64
	x773, x772 = bits.Mul64(x7, arg2[5])
	var x774 uint64
	var x775 uint64
	x775, x774 = bits.Mul64(x7, arg2[4])
	var x776 uint64
	var x777 uint64
	x777, x776 = bits.Mul64(x7, arg2[3])
	var x778 uint64
	var x779 uint64
	x779, x778 = bits.Mul64(x7, arg2[2])
	var x780 uint64
	var x781 uint64
	x781, x780 = bits.Mul64(x7, arg2[1])
	var x782 uint64
	var x783 uint64
	x783, x782 = bits.Mul64(x7, arg2[0])
	var x784 uint64
	var x785 uint64
	x784, x785 = bits.Add64(x783, x780, uint64(0x0))
	var x786 uint64
	var x787 uint64
	x786, x787 = bits.Add64(x781, x778, uint64(p521Uint1(x785)))
	var x788 uint64
	var x789 uint64
	x788, x789 = bits.Add64(x779, x776, uint64(p521Uint1(x787)))
	var x790 uint64
	var x791 uint64
	x790, x791 = bits.Add64(x777, x774, uint64(p521Uint1(x789)))
	var x792 uint64
	var x793 uint64
	x792, x793 = bits.Add64(x775, x772, uint64(p521Uint1(x791)))
	var x794 uint64
	var x795 uint64
	x794, x795 = bits.Add64(x773, x770, uint64(p521Uint1(x793)))
	var x796 uint64
	var x797 uint64
	x796, x797 = bits.Add64(x771, x768, uint64(p521Uint1(x795)))
	var x798 uint64
	var x799 uint64
	x798, x799 = bits.Add64(x769, x766, uint64(p521Uint1(x797)))
	x800 := (uint64(p521Uint1(x799)) + x767)
	var x801 uint64
	var x802 uint64
	x801, x802 = bits.Add64(x747, x782, uint64(0x0))
	var x803 uint64
	var x804 uint64
	x803, x804 = bits.Add64(x749, x784, uint64(p521Uint1(x802)))
	var x805 uint64
	var x806 uint64
	x805, x806 = bits.Add64(x751, x786, uint64(p521Uint1(x804)))
	var x807 uint64
	var x808 uint64
	x807, x808 = bits.Add64(x753, x788, uint64(p521Uint1(x806)))
	var x809 uint64
	var x810 uint64
	x809, x810 = bits.Add64(x755, x790, uint64(p521Uint1(x808)))
	var x811 uint64
	var x812 uint64
	x811, x812 = bits.Add64(x757, x792, uint64(p521Uint1(x810)))
	var x813 uint64
	var x814 uint64
	x813, x814 = bits.Add64(x759, x794, uint64(p521Uint1(x812)))
	var x815 uint64
	var x816 uint64
	x815, x816 = bits.Add64(x761, x796, uint64(p521Uint1(x814)))
	var x817 uint64
	var x818 uint64
	x817, x818 = bits.Add64(x763, x798, uint64(p521Uint1(x816)))
	var x819 uint64
	var x820 uint64
	x819, x820 = bits.Add64(x765, x800, uint64(p521Uint1(x818)))
	var x821 uint64
	var x822 uint64
	x822, x821 = bits.Mul64(x801, 0x1ff)
	var x823 uint64
	var x824 uint64
	x824, x823 = bits.Mul64(x801, 0xffffffffffffffff)
	var x825 uint64
	var x826 uint64
	x826, x825 = bits.Mul64(x801, 0xffffffffffffffff)
	var x827 uint64
	var x828 uint64
	x828, x827 = bits.Mul64(x801, 0xffffffffffffffff)
	var x829 uint64
	var x830 uint64
	x830, x829 = bits.Mul64(x801, 0xffffffffffffffff)
	var x831 uint64
	var x832 uint64
	x832, x831 = bits.Mul64(x801, 0xffffffffffffffff)
	var x833 uint64
	var x834 uint64
	x834, x833 = bits.Mul64(x801, 0xffffffffffffffff)
	var x835 uint64
	var x836 uint64
	x836, x835 = bits.Mul64(x801, 0xffffffffffffffff)
	var x837 uint64
	var x838 uint64
	x838, x837 = bits.Mul64(x801, 0xffffffffffffffff)
	var x839 uint64
	var x840 uint64
	x839, x840 = bits.Add64(x838, x835, uint64(0x0))
	var x841 uint64
	var x842 uint64
	x841, x842 = bits.Add64(x836, x833, uint64(p521Uint1(x840)))
	var x843 uint64
	var x844 uint64
	x843, x844 = bits.Add64(x834, x831, uint64(p521Uint1(x842)))
	var x845 uint64
	var x846 uint64
	x845, x846 = bits.Add64(x832, x829, uint64(p521Uint1(x844)))
	var x847 uint64
	var x848 uint64
	x847, x848 = bits.Add64(x830, x827, uint64(p521Uint1(x846)))
	var x849 uint64
	var x850 uint64
	x849, x850 = bits.Add64(x828, x825, uint64(p521Uint1(x848)))
	var x851 uint64
	var x852 uint64
	x851, x852 = bits.Add64(x826, x823, uint64(p521Uint1(x850)))
	var x853 uint64
	var x854 uint64
	x853, x854 = bits.Add64(x824, x821, uint64(p521Uint1(x852)))
	x855 := (uint64(p521Uint1(x854)) + x822)
	var x857 uint64
	_, x857 = bits.Add64(x801, x837, uint64(0x0))
	var x858 uint64
	var x859 uint64
	x858, x859 = bits.Add64(x803, x839, uint64(p521Uint1(x857)))
	var x860 uint64
	var x861 uint64
	x860, x861 = bits.Add64(x805, x841, uint64(p521Uint1(x859)))
	var x862 uint64
	var x863 uint64
	x862, x863 = bits.Add64(x807, x843, uint64(p521Uint1(x861)))
	var x864 uint64
	var x865 uint64
	x864, x865 = bits.Add64(x809, x845, uint64(p521Uint1(x863)))
	var x866 uint64
	var x867 uint64
	x866, x867 = bits.Add64(x811, x847, uint64(p521Uint1(x865)))
	var x868 uint64
	var x869 uint64
	x868, x869 = bits.Add64(x813, x849, uint64(p521Uint1(x867)))
	var x870 uint64
	var x871 uint64
	x870, x871 = bits.Add64(x815, x851, uint64(p521Uint1(x869)))
	var x872 uint64
	var x873 uint64
	x872, x873 = bits.Add64(x817, x853, uint64(p521Uint1(x871)))
	var x874 uint64
	var x875 uint64
	x874, x875 = bits.Add64(x819, x855, uint64(p521Uint1(x873)))
	x876 := (uint64(p521Uint1(x875)) + uint64(p521Uint1(x820)))
	var x877 uint64
	var x878 uint64
	x878, x877 = bits.Mul64(x8, arg2[8])
	var x879 uint64
	var x880 uint64
	x880, x879 = bits.Mul64(x8, arg2[7])
	var x881 uint64
	var x882 uint64
	x882, x881 = bits.Mul64(x8, arg2[6])
	var x883 uint64
	var x884 uint64
	x884, x883 = bits.Mul64(x8, arg2[5])
	var x885 uint64
	var x886 uint64
	x886, x885 = bits.Mul64(x8, arg2[4])
	var x887 uint64
	var x888 uint64
	x888, x887 = bits.Mul64(x8, arg2[3])
	var x889 uint64
	var x890 uint64
	x890, x889 = bits.Mul64(x8, arg2[2])
	var x891 uint64
	var x892 uint64
	x892, x891 = bits.Mul64(x8, arg2[1])
	var x893 uint64
	var x894 uint64
	x894, x893 = bits.Mul64(x8, arg2[0])
	var x895 uint64
	var x896 uint64
	x895, x896 = bits.Add64(x894, x891, uint64(0x0))
	var x897 uint64
	var x898 uint64
	x897, x898 = bits.Add64(x892, x889, uint64(p521Uint1(x896)))
	var x899 uint64
	var x900 uint64
	x899, x900 = bits.Add64(x890, x887, uint64(p521Uint1(x898)))
	var x901 uint64
	var x902 uint64
	x901, x902 = bits.Add64(x888, x885, uint64(p521Uint1(x900)))
	var x903 uint64
	var x904 uint64
	x903, x904 = bits.Add64(x886, x883, uint64(p521Uint1(x902)))
	var x905 uint64
	var x906 uint64
	x905, x906 = bits.Add64(x884, x881, uint64(p521Uint1(x904)))
	var x907 uint64
	var x908 uint64
	x907, x908 = bits.Add64(x882, x879, uint64(p521Uint1(x906)))
	var x909 uint64
	var x910 uint64
	x909, x910 = bits.Add64(x880, x877, uint64(p521Uint1(x908)))
	x911 := (uint64(p521Uint1(x910)) + x878)
	var x912 uint64
	var x913 uint64
	x912, x913 = bits.Add64(x858, x893, uint64(0x0))
	var x914 uint64
	var x915 uint64
	x914, x915 = bits.Add64(x860, x895, uint64(p521Uint1(x913)))
	var x916 uint64
	var x917 uint64
	x916, x917 = bits.Add64(x862, x897, uint64(p521Uint1(x915)))
	var x918 uint64
	var x919 uint64
	x918, x919 = bits.Add64(x864, x899, uint64(p521Uint1(x917)))
	var x920 uint64
	var x921 uint64
	x920, x921 = bits.Add64(x866, x901, uint64(p521Uint1(x919)))
	var x922 uint64
	var x923 uint64
	x922, x923 = bits.Add64(x868, x903, uint64(p521Uint1(x921)))
	var x924 uint64
	var x925 uint64
	x924, x925 = bits.Add64(x870, x905, uint64(p521Uint1(x923)))
	var x926 uint64
	var x927 uint64
	x926, x927 = bits.Add64(x872, x907, uint64(p521Uint1(x925)))
	var x928 uint64
	var x929 uint64
	x928, x929 = bits.Add64(x874, x909, uint64(p521Uint1(x927)))
	var x930 uint64
	var x931 uint64
	x930, x931 = bits.Add64(x876, x911, uint64(p521Uint1(x929)))
	var x932 uint64
	var x933 uint64
	x933, x932 = bits.Mul64(x912, 0x1ff)
	var x934 uint64
	var x935 uint64
	x935, x934 = bits.Mul64(x912, 0xffffffffffffffff)
	var x936 uint64
	var x937 uint64
	x937, x936 = bits.Mul64(x912, 0xffffffffffffffff)
	var x938 uint64
	var x939 uint64
	x939, x938 = bits.Mul64(x912, 0xffffffffffffffff)
	var x940 uint64
	var x941 uint64
	x941, x940 = bits.Mul64(x912, 0xffffffffffffffff)
	var x942 uint64
	var x943 uint64
	x943, x942 = bits.Mul64(x912, 0xffffffffffffffff)
	var x944 uint64
	var x945 uint64
	x945, x944 = bits.Mul64(x912, 0xffffffffffffffff)
	var x946 uint64
	var x947 uint64
	x947, x946 = bits.Mul64(x912, 0xffffffffffffffff)
	var x948 uint64
	var x949 uint64
	x949, x948 = bits.Mul64(x912, 0xffffffffffffffff)
	var x950 uint64
	var x951 uint64
	x950, x951 = bits.Add64(x949, x946, uint64(0x0))
	var x952 uint64
	var x953 uint64
	x952, x953 = bits.Add64(x947, x944, uint64(p521Uint1(x951)))
	var x954 uint64
	var x955 uint64
	x954, x955 = bits.Add64(x945, x942, uint64(p521Uint1(x953)))
	var x956 uint64
	var x957 uint64
	x956, x957 = bits.Add64(x943, x940, uint64(p521Uint1(x955)))
	var x958 uint64
	var x959 uint64
	x958, x959 = bits.Add64(x941, x938, uint64(p521Uint1(x957)))
	var x960 uint64
	var x961 uint64
	x960, x961 = bits.Add64(x939, x936, uint64(p521Uint1(x959)))
	var x962 uint64
	var x963 uint64
	x962, x963 = bits.Add64(x937, x934, uint64(p521Uint1(x961)))
	var x964 uint64
	var x965 uint64
	x964, x965 = bits.Add64(x935, x932, uint64(p521Uint1(x963)))
	x966 := (uint64(p521Uint1(x965)) + x933)
	var x968 uint64
	_, x968 = bits.Add64(x912, x948, uint64(0x0))
	var x969 uint64
	var x970 uint64
	x969, x970 = bits.Add64(x914, x950, uint64(p521Uint1(x968)))
	var x971 uint64
	var x972 uint64
	x971, x972 = bits.Add64(x916, x952, uint64(p521Uint1(x970)))
	var x973 uint64
	var x974 uint64
	x973, x974 = bits.Add64(x918, x954, uint64(p521Uint1(x972)))
	var x975 uint64
	var x976 uint64
	x975, x976 = bits.Add64(x920, x956, uint64(p521Uint1(x974)))
	var x977 uint64
	var x978 uint64
	x977, x978 = bits.Add64(x922, x958, uint64(p521Uint1(x976)))
	var x979 uint64
	var x980 uint64
	x979, x980 = bits.Add64(x924, x960, uint64(p521Uint1(x978)))
	var x981 uint64
	var x982 uint64
	x981, x982 = bits.Add64(x926, x962, uint64(p521Uint1(x980)))
	var x983 uint64
	var x984 uint64
	x983, x984 = bits.Add64(x928, x964, uint64(p521Uint1(x982)))
	var x985 uint64
	var x986 uint64
	x985, x986 = bits.Add64(x930, x966, uint64(p521Uint1(x984)))
	x987 := (uint64(p521Uint1(x986)) + uint64(p521Uint1(x931)))
	var x988 uint64
	var x989 uint64
	x988, x989 = bits.Sub64(x969, 0xffffffffffffffff, uint64(0x0))
	var x990 uint64
	var x991 uint64
	x990, x991 = bits.Sub64(x971, 0xffffffffffffffff, uint64(p521Uint1(x989)))
	var x992 uint64
	var x993 uint64
	x992, x993 = bits.Sub64(x973, 0xffffffffffffffff, uint64(p521Uint1(x991)))
	var x994 uint64
	var x995 uint64
	x994, x995 = bits.Sub64(x975, 0xffffffffffffffff, uint64(p521Uint1(x993)))
	var x996 uint64
	var x997 uint64
	x996, x997 = bits.Sub64(x977, 0xffffffffffffffff, uint64(p521Uint1(x995)))
	var x998 uint64
	var x999 uint64
	x998, x999 = bits.Sub64(x979, 0xffffffffffffffff, uint64(p521Uint1(x997)))
	var x1000 uint64
	var x1001 uint64
	x1000, x1001 = bits.Sub64(x981, 0xffffffffffffffff, uint64(p521Uint1(x999)))
	var x1002 uint64
	var x1003 uint64
	x1002, x1003 = bits.Sub64(x983, 0xffffffffffffffff, uint64(p521Uint1(x1001)))
	var x1004 uint64
	var x1005 uint64
	x1004, x1005 = bits.Sub64(x985, 0x1ff, uint64(p521Uint1(x1003)))
	var x1007 uint64
	_, x1007 = bits.Sub64(x987, uint64(0x0), uint64(p521Uint1(x1005)))
	var x1008 uint64
	p521CmovznzU64(&x1008, p521Uint1(x1007), x988, x969)
	var x1009 uint64
	p521CmovznzU64(&x1009, p521Uint1(x1007), x990, x971)
	var x1010 uint64
	p521CmovznzU64(&x1010, p521Uint1(x1007), x992, x973)
	var x1011 uint64
	p521CmovznzU64(&x1011, p521Uint1(x1007), x994, x975)
	var x1012 uint64
	p521CmovznzU64(&x1012, p521Uint1(x1007), x996, x977)
	var x1013 uint64
	p521CmovznzU64(&x1013, p521Uint1(x1007), x998, x979)
	var x1014 uint64
	p521CmovznzU64(&x1014, p521Uint1(x1007), x1000, x981)
	var x1015 uint64
	p521CmovznzU64(&x1015, p521Uint1(x1007), x1002, x983)
	var x1016 uint64
	p521CmovznzU64(&x1016, p521Uint1(x1007), x1004, x985)
	out1[0] = x1008
	out1[1] = x1009
	out1[2] = x1010
	out1[3] = x1011
	out1[4] = x1012
	out1[5] = x1013
	out1[6] = x1014
	out1[7] = x1015
	out1[8] = x1016
}

// p521Square squares a field element in the Montgomery domain.
//
// Preconditions:
//
//	0 ≤ eval arg1 < m
//
// Postconditions:
//
//	eval (from_montgomery out1) mod m = (eval (from_montgomery arg1) * eval (from_montgomery arg1)) mod m
//	0 ≤ eval out1 < m
func p521Square(out1 *p521MontgomeryDomainFieldElement, arg1 *p521MontgomeryDomainFieldElement) {
	x1 := arg1[1]
	x2 := arg1[2]
	x3 := arg1[3]
	x4 := arg1[4]
	x5 := arg1[5]
	x6 := arg1[6]
	x7 := arg1[7]
	x8 := arg1[8]
	x9 := arg1[0]
	var x10 uint64
	var x11 uint64
	x11, x10 = bits.Mul64(x9, arg1[8])
	var x12 uint64
	var x13 uint64
	x13, x12 = bits.Mul64(x9, arg1[7])
	var x14 uint64
	var x15 uint64
	x15, x14 = bits.Mul64(x9, arg1[6])
	var x16 uint64
	var x17 uint64
	x17, x16 = bits.Mul64(x9, arg1[5])
	var x18 uint64
	var x19 uint64
	x19, x18 = bits.Mul64(x9, arg1[4])
	var x20 uint64
	var x21 uint64
	x21, x20 = bits.Mul64(x9, arg1[3])
	var x22 uint64
	var x23 uint64
	x23, x22 = bits.Mul64(x9, arg1[2])
	var x24 uint64
	var x25 uint64
	x25, x24 = bits.Mul64(x9, arg1[1])
	var x26 uint64
	var x27 uint64
	x27, x26 = bits.Mul64(x9, arg1[0])
	var x28 uint64
	var x29 uint64
	x28, x29 = bits.Add64(x27, x24, uint64(0x0))
	var x30 uint64
	var x31 uint64
	x30, x31 = bits.Add64(x25, x22, uint64(p521Uint1(x29)))
	var x32 uint64
	var x33 uint64
	x32, x33 = bits.Add64(x23, x20, uint64(p521Uint1(x31)))
	var x34 uint64
	var x35 uint64
	x34, x35 = bits.Add64(x21, x18, uint64(p521Uint1(x33)))
	var x36 uint64
	var x37 uint64
	x36, x37 = bits.Add64(x19, x16, uint64(p521Uint1(x35)))
	var x38 uint64
	var x39 uint64
	x38, x39 = bits.Add64(x17, x14, uint64(p521Uint1(x37)))
	var x40 uint64
	var x41 uint64
	x40, x41 = bits.Add64(x15, x12, uint64(p521Uint1(x39)))
	var x42 uint64
	var x43 uint64
	x42, x43 = bits.Add64(x13, x10, uint64(p521Uint1(x41)))
	x44 := (uint64(p521Uint1(x43)) + x11)
	var x45 uint64
	var x46 uint64
	x46, x45 = bits.Mul64(x26, 0x1ff)
	var x47 uint64
	var x48 uint64
	x48, x47 = bits.Mul64(x26, 0xffffffffffffffff)
	var x49 uint64
	var x50 uint64
	x50, x49 = bits.Mul64(x26, 0xffffffffffffffff)
	var x51 uint64
	var x52 uint64
	x52, x51 = bits.Mul64(x26, 0xffffffffffffffff)
	var x53 uint64
	var x54 uint64
	x54, x53 = bits.Mul64(x26, 0xffffffffffffffff)
	var x55 uint64
	var x56 uint64
	x56, x55 = bits.Mul64(x26, 0xffffffffffffffff)
	var x57 uint64
	var x58 uint64
	x58, x57 = bits.Mul64(x26, 0xffffffffffffffff)
	var x59 uint64
	var x60 uint64
	x60, x59 = bits.Mul64(x26, 0xffffffffffffffff)
	var x61 uint64
	var x62 uint64
	x62, x61 = bits.Mul64(x26, 0xffffffffffffffff)
	var x63 uint64
	var x64 uint64
	x63, x64 = bits.Add64(x62, x59, uint64(0x0))
	var x65 uint64
	var x66 uint64
	x65, x66 = bits.Add64(x60, x57, uint64(p521Uint1(x64)))
	var x67 uint64
	var x68 uint64
	x67, x68 = bits.Add64(x58, x55, uint64(p521Uint1(x66)))
	var x69 uint64
	var x70 uint64
	x69, x70 = bits.Add64(x56, x53, uint64(p521Uint1(x68)))
	var x71 uint64
	var x72 uint64
	x71, x72 = bits.Add64(x54, x51, uint64(p521Uint1(x70)))
	var x73 uint64
	var x74 uint64
	x73, x74 = bits.Add64(x52, x49, uint64(p521Uint1(x72)))
	var x75 uint64
	var x76 uint64
	x75, x76 = bits.Add64(x50, x47, uint64(p521Uint1(x74)))
	var x77 uint64
	var x78 uint64
	x77, x78 = bits.Add64(x48, x45, uint64(p521Uint1(x76)))
	x79 := (uint64(p521Uint1(x78)) + x46)
	var x81 uint64
	_, x81 = bits.Add64(x26, x61, uint64(0x0))
	var x82 uint64
	var x83 uint64
	x82, x83 = bits.Add64(x28, x63, uint64(p521Uint1(x81)))
	var x84 uint64
	var x85 uint64
	x84, x85 = bits.Add64(x30, x65, uint64(p521Uint1(x83)))
	var x86 uint64
	var x87 uint64
	x86, x87 = bits.Add64(x32, x67, uint64(p521Uint1(x85)))
	var x88 uint64
	var x89 uint64
	x88, x89 = bits.Add64(x34, x69, uint64(p521Uint1(x87)))
	var x90 uint64
	var x91 uint64
	x90, x91 = bits.Add64(x36, x71, uint64(p521Uint1(x89)))
	var x92 uint64
	var x93 uint64
	x92, x93 = bits.Add64(x38, x73, uint64(p521Uint1(x91)))
	var x94 uint64
	var x95 uint64
	x94, x95 = bits.Add64(x40, x75, uint64(p521Uint1(x93)))
	var x96 uint64
	var x97 uint64
	x96, x97 = bits.Add64(x42, x77, uint64(p521Uint1(x95)))
	var x98 uint64
	var x99 uint64
	x98, x99 = bits.Add64(x44, x79, uint64(p521Uint1(x97)))
	var x100 uint64
	var x101 uint64
	x101, x100 = bits.Mul64(x1, arg1[8])
	var x102 uint64
	var x103 uint64
	x103, x102 = bits.Mul64(x1, arg1[7])
	var x104 uint64
	var x105 uint64
	x105, x104 = bits.Mul64(x1, arg1[6])
	var x106 uint64
	var x107 uint64
	x107, x106 = bits.Mul64(x1, arg1[5])
	var x108 uint64
	var x109 uint64
	x109, x108 = bits.Mul64(x1, arg1[4])
	var x110 uint64
	var x111 uint64
	x111, x110 = bits.Mul64(x1, arg1[3])
	var x112 uint64
	var x113 uint64
	x113, x112 = bits.Mul64(x1, arg1[2])
	var x114 uint64
	var x115 uint64
	x115, x114 = bits.Mul64(x1, arg1[1])
	var x116 uint64
	var x117 uint64
	x117, x116 = bits.Mul64(x1, arg1[0])
	var x118 uint64
	var x119 uint64
	x118, x119 = bits.Add64(x117, x114, uint64(0x0))
	var x120 uint64
	var x121 uint64
	x120, x121 = bits.Add64(x115, x112, uint64(p521Uint1(x119)))
	var x122 uint64
	var x123 uint64
	x122, x123 = bits.Add64(x113, x110, uint64(p521Uint1(x121)))
	var x124 uint64
	var x125 uint64
	x124, x125 = bits.Add64(x111, x108, uint64(p521Uint1(x123)))
	var x126 uint64
	var x127 uint64
	x126, x127 = bits.Add64(x109, x106, uint64(p521Uint1(x125)))
	var x128 uint64
	var x129 uint64
	x128, x129 = bits.Add64(x107, x104, uint64(p521Uint1(x127)))
	var x130 uint64
	var x131 uint64
	x130, x131 = bits.Add64(x105, x102, uint64(p521Uint1(x129)))
	var x132 uint64
	var x133 uint64
	x132, x133 = bits.Add64(x103, x100, uint64(p521Uint1(x131)))
	x134 := (uint64(p521Uint1(x133)) + x101)
	var x135 uint64
	var x136 uint64
	x135, x136 = bits.Add64(x82, x116, uint64(0x0))
	var x137 uint64
	var x138 uint64
	x137, x138 = bits.Add64(x84, x118, uint64(p521Uint1(x136)))
	var x139 uint64
	var x140 uint64
	x139, x140 = bits.Add64(x86, x120, uint64(p521Uint1(x138)))
	var x141 uint64
	var x142 uint64
	x141, x142 = bits.Add64(x88, x122, uint64(p521Uint1(x140)))
	var x143 uint64
	var x144 uint64
	x143, x144 = bits.Add64(x90, x124, uint64(p521Uint1(x142)))
	var x145 uint64
	var x146 uint64
	x145, x146 = bits.Add64(x92, x126, uint64(p521Uint1(x144)))
	var x147 uint64
	var x148 uint64
	x147, x148 = bits.Add64(x94, x128, uint64(p521Uint1(x146)))
	var x149 uint64
	var x150 uint64
	x149, x150 = bits.Add64(x96, x130, uint64(p521Uint1(x148)))
	var x151 uint64
	var x152 uint64
	x151, x152 = bits.Add64(x98, x132, uint64(p521Uint1(x150)))
	var x153 uint64
	var x154 uint64
	x153, x154 = bits.Add64(uint64(p521Uint1(x99)), x134, uint64(p521Uint1(x152)))
	var x155 uint64
	var x156 uint64
	x156, x155 = bits.Mul64(x135, 0x1ff)
	var x157 uint64
	var x158 uint64
	x158, x157 = bits.Mul64(x135, 0xffffffffffffffff)
	var x159 uint64
	var x160 uint64
	x160, x159 = bits.Mul64(x135, 0xffffffffffffffff)
	var x161 uint64
	var x162 uint64
	x162, x161 = bits.Mul64(x135, 0xffffffffffffffff)
	var x163 uint64
	var x164 uint64
	x164, x163 = bits.Mul64(x135, 0xffffffffffffffff)
	var x165 uint64
	var x166 uint64
	x166, x165 = bits.Mul64(x135, 0xffffffffffffffff)
	var x167 uint64
	var x168 uint64
	x168, x167 = bits.Mul64(x135, 0xffffffffffffffff)
	var x169 uint64
	var x170 uint64
	x170, x169 = bits.Mul64(x135, 0xffffffffffffffff)
	var x171 uint64
	var x172 uint64
	x172, x171 = bits.Mul64(x135, 0xffffffffffffffff)
	var x173 uint64
	var x174 uint64
	x173, x174 = bits.Add64(x172, x169, uint64(0x0))
	var x175 uint64
	var x176 uint64
	x175, x176 = bits.Add64(x170, x167, uint64(p521Uint1(x174)))
	var x177 uint64
	var x178 uint64
	x177, x178 = bits.Add64(x168, x165, uint64(p521Uint1(x176)))
	var x179 uint64
	var x180 uint64
	x179, x180 = bits.Add64(x166, x163, uint64(p521Uint1(x178)))
	var x181 uint64
	var x182 uint64
	x181, x182 = bits.Add64(x164, x161, uint64(p521Uint1(x180)))
	var x183 uint64
	var x184 uint64
	x183, x184 = bits.Add64(x162, x159, uint64(p521Uint1(x182)))
	var x185 uint64
	var x186 uint64
	x185, x186 = bits.Add64(x160, x157, uint64(p521Uint1(x184)))
	var x187 uint64
	var x188 uint64
	x187, x188 = bits.Add64(x158, x155, uint64(p521Uint1(x186)))
	x189 := (uint64(p521Uint1(x188)) + x156)
	var x191 uint64
	_, x191 = bits.Add64(x135, x171, uint64(0x0))
	var x192 uint64
	var x193 uint64
	x192, x193 = bits.Add64(x137, x173, uint64(p521Uint1(x191)))
	var x194 uint64
	var x195 uint64
	x194, x195 = bits.Add64(x139, x175, uint64(p521Uint1(x193)))
	var x196 uint64
	var x197 uint64
	x196, x197 = bits.Add64(x141, x177, uint64(p521Uint1(x195)))
	var x198 uint64
	var x199 uint64
	x198, x199 = bits.Add64(x143, x179, uint64(p521Uint1(x197)))
	var x200 uint64
	var x201 uint64
	x200, x201 = bits.Add64(x145, x181, uint64(p521Uint1(x199)))
	var x202 uint64
	var x203 uint64
	x202, x203 = bits.Add64(x147, x183, uint64(p521Uint1(x201)))
	var x204 uint64
	var x205 uint64
	x204, x205 = bits.Add64(x149, x185, uint64(p521Uint1(x203)))
	var x206 uint64
	var x207 uint64
	x206, x207 = bits.Add64(x151, x187, uint64(p521Uint1(x205)))
	var x208 uint64
	var x209 uint64
	x208, x209 = bits.Add64(x153, x189, uint64(p521Uint1(x207)))
	x210 := (uint64(p521Uint1(x209)) + uint64(p521Uint1(x154)))
	var x211 uint64
	var x212 uint64
	x212, x211 = bits.Mul64(x2, arg1[8])
	var x213 uint64
	var x214 uint64
	x214, x213 = bits.Mul64(x2, arg1[7])
	var x215 uint64
	var x216 uint64
	x216, x215 = bits.Mul64(x2, arg1[6])
	var x217 uint64
	var x218 uint64
	x218, x217 = bits.Mul64(x2, arg1[5])
	var x219 uint64
	var x220 uint64
	x220, x219 = bits.Mul64(x2, arg1[4])
	var x221 uint64
	var x222 uint64
	x222, x221 = bits.Mul64(x2, arg1[3])
	var x223 uint64
	var x224 uint64
	x224, x223 = bits.Mul64(x2, arg1[2])
	var x225 uint64
	var x226 uint64
	x226, x225 = bits.Mul64(x2, arg1[1])
	var x227 uint64
	var x228 uint64
	x228, x227 = bits.Mul64(x2, arg1[0])
	var x229 uint64
	var x230 uint64
	x229, x230 = bits.Add64(x228, x225, uint64(0x0))
	var x231 uint64
	var x232 uint64
	x231, x232 = bits.Add64(x226, x223, uint64(p521Uint1(x230)))
	var x233 uint64
	var x234 uint64
	x233, x234 = bits.Add64(x224, x221, uint64(p521Uint1(x232)))
	var x235 uint64
	var x236 uint64
	x235, x236 = bits.Add64(x222, x219, uint64(p521Uint1(x234)))
	var x237 uint64
	var x238 uint64
	x237, x238 = bits.Add64(x220, x217, uint64(p521Uint1(x236)))
	var x239 uint64
	var x240 uint64
	x239, x240 = bits.Add64(x218, x215, uint64(p521Uint1(x238)))
	var x241 uint64
	var x242 uint64
	x241, x242 = bits.Add64(x216, x213, uint64(p521Uint1(x240)))
	var x243 uint64
	var x244 uint64
	x243, x244 = bits.Add64(x214, x211, uint64(p521Uint1(x242)))
	x245 := (uint64(p521Uint1(x244)) + x212)
	var x246 uint64
	var x247 uint64
	x246, x247 = bits.Add64(x192, x227, uint64(0x0))
	var x248 uint64
	var x249 uint64
	x248, x249 = bits.Add64(x194, x229, uint64(p521Uint1(x247)))
	var x250 uint64
	var x251 uint64
	x250, x251 = bits.Add64(x196, x231, uint64(p521Uint1(x249)))
	var x252 uint64
	var x253 uint64
	x252, x253 = bits.Add64(x198, x233, uint64(p521Uint1(x251)))
	var x254 uint64
	var x255 uint64
	x254, x255 = bits.Add64(x200, x235, uint64(p521Uint1(x253)))
	var x256 uint64
	var x257 uint64
	x256, x257 = bits.Add64(x202, x237, uint64(p521Uint1(x255)))
	var x258 uint64
	var x259 uint64
	x258, x259 = bits.Add64(x204, x239, uint64(p521Uint1(x257)))
	var x260 uint64
	var x261 uint64
	x260, x261 = bits.Add64(x206, x241, uint64(p521Uint1(x259)))
	var x262 uint64
	var x263 uint64
	x262, x263 = bits.Add64(x208, x243, uint64(p521Uint1(x261)))
	var x264 uint64
	var x265 uint64
	x264, x265 = bits.Add64(x210, x245, uint64(p521Uint1(x263)))
	var x266 uint64
	var x267 uint64
	x267, x266 = bits.Mul64(x246, 0x1ff)
	var x268 uint64
	var x269 uint64
	x269, x268 = bits.Mul64(x246, 0xffffffffffffffff)
	var x270 uint64
	var x271 uint64
	x271, x270 = bits.Mul64(x246, 0xffffffffffffffff)
	var x272 uint64
	var x273 uint64
	x273, x272 = bits.Mul64(x246, 0xffffffffffffffff)
	var x274 uint64
	var x275 uint64
	x275, x274 = bits.Mul64(x246, 0xffffffffffffffff)
	var x276 uint64
	var x277 uint64
	x277, x276 = bits.Mul64(x246, 0xffffffffffffffff)
	var x278 uint64
	var x279 uint64
	x279, x278 = bits.Mul64(x246, 0xffffffffffffffff)
	var x280 uint64
	var x281 uint64
	x281, x280 = bits.Mul64(x246, 0xffffffffffffffff)
	var x282 uint64
	var x283 uint64
	x283, x282 = bits.Mul64(x246, 0xffffffffffffffff)
	var x284 uint64
	var x285 uint64
	x284, x285 = bits.Add64(x283, x280, uint64(0x0))
	var x286 uint64
	var x287 uint64
	x286, x287 = bits.Add64(x281, x278, uint64(p521Uint1(x285)))
	var x288 uint64
	var x289 uint64
	x288, x289 = bits.Add64(x279, x276, uint64(p521Uint1(x287)))
	var x290 uint64
	var x291 uint64
	x290, x291 = bits.Add64(x277, x274, uint64(p521Uint1(x289)))
	var x292 uint64
	var x293 uint64
	x292, x293 = bits.Add64(x275, x272, uint64(p521Uint1(x291)))
	var x294 uint64
	var x295 uint64
	x294, x295 = bits.Add64(x273, x270, uint64(p521Uint1(x293)))
	var x296 uint64
	var x297 uint64
	x296, x297 = bits.Add64(x271, x268, uint64(p521Uint1(x295)))
	var x298 uint64
	var x299 uint64
	x298, x299 = bits.Add64(x269, x266, uint64(p521Uint1(x297)))
	x300 := (uint64(p521Uint1(x299)) + x267)
	var x302 uint64
	_, x302 = bits.Add64(x246, x282, uint64(0x0))
	var x303 uint64
	var x304 uint64
	x303, x304 = bits.Add64(x248, x284, uint64(p521Uint1(x302)))
	var x305 uint64
	var x306 uint64
	x305, x306 = bits.Add64(x250, x286, uint64(p521Uint1(x304)))
	var x307 uint64
	var x308 uint64
	x307, x308 = bits.Add64(x252, x288, uint64(p521Uint1(x306)))
	var x309 uint64
	var x310 uint64
	x309, x310 = bits.Add64(x254, x290, uint64(p521Uint1(x308)))
	var x311 uint64
	var x312 uint64
	x311, x312 = bits.Add64(x256, x292, uint64(p521Uint1(x310)))
	var x313 uint64
	var x314 uint64
	x313, x314 = bits.Add64(x258, x294, uint64(p521Uint1(x312)))
	var x315 uint64
	var x316 uint64
	x315, x316 = bits.Add64(x260, x296, uint64(p521Uint1(x314)))
	var x317 uint64
	var x318 uint64
	x317, x318 = bits.Add64(x262, x298, uint64(p521Uint1(x316)))
	var x319 uint64
	var x320 uint64
	x319, x320 = bits.Add64(x264, x300, uint64(p521Uint1(x318)))
	x321 := (uint64(p521Uint1(x320)) + uint64(p521Uint1(x265)))
	var x322 uint64
	var x323 uint64
	x323, x322 = bits.Mul64(x3, arg1[8])
	var x324 uint64
	var x325 uint64
	x325, x324 = bits.Mul64(x3, arg1[7])
	var x326 uint64
	var x327 uint64
	x327, x326 = bits.Mul64(x3, arg1[6])
	var x328 uint64
	var x329 uint64
	x329, x328 = bits.Mul64(x3, arg1[5])
	var x330 uint64
	var x331 uint64
	x331, x330 = bits.Mul64(x3, arg1[4])
	var x332 uint64
	var x333 uint64
	x333, x332 = bits.Mul64(x3, arg1[3])
	var x334 uint64
	var x335 uint64
	x335, x334 = bits.Mul64(x3, arg1[2])
	var x336 uint64
	var x337 uint64
	x337, x336 = bits.Mul64(x3, arg1[1])
	var x338 uint64
	var x339 uint64
	x339, x338 = bits.Mul64(x3, arg1[0])
	var x340 uint64
	var x341 uint64
	x340, x341 = bits.Add64(x339, x336, uint64(0x0))
	var x342 uint64
	var x343 uint64
	x342, x343 = bits.Add64(x337, x334, uint64(p521Uint1(x341)))
	var x344 uint64
	var x345 uint64
	x344, x345 = bits.Add64(x335, x332, uint64(p521Uint1(x343)))
	var x346 uint64
	var x347 uint64
	x346, x347 = bits.Add64(x333, x330, uint64(p521Uint1(x345)))
	var x348 uint64
	var x349 uint64
	x348, x349 = bits.Add64(x331, x328, uint64(p521Uint1(x347)))
	var x350 uint64
	var x351 uint64
	x350, x351 = bits.Add64(x329, x326, uint64(p521Uint1(x349)))
	var x352 uint64
	var x353 uint64
	x352, x353 = bits.Add64(x327, x324, uint64(p521Uint1(x351)))
	var x354 uint64
	var x355 uint64
	x354, x355 = bits.Add64(x325, x322, uint64(p521Uint1(x353)))
	x356 := (uint64(p521Uint1(x355)) + x323)
	var x357 uint64
	var x358 uint64
	x357, x358 = bits.Add64(x303, x338, uint64(0x0))
	var x359 uint64
	var x360 uint64
	x359, x360 = bits.Add64(x305, x340, uint64(p521Uint1(x358)))
	var x361 uint64
	var x362 uint64
	x361, x362 = bits.Add64(x307, x342, uint64(p521Uint1(x360)))
	var x363 uint64
	var x364 uint64
	x363, x364 = bits.Add64(x309, x344, uint64(p521Uint1(x362)))
	var x365 uint64
	var x366 uint64
	x365, x366 = bits.Add64(x311, x346, uint64(p521Uint1(x364)))
	var x367 uint64
	var x368 uint64
	x367, x368 = bits.Add64(x313, x348, uint64(p521Uint1(x366)))
	var x369 uint64
	var x370 uint64
	x369, x370 = bits.Add64(x315, x350, uint64(p521Uint1(x368)))
	var x371 uint64
	var x372 uint64
	x371, x372 = bits.Add64(x317, x352, uint64(p521Uint1(x370)))
	var x373 uint64
	var x374 uint64
	x373, x374 = bits.Add64(x319, x354, uint64(p521Uint1(x372)))
	var x375 uint64
	var x376 uint64
	x375, x376 = bits.Add64(x321, x356, uint64(p521Uint1(x374)))
	var x377 uint64
	var x378 uint64
	x378, x377 = bits.Mul64(x357, 0x1ff)
	var x379 uint64
	var x380 uint64
	x380, x379 = bits.Mul64(x357, 0xffffffffffffffff)
	var x381 uint64
	var x382 uint64
	x382, x381 = bits.Mul64(x357, 0xffffffffffffffff)
	var x383 uint64
	var x384 uint64
	x384, x383 = bits.Mul64(x357, 0xffffffffffffffff)
	var x385 uint64
	var x386 uint64
	x386, x385 = bits.Mul64(x357, 0xffffffffffffffff)
	var x387 uint64
	var x388 uint64
	x388, x387 = bits.Mul64(x357, 0xffffffffffffffff)
	var x389 uint64
	var x390 uint64
	x390, x389 = bits.Mul64(x357, 0xffffffffffffffff)
	var x391 uint64
	var x392 uint64
	x392, x391 = bits.Mul64(x357, 0xffffffffffffffff)
	var x393 uint64
	var x394 uint64
	x394, x393 = bits.Mul64(x357, 0xffffffffffffffff)
	var x395 uint64
	var x396 uint64
	x395, x396 = bits.Add64(x394, x391, uint64(0x0))
	var x397 uint64
	var x398 uint64
	x397, x398 = bits.Add64(x392, x389, uint64(p521Uint1(x396)))
	var x399 uint64
	var x400 uint64
	x399, x400 = bits.Add64(x390, x387, uint64(p521Uint1(x398)))
	var x401 uint64
	var x402 uint64
	x401, x402 = bits.Add64(x388, x385, uint64(p521Uint1(x400)))
	var x403 uint64
	var x404 uint64
	x403, x404 = bits.Add64(x386, x383, uint64(p521Uint1(x402)))
	var x405 uint64
	var x406 uint64
	x405, x406 = bits.Add64(x384, x381, uint64(p521Uint1(x404)))
	var x407 uint64
	var x408 uint64
	x407, x408 = bits.Add64(x382, x379, uint64(p521Uint1(x406)))
	var x409 uint64
	var x410 uint64
	x409, x410 = bits.Add64(x380, x377, uint64(p521Uint1(x408)))
	x411 := (uint64(p521Uint1(x410)) + x378)
	var x413 uint64
	_, x413 = bits.Add64(x357, x393, uint64(0x0))
	var x414 uint64
	var x415 uint64
	x414, x415 = bits.Add64(x359, x395, uint64(p521Uint1(x413)))
	var x416 uint64
	var x417 uint64
	x416, x417 = bits.Add64(x361, x397, uint64(p521Uint1(x415)))
	var x418 uint64
	var x419 uint64
	x418, x419 = bits.Add64(x363, x399, uint64(p521Uint1(x417)))
	var x420 uint64
	var x421 uint64
	x420, x421 = bits.Add64(x365, x401, uint64(p521Uint1(x419)))
	var x422 uint64
	var x423 uint64
	x422, x423 = bits.Add64(x367, x403, uint64(p521Uint1(x421)))
	var x424 uint64
	var x425 uint64
	x424, x425 = bits.Add64(x369, x405, uint64(p521Uint1(x423)))
	var x426 uint64
	var x427 uint64
	x426, x427 = bits.Add64(x371, x407, uint64(p521Uint1(x425)))
	var x428 uint64
	var x429 uint64
	x428, x429 = bits.Add64(x373, x409, uint64(p521Uint1(x427)))
	var x430 uint64
	var x431 uint64
	x430, x431 = bits.Add64(x375, x411, uint64(p521Uint1(x429)))
	x432 := (uint64(p521Uint1(x431)) + uint64(p521Uint1(x376)))
	var x433 uint64
	var x434 uint64
	x434, x433 = bits.Mul64(x4, arg1[8])
	var x435 uint64
	var x436 uint64
	x436, x435 = bits.Mul64(x4, arg1[7])
	var x437 uint64
	var x438 uint64
	x438, x437 = bits.Mul64(x4, arg1[6])
	var x439 uint64
	var x440 uint64
	x440, x439 = bits.Mul64(x4, arg1[5])
	var x441 uint64
	var x442 uint64
	x442, x441 = bits.Mul64(x4, arg1[4])
	var x443 uint64
	var x444 uint64
	x444, x443 = bits.Mul64(x4, arg1[3])
	var x445 uint64
	var x446 uint64
	x446, x445 = bits.Mul64(x4, arg1[2])
	var x447 uint64
	var x448 uint64
	x448, x447 = bits.Mul64(x4, arg1[1])
	var x449 uint64
	var x450 uint64
	x450, x449 = bits.Mul64(x4, arg1[0])
	var x451 uint64
	var x452 uint64
	x451, x452 = bits.Add64(x450, x447, uint64(0x0))
	var x453 uint64
	var x454 uint64
	x453, x454 = bits.Add64(x448, x445, uint64(p521Uint1(x452)))
	var x455 uint64
	var x456 uint64
	x455, x456 = bits.Add64(x446, x443, uint64(p521Uint1(x454)))
	var x457 uint64
	var x458 uint64
	x457, x458 = bits.Add64(x444, x441, uint64(p521Uint1(x456)))
	var x459 uint64
	var x460 uint64
	x459, x460 = bits.Add64(x442, x439, uint64(p521Uint1(x458)))
	var x461 uint64
	var x462 uint64
	x461, x462 = bits.Add64(x440, x437, uint64(p521Uint1(x460)))
	var x463 uint64
	var x464 uint64
	x463, x464 = bits.Add64(x438, x435, uint64(p521Uint1(x462)))
	var x465 uint64
	var x466 uint64
	x465, x466 = bits.Add64(x436, x433, uint64(p521Uint1(x464)))
	x467 := (uint64(p521Uint1(x466)) + x434)
	var x468 uint64
	var x469 uint64
	x468, x469 = bits.Add64(x414, x449, uint64(0x0))
	var x470 uint64
	var x471 uint64
	x470, x471 = bits.Add64(x416, x451, uint64(p521Uint1(x469)))
	var x472 uint64
	var x473 uint64
	x472, x473 = bits.Add64(x418, x453, uint64(p521Uint1(x471)))
	var x474 uint64
	var x475 uint64
	x474, x475 = bits.Add64(x420, x455, uint64(p521Uint1(x473)))
	var x476 uint64
	var x477 uint64
	x476, x477 = bits.Add64(x422, x457, uint64(p521Uint1(x475)))
	var x478 uint64
	var x479 uint64
	x478, x479 = bits.Add64(x424, x459, uint64(p521Uint1(x477)))
	var x480 uint64
	var x481 uint64
	x480, x481 = bits.Add64(x426, x461, uint64(p521Uint1(x479)))
	var x482 uint64
	var x483 uint64
	x482, x483 = bits.Add64(x428, x463, uint64(p521Uint1(x481)))
	var x484 uint64
	var x485 uint64
	x484, x485 = bits.Add64(x430, x465, uint64(p521Uint1(x483)))
	var x486 uint64
	var x487 uint64
	x486, x487 = bits.Add64(x432, x467, uint64(p521Uint1(x485)))
	var x488 uint64
	var x489 uint64
	x489, x488 = bits.Mul64(x468, 0x1ff)
	var x490 uint64
	var x491 uint64
	x491, x490 = bits.Mul64(x468, 0xffffffffffffffff)
	var x492 uint64
	var x493 uint64
	x493, x492 = bits.Mul64(x468, 0xffffffffffffffff)
	var x494 uint64
	var x495 uint64
	x495, x494 = bits.Mul64(x468, 0xffffffffffffffff)
	var x496 uint64
	var x497 uint64
	x497, x496 = bits.Mul64(x468, 0xffffffffffffffff)
	var x498 uint64
	var x499 uint64
	x499, x498 = bits.Mul64(x468, 0xffffffffffffffff)
	var x500 uint64
	var x501 uint64
	x501, x500 = bits.Mul64(x468, 0xffffffffffffffff)
	var x502 uint64
	var x503 uint64
	x503, x502 = bits.Mul64(x468, 0xffffffffffffffff)
	var x504 uint64
	var x505 uint64
	x505, x504 = bits.Mul64(x468, 0xffffffffffffffff)
	var x506 uint64
	var x507 uint64
	x506, x507 = bits.Add64(x505, x502, uint64(0x0))
	var x508 uint64
	var x509 uint64
	x508, x509 = bits.Add64(x503, x500, uint64(p521Uint1(x507)))
	var x510 uint64
	var x511 uint64
	x510, x511 = bits.Add64(x501, x498, uint64(p521Uint1(x509)))
	var x512 uint64
	var x513 uint64
	x512, x513 = bits.Add64(x499, x496, uint64(p521Uint1(x511)))
	var x514 uint64
	var x515 uint64
	x514, x515 = bits.Add64(x497, x494, uint64(p521Uint1(x513)))
	var x516 uint64
	var x517 uint64
	x516, x517 = bits.Add64(x495, x492, uint64(p521Uint1(x515)))
	var x518 uint64
	var x519 uint64
	x518, x519 = bits.Add64(x493, x490, uint64(p521Uint1(x517)))
	var x520 uint64
	var x521 uint64
	x520, x521 = bits.Add64(x491, x488, uint64(p521Uint1(x519)))
	x522 := (uint64(p521Uint1(x521)) + x489)
	var x524 uint64
	_, x524 = bits.Add64(x468, x504, uint64(0x0))
	var x525 uint64
	var x526 uint64
	x525, x526 = bits.Add64(x470, x506, uint64(p521Uint1(x524)))
	var x527 uint64
	var x528 uint64
	x527, x528 = bits.Add64(x472, x508, uint64(p521Uint1(x526)))
	var x529 uint64
	var x530 uint64
	x529, x530 = bits.Add64(x474, x510, uint64(p521Uint1(x528)))
	var x531 uint64
	var x532 uint64
	x531, x532 = bits.Add64(x476, x512, uint64(p521Uint1(x530)))
	var x533 uint64
	var x534 uint64
	x533, x534 = bits.Add64(x478, x514, uint64(p521Uint1(x532)))
	var x535 uint64
	var x536 uint64
	x535, x536 = bits.Add64(x480, x516, uint64(p521Uint1(x534)))
	var x537 uint64
	var x538 uint64
	x537, x538 = bits.Add64(x482, x518, uint64(p521Uint1(x536)))
	var x539 uint64
	var x540 uint64
	x539, x540 = bits.Add64(x484, x520, uint64(p521Uint1(x538)))
	var x541 uint64
	var x542 uint64
	x541, x542 = bits.Add64(x486, x522, uint64(p521Uint1(x540)))
	x543 := (uint64(p521Uint1(x542)) + uint64(p521Uint1(x487)))
	var x544 uint64
	var x545 uint64
	x545, x544 = bits.Mul64(x5, arg1[8])
	var x546 uint64
	var x547 uint64
	x547, x546 = bits.Mul64(x5, arg1[7])
	var x548 uint64
	var x549 uint64
	x549, x548 = bits.Mul64(x5, arg1[6])
	var x550 uint64
	var x551 uint64
	x551, x550 = bits.Mul64(x5, arg1[5])
	var x552 uint64
	var x553 uint64
	x553, x552 = bits.Mul64(x5, arg1[4])
	var x554 uint64
	var x555 uint64
	x555, x554 = bits.Mul64(x5, arg1[3])
	var x556 uint64
	var x557 uint64
	x557, x556 = bits.Mul64(x5, arg1[2])
	var x558 uint64
	var x559 uint64
	x559, x558 = bits.Mul64(x5, arg1[1])
	var x560 uint64
	var x561 uint64
	x561, x560 = bits.Mul64(x5, arg1[0])
	var x562 uint64
	var x563 uint64
	x562, x563 = bits.Add64(x561, x558, uint64(0x0))
	var x564 uint64
	var x565 uint64
	x564, x565 = bits.Add64(x559, x556, uint64(p521Uint1(x563)))
	var x566 uint64
	var x567 uint64
	x566, x567 = bits.Add64(x557, x554, uint64(p521Uint1(x565)))
	var x568 uint64
	var x569 uint64
	x568, x569 = bits.Add64(x555, x552, uint64(p521Uint1(x567)))
	var x570 uint64
	var x571 uint64
	x570, x571 = bits.Add64(x553, x550, uint64(p521Uint1(x569)))
	var x572 uint64
	var x573 uint64
	x572, x573 = bits.Add64(x551, x548, uint64(p521Uint1(x571)))
	var x574 uint64
	var x575 uint64
	x574, x575 = bits.Add64(x549, x546, uint64(p521Uint1(x573)))
	var x576 uint64
	var x577 uint64
	x576, x577 = bits.Add64(x547, x544, uint64(p521Uint1(x575)))
	x578 := (uint64(p521Uint1(x577)) + x545)
	var x579 uint64
	var x580 uint64
	x579, x580 = bits.Add64(x525, x560, uint64(0x0))
	var x581 uint64
	var x582 uint64
	x581, x582 = bits.Add64(x527, x562, uint64(p521Uint1(x580)))
	var x583 uint64
	var x584 uint64
	x583, x584 = bits.Add64(x529, x564, uint64(p521Uint1(x582)))
	var x585 uint64
	var x586 uint64
	x585, x586 = bits.Add64(x531, x566, uint64(p521Uint1(x584)))
	var x587 uint64
	var x588 uint64
	x587, x588 = bits.Add64(x533, x568, uint64(p521Uint1(x586)))
	var x589 uint64
	var x590 uint64
	x589, x590 = bits.Add64(x535, x570, uint64(p521Uint1(x588)))
	var x591 uint64
	var x592 uint64
	x591, x592 = bits.Add64(x537, x572, uint64(p521Uint1(x590)))
	var x593 uint64
	var x594 uint64
	x593, x594 = bits.Add64(x539, x574, uint64(p521Uint1(x592)))
	var x595 uint64
	var x596 uint64
	x595, x596 = bits.Add64(x541, x576, uint64(p521Uint1(x594)))
	var x597 uint64
	var x598 uint64
	x597, x598 = bits.Add64(x543, x578, uint64(p521Uint1(x596)))
	var x599 uint64
	var x600 uint64
	x600, x599 = bits.Mul64(x579, 0x1ff)
	var x601 uint64
	var x602 uint64
	x602, x601 = bits.Mul64(x579, 0xffffffffffffffff)
	var x603 uint64
	var x604 uint64
	x604, x603 = bits.Mul64(x579, 0xffffffffffffffff)
	var x605 uint64
	var x606 uint64
	x606, x605 = bits.Mul64(x579, 0xffffffffffffffff)
	var x607 uint64
	var x608 uint64
	x608, x607 = bits.Mul64(x579, 0xffffffffffffffff)
	var x609 uint64
	var x610 uint64
	x610, x609 = bits.Mul64(x579, 0xffffffffffffffff)
	var x611 uint64
	var x612 uint64
	x612, x611 = bits.Mul64(x579, 0xffffffffffffffff)
	var x613 uint64
	var x614 uint64
	x614, x613 = bits.Mul64(x579, 0xffffffffffffffff)
	var x615 uint64
	var x616 uint64
	x616, x615 = bits.Mul64(x579, 0xffffffffffffffff)
	var x617 uint64
	var x618 uint64
	x617, x618 = bits.Add64(x616, x613, uint64(0x0))
	var x619 uint64
	var x620 uint64
	x619, x620 = bits.Add64(x614, x611, uint64(p521Uint1(x618)))
	var x621 uint64
	var x622 uint64
	x621, x622 = bits.Add64(x612, x609, uint64(p521Uint1(x620)))
	var x623 uint64
	var x624 uint64
	x623, x624 = bits.Add64(x610, x607, uint64(p521Uint1(x622)))
	var x625 uint64
	var x626 uint64
	x625, x626 = bits.Add64(x608, x605, uint64(p521Uint1(x624)))
	var x627 uint64
	var x628 uint64
	x627, x628 = bits.Add64(x606, x603, uint64(p521Uint1(x626)))
	var x629 uint64
	var x630 uint64
	x629, x630 = bits.Add64(x604, x601, uint64(p521Uint1(x628)))
	var x631 uint64
	var x632 uint64
	x631, x632 = bits.Add64(x602, x599, uint64(p521Uint1(x630)))
	x633 := (uint64(p521Uint1(x632)) + x600)
	var x635 uint64
	_, x635 = bits.Add64(x579, x615, uint64(0x0))
	var x636 uint64
	var x637 uint64
	x636, x637 = bits.Add64(x581, x617, uint64(p521Uint1(x635)))
	var x638 uint64
	var x639 uint64
	x638, x639 = bits.Add64(x583, x619, uint64(p521Uint1(x637)))
	var x640 uint64
	var x641 uint64
	x640, x641 = bits.Add64(x585, x621, uint64(p521Uint1(x639)))
	var x642 uint64
	var x643 uint64
	x642, x643 = bits.Add64(x587, x623, uint64(p521Uint1(x641)))
	var x644 uint64
	var x645 uint64
	x644, x645 = bits.Add64(x589, x625, uint64(p521Uint1(x643)))
	var x646 uint64
	var x647 uint64
	x646, x647 = bits.Add64(x591, x627, uint64(p521Uint1(x645)))
	var x648 uint64
	var x649 uint64
	x648, x649 = bits.Add64(x593, x629, uint64(p521Uint1(x647)))
	var x650 uint64
	var x651 uint64
	x650, x651 = bits.Add64(x595, x631, uint64(p521Uint1(x649)))
	var x652 uint64
	var x653 uint64
	x652, x653 = bits.Add64(x597, x633, uint64(p521Uint1(x651)))
	x654 := (uint64(p521Uint1(x653)) + uint64(p521Uint1(x598)))
	var x655 uint64
	var x656 uint64
	x656, x655 = bits.Mul64(x6, arg1[8])
	var x657 uint64
	var x658 uint64
	x658, x657 = bits.Mul64(x6, arg1[7])
	var x659 uint64
	var x660 uint64
	x660, x659 = bits.Mul64(x6, arg1[6])
	var x661 uint64
	var x662 uint64
	x662, x661 = bits.Mul64(x6, arg1[5])
	var x663 uint64
	var x664 uint64
	x664, x663 = bits.Mul64(x6, arg1[4])
	var x665 uint64
	var x666 uint64
	x666, x665 = bits.Mul64(x6, arg1[3])
	var x667 uint64
	var x668 uint64
	x668, x667 = bits.Mul64(x6, arg1[2])
	var x669 uint64
	var x670 uint64
	x670, x669 = bits.Mul64(x6, arg1[1])
	var x671 uint64
	var x672 uint64
	x672, x671 = bits.Mul64(x6, arg1[0])
	var x673 uint64
	var x674 uint64
	x673, x674 = bits.Add64(x672, x669, uint64(0x0))
	var x675 uint64
	var x676 uint64
	x675, x676 = bits.Add64(x670, x667, uint64(p521Uint1(x674)))
	var x677 uint64
	var x678 uint64
	x677, x678 = bits.Add64(x668, x665, uint64(p521Uint1(x676)))
	var x679 uint64
	var x680 uint64
	x679, x680 = bits.Add64(x666, x663, uint64(p521Uint1(x678)))
	var x681 uint64
	var x682 uint64
	x681, x682 = bits.Add64(x664, x661, uint64(p521Uint1(x680)))
	var x683 uint64
	var x684 uint64
	x683, x684 = bits.Add64(x662, x659, uint64(p521Uint1(x682)))
	var x685 uint64
	var x686 uint64
	x685, x686 = bits.Add64(x660, x657, uint64(p521Uint1(x684)))
	var x687 uint64
	var x688 uint64
	x687, x688 = bits.Add64(x658, x655, uint64(p521Uint1(x686)))
	x689 := (uint64(p521Uint1(x688)) + x656)
	var x690 uint64
	var x691 uint64
	x690, x691 = bits.Add64(x636, x671, uint64(0x0))
	var x692 uint64
	var x693 uint64
	x692, x693 = bits.Add64(x638, x673, uint64(p521Uint1(x691)))
	var x694 uint64
	var x695 uint64
	x694, x695 = bits.Add64(x640, x675, uint64(p521Uint1(x693)))
	var x696 uint64
	var x697 uint64
	x696, x697 = bits.Add64(x642, x677, uint64(p521Uint1(x695)))
	var x698 uint64
	var x699 uint64
	x698, x699 = bits.Add64(x644, x679, uint64(p521Uint1(x697)))
	var x700 uint64
	var x701 uint64
	x700, x701 = bits.Add64(x646, x681, uint64(p521Uint1(x699)))
	var x702 uint64
	var x703 uint64
	x702, x703 = bits.Add64(x648, x683, uint64(p521Uint1(x701)))
	var x704 uint64
	var x705 uint64
	x704, x705 = bits.Add64(x650, x685, uint64(p521Uint1(x703)))
	var x706 uint64
	var x707 uint64
	x706, x707 = bits.Add64(x652, x687, uint64(p521Uint1(x705)))
	var x708 uint64
	var x709 uint64
	x708, x709 = bits.Add64(x654, x689, uint64(p521Uint1(x707)))
	var x710 uint64
	var x711 uint64
	x711, x710 = bits.Mul64(x690, 0x1ff)
	var x712 uint64
	var x713 uint64
	x713, x712 = bits.Mul64(x690, 0xffffffffffffffff)
	var x714 uint64
	var x715 uint64
	x715, x714 = bits.Mul64(x690, 0xffffffffffffffff)
	var x716 uint64
	var x717 uint64
	x717, x716 = bits.Mul64(x690, 0xffffffffffffffff)
	var x718 uint64
	var x719 uint64
	x719, x718 = bits.Mul64(x690, 0xffffffffffffffff)
	var x720 uint64
	var x721 uint64
	x721, x720 = bits.Mul64(x690, 0xffffffffffffffff)
	var x722 uint64
	var x723 uint64
	x723, x722 = bits.Mul64(x690, 0xffffffffffffffff)
	var x724 uint64
	var x725 uint64
	x725, x724 = bits.Mul64(x690, 0xffffffffffffffff)
	var x726 uint64
	var x727 uint64
	x727, x726 = bits.Mul64(x690, 0xffffffffffffffff)
	var x728 uint64
	var x729 uint64
	x728, x729 = bits.Add64(x727, x724, uint64(0x0))
	var x730 uint64
	var x731 uint64
	x730, x731 = bits.Add64(x725, x722, uint64(p521Uint1(x729)))
	var x732 uint64
	var x733 uint64
	x732, x733 = bits.Add64(x723, x720, uint64(p521Uint1(x731)))
	var x734 uint64
	var x735 uint64
	x734, x735 = bits.Add64(x721, x718, uint64(p521Uint1(x733)))
	var x736 uint64
	var x737 uint64
	x736, x737 = bits.Add64(x719, x716, uint64(p521Uint1(x735)))
	var x738 uint64
	var x739 uint64
	x738, x739 = bits.Add64(x717, x714, uint64(p521Uint1(x737)))
	var x740 uint64
	var x741 uint64
	x740, x741 = bits.Add64(x715, x712, uint64(p521Uint1(x739)))
	var x742 uint64
	var x743 uint64
	x742, x743 = bits.Add64(x713, x710, uint64(p521Uint1(x741)))
	x744 := (uint64(p521Uint1(x743)) + x711)
	var x746 uint64
	_, x746 = bits.Add64(x690, x726, uint64(0x0))
	var x747 uint64
	var x748 uint64
	x747, x748 = bits.Add64(x692, x728, uint64(p521Uint1(x746)))
	var x749 uint64
	var x750 uint64
	x749, x750 = bits.Add64(x694, x730, uint64(p521Uint1(x748)))
	var x751 uint64
	var x752 uint64
	x751, x752 = bits.Add64(x696, x732, uint64(p521Uint1(x750)))
	var x753 uint64
	var x754 uint64
	x753, x754 = bits.Add64(x698, x734, uint64(p521Uint1(x752)))
	var x755 uint64
	var x756 uint64
	x755, x756 = bits.Add64(x700, x736, uint64(p521Uint1(x754)))
	var x757 uint64
	var x758 uint64
	x757, x758 = bits.Add64(x702, x738, uint64(p521Uint1(x756)))
	var x759 uint64
	var x760 uint64
	x759, x760 = bits.Add64(x704, x740, uint64(p521Uint1(x758)))
	var x761 uint64
	var x762 uint64
	x761, x762 = bits.Add64(x706, x742, uint64(p521Uint1(x760)))
	var x763 uint64
	var x764 uint64
	x763, x764 = bits.Add64(x708, x744, uint64(p521Uint1(x762)))
	x765 := (uint64(p521Uint1(x764)) + uint64(p521Uint1(x709)))
	var x766 uint64
	var x767 uint64
	x767, x766 = bits.Mul64(x7, arg1[8])
	var x768 uint64
	var x769 uint64
	x769, x768 = bits.Mul64(x7, arg1[7])
	var x770 uint64
	var x771 uint64
	x771, x770 = bits.Mul64(x7, arg1[6])
	var x772 uint64
	var x773 uint64
	x773, x772 = bits.Mul64(x7, arg1[5])
	var x774 uint64
	var x775 uint64
	x775, x774 = bits.Mul64(x7, arg1[4])
	var x776 uint64
	var x777 uint64
	x777, x776 = bits.Mul64(x7, arg1[3])
	var x778 uint64
	var x779 uint64
	x779, x778 = bits.Mul64(x7, arg1[2])
	var x780 uint64
	var x781 uint64
	x781, x780 = bits.Mul64(x7, arg1[1])
	var x782 uint64
	var x783 uint64
	x783, x782 = bits.Mul64(x7, arg1[0])
	var x784 uint64
	var x785 uint64
	x784, x785 = bits.Add64(x783, x780, uint64(0x0))
	var x786 uint64
	var x787 uint64
	x786, x787 = bits.Add64(x781, x778, uint64(p521Uint1(x785)))
	var x788 uint64
	var x789 uint64
	x788, x789 = bits.Add64(x779, x776, uint64(p521Uint1(x787)))
	var x790 uint64
	var x791 uint64
	x790, x791 = bits.Add64(x777, x774, uint64(p521Uint1(x789)))
	var x792 uint64
	var x793 uint64
	x792, x793 = bits.Add64(x775, x772, uint64(p521Uint1(x791)))
	var x794 uint64
	var x795 uint64
	x794, x795 = bits.Add64(x773, x770, uint64(p521Uint1(x793)))
	var x796 uint64
	var x797 uint64
	x796, x797 = bits.Add64(x771, x768, uint64(p521Uint1(x795)))
	var x798 uint64
	var x799 uint64
	x798, x799 = bits.Add64(x769, x766, uint64(p521Uint1(x797)))
	x800 := (uint64(p521Uint1(x799)) + x767)
	var x801 uint64
	var x802 uint64
	x801, x802 = bits.Add64(x747, x782, uint64(0x0))
	var x803 uint64
	var x804 uint64
	x803, x804 = bits.Add64(x749, x784, uint64(p521Uint1(x802)))
	var x805 uint64
	var x806 uint64
	x805, x806 = bits.Add64(x751, x786, uint64(p521Uint1(x804)))
	var x807 uint64
	var x808 uint64
	x807, x808 = bits.Add64(x753, x788, uint64(p521Uint1(x806)))
	var x809 uint64
	var x810 uint64
	x809, x810 = bits.Add64(x755, x790, uint64(p521Uint1(x808)))
	var x811 uint64
	var x812 uint64
	x811, x812 = bits.Add64(x757, x792, uint64(p521Uint1(x810)))
	var x813 uint64
	var x814 uint64
	x813, x814 = bits.Add64(x759, x794, uint64(p521Uint1(x812)))
	var x815 uint64
	var x816 uint64
	x815, x816 = bits.Add64(x761, x796, uint64(p521Uint1(x814)))
	var x817 uint64
	var x818 uint64
	x817, x818 = bits.Add64(x763, x798, uint64(p521Uint1(x816)))
	var x819 uint64
	var x820 uint64
	x819, x820 = bits.Add64(x765, x800, uint64(p521Uint1(x818)))
	var x821 uint64
	var x822 uint64
	x822, x821 = bits.Mul64(x801, 0x1ff)
	var x823 uint64
	var x824 uint64
	x824, x823 = bits.Mul64(x801, 0xffffffffffffffff)
	var x825 uint64
	var x826 uint64
	x826, x825 = bits.Mul64(x801, 0xffffffffffffffff)
	var x827 uint64
	var x828 uint64
	x828, x827 = bits.Mul64(x801, 0xffffffffffffffff)
	var x829 uint64
	var x830 uint64
	x830, x829 = bits.Mul64(x801, 0xffffffffffffffff)
	var x831 uint64
	var x832 uint64
	x832, x831 = bits.Mul64(x801, 0xffffffffffffffff)
	var x833 uint64
	var x834 uint64
	x834, x833 = bits.Mul64(x801, 0xffffffffffffffff)
	var x835 uint64
	var x836 uint64
	x836, x835 = bits.Mul64(x801, 0xffffffffffffffff)
	var x837 uint64
	var x838 uint64
	x838, x837 = bits.Mul64(x801, 0xffffffffffffffff)
	var x839 uint64
	var x840 uint64
	x839, x840 = bits.Add64(x838, x835, uint64(0x0))
	var x841 uint64
	var x842 uint64
	x841, x842 = bits.Add64(x836, x833, uint64(p521Uint1(x840)))
	var x843 uint64
	var x844 uint64
	x843, x844 = bits.Add64(x834, x831, uint64(p521Uint1(x842)))
	var x845 uint64
	var x846 uint64
	x845, x846 = bits.Add64(x832, x829, uint64(p521Uint1(x844)))
	var x847 uint64
	var x848 uint64
	x847, x848 = bits.Add64(x830, x827, uint64(p521Uint1(x846)))
	var x849 uint64
	var x850 uint64
	x849, x850 = bits.Add64(x828, x825, uint64(p521Uint1(x848)))
	var x851 uint64
	var x852 uint64
	x851, x852 = bits.Add64(x826, x823, uint64(p521Uint1(x850)))
	var x853 uint64
	var x854 uint64
	x853, x854 = bits.Add64(x824, x821, uint64(p521Uint1(x852)))
	x855 := (uint64(p521Uint1(x854)) + x822)
	var x857 uint64
	_, x857 = bits.Add64(x801, x837, uint64(0x0))
	var x858 uint64
	var x859 uint64
	x858, x859 = bits.Add64(x803, x839, uint64(p521Uint1(x857)))
	var x860 uint64
	var x861 uint64
	x860, x861 = bits.Add64(x805, x841, uint64(p521Uint1(x859)))
	var x862 uint64
	var x863 uint64
	x862, x863 = bits.Add64(x807, x843, uint64(p521Uint1(x861)))
	var x864 uint64
	var x865 uint64
	x864, x865 = bits.Add64(x809, x845, uint64(p521Uint1(x863)))
	var x866 uint64
	var x867 uint64
	x866, x867 = bits.Add64(x811, x847, uint64(p521Uint1(x865)))
	var x868 uint64
	var x869 uint64
	x868, x869 = bits.Add64(x813, x849, uint64(p521Uint1(x867)))
	var x870 uint64
	var x871 uint64
	x870, x871 = bits.Add64(x815, x851, uint64(p521Uint1(x869)))
	var x872 uint64
	var x873 uint64
	x872, x873 = bits.Add64(x817, x853, uint64(p521Uint1(x871)))
	var x874 uint64
	var x875 uint64
	x874, x875 = bits.Add64(x819, x855, uint64(p521Uint1(x873)))
	x876 := (uint64(p521Uint1(x875)) + uint64(p521Uint1(x820)))
	var x877 uint64
	var x878 uint64
	x878, x877 = bits.Mul64(x8, arg1[8])
	var x879 uint64
	var x880 uint64
	x880, x879 = bits.Mul64(x8, arg1[7])
	var x881 uint64
	var x882 uint64
	x882, x881 = bits.Mul64(x8, arg1[6])
	var x883 uint64
	var x884 uint64
	x884, x883 = bits.Mul64(x8, arg1[5])
	var x885 uint64
	var x886 uint64
	x886, x885 = bits.Mul64(x8, arg1[4])
	var x887 uint64
	var x888 uint64
	x888, x887 = bits.Mul64(x8, arg1[3])
	var x889 uint64
	var x890 uint64
	x890, x889 = bits.Mul64(x8, arg1[2])
	var x891 uint64
	var x892 uint64
	x892, x891 = bits.Mul64(x8, arg1[1])
	var x893 uint64
	var x894 uint64
	x894, x893 = bits.Mul64(x8, arg1[0])
	var x895 uint64
	var x896 uint64
	x895, x896 = bits.Add64(x894, x891, uint64(0x0))
	var x897 uint64
	var x898 uint64
	x897, x898 = bits.Add64(x892, x889, uint64(p521Uint1(x896)))
	var x899 uint64
	var x900 uint64
	x899, x900 = bits.Add64(x890, x887, uint64(p521Uint1(x898)))
	var x901 uint64
	var x902 uint64
	x901, x902 = bits.Add64(x888, x885, uint64(p521Uint1(x900)))
	var x903 uint64
	var x904 uint64
	x903, x904 = bits.Add64(x886, x883, uint64(p521Uint1(x902)))
	var x905 uint64
	var x906 uint64
	x905, x906 = bits.Add64(x884, x881, uint64(p521Uint1(x904)))
	var x907 uint64
	var x908 uint64
	x907, x908 = bits.Add64(x882, x879, uint64(p521Uint1(x906)))
	var x909 uint64
	var x910 uint64
	x909, x910 = bits.Add64(x880, x877, uint64(p521Uint1(x908)))
	x911 := (uint64(p521Uint1(x910)) + x878)
	var x912 uint64
	var x913 uint64
	x912, x913 = bits.Add64(x858, x893, uint64(0x0))
	var x914 uint64
	var x915 uint64
	x914, x915 = bits.Add64(x860, x895, uint64(p521Uint1(x913)))
	var x916 uint64
	var x917 uint64
	x916, x917 = bits.Add64(x862, x897, uint64(p521Uint1(x915)))
	var x918 uint64
	var x919 uint64
	x918, x919 = bits.Add64(x864, x899, uint64(p521Uint1(x917)))
	var x920 uint64
	var x921 uint64
	x920, x921 = bits.Add64(x866, x901, uint64(p521Uint1(x919)))
	var x922 uint64
	var x923 uint64
	x922, x923 = bits.Add64(x868, x903, uint64(p521Uint1(x921)))
	var x924 uint64
	var x925 uint64
	x924, x925 = bits.Add64(x870, x905, uint64(p521Uint1(x923)))
	var x926 uint64
	var x927 uint64
	x926, x927 = bits.Add64(x872, x907, uint64(p521Uint1(x925)))
	var x928 uint64
	var x929 uint64
	x928, x929 = bits.Add64(x874, x909, uint64(p521Uint1(x927)))
	var x930 uint64
	var x931 uint64
	x930, x931 = bits.Add64(x876, x911, uint64(p521Uint1(x929)))
	var x932 uint64
	var x933 uint64
	x933, x932 = bits.Mul64(x912, 0x1ff)
	var x934 uint64
	var x935 uint64
	x935, x934 = bits.Mul64(x912, 0xffffffffffffffff)
	var x936 uint64
	var x937 uint64
	x937, x936 = bits.Mul64(x912, 0xffffffffffffffff)
	var x938 uint64
	var x939 uint64
	x939, x938 = bits.Mul64(x912, 0xffffffffffffffff)
	var x940 uint64
	var x941 uint64
	x941, x940 = bits.Mul64(x912, 0xffffffffffffffff)
	var x942 uint64
	var x943 uint64
	x943, x942 = bits.Mul64(x912, 0xffffffffffffffff)
	var x944 uint64
	var x945 uint64
	x945, x944 = bits.Mul64(x912, 0xffffffffffffffff)
	var x946 uint64
	var x947 uint64
	x947, x946 = bits.Mul64(x912, 0xffffffffffffffff)
	var x948 uint64
	var x949 uint64
	x949, x948 = bits.Mul64(x912, 0xffffffffffffffff)
	var x950 uint64
	var x951 uint64
	x950, x951 = bits.Add64(x949, x946, uint64(0x0))
	var x952 uint64
	var x953 uint64
	x952, x953 = bits.Add64(x947, x944, uint64(p521Uint1(x951)))
	var x954 uint64
	var x955 uint64
	x954, x955 = bits.Add64(x945, x942, uint64(p521Uint1(x953)))
	var x956 uint64
	var x957 uint64
	x956, x957 = bits.Add64(x943, x940, uint64(p521Uint1(x955)))
	var x958 uint64
	var x959 uint64
	x958, x959 = bits.Add64(x941, x938, uint64(p521Uint1(x957)))
	var x960 uint64
	var x961 uint64
	x960, x961 = bits.Add64(x939, x936, uint64(p521Uint1(x959)))
	var x962 uint64
	var x963 uint64
	x962, x963 = bits.Add64(x937, x934, uint64(p521Uint1(x961)))
	var x964 uint64
	var x965 uint64
	x964, x965 = bits.Add64(x935, x932, uint64(p521Uint1(x963)))
	x966 := (uint64(p521Uint1(x965)) + x933)
	var x968 uint64
	_, x968 = bits.Add64(x912, x948, uint64(0x0))
	var x969 uint64
	var x970 uint64
	x969, x970 = bits.Add64(x914, x950, uint64(p521Uint1(x968)))
	var x971 uint64
	var x972 uint64
	x971, x972 = bits.Add64(x916, x952, uint64(p521Uint1(x970)))
	var x973 uint64
	var x974 uint64
	x973, x974 = bits.Add64(x918, x954, uint64(p521Uint1(x972)))
	var x975 uint64
	var x976 uint64
	x975, x976 = bits.Add64(x920, x956, uint64(p521Uint1(x974)))
	var x977 uint64
	var x978 uint64
	x977, x978 = bits.Add64(x922, x958, uint64(p521Uint1(x976)))
	var x979 uint64
	var x980 uint64
	x979, x980 = bits.Add64(x924, x960, uint64(p521Uint1(x978)))
	var x981 uint64
	var x982 uint64
	x981, x982 = bits.Add64(x926, x962, uint64(p521Uint1(x980)))
	var x983 uint64
	var x984 uint64
	x983, x984 = bits.Add64(x928, x964, uint64(p521Uint1(x982)))
	var x985 uint64
	var x986 uint64
	x985, x986 = bits.Add64(x930, x966, uint64(p521Uint1(x984)))
	x987 := (uint64(p521Uint1(x986)) + uint64(p521Uint1(x931)))
	var x988 uint64
	var x989 uint64
	x988, x989 = bits.Sub64(x969, 0xffffffffffffffff, uint64(0x0))
	var x990 uint64
	var x991 uint64
	x990, x991 = bits.Sub64(x971, 0xffffffffffffffff, uint64(p521Uint1(x989)))
	var x992 uint64
	var x993 uint64
	x992, x993 = bits.Sub64(x973, 0xffffffffffffffff, uint64(p521Uint1(x991)))
	var x994 uint64
	var x995 uint64
	x994, x995 = bits.Sub64(x975, 0xffffffffffffffff, uint64(p521Uint1(x993)))
	var x996 uint64
	var x997 uint64
	x996, x997 = bits.Sub64(x977, 0xffffffffffffffff, uint64(p521Uint1(x995)))
	var x998 uint64
	var x999 uint64
	x998, x999 = bits.Sub64(x979, 0xffffffffffffffff, uint64(p521Uint1(x997)))
	var x1000 uint64
	var x1001 uint64
	x1000, x1001 = bits.Sub64(x981, 0xffffffffffffffff, uint64(p521Uint1(x999)))
	var x1002 uint64
	var x1003 uint64
	x1002, x1003 = bits.Sub64(x983, 0xffffffffffffffff, uint64(p521Uint1(x1001)))
	var x1004 uint64
	var x1005 uint64
	x1004, x1005 = bits.Sub64(x985, 0x1ff, uint64(p521Uint1(x1003)))
	var x1007 uint64
	_, x1007 = bits.Sub64(x987, uint64(0x0), uint64(p521Uint1(x1005)))
	var x1008 uint64
	p521CmovznzU64(&x1008, p521Uint1(x1007), x988, x969)
	var x1009 uint64
	p521CmovznzU64(&x1009, p521Uint1(x1007), x990, x971)
	var x1010 uint64
	p521CmovznzU64(&x1010, p521Uint1(x1007), x992, x973)
	var x1011 uint64
	p521CmovznzU64(&x1011, p521Uint1(x1007), x994, x975)
	var x1012 uint64
	p521CmovznzU64(&x1012, p521Uint1(x1007), x996, x977)
	var x1013 uint64
	p521CmovznzU64(&x1013, p521Uint1(x1007), x998, x979)
	var x1014 uint64
	p521CmovznzU64(&x1014, p521Uint1(x1007), x1000, x981)
	var x1015 uint64
	p521CmovznzU64(&x1015, p521Uint1(x1007), x1002, x983)
	var x1016 uint64
	p521CmovznzU64(&x1016, p521Uint1(x1007), x1004, x985)
	out1[0] = x1008
	out1[1] = x1009
	out1[2] = x1010
	out1[3] = x1011
	out1[4] = x1012
	out1[5] = x1013
	out1[6] = x1014
	out1[7] = x1015
	out1[8] = x1016
}

// p521Add adds two field elements in the Montgomery domain.
//
// Preconditions:
//
//	0 ≤ eval arg1 < m
//	0 ≤ eval arg2 < m
//
// Postconditions:
//
//	eval (from_montgomery out1) mod m = (eval (from_montgomery arg1) + eval (from_montgomery arg2)) mod m
//	0 ≤ eval out1 < m
func p521Add(out1 *p521MontgomeryDomainFieldElement, arg1 *p521MontgomeryDomainFieldElement, arg2 *p521MontgomeryDomainFieldElement) {
	var x1 uint64
	var x2 uint64
	x1, x2 = bits.Add64(arg1[0], arg2[0], uint64(0x0))
	var x3 uint64
	var x4 uint64
	x3, x4 = bits.Add64(arg1[1], arg2[1], uint64(p521Uint1(x2)))
	var x5 uint64
	var x6 uint64
	x5, x6 = bits.Add64(arg1[2], arg2[2], uint64(p521Uint1(x4)))
	var x7 uint64
	var x8 uint64
	x7, x8 = bits.Add64(arg1[3], arg2[3], uint64(p521Uint1(x6)))
	var x9 uint64
	var x10 uint64
	x9, x10 = bits.Add64(arg1[4], arg2[4], uint64(p521Uint1(x8)))
	var x11 uint64
	var x12 uint64
	x11, x12 = bits.Add64(arg1[5], arg2[5], uint64(p521Uint1(x10)))
	var x13 uint64
	var x14 uint64
	x13, x14 = bits.Add64(arg1[6], arg2[6], uint64(p521Uint1(x12)))
	var x15 uint64
	var x16 uint64
	x15, x16 = bits.Add64(arg1[7], arg2[7], uint64(p521Uint1(x14)))
	var x17 uint64
	var x18 uint64
	x17, x18 = bits.Add64(arg1[8], arg2[8], uint64(p521Uint1(x16)))
	var x19 uint64
	var x20 uint64
	x19, x20 = bits.Sub64(x1, 0xffffffffffffffff, uint64(0x0))
	var x21 uint64
	var x22 uint64
	x21, x22 = bits.Sub64(x3, 0xffffffffffffffff, uint64(p521Uint1(x20)))
	var x23 uint64
	var x24 uint64
	x23, x24 = bits.Sub64(x5, 0xffffffffffffffff, uint64(p521Uint1(x22)))
	var x25 uint64
	var x26 uint64
	x25, x26 = bits.Sub64(x7, 0xffffffffffffffff, uint64(p521Uint1(x24)))
	var x27 uint64
	var x28 uint64
	x27, x28 = bits.Sub64(x9, 0xffffffffffffffff, uint64(p521Uint1(x26)))
	var x29 uint64
	var x30 uint64
	x29, x30 = bits.Sub64(x11, 0xffffffffffffffff, uint64(p521Uint1(x28)))
	var x31 uint64
	var x32 uint64
	x31, x32 = bits.Sub64(x13, 0xffffffffffffffff, uint64(p521Uint1(x30)))
	var x33 uint64
	var x34 uint64
	x33, x34 = bits.Sub64(x15, 0xffffffffffffffff, uint64(p521Uint1(x32)))
	var x35 uint64
	var x36 uint64
	x35, x36 = bits.Sub64(x17, 0x1ff, uint64(p521Uint1(x34)))
	var x38 uint64
	_, x38 = bits.Sub64(uint64(p521Uint1(x18)), uint64(0x0), uint64(p521Uint1(x36)))
	var x39 uint64
	p521CmovznzU64(&x39, p521Uint1(x38), x19, x1)
	var x40 uint64
	p521CmovznzU64(&x40, p521Uint1(x38), x21, x3)
	var x41 uint64
	p521CmovznzU64(&x41, p521Uint1(x38), x23, x5)
	var x42 uint64
	p521CmovznzU64(&x42, p521Uint1(x38), x25, x7)
	var x43 uint64
	p521CmovznzU64(&x43, p521Uint1(x38), x27, x9)
	var x44 uint64
	p521CmovznzU64(&x44, p521Uint1(x38), x29, x11)
	var x45 uint64
	p521CmovznzU64(&x45, p521Uint1(x38), x31, x13)
	var x46 uint64
	p521CmovznzU64(&x46, p521Uint1(x38), x33, x15)
	var x47 uint64
	p521CmovznzU64(&x47, p521Uint1(x38), x35, x17)
	out1[0] = x39
	out1[1] = x40
	out1[2] = x41
	out1[3] = x42
	out1[4] = x43
	out1[5] = x44
	out1[6] = x45
	out1[7] = x46
	out1[8] = x47
}

// p521Sub subtracts two field elements in the Montgomery domain.
//
// Preconditions:
//
//	0 ≤ eval arg1 < m
//	0 ≤ eval arg2 < m
//
// Postconditions:
//
//	eval (from_montgomery out1) mod m = (eval (from_montgomery arg1) - eval (from_montgomery arg2)) mod m
//	0 ≤ eval out1 < m
func p521Sub(out1 *p521MontgomeryDomainFieldElement, arg1 *p521MontgomeryDomainFieldElement, arg2 *p521MontgomeryDomainFieldElement) {
	var x1 uint64
	var x2 uint64
	x1, x2 = bits.Sub64(arg1[0], arg2[0], uint64(0x0))
	var x3 uint64
	var x4 uint64
	x3, x4 = bits.Sub64(arg1[1], arg2[1], uint64(p521Uint1(x2)))
	var x5 uint64
	var x6 uint64
	x5, x6 = bits.Sub64(arg1[2], arg2[2], uint64(p521Uint1(x4)))
	var x7 uint64
	var x8 uint64
	x7, x8 = bits.Sub64(arg1[3], arg2[3], uint64(p521Uint1(x6)))
	var x9 uint64
	var x10 uint64
	x9, x10 = bits.Sub64(arg1[4], arg2[4], uint64(p521Uint1(x8)))
	var x11 uint64
	var x12 uint64
	x11, x12 = bits.Sub64(arg1[5], arg2[5], uint64(p521Uint1(x10)))
	var x13 uint64
	var x14 uint64
	x13, x14 = bits.Sub64(arg1[6], arg2[6], uint64(p521Uint1(x12)))
	var x15 uint64
	var x16 uint64
	x15, x16 = bits.Sub64(arg1[7], arg2[7], uint64(p521Uint1(x14)))
	var x17 uint64
	var x18 uint64
	x17, x18 = bits.Sub64(arg1[8], arg2[8], uint64(p521Uint1(x16)))
	var x19 uint64
	p521CmovznzU64(&x19, p521Uint1(x18), uint64(0x0), 0xffffffffffffffff)
	var x20 uint64
	var x21 uint64
	x20, x21 = bits.Add64(x1, x19, uint64(0x0))
	var x22 uint64
	var x23 uint64
	x22, x23 = bits.Add64(x3, x19, uint64(p521Uint1(x21)))
	var x24 uint64
	var x25 uint64
	x24, x25 = bits.Add64(x5, x19, uint64(p521Uint1(x23)))
	var x26 uint64
	var x27 uint64
	x26, x27 = bits.Add64(x7, x19, uint64(p521Uint1(x25)))
	var x28 uint64
	var x29 uint64
	x28, x29 = bits.Add64(x9, x19, uint64(p521Uint1(x27)))
	var x30 uint64
	var x31 uint64
	x30, x31 = bits.Add64(x11, x19, uint64(p521Uint1(x29)))
	var x32 uint64
	var x33 uint64
	x32, x33 = bits.Add64(x13, x19, uint64(p521Uint1(x31)))
	var x34 uint64
	var x35 uint64
	x34, x35 = bits.Add64(x15, x19, uint64(p521Uint1(x33)))
	var x36 uint64
	x36, _ = bits.Add64(x17, (x19 & 0x1ff), uint64(p521Uint1(x35)))
	out1[0] = x20
	out1[1] = x22
	out1[2] = x24
	out1[3] = x26
	out1[4] = x28
	out1[5] = x30
	out1[6] = x32
	out1[7] = x34
	out1[8] = x36
}

// p521SetOne returns the field element one in the Montgomery domain.
//
// Postconditions:
//
//	eval (from_montgomery out1) mod m = 1 mod m
//	0 ≤ eval out1 < m
func p521SetOne(out1 *p521MontgomeryDomainFieldElement) {
	out1[0] = 0x80000000000000
	out1[1] = uint64(0x0)
	out1[2] = uint64(0x0)
	out1[3] = uint64(0x0)
	out1[4] = uint64(0x0)
	out1[5] = uint64(0x0)
	out1[6] = uint64(0x0)
	out1[7] = uint64(0x0)
	out1[8] = uint64(0x0)
}

// p521FromMontgomery translates a field element out of the Montgomery domain.
//
// Preconditions:
//
//	0 ≤ eval arg1 < m
//
// Postconditions:
//
//	eval out1 mod m = (eval arg1 * ((2^64)⁻¹ mod m)^9) mod m
//	0 ≤ eval out1 < m
func p521FromMontgomery(out1 *p521NonMontgomeryDomainFieldElement, arg1 *p521MontgomeryDomainFieldElement) {
	x1 := arg1[0]
	var x2 uint64
	var x3 uint64
	x3, x2 = bits.Mul64(x1, 0x1ff)
	var x4 uint64
	var x5 uint64
	x5, x4 = bits.Mul64(x1, 0xffffffffffffffff)
	var x6 uint64
	var x7 uint64
	x7, x6 = bits.Mul64(x1, 0xffffffffffffffff)
	var x8 uint64
	var x9 uint64
	x9, x8 = bits.Mul64(x1, 0xffffffffffffffff)
	var x10 uint64
	var x11 uint64
	x11, x10 = bits.Mul64(x1, 0xffffffffffffffff)
	var x12 uint64
	var x13 uint64
	x13, x12 = bits.Mul64(x1, 0xffffffffffffffff)
	var x14 uint64
	var x15 uint64
	x15, x14 = bits.Mul64(x1, 0xffffffffffffffff)
	var x16 uint64
	var x17 uint64
	x17, x16 = bits.Mul64(x1, 0xffffffffffffffff)
	var x18 uint64
	var x19 uint64
	x19, x18 = bits.Mul64(x1, 0xffffffffffffffff)
	var x20 uint64
	var x21 uint64
	x20, x21 = bits.Add64(x19, x16, uint64(0x0))
	var x22 uint64
	var x23 uint64
	x22, x23 = bits.Add64(x17, x14, uint64(p521Uint1(x21)))
	var x24 uint64
	var x25 uint64
	x24, x25 = bits.Add64(x15, x12, uint64(p521Uint1(x23)))
	var x26 uint64
	var x27 uint64
	x26, x27 = bits.Add64(x13, x10, uint64(p521Uint1(x25)))
	var x28 uint64
	var x29 uint64
	x28, x29 = bits.Add64(x11, x8, uint64(p521Uint1(x27)))
	var x30 uint64
	var x31 uint64
	x30, x31 = bits.Add64(x9, x6, uint64(p521Uint1(x29)))
	var x32 uint64
	var x33 uint64
	x32, x33 = bits.Add64(x7, x4, uint64(p521Uint1(x31)))
	var x34 uint64
	var x35 uint64
	x34, x35 = bits.Add64(x5, x2, uint64(p521Uint1(x33)))
	var x37 uint64
	_, x37 = bits.Add64(x1, x18, uint64(0x0))
	var x38 uint64
	var x39 uint64
	x38, x39 = bits.Add64(uint64(0x0), x20, uint64(p521Uint1(x37)))
	var x40 uint64
	var x41 uint64
	x40, x41 = bits.Add64(uint64(0x0), x22, uint64(p521Uint1(x39)))
	var x42 uint64
	var x43 uint64
	x42, x43 = bits.Add64(uint64(0x0), x24, uint64(p521Uint1(x41)))
	var x44 uint64
	var x45 uint64
	x44, x45 = bits.Add64(uint64(0x0), x26, uint64(p521Uint1(x43)))
	var x46 uint64
	var x47 uint64
	x46, x47 = bits.Add64(uint64(0x0), x28, uint64(p521Uint1(x45)))
	var x48 uint64
	var x49 uint64
	x48, x49 = bits.Add64(uint64(0x0), x30, uint64(p521Uint1(x47)))
	var x50 uint64
	var x51 uint64
	x50, x51 = bits.Add64(uint64(0x0), x32, uint64(p521Uint1(x49)))
	var x52 uint64
	var x53 uint64
	x52, x53 = bits.Add64(uint64(0x0), x34, uint64(p521Uint1(x51)))
	var x54 uint64
	var x55 uint64
	x54, x55 = bits.Add64(x38, arg1[1], uint64(0x0))
	var x56 uint64
	var x57 uint64
	x56, x57 = bits.Add64(x40, uint64(0x0), uint64(p521Uint1(x55)))
	var x58 uint64
	var x59 uint64
	x58, x59 = bits.Add64(x42, uint64(0x0), uint64(p521Uint1(x57)))
	var x60 uint64
	var x61 uint64
	x60, x61 = bits.Add64(x44, uint64(0x0), uint64(p521Uint1(x59)))
	var x62 uint64
	var x63 uint64
	x62, x63 = bits.Add64(x46, uint64(0x0), uint64(p521Uint1(x61)))
	var x64 uint64
	var x65 uint64
	x64, x65 = bits.Add64(x48, uint64(0x0), uint64(p521Uint1(x63)))
	var x66 uint64
	var x67 uint64
	x66, x67 = bits.Add64(x50, uint64(0x0), uint64(p521Uint1(x65)))
	var x68 uint64
	var x69 uint64
	x68, x69 = bits.Add64(x52, uint64(0x0), uint64(p521Uint1(x67)))
	var x70 uint64
	var x71 uint64
	x71, x70 = bits.Mul64(x54, 0x1ff)
	var x72 uint64
	var x73 uint64
	x73, x72 = bits.Mul64(x54, 0xffffffffffffffff)
	var x74 uint64
	var x75 uint64
	x75, x74 = bits.Mul64(x54, 0xffffffffffffffff)
	var x76 uint64
	var x77 uint64
	x77, x76 = bits.Mul64(x54, 0xffffffffffffffff)
	var x78 uint64
	var x79 uint64
	x79, x78 = bits.Mul64(x54, 0xffffffffffffffff)
	var x80 uint64
	var x81 uint64
	x81, x80 = bits.Mul64(x54, 0xffffffffffffffff)
	var x82 uint64
	var x83 uint64
	x83, x82 = bits.Mul64(x54, 0xffffffffffffffff)
	var x84 uint64
	var x85 uint64
	x85, x84 = bits.Mul64(x54, 0xffffffffffffffff)
	var x86 uint64
	var x87 uint64
	x87, x86 = bits.Mul64(x54, 0xffffffffffffffff)
	var x88 uint64
	var x89 uint64
	x88, x89 = bits.Add64(x87, x84, uint64(0x0))
	var x90 uint64
	var x91 uint64
	x90, x91 = bits.Add64(x85, x82, uint64(p521Uint1(x89)))
	var x92 uint64
	var x93 uint64
	x92, x93 = bits.Add64(x83, x80, uint64(p521Uint1(x91)))
	var x94 uint64
	var x95 uint64
	x94, x95 = bits.Add64(x81, x78, uint64(p521Uint1(x93)))
	var x96 uint64
	var x97 uint64
	x96, x97 = bits.Add64(x79, x76, uint64(p521Uint1(x95)))
	var x98 uint64
	var x99 uint64
	x98, x99 = bits.Add64(x77, x74, uint64(p521Uint1(x97)))
	var x100 uint64
	var x101 uint64
	x100, x101 = bits.Add64(x75, x72, uint64(p521Uint1(x99)))
	var x102 uint64
	var x103 uint64
	x102, x103 = bits.Add64(x73, x70, uint64(p521Uint1(x101)))
	var x105 uint64
	_, x105 = bits.Add64(x54, x86, uint64(0x0))
	var x106 uint64
	var x107 uint64
	x106, x107 = bits.Add64(x56, x88, uint64(p521Uint1(x105)))
	var x108 uint64
	var x109 uint64
	x108, x109 = bits.Add64(x58, x90, uint64(p521Uint1(x107)))
	var x110 uint64
	var x111 uint64
	x110, x111 = bits.Add64(x60, x92, uint64(p521Uint1(x109)))
	var x112 uint64
	var x113 uint64
	x112, x113 = bits.Add64(x62, x94, uint64(p521Uint1(x111)))
	var x114 uint64
	var x115 uint64
	x114, x115 = bits.Add64(x64, x96, uint64(p521Uint1(x113)))
	var x116 uint64
	var x117 uint64
	x116, x117 = bits.Add64(x66, x98, uint64(p521Uint1(x115)))
	var x118 uint64
	var x119 uint64
	x118, x119 = bits.Add64(x68, x100, uint64(p521Uint1(x117)))
	var x120 uint64
	var x121 uint64
	x120, x121 = bits.Add64((uint64(p521Uint1(x69)) + (uint64(p521Uint1(x53)) + (uint64(p521Uint1(x35)) + x3))), x102, uint64(p521Uint1(x119)))
	var x122 uint64
	var x123 uint64
	x122, x123 = bits.Add64(x106, arg1[2], uint64(0x0))
	var x124 uint64
	var x125 uint64
	x124, x125 = bits.Add64(x108, uint64(0x0), uint64(p521Uint1(x123)))
	var x126 uint64
	var x127 uint64
	x126, x127 = bits.Add64(x110, uint64(0x0), uint64(p521Uint1(x125)))
	var x128 uint64
	var x129 uint64
	x128, x129 = bits.Add64(x112, uint64(0x0), uint64(p521Uint1(x127)))
	var x130 uint64
	var x131 uint64
	x130, x131 = bits.Add64(x114, uint64(0x0), uint64(p521Uint1(x129)))
	var x132 uint64
	var x133 uint64
	x132, x133 = bits.Add64(x116, uint64(0x0), uint64(p521Uint1(x131)))
	var x134 uint64
	var x135 uint64
	x134, x135 = bits.Add64(x118, uint64(0x0), uint64(p521Uint1(x133)))
	var x136 uint64
	var x137 uint64
	x136, x137 = bits.Add64(x120, uint64(0x0), uint64(p521Uint1(x135)))
	var x138 uint64
	var x139 uint64
	x139, x138 = bits.Mul64(x122, 0x1ff)
	var x140 uint64
	var x141 uint64
	x141, x140 = bits.Mul64(x122, 0xffffffffffffffff)
	var x142 uint64
	var x143 uint64
	x143, x142 = bits.Mul64(x122, 0xffffffffffffffff)
	var x144 uint64
	var x145 uint64
	x145, x144 = bits.Mul64(x122, 0xffffffffffffffff)
	var x146 uint64
	var x147 uint64
	x147, x146 = bits.Mul64(x122, 0xffffffffffffffff)
	var x148 uint64
	var x149 uint64
	x149, x148 = bits.Mul64(x122, 0xffffffffffffffff)
	var x150 uint64
	var x151 uint64
	x151, x150 = bits.Mul64(x122, 0xffffffffffffffff)
	var x152 uint64
	var x153 uint64
	x153, x152 = bits.Mul64(x122, 0xffffffffffffffff)
	var x154 uint64
	var x155 uint64
	x155, x154 = bits.Mul64(x122, 0xffffffffffffffff)
	var x156 uint64
	var x157 uint64
	x156, x157 = bits.Add64(x155, x152, uint64(0x0))
	var x158 uint64
	var x159 uint64
	x158, x159 = bits.Add64(x153, x150, uint64(p521Uint1(x157)))
	var x160 uint64
	var x161 uint64
	x160, x161 = bits.Add64(x151, x148, uint64(p521Uint1(x159)))
	var x162 uint64
	var x163 uint64
	x162, x163 = bits.Add64(x149, x146, uint64(p521Uint1(x161)))
	var x164 uint64
	var x165 uint64
	x164, x165 = bits.Add64(x147, x144, uint64(p521Uint1(x163)))
	var x166 uint64
	var x167 uint64
	x166, x167 = bits.Add64(x145, x142, uint64(p521Uint1(x165)))
	var x168 uint64
	var x169 uint64
	x168, x169 = bits.Add64(x143, x140, uint64(p521Uint1(x167)))
	var x170 uint64
	var x171 uint64
	x170, x171 = bits.Add64(x141, x138, uint64(p521Uint1(x169)))
	var x173 uint64
	_, x173 = bits.Add64(x122, x154, uint64(0x0))
	var x174 uint64
	var x175 uint64
	x174, x175 = bits.Add64(x124, x156, uint64(p521Uint1(x173)))
	var x176 uint64
	var x177 uint64
	x176, x177 = bits.Add64(x126, x158, uint64(p521Uint1(x175)))
	var x178 uint64
	var x179 uint64
	x178, x179 = bits.Add64(x128, x160, uint64(p521Uint1(x177)))
	var x180 uint64
	var x181 uint64
	x180, x181 = bits.Add64(x130, x162, uint64(p521Uint1(x179)))
	var x182 uint64
	var x183 uint64
	x182, x183 = bits.Add64(x132, x164, uint64(p521Uint1(x181)))
	var x184 uint64
	var x185 uint64
	x184, x185 = bits.Add64(x134, x166, uint64(p521Uint1(x183)))
	var x186 uint64
	var x187 uint64
	x186, x187 = bits.Add64(x136, x168, uint64(p521Uint1(x185)))
	var x188 uint64
	var x189 uint64
	x188, x189 = bits.Add64((uint64(p521Uint1(x137)) + (uint64(p521Uint1(x121)) + (uint64(p521Uint1(x103)) + x71))), x170, uint64(p521Uint1(x187)))
	var x190 uint64
	var x191 uint64
	x190, x191 = bits.Add64(x174, arg1[3], uint64(0x0))
	var x192 uint64
	var x193 uint64
	x192, x193 = bits.Add64(x176, uint64(0x0), uint64(p521Uint1(x191)))
	var x194 uint64
	var x195 uint64
	x194, x195 = bits.Add64(x178, uint64(0x0), uint64(p521Uint1(x193)))
	var x196 uint64
	var x197 uint64
	x196, x197 = bits.Add64(x180, uint64(0x0), uint64(p521Uint1(x195)))
	var x198 uint64
	var x199 uint64
	x198, x199 = bits.Add64(x182, uint64(0x0), uint64(p521Uint1(x197)))
	var x200 uint64
	var x201 uint64
	x200, x201 = bits.Add64(x184, uint64(0x0), uint64(p521Uint1(x199)))
	var x202 uint64
	var x203 uint64
	x202, x203 = bits.Add64(x186, uint64(0x0), uint64(p521Uint1(x201)))
	var x204 uint64
	var x205 uint64
	x204, x205 = bits.Add64(x188, uint64(0x0), uint64(p521Uint1(x203)))
	var x206 uint64
	var x207 uint64
	x207, x206 = bits.Mul64(x190, 0x1ff)
	var x208 uint64
	var x209 uint64
	x209, x208 = bits.Mul64(x190, 0xffffffffffffffff)
	var x210 uint64
	var x211 uint64
	x211, x210 = bits.Mul64(x190, 0xffffffffffffffff)
	var x212 uint64
	var x213 uint64
	x213, x212 = bits.Mul64(x190, 0xffffffffffffffff)
	var x214 uint64
	var x215 uint64
	x215, x214 = bits.Mul64(x190, 0xffffffffffffffff)
	var x216 uint64
	var x217 uint64
	x217, x216 = bits.Mul64(x190, 0xffffffffffffffff)
	var x218 uint64
	var x219 uint64
	x219, x218 = bits.Mul64(x190, 0xffffffffffffffff)
	var x220 uint64
	var x221 uint64
	x221, x220 = bits.Mul64(x190, 0xffffffffffffffff)
	var x222 uint64
	var x223 uint64
	x223, x222 = bits.Mul64(x190, 0xffffffffffffffff)
	var x224 uint64
	var x225 uint64
	x224, x225 = bits.Add64(x223, x220, uint64(0x0))
	var x226 uint64
	var x227 uint64
	x226, x227 = bits.Add64(x221, x218, uint64(p521Uint1(x225)))
	var x228 uint64
	var x229 uint64
	x228, x229 = bits.Add64(x219, x216, uint64(p521Uint1(x227)))
	var x230 uint64
	var x231 uint64
	x230, x231 = bits.Add64(x217, x214, uint64(p521Uint1(x229)))
	var x232 uint64
	var x233 uint64
	x232, x233 = bits.Add64(x215, x212, uint64(p521Uint1(x231)))
	var x234 uint64
	var x235 uint64
	x234, x235 = bits.Add64(x213, x210, uint64(p521Uint1(x233)))
	var x236 uint64
	var x237 uint64
	x236, x237 = bits.Add64(x211, x208, uint64(p521Uint1(x235)))
	var x238 uint64
	var x239 uint64
	x238, x239 = bits.Add64(x209, x206, uint64(p521Uint1(x237)))
	var x241 uint64
	_, x241 = bits.Add64(x190, x222, uint64(0x0))
	var x242 uint64
	var x243 uint64
	x242, x243 = bits.Add64(x192, x224, uint64(p521Uint1(x241)))
	var x244 uint64
	var x245 uint64
	x244, x245 = bits.Add64(x194, x226, uint64(p521Uint1(x243)))
	var x246 uint64
	var x247 uint64
	x246, x247 = bits.Add64(x196, x228, uint64(p521Uint1(x245)))
	var x248 uint64
	var x249 uint64
	x248, x249 = bits.Add64(x198, x230, uint64(p521Uint1(x247)))
	var x250 uint64
	var x251 uint64
	x250, x251 = bits.Add64(x200, x232, uint64(p521Uint1(x249)))
	var x252 uint64
	var x253 uint64
	x252, x253 = bits.Add64(x202, x234, uint64(p521Uint1(x251)))
	var x254 uint64
	var x255 uint64
	x254, x255 = bits.Add64(x204, x236, uint64(p521Uint1(x253)))
	var x256 uint64
	var x257 uint64
	x256, x257 = bits.Add64((uint64(p521Uint1(x205)) + (uint64(p521Uint1(x189)) + (uint64(p521Uint1(x171)) + x139))), x238, uint64(p521Uint1(x255)))
	var x258 uint64
	var x259 uint64
	x258, x259 = bits.Add64(x242, arg1[4], uint64(0x0))
	var x260 uint64
	var x261 uint64
	x260, x261 = bits.Add64(x244, uint64(0x0), uint64(p521Uint1(x259)))
	var x262 uint64
	var x263 uint64
	x262, x263 = bits.Add64(x246, uint64(0x0), uint64(p521Uint1(x261)))
	var x264 uint64
	var x265 uint64
	x264, x265 = bits.Add64(x248, uint64(0x0), uint64(p521Uint1(x263)))
	var x266 uint64
	var x267 uint64
	x266, x267 = bits.Add64(x250, uint64(0x0), uint64(p521Uint1(x265)))
	var x268 uint64
	var x269 uint64
	x268, x269 = bits.Add64(x252, uint64(0x0), uint64(p521Uint1(x267)))
	var x270 uint64
	var x271 uint64
	x270, x271 = bits.Add64(x254, uint64(0x0), uint64(p521Uint1(x269)))
	var x272 uint64
	var x273 uint64
	x272, x273 = bits.Add64(x256, uint64(0x0), uint64(p521Uint1(x271)))
	var x274 uint64
	var x275 uint64
	x275, x274 = bits.Mul64(x258, 0x1ff)
	var x276 uint64
	var x277 uint64
	x277, x276 = bits.Mul64(x258, 0xffffffffffffffff)
	var x278 uint64
	var x279 uint64
	x279, x278 = bits.Mul64(x258, 0xffffffffffffffff)
	var x280 uint64
	var x281 uint64
	x281, x280 = bits.Mul64(x258, 0xffffffffffffffff)
	var x282 uint64
	var x283 uint64
	x283, x282 = bits.Mul64(x258, 0xffffffffffffffff)
	var x284 uint64
	var x285 uint64
	x285, x284 = bits.Mul64(x258, 0xffffffffffffffff)
	var x286 uint64
	var x287 uint64
	x287, x286 = bits.Mul64(x258, 0xffffffffffffffff)
	var x288 uint64
	var x289 uint64
	x289, x288 = bits.Mul64(x258, 0xffffffffffffffff)
	var x290 uint64
	var x291 uint64
	x291, x290 = bits.Mul64(x258, 0xffffffffffffffff)
	var x292 uint64
	var x293 uint64
	x292, x293 = bits.Add64(x291, x288, uint64(0x0))
	var x294 uint64
	var x295 uint64
	x294, x295 = bits.Add64(x289, x286, uint64(p521Uint1(x293)))
	var x296 uint64
	var x297 uint64
	x296, x297 = bits.Add64(x287, x284, uint64(p521Uint1(x295)))
	var x298 uint64
	var x299 uint64
	x298, x299 = bits.Add64(x285, x282, uint64(p521Uint1(x297)))
	var x300 uint64
	var x301 uint64
	x300, x301 = bits.Add64(x283, x280, uint64(p521Uint1(x299)))
	var x302 uint64
	var x303 uint64
	x302, x303 = bits.Add64(x281, x278, uint64(p521Uint1(x301)))
	var x304 uint64
	var x305 uint64
	x304, x305 = bits.Add64(x279, x276, uint64(p521Uint1(x303)))
	var x306 uint64
	var x307 uint64
	x306, x307 = bits.Add64(x277, x274, uint64(p521Uint1(x305)))
	var x309 uint64
	_, x309 = bits.Add64(x258, x290, uint64(0x0))
	var x310 uint64
	var x311 uint64
	x310, x311 = bits.Add64(x260, x292, uint64(p521Uint1(x309)))
	var x312 uint64
	var x313 uint64
	x312, x313 = bits.Add64(x262, x294, uint64(p521Uint1(x311)))
	var x314 uint64
	var x315 uint64
	x314, x315 = bits.Add64(x264, x296, uint64(p521Uint1(x313)))
	var x316 uint64
	var x317 uint64
	x316, x317 = bits.Add64(x266, x298, uint64(p521Uint1(x315)))
	var x318 uint64
	var x319 uint64
	x318, x319 = bits.Add64(x268, x300, uint64(p521Uint1(x317)))
	var x320 uint64
	var x321 uint64
	x320, x321 = bits.Add64(x270, x302, uint64(p521Uint1(x319)))
	var x322 uint64
	var x323 uint64
	x322, x323 = bits.Add64(x272, x304, uint64(p521Uint1(x321)))
	var x324 uint64
	var x325 uint64
	x324, x325 = bits.Add64((uint64(p521Uint1(x273)) + (uint64(p521Uint1(x257)) + (uint64(p521Uint1(x239)) + x207))), x306, uint64(p521Uint1(x323)))
	var x326 uint64
	var x327 uint64
	x326, x327 = bits.Add64(x310, arg1[5], uint64(0x0))
	var x328 uint64
	var x329 uint64
	x328, x329 = bits.Add64(x312, uint64(0x0), uint64(p521Uint1(x327)))
	var x330 uint64
	var x331 uint64
	x330, x331 = bits.Add64(x314, uint64(0x0), uint64(p521Uint1(x329)))
	var x332 uint64
	var x333 uint64
	x332, x333 = bits.Add64(x316, uint64(0x0), uint64(p521Uint1(x331)))
	var x334 uint64
	var x335 uint64
	x334, x335 = bits.Add64(x318, uint64(0x0), uint64(p521Uint1(x333)))
	var x336 uint64
	var x337 uint64
	x336, x337 = bits.Add64(x320, uint64(0x0), uint64(p521Uint1(x335)))
	var x338 uint64
	var x339 uint64
	x338, x339 = bits.Add64(x322, uint64(0x0), uint64(p521Uint1(x337)))
	var x340 uint64
	var x341 uint64
	x340, x341 = bits.Add64(x324, uint64(0x0), uint64(p521Uint1(x339)))
	var x342 uint64
	var x343 uint64
	x343, x342 = bits.Mul64(x326, 0x1ff)
	var x344 uint64
	var x345 uint64
	x345, x344 = bits.Mul64(x326, 0xffffffffffffffff)
	var x346 uint64
	var x347 uint64
	x347, x346 = bits.Mul64(x326, 0xffffffffffffffff)
	var x348 uint64
	var x349 uint64
	x349, x348 = bits.Mul64(x326, 0xffffffffffffffff)
	var x350 uint64
	var x351 uint64
	x351, x350 = bits.Mul64(x326, 0xffffffffffffffff)
	var x352 uint64
	var x353 uint64
	x353, x352 = bits.Mul64(x326, 0xffffffffffffffff)
	var x354 uint64
	var x355 uint64
	x355, x354 = bits.Mul64(x326, 0xffffffffffffffff)
	var x356 uint64
	var x357 uint64
	x357, x356 = bits.Mul64(x326, 0xffffffffffffffff)
	var x358 uint64
	var x359 uint64
	x359, x358 = bits.Mul64(x326, 0xffffffffffffffff)
	var x360 uint64
	var x361 uint64
	x360, x361 = bits.Add64(x359, x356, uint64(0x0))
	var x362 uint64
	var x363 uint64
	x362, x363 = bits.Add64(x357, x354, uint64(p521Uint1(x361)))
	var x364 uint64
	var x365 uint64
	x364, x365 = bits.Add64(x355, x352, uint64(p521Uint1(x363)))
	var x366 uint64
	var x367 uint64
	x366, x367 = bits.Add64(x353, x350, uint64(p521Uint1(x365)))
	var x368 uint64
	var x369 uint64
	x368, x369 = bits.Add64(x351, x348, uint64(p521Uint1(x367)))
	var x370 uint64
	var x371 uint64
	x370, x371 = bits.Add64(x349, x346, uint64(p521Uint1(x369)))
	var x372 uint64
	var x373 uint64
	x372, x373 = bits.Add64(x347, x344, uint64(p521Uint1(x371)))
	var x374 uint64
	var x375 uint64
	x374, x375 = bits.Add64(x345, x342, uint64(p521Uint1(x373)))
	var x377 uint64
	_, x377 = bits.Add64(x326, x358, uint64(0x0))
	var x378 uint64
	var x379 uint64
	x378, x379 = bits.Add64(x328, x360, uint64(p521Uint1(x377)))
	var x380 uint64
	var x381 uint64
	x380, x381 = bits.Add64(x330, x362, uint64(p521Uint1(x379)))
	var x382 uint64
	var x383 uint64
	x382, x383 = bits.Add64(x332, x364, uint64(p521Uint1(x381)))
	var x384 uint64
	var x385 uint64
	x384, x385 = bits.Add64(x334, x366, uint64(p521Uint1(x383)))
	var x386 uint64
	var x387 uint64
	x386, x387 = bits.Add64(x336, x368, uint64(p521Uint1(x385)))
	var x388 uint64
	var x389 uint64
	x388, x389 = bits.Add64(x338, x370, uint64(p521Uint1(x387)))
	var x390 uint64
	var x391 uint64
	x390, x391 = bits.Add64(x340, x372, uint64(p521Uint1(x389)))
	var x392 uint64
	var x393 uint64
	x392, x393 = bits.Add64((uint64(p521Uint1(x341)) + (uint64(p521Uint1(x325)) + (uint64(p521Uint1(x307)) + x275))), x374, uint64(p521Uint1(x391)))
	var x394 uint64
	var x395 uint64
	x394, x395 = bits.Add64(x378, arg1[6], uint64(0x0))
	var x396 uint64
	var x397 uint64
	x396, x397 = bits.Add64(x380, uint64(0x0), uint64(p521Uint1(x395)))
	var x398 uint64
	var x399 uint64
	x398, x399 = bits.Add64(x382, uint64(0x0), uint64(p521Uint1(x397)))
	var x400 uint64
	var x401 uint64
	x400, x401 = bits.Add64(x384, uint64(0x0), uint64(p521Uint1(x399)))
	var x402 uint64
	var x403 uint64
	x402, x403 = bits.Add64(x386, uint64(0x0), uint64(p521Uint1(x401)))
	var x404 uint64
	var x405 uint64
	x404, x405 = bits.Add64(x388, uint64(0x0), uint64(p521Uint1(x403)))
	var x406 uint64
	var x407 uint64
	x406, x407 = bits.Add64(x390, uint64(0x0), uint64(p521Uint1(x405)))
	var x408 uint64
	var x409 uint64
	x408, x409 = bits.Add64(x392, uint64(0x0), uint64(p521Uint1(x407)))
	var x410 uint64
	var x411 uint64
	x411, x410 = bits.Mul64(x394, 0x1ff)
	var x412 uint64
	var x413 uint64
	x413, x412 = bits.Mul64(x394, 0xffffffffffffffff)
	var x414 uint64
	var x415 uint64
	x415, x414 = bits.Mul64(x394, 0xffffffffffffffff)
	var x416 uint64
	var x417 uint64
	x417, x416 = bits.Mul64(x394, 0xffffffffffffffff)
	var x418 uint64
	var x419 uint64
	x419, x418 = bits.Mul64(x394, 0xffffffffffffffff)
	var x420 uint64
	var x421 uint64
	x421, x420 = bits.Mul64(x394, 0xffffffffffffffff)
	var x422 uint64
	var x423 uint64
	x423, x422 = bits.Mul64(x394, 0xffffffffffffffff)
	var x424 uint64
	var x425 uint64
	x425, x424 = bits.Mul64(x394, 0xffffffffffffffff)
	var x426 uint64
	var x427 uint64
	x427, x426 = bits.Mul64(x394, 0xffffffffffffffff)
	var x428 uint64
	var x429 uint64
	x428, x429 = bits.Add64(x427, x424, uint64(0x0))
	var x430 uint64
	var x431 uint64
	x430, x431 = bits.Add64(x425, x422, uint64(p521Uint1(x429)))
	var x432 uint64
	var x433 uint64
	x432, x433 = bits.Add64(x423, x420, uint64(p521Uint1(x431)))
	var x434 uint64
	var x435 uint64
	x434, x435 = bits.Add64(x421, x418, uint64(p521Uint1(x433)))
	var x436 uint64
	var x437 uint64
	x436, x437 = bits.Add64(x419, x416, uint64(p521Uint1(x435)))
	var x438 uint64
	var x439 uint64
	x438, x439 = bits.Add64(x417, x414, uint64(p521Uint1(x437)))
	var x440 uint64
	var x441 uint64
	x440, x441 = bits.Add64(x415, x412, uint64(p521Uint1(x439)))
	var x442 uint64
	var x443 uint64
	x442, x443 = bits.Add64(x413, x410, uint64(p521Uint1(x441)))
	var x445 uint64
	_, x445 = bits.Add64(x394, x426, uint64(0x0))
	var x446 uint64
	var x447 uint64
	x446, x447 = bits.Add64(x396, x428, uint64(p521Uint1(x445)))
	var x448 uint64
	var x449 uint64
	x448, x449 = bits.Add64(x398, x430, uint64(p521Uint1(x447)))
	var x450 uint64
	var x451 uint64
	x450, x451 = bits.Add64(x400, x432, uint64(p521Uint1(x449)))
	var x452 uint64
	var x453 uint64
	x452, x453 = bits.Add64(x402, x434, uint64(p521Uint1(x451)))
	var x454 uint64
	var x455 uint64
	x454, x455 = bits.Add64(x404, x436, uint64(p521Uint1(x453)))
	var x456 uint64
	var x457 uint64
	x456, x457 = bits.Add64(x406, x438, uint64(p521Uint1(x455)))
	var x458 uint64
	var x459 uint64
	x458, x459 = bits.Add64(x408, x440, uint64(p521Uint1(x457)))
	var x460 uint64
	var x461 uint64
	x460, x461 = bits.Add64((uint64(p521Uint1(x409)) + (uint64(p521Uint1(x393)) + (uint64(p521Uint1(x375)) + x343))), x442, uint64(p521Uint1(x459)))
	var x462 uint64
	var x463 uint64
	x462, x463 = bits.Add64(x446, arg1[7], uint64(0x0))
	var x464 uint64
	var x465 uint64
	x464, x465 = bits.Add64(x448, uint64(0x0), uint64(p521Uint1(x463)))
	var x466 uint64
	var x467 uint64
	x466, x467 = bits.Add64(x450, uint64(0x0), uint64(p521Uint1(x465)))
	var x468 uint64
	var x469 uint64
	x468, x469 = bits.Add64(x452, uint64(0x0), uint64(p521Uint1(x467)))
	var x470 uint64
	var x471 uint64
	x470, x471 = bits.Add64(x454, uint64(0x0), uint64(p521Uint1(x469)))
	var x472 uint64
	var x473 uint64
	x472, x473 = bits.Add64(x456, uint64(0x0), uint64(p521Uint1(x471)))
	var x474 uint64
	var x475 uint64
	x474, x475 = bits.Add64(x458, uint64(0x0), uint64(p521Uint1(x473)))
	var x476 uint64
	var x477 uint64
	x476, x477 = bits.Add64(x460, uint64(0x0), uint64(p521Uint1(x475)))
	var x478 uint64
	var x479 uint64
	x479, x478 = bits.Mul64(x462, 0x1ff)
	var x480 uint64
	var x481 uint64
	x481, x480 = bits.Mul64(x462, 0xffffffffffffffff)
	var x482 uint64
	var x483 uint64
	x483, x482 = bits.Mul64(x462, 0xffffffffffffffff)
	var x484 uint64
	var x485 uint64
	x485, x484 = bits.Mul64(x462, 0xffffffffffffffff)
	var x486 uint64
	var x487 uint64
	x487, x486 = bits.Mul64(x462, 0xffffffffffffffff)
	var x488 uint64
	var x489 uint64
	x489, x488 = bits.Mul64(x462, 0xffffffffffffffff)
	var x490 uint64
	var x491 uint64
	x491, x490 = bits.Mul64(x462, 0xffffffffffffffff)
	var x492 uint64
	var x493 uint64
	x493, x492 = bits.Mul64(x462, 0xffffffffffffffff)
	var x494 uint64
	var x495 uint64
	x495, x494 = bits.Mul64(x462, 0xffffffffffffffff)
	var x496 uint64
	var x497 uint64
	x496, x497 = bits.Add64(x495, x492, uint64(0x0))
	var x498 uint64
	var x499 uint64
	x498, x499 = bits.Add64(x493, x490, uint64(p521Uint1(x497)))
	var x500 uint64
	var x501 uint64
	x500, x501 = bits.Add64(x491, x488, uint64(p521Uint1(x499)))
	var x502 uint64
	var x503 uint64
	x502, x503 = bits.Add64(x489, x486, uint64(p521Uint1(x501)))
	var x504 uint64
	var x505 uint64
	x504, x505 = bits.Add64(x487, x484, uint64(p521Uint1(x503)))
	var x506 uint64
	var x507 uint64
	x506, x507 = bits.Add64(x485, x482, uint64(p521Uint1(x505)))
	var x508 uint64
	var x509 uint64
	x508, x509 = bits.Add64(x483, x480, uint64(p521Uint1(x507)))
	var x510 uint64
	var x511 uint64
	x510, x511 = bits.Add64(x481, x478, uint64(p521Uint1(x509)))
	var x513 uint64
	_, x513 = bits.Add64(x462, x494, uint64(0x0))
	var x514 uint64
	var x515 uint64
	x514, x515 = bits.Add64(x464, x496, uint64(p521Uint1(x513)))
	var x516 uint64
	var x517 uint64
	x516, x517 = bits.Add64(x466, x498, uint64(p521Uint1(x515)))
	var x518 uint64
	var x519 uint64
	x518, x519 = bits.Add64(x468, x500, uint64(p521Uint1(x517)))
	var x520 uint64
	var x521 uint64
	x520, x521 = bits.Add64(x470, x502, uint64(p521Uint1(x519)))
	var x522 uint64
	var x523 uint64
	x522, x523 = bits.Add64(x472, x504, uint64(p521Uint1(x521)))
	var x524 uint64
	var x525 uint64
	x524, x525 = bits.Add64(x474, x506, uint64(p521Uint1(x523)))
	var x526 uint64
	var x527 uint64
	x526, x527 = bits.Add64(x476, x508, uint64(p521Uint1(x525)))
	var x528 uint64
	var x529 uint64
	x528, x529 = bits.Add64((uint64(p521Uint1(x477)) + (uint64(p521Uint1(x461)) + (uint64(p521Uint1(x443)) + x411))), x510, uint64(p521Uint1(x527)))
	var x530 uint64
	var x531 uint64
	x530, x531 = bits.Add64(x514, arg1[8], uint64(0x0))
	var x532 uint64
	var x533 uint64
	x532, x533 = bits.Add64(x516, uint64(0x0), uint64(p521Uint1(x531)))
	var x534 uint64
	var x535 uint64
	x534, x535 = bits.Add64(x518, uint64(0x0), uint64(p521Uint1(x533)))
	var x536 uint64
	var x537 uint64
	x536, x537 = bits.Add64(x520, uint64(0x0), uint64(p521Uint1(x535)))
	var x538 uint64
	var x539 uint64
	x538, x539 = bits.Add64(x522, uint64(0x0), uint64(p521Uint1(x537)))
	var x540 uint64
	var x541 uint64
	x540, x541 = bits.Add64(x524, uint64(0x0), uint64(p521Uint1(x539)))
	var x542 uint64
	var x543 uint64
	x542, x543 = bits.Add64(x526, uint64(0x0), uint64(p521Uint1(x541)))
	var x544 uint64
	var x545 uint64
	x544, x545 = bits.Add64(x528, uint64(0x0), uint64(p521Uint1(x543)))
	var x546 uint64
	var x547 uint64
	x547, x546 = bits.Mul64(x530, 0x1ff)
	var x548 uint64
	var x549 uint64
	x549, x548 = bits.Mul64(x530, 0xffffffffffffffff)
	var x550 uint64
	var x551 uint64
	x551, x550 = bits.Mul64(x530, 0xffffffffffffffff)
	var x552 uint64
	var x553 uint64
	x553, x552 = bits.Mul64(x530, 0xffffffffffffffff)
	var x554 uint64
	var x555 uint64
	x555, x554 = bits.Mul64(x530, 0xffffffffffffffff)
	var x556 uint64
	var x557 uint64
	x557, x556 = bits.Mul64(x530, 0xffffffffffffffff)
	var x558 uint64
	var x559 uint64
	x559, x558 = bits.Mul64(x530, 0xffffffffffffffff)
	var x560 uint64
	var x561 uint64
	x561, x560 = bits.Mul64(x530, 0xffffffffffffffff)
	var x562 uint64
	var x563 uint64
	x563, x562 = bits.Mul64(x530, 0xffffffffffffffff)
	var x564 uint64
	var x565 uint64
	x564, x565 = bits.Add64(x563, x560, uint64(0x0))
	var x566 uint64
	var x567 uint64
	x566, x567 = bits.Add64(x561, x558, uint64(p521Uint1(x565)))
	var x568 uint64
	var x569 uint64
	x568, x569 = bits.Add64(x559, x556, uint64(p521Uint1(x567)))
	var x570 uint64
	var x571 uint64
	x570, x571 = bits.Add64(x557, x554, uint64(p521Uint1(x569)))
	var x572 uint64
	var x573 uint64
	x572, x573 = bits.Add64(x555, x552, uint64(p521Uint1(x571)))
	var x574 uint64
	var x575 uint64
	x574, x575 = bits.Add64(x553, x550, uint64(p521Uint1(x573)))
	var x576 uint64
	var x577 uint64
	x576, x577 = bits.Add64(x551, x548, uint64(p521Uint1(x575)))
	var x578 uint64
	var x579 uint64
	x578, x579 = bits.Add64(x549, x546, uint64(p521Uint1(x577)))
	var x581 uint64
	_, x581 = bits.Add64(x530, x562, uint64(0x0))
	var x582 uint64
	var x583 uint64
	x582, x583 = bits.Add64(x532, x564, uint64(p521Uint1(x581)))
	var x584 uint64
	var x585 uint64
	x584, x585 = bits.Add64(x534, x566, uint64(p521Uint1(x583)))
	var x586 uint64
	var x587 uint64
	x586, x587 = bits.Add64(x536, x568, uint64(p521Uint1(x585)))
	var x588 uint64
	var x589 uint64
	x588, x589 = bits.Add64(x538, x570, uint64(p521Uint1(x587)))
	var x590 uint64
	var x591 uint64
	x590, x591 = bits.Add64(x540, x572, uint64(p521Uint1(x589)))
	var x592 uint64
	var x593 uint64
	x592, x593 = bits.Add64(x542, x574, uint64(p521Uint1(x591)))
	var x594 uint64
	var x595 uint64
	x594, x595 = bits.Add64(x544, x576, uint64(p521Uint1(x593)))
	var x596 uint64
	var x597 uint64
	x596, x597 = bits.Add64((uint64(p521Uint1(x545)) + (uint64(p521Uint1(x529)) + (uint64(p521Uint1(x511)) + x479))), x578, uint64(p521Uint1(x595)))
	x598 := (uint64(p521Uint1(x597)) + (uint64(p521Uint1(x579)) + x547))
	var x599 uint64
	var x600 uint64
	x599, x600 = bits.Sub64(x582, 0xffffffffffffffff, uint64(0x0))
	var x601 uint64
	var x602 uint64
	x601, x602 = bits.Sub64(x584, 0xffffffffffffffff, uint64(p521Uint1(x600)))
	var x603 uint64
	var x604 uint64
	x603, x604 = bits.Sub64(x586, 0xffffffffffffffff, uint64(p521Uint1(x602)))
	var x605 uint64
	var x606 uint64
	x605, x606 = bits.Sub64(x588, 0xffffffffffffffff, uint64(p521Uint1(x604)))
	var x607 uint64
	var x608 uint64
	x607, x608 = bits.Sub64(x590, 0xffffffffffffffff, uint64(p521Uint1(x606)))
	var x609 uint64
	var x610 uint64
	x609, x610 = bits.Sub64(x592, 0xffffffffffffffff, uint64(p521Uint1(x608)))
	var x611 uint64
	var x612 uint64
	x611, x612 = bits.Sub64(x594, 0xffffffffffffffff, uint64(p521Uint1(x610)))
	var x613 uint64
	var x614 uint64
	x613, x614 = bits.Sub64(x596, 0xffffffffffffffff, uint64(p521Uint1(x612)))
	var x615 uint64
	var x616 uint64
	x615, x616 = bits.Sub64(x598, 0x1ff, uint64(p521Uint1(x614)))
	var x618 uint64
	_, x618 = bits.Sub64(uint64(0x0), uint64(0x0), uint64(p521Uint1(x616)))
	var x619 uint64
	p521CmovznzU64(&x619, p521Uint1(x618), x599, x582)
	var x620 uint64
	p521CmovznzU64(&x620, p521Uint1(x618), x601, x584)
	var x621 uint64
	p521CmovznzU64(&x621, p521Uint1(x618), x603, x586)
	var x622 uint64
	p521CmovznzU64(&x622, p521Uint1(x618), x605, x588)
	var x623 uint64
	p521CmovznzU64(&x623, p521Uint1(x618), x607, x590)
	var x624 uint64
	p521CmovznzU64(&x624, p521Uint1(x618), x609, x592)
	var x625 uint64
	p521CmovznzU64(&x625, p521Uint1(x618), x611, x594)
	var x626 uint64
	p521CmovznzU64(&x626, p521Uint1(x618), x613, x596)
	var x627 uint64
	p521CmovznzU64(&x627, p521Uint1(x618), x615, x598)
	out1[0] = x619
	out1[1] = x620
	out1[2] = x621
	out1[3] = x622
	out1[4] = x623
	out1[5] = x624
	out1[6] = x625
	out1[7] = x626
	out1[8] = x627
}

// p521ToMontgomery translates a field element into the Montgomery domain.
//
// Preconditions:
//
//	0 ≤ eval arg1 < m
//
// Postconditions:
//
//	eval (from_montgomery out1) mod m = eval arg1 mod m
//	0 ≤ eval out1 < m
func p521ToMontgomery(out1 *p521MontgomeryDomainFieldElement, arg1 *p521NonMontgomeryDomainFieldElement) {
	var x1 uint64
	var x2 uint64
	x2, x1 = bits.Mul64(arg1[0], 0x400000000000)
	var x3 uint64
	var x4 uint64
	x4, x3 = bits.Mul64(arg1[1], 0x400000000000)
	var x5 uint64
	var x6 uint64
	x5, x6 = bits.Add64(x2, x3, uint64(0x0))
	var x7 uint64
	var x8 uint64
	x8, x7 = bits.Mul64(x1, 0x1ff)
	var x9 uint64
	var x10 uint64
	x10, x9 = bits.Mul64(x1, 0xffffffffffffffff)
	var x11 uint64
	var x12 uint64
	x12, x11 = bits.Mul64(x1, 0xffffffffffffffff)
	var x13 uint64
	var x14 uint64
	x14, x13 = bits.Mul64(x1, 0xffffffffffffffff)
	var x15 uint64
	var x16 uint64
	x16, x15 = bits.Mul64(x1, 0xffffffffffffffff)
	var x17 uint64
	var x18 uint64
	x18, x17 = bits.Mul64(x1, 0xffffffffffffffff)
	var x19 uint64
	var x20 uint64
	x20, x19 = bits.Mul64(x1, 0xffffffffffffffff)
	var x21 uint64
	var x22 uint64
	x22, x21 = bits.Mul64(x1, 0xffffffffffffffff)
	var x23 uint64
	var x24 uint64
	x24, x23 = bits.Mul64(x1, 0xffffffffffffffff)
	var x25 uint64
	var x26 uint64
	x25, x26 = bits.Add64(x24, x21, uint64(0x0))
	var x27 uint64
	var x28 uint64
	x27, x28 = bits.Add64(x22, x19, uint64(p521Uint1(x26)))
	var x29 uint64
	var x30 uint64
	x29, x30 = bits.Add64(x20, x17, uint64(p521Uint1(x28)))
	var x31 uint64
	var x32 uint64
	x31, x32 = bits.Add64(x18, x15, uint64(p521Uint1(x30)))
	var x33 uint64
	var x34 uint64
	x33, x34 = bits.Add64(x16, x13, uint64(p521Uint1(x32)))
	var x35 uint64
	var x36 uint64
	x35, x36 = bits.Add64(x14, x11, uint64(p521Uint1(x34)))
	var x37 uint64
	var x38 uint64
	x37, x38 = bits.Add64(x12, x9, uint64(p521Uint1(x36)))
	var x39 uint64
	var x40 uint64
	x39, x40 = bits.Add64(x10, x7, uint64(p521Uint1(x38)))
	var x42 uint64
	_, x42 = bits.Add64(x1, x23, uint64(0x0))
	var x43 uint64
	var x44 uint64
	x43, x44 = bits.Add64(x5, x25, uint64(p521Uint1(x42)))
	var x45 uint64
	var x46 uint64
	x45, x46 = bits.Add64((uint64(p521Uint1(x6)) + x4), x27, uint64(p521Uint1(x44)))
	var x47 uint64
	var x48 uint64
	x47, x48 = bits.Add64(uint64(0x0), x29, uint64(p521Uint1(x46)))
	var x49 uint64
	var x50 uint64
	x49, x50 = bits.Add64(uint64(0x0), x31, uint64(p521Uint1(x48)))
	var x51 uint64
	var x52 uint64
	x51, x52 = bits.Add64(uint64(0x0), x33, uint64(p521Uint1(x50)))
	var x53 uint64
	var x54 uint64
	x53, x54 = bits.Add64(uint64(0x0), x35, uint64(p521Uint1(x52)))
	var x55 uint64
	var x56 uint64
	x55, x56 = bits.Add64(uint64(0x0), x37, uint64(p521Uint1(x54)))
	var x57 uint64
	var x58 uint64
	x57, x58 = bits.Add64(uint64(0x0), x39, uint64(p521Uint1(x56)))
	var x59 uint64
	var x60 uint64
	x60, x59 = bits.Mul64(arg1[2], 0x400000000000)
	var x61 uint64
	var x62 uint64
	x61, x62 = bits.Add64(x45, x59, uint64(0x0))
	var x63 uint64
	var x64 uint64
	x63, x64 = bits.Add64(x47, x60, uint64(p521Uint1(x62)))
	var x65 uint64
	var x66 uint64
	x65, x66 = bits.Add64(x49, uint64(0x0), uint64(p521Uint1(x64)))
	var x67 uint64
	var x68 uint64
	x67, x68 = bits.Add64(x51, uint64(0x0), uint64(p521Uint1(x66)))
	var x69 uint64
	var x70 uint64
	x69, x70 = bits.Add64(x53, uint64(0x0), uint64(p521Uint1(x68)))
	var x71 uint64
	var x72 uint64
	x71, x72 = bits.Add64(x55, uint64(0x0), uint64(p521Uint1(x70)))
	var x73 uint64
	var x74 uint64
	x73, x74 = bits.Add64(x57, uint64(0x0), uint64(p521Uint1(x72)))
	var x75 uint64
	var x76 uint64
	x76, x75 = bits.Mul64(x43, 0x1ff)
	var x77 uint64
	var x78 uint64
	x78, x77 = bits.Mul64(x43, 0xffffffffffffffff)
	var x79 uint64
	var x80 uint64
	x80, x79 = bits.Mul64(x43, 0xffffffffffffffff)
	var x81 uint64
	var x82 uint64
	x82, x81 = bits.Mul64(x43, 0xffffffffffffffff)
	var x83 uint64
	var x84 uint64
	x84, x83 = bits.Mul64(x43, 0xffffffffffffffff)
	var x85 uint64
	var x86 uint64
	x86, x85 = bits.Mul64(x43, 0xffffffffffffffff)
	var x87 uint64
	var x88 uint64
	x88, x87 = bits.Mul64(x43, 0xffffffffffffffff)
	var x89 uint64
	var x90 uint64
	x90, x89 = bits.Mul64(x43, 0xffffffffffffffff)
	var x91 uint64
	var x92 uint64
	x92, x91 = bits.Mul64(x43, 0xffffffffffffffff)
	var x93 uint64
	var x94 uint64
	x93, x94 = bits.Add64(x92, x89, uint64(0x0))
	var x95 uint64
	var x96 uint64
	x95, x96 = bits.Add64(x90, x87, uint64(p521Uint1(x94)))
	var x97 uint64
	var x98 uint64
	x97, x98 = bits.Add64(x88, x85, uint64(p521Uint1(x96)))
	var x99 uint64
	var x100 uint64
	x99, x100 = bits.Add64(x86, x83, uint64(p521Uint1(x98)))
	var x101 uint64
	var x102 uint64
	x101, x102 = bits.Add64(x84, x81, uint64(p521Uint1(x100)))
	var x103 uint64
	var x104 uint64
	x103, x104 = bits.Add64(x82, x79, uint64(p521Uint1(x102)))
	var x105 uint64
	var x106 uint64
	x105, x106 = bits.Add64(x80, x77, uint64(p521Uint1(x104)))
	var x107 uint64
	var x108 uint64
	x107, x108 = bits.Add64(x78, x75, uint64(p521Uint1(x106)))
	var x110 uint64
	_, x110 = bits.Add64(x43, x91, uint64(0x0))
	var x111 uint64
	var x112 uint64
	x111, x112 = bits.Add64(x61, x93, uint64(p521Uint1(x110)))
	var x113 uint64
	var x114 uint64
	x113, x114 = bits.Add64(x63, x95, uint64(p521Uint1(x112)))
	var x115 uint64
	var x116 uint64
	x115, x116 = bits.Add64(x65, x97, uint64(p521Uint1(x114)))
	var x117 uint64
	var x118 uint64
	x117, x118 = bits.Add64(x67, x99, uint64(p521Uint1(x116)))
	var x119 uint64
	var x120 uint64
	x119, x120 = bits.Add64(x69, x101, uint64(p521Uint1(x118)))
	var x121 uint64
	var x122 uint64
	x121, x122 = bits.Add64(x71, x103, uint64(p521Uint1(x120)))
	var x123 uint64
	var x124 uint64
	x123, x124 = bits.Add64(x73, x105, uint64(p521Uint1(x122)))
	var x125 uint64
	var x126 uint64
	x125, x126 = bits.Add64((uint64(p521Uint1(x74)) + (uint64(p521Uint1(x58)) + (uint64(p521Uint1(x40)) + x8))), x107, uint64(p521Uint1(x124)))
	var x127 uint64
	var x128 uint64
	x128, x127 = bits.Mul64(arg1[3], 0x400000000000)
	var x129 uint64
	var x130 uint64
	x129, x130 = bits.Add64(x113, x127, uint64(0x0))
	var x131 uint64
	var x132 uint64
	x131, x132 = bits.Add64(x115, x128, uint64(p521Uint1(x130)))
	var x133 uint64
	var x134 uint64
	x133, x134 = bits.Add64(x117, uint64(0x0), uint64(p521Uint1(x132)))
	var x135 uint64
	var x136 uint64
	x135, x136 = bits.Add64(x119, uint64(0x0), uint64(p521Uint1(x134)))
	var x137 uint64
	var x138 uint64
	x137, x138 = bits.Add64(x121, uint64(0x0), uint64(p521Uint1(x136)))
	var x139 uint64
	var x140 uint64
	x139, x140 = bits.Add64(x123, uint64(0x0), uint64(p521Uint1(x138)))
	var x141 uint64
	var x142 uint64
	x141, x142 = bits.Add64(x125, uint64(0x0), uint64(p521Uint1(x140)))
	var x143 uint64
	var x144 uint64
	x144, x143 = bits.Mul64(x111, 0x1ff)
	var x145 uint64
	var x146 uint64
	x146, x145 = bits.Mul64(x111, 0xffffffffffffffff)
	var x147 uint64
	var x148 uint64
	x148, x147 = bits.Mul64(x111, 0xffffffffffffffff)
	var x149 uint64
	var x150 uint64
	x150, x149 = bits.Mul64(x111, 0xffffffffffffffff)
	var x151 uint64
	var x152 uint64
	x152, x151 = bits.Mul64(x111, 0xffffffffffffffff)
	var x153 uint64
	var x154 uint64
	x154, x153 = bits.Mul64(x111, 0xffffffffffffffff)
	var x155 uint64
	var x156 uint64
	x156, x155 = bits.Mul64(x111, 0xffffffffffffffff)
	var x157 uint64
	var x158 uint64
	x158, x157 = bits.Mul64(x111, 0xffffffffffffffff)
	var x159 uint64
	var x160 uint64
	x160, x159 = bits.Mul64(x111, 0xffffffffffffffff)
	var x161 uint64
	var x162 uint64
	x161, x162 = bits.Add64(x160, x157, uint64(0x0))
	var x163 uint64
	var x164 uint64
	x163, x164 = bits.Add64(x158, x155, uint64(p521Uint1(x162)))
	var x165 uint64
	var x166 uint64
	x165, x166 = bits.Add64(x156, x153, uint64(p521Uint1(x164)))
	var x167 uint64
	var x168 uint64
	x167, x168 = bits.Add64(x154, x151, uint64(p521Uint1(x166)))
	var x169 uint64
	var x170 uint64
	x169, x170 = bits.Add64(x152, x149, uint64(p521Uint1(x168)))
	var x171 uint64
	var x172 uint64
	x171, x172 = bits.Add64(x150, x147, uint64(p521Uint1(x170)))
	var x173 uint64
	var x174 uint64
	x173, x174 = bits.Add64(x148, x145, uint64(p521Uint1(x172)))
	var x175 uint64
	var x176 uint64
	x175, x176 = bits.Add64(x146, x143, uint64(p521Uint1(x174)))
	var x178 uint64
	_, x178 = bits.Add64(x111, x159, uint64(0x0))
	var x179 uint64
	var x180 uint64
	x179, x180 = bits.Add64(x129, x161, uint64(p521Uint1(x178)))
	var x181 uint64
	var x182 uint64
	x181, x182 = bits.Add64(x131, x163, uint64(p521Uint1(x180)))
	var x183 uint64
	var x184 uint64
	x183, x184 = bits.Add64(x133, x165, uint64(p521Uint1(x182)))
	var x185 uint64
	var x186 uint64
	x185, x186 = bits.Add64(x135, x167, uint64(p521Uint1(x184)))
	var x187 uint64
	var x188 uint64
	x187, x188 = bits.Add64(x137, x169, uint64(p521Uint1(x186)))
	var x189 uint64
	var x190 uint64
	x189, x190 = bits.Add64(x139, x171, uint64(p521Uint1(x188)))
	var x191 uint64
	var x192 uint64
	x191, x192 = bits.Add64(x141, x173, uint64(p521Uint1(x190)))
	var x193 uint64
	var x194 uint64
	x193, x194 = bits.Add64((uint64(p521Uint1(x142)) + (uint64(p521Uint1(x126)) + (uint64(p521Uint1(x108)) + x76))), x175, uint64(p521Uint1(x192)))
	var x195 uint64
	var x196 uint64
	x196, x195 = bits.Mul64(arg1[4], 0x400000000000)
	var x197 uint64
	var x198 uint64
	x197, x198 = bits.Add64(x181, x195, uint64(0x0))
	var x199 uint64
	var x200 uint64
	x199, x200 = bits.Add64(x183, x196, uint64(p521Uint1(x198)))
	var x201 uint64
	var x202 uint64
	x201, x202 = bits.Add64(x185, uint64(0x0), uint64(p521Uint1(x200)))
	var x203 uint64
	var x204 uint64
	x203, x204 = bits.Add64(x187, uint64(0x0), uint64(p521Uint1(x202)))
	var x205 uint64
	var x206 uint64
	x205, x206 = bits.Add64(x189, uint64(0x0), uint64(p521Uint1(x204)))
	var x207 uint64
	var x208 uint64
	x207, x208 = bits.Add64(x191, uint64(0x0), uint64(p521Uint1(x206)))
	var x209 uint64
	var x210 uint64
	x209, x210 = bits.Add64(x193, uint64(0x0), uint64(p521Uint1(x208)))
	var x211 uint64
	var x212 uint64
	x212, x211 = bits.Mul64(x179, 0x1ff)
	var x213 uint64
	var x214 uint64
	x214, x213 = bits.Mul64(x179, 0xffffffffffffffff)
	var x215 uint64
	var x216 uint64
	x216, x215 = bits.Mul64(x179, 0xffffffffffffffff)
	var x217 uint64
	var x218 uint64
	x218, x217 = bits.Mul64(x179, 0xffffffffffffffff)
	var x219 uint64
	var x220 uint64
	x220, x219 = bits.Mul64(x179, 0xffffffffffffffff)
	var x221 uint64
	var x222 uint64
	x222, x221 = bits.Mul64(x179, 0xffffffffffffffff)
	var x223 uint64
	var x224 uint64
	x224, x223 = bits.Mul64(x179, 0xffffffffffffffff)
	var x225 uint64
	var x226 uint64
	x226, x225 = bits.Mul64(x179, 0xffffffffffffffff)
	var x227 uint64
	var x228 uint64
	x228, x227 = bits.Mul64(x179, 0xffffffffffffffff)
	var x229 uint64
	var x230 uint64
	x229, x230 = bits.Add64(x228, x225, uint64(0x0))
	var x231 uint64
	var x232 uint64
	x231, x232 = bits.Add64(x226, x223, uint64(p521Uint1(x230)))
	var x233 uint64
	var x234 uint64
	x233, x234 = bits.Add64(x224, x221, uint64(p521Uint1(x232)))
	var x235 uint64
	var x236 uint64
	x235, x236 = bits.Add64(x222, x219, uint64(p521Uint1(x234)))
	var x237 uint64
	var x238 uint64
	x237, x238 = bits.Add64(x220, x217, uint64(p521Uint1(x236)))
	var x239 uint64
	var x240 uint64
	x239, x240 = bits.Add64(x218, x215, uint64(p521Uint1(x238)))
	var x241 uint64
	var x242 uint64
	x241, x242 = bits.Add64(x216, x213, uint64(p521Uint1(x240)))
	var x243 uint64
	var x244 uint64
	x243, x244 = bits.Add64(x214, x211, uint64(p521Uint1(x242)))
	var x246 uint64
	_, x246 = bits.Add64(x179, x227, uint64(0x0))
	var x247 uint64
	var x248 uint64
	x247, x248 = bits.Add64(x197, x229, uint64(p521Uint1(x246)))
	var x249 uint64
	var x250 uint64
	x249, x250 = bits.Add64(x199, x231, uint64(p521Uint1(x248)))
	var x251 uint64
	var x252 uint64
	x251, x252 = bits.Add64(x201, x233, uint64(p521Uint1(x250)))
	var x253 uint64
	var x254 uint64
	x253, x254 = bits.Add64(x203, x235, uint64(p521Uint1(x252)))
	var x255 uint64
	var x256 uint64
	x255, x256 = bits.Add64(x205, x237, uint64(p521Uint1(x254)))
	var x257 uint64
	var x258 uint64
	x257, x258 = bits.Add64(x207, x239, uint64(p521Uint1(x256)))
	var x259 uint64
	var x260 uint64
	x259, x260 = bits.Add64(x209, x241, uint64(p521Uint1(x258)))
	var x261 uint64
	var x262 uint64
	x261, x262 = bits.Add64((uint64(p521Uint1(x210)) + (uint64(p521Uint1(x194)) + (uint64(p521Uint1(x176)) + x144))), x243, uint64(p521Uint1(x260)))
	var x263 uint64
	var x264 uint64
	x264, x263 = bits.Mul64(arg1[5], 0x400000000000)
	var x265 uint64
	var x266 uint64
	x265, x266 = bits.Add64(x249, x263, uint64(0x0))
	var x267 uint64
	var x268 uint64
	x267, x268 = bits.Add64(x251, x264, uint64(p521Uint1(x266)))
	var x269 uint64
	var x270 uint64
	x269, x270 = bits.Add64(x253, uint64(0x0), uint64(p521Uint1(x268)))
	var x271 uint64
	var x272 uint64
	x271, x272 = bits.Add64(x255, uint64(0x0), uint64(p521Uint1(x270)))
	var x273 uint64
	var x274 uint64
	x273, x274 = bits.Add64(x257, uint64(0x0), uint64(p521Uint1(x272)))
	var x275 uint64
	var x276 uint64
	x275, x276 = bits.Add64(x259, uint64(0x0), uint64(p521Uint1(x274)))
	var x277 uint64
	var x278 uint64
	x277, x278 = bits.Add64(x261, uint64(0x0), uint64(p521Uint1(x276)))
	var x279 uint64
	var x280 uint64
	x280, x279 = bits.Mul64(x247, 0x1ff)
	var x281 uint64
	var x282 uint64
	x282, x281 = bits.Mul64(x247, 0xffffffffffffffff)
	var x283 uint64
	var x284 uint64
	x284, x283 = bits.Mul64(x247, 0xffffffffffffffff)
	var x285 uint64
	var x286 uint64
	x286, x285 = bits.Mul64(x247, 0xffffffffffffffff)
	var x287 uint64
	var x288 uint64
	x288, x287 = bits.Mul64(x247, 0xffffffffffffffff)
	var x289 uint64
	var x290 uint64
	x290, x289 = bits.Mul64(x247, 0xffffffffffffffff)
	var x291 uint64
	var x292 uint64
	x292, x291 = bits.Mul64(x247, 0xffffffffffffffff)
	var x293 uint64
	var x294 uint64
	x294, x293 = bits.Mul64(x247, 0xffffffffffffffff)
	var x295 uint64
	var x296 uint64
	x296, x295 = bits.Mul64(x247, 0xffffffffffffffff)
	var x297 uint64
	var x298 uint64
	x297, x298 = bits.Add64(x296, x293, uint64(0x0))
	var x299 uint64
	var x300 uint64
	x299, x300 = bits.Add64(x294, x291, uint64(p521Uint1(x298)))
	var x301 uint64
	var x302 uint64
	x301, x302 = bits.Add64(x292, x289, uint64(p521Uint1(x300)))
	var x303 uint64
	var x304 uint64
	x303, x304 = bits.Add64(x290, x287, uint64(p521Uint1(x302)))
	var x305 uint64
	var x306 uint64
	x305, x306 = bits.Add64(x288, x285, uint64(p521Uint1(x304)))
	var x307 uint64
	var x308 uint64
	x307, x308 = bits.Add64(x286, x283, uint64(p521Uint1(x306)))
	var x309 uint64
	var x310 uint64
	x309, x310 = bits.Add64(x284, x281, uint64(p521Uint1(x308)))
	var x311 uint64
	var x312 uint64
	x311, x312 = bits.Add64(x282, x279, uint64(p521Uint1(x310)))
	var x314 uint64
	_, x314 = bits.Add64(x247, x295, uint64(0x0))
	var x315 uint64
	var x316 uint64
	x315, x316 = bits.Add64(x265, x297, uint64(p521Uint1(x314)))
	var x317 uint64
	var x318 uint64
	x317, x318 = bits.Add64(x267, x299, uint64(p521Uint1(x316)))
	var x319 uint64
	var x320 uint64
	x319, x320 = bits.Add64(x269, x301, uint64(p521Uint1(x318)))
	var x321 uint64
	var x322 uint64
	x321, x322 = bits.Add64(x271, x303, uint64(p521Uint1(x320)))
	var x323 uint64
	var x324 uint64
	x323, x324 = bits.Add64(x273, x305, uint64(p521Uint1(x322)))
	var x325 uint64
	var x326 uint64
	x325, x326 = bits.Add64(x275, x307, uint64(p521Uint1(x324)))
	var x327 uint64
	var x328 uint64
	x327, x328 = bits.Add64(x277, x309, uint64(p521Uint1(x326)))
	var x329 uint64
	var x330 uint64
	x329, x330 = bits.Add64((uint64(p521Uint1(x278)) + (uint64(p521Uint1(x262)) + (uint64(p521Uint1(x244)) + x212))), x311, uint64(p521Uint1(x328)))
	var x331 uint64
	var x332 uint64
	x332, x331 = bits.Mul64(arg1[6], 0x400000000000)
	var x333 uint64
	var x334 uint64
	x333, x334 = bits.Add64(x317, x331, uint64(0x0))
	var x335 uint64
	var x336 uint64
	x335, x336 = bits.Add64(x319, x332, uint64(p521Uint1(x334)))
	var x337 uint64
	var x338 uint64
	x337, x338 = bits.Add64(x321, uint64(0x0), uint64(p521Uint1(x336)))
	var x339 uint64
	var x340 uint64
	x339, x340 = bits.Add64(x323, uint64(0x0), uint64(p521Uint1(x338)))
	var x341 uint64
	var x342 uint64
	x341, x342 = bits.Add64(x325, uint64(0x0), uint64(p521Uint1(x340)))
	var x343 uint64
	var x344 uint64
	x343, x344 = bits.Add64(x327, uint64(0x0), uint64(p521Uint1(x342)))
	var x345 uint64
	var x346 uint64
	x345, x346 = bits.Add64(x329, uint64(0x0), uint64(p521Uint1(x344)))
	var x347 uint64
	var x348 uint64
	x348, x347 = bits.Mul64(x315, 0x1ff)
	var x349 uint64
	var x350 uint64
	x350, x349 = bits.Mul64(x315, 0xffffffffffffffff)
	var x351 uint64
	var x352 uint64
	x352, x351 = bits.Mul64(x315, 0xffffffffffffffff)
	var x353 uint64
	var x354 uint64
	x354, x353 = bits.Mul64(x315, 0xffffffffffffffff)
	var x355 uint64
	var x356 uint64
	x356, x355 = bits.Mul64(x315, 0xffffffffffffffff)
	var x357 uint64
	var x358 uint64
	x358, x357 = bits.Mul64(x315, 0xffffffffffffffff)
	var x359 uint64
	var x360 uint64
	x360, x359 = bits.Mul64(x315, 0xffffffffffffffff)
	var x361 uint64
	var x362 uint64
	x362, x361 = bits.Mul64(x315, 0xffffffffffffffff)
	var x363 uint64
	var x364 uint64
	x364, x363 = bits.Mul64(x315, 0xffffffffffffffff)
	var x365 uint64
	var x366 uint64
	x365, x366 = bits.Add64(x364, x361, uint64(0x0))
	var x367 uint64
	var x368 uint64
	x367, x368 = bits.Add64(x362, x359, uint64(p521Uint1(x366)))
	var x369 uint64
	var x370 uint64
	x369, x370 = bits.Add64(x360, x357, uint64(p521Uint1(x368)))
	var x371 uint64
	var x372 uint64
	x371, x372 = bits.Add64(x358, x355, uint64(p521Uint1(x370)))
	var x373 uint64
	var x374 uint64
	x373, x374 = bits.Add64(x356, x353, uint64(p521Uint1(x372)))
	var x375 uint64
	var x376 uint64
	x375, x376 = bits.Add64(x354, x351, uint64(p521Uint1(x374)))
	var x377 uint64
	var x378 uint64
	x377, x378 = bits.Add64(x352, x349, uint64(p521Uint1(x376)))
	var x379 uint64
	var x380 uint64
	x379, x380 = bits.Add64(x350, x347, uint64(p521Uint1(x378)))
	var x382 uint64
	_, x382 = bits.Add64(x315, x363, uint64(0x0))
	var x383 uint64
	var x384 uint64
	x383, x384 = bits.Add64(x333, x365, uint64(p521Uint1(x382)))
	var x385 uint64
	var x386 uint64
	x385, x386 = bits.Add64(x335, x367, uint64(p521Uint1(x384)))
	var x387 uint64
	var x388 uint64
	x387, x388 = bits.Add64(x337, x369, uint64(p521Uint1(x386)))
	var x389 uint64
	var x390 uint64
	x389, x390 = bits.Add64(x339, x371, uint64(p521Uint1(x388)))
	var x391 uint64
	var x392 uint64
	x391, x392 = bits.Add64(x341, x373, uint64(p521Uint1(x390)))
	var x393 uint64
	var x394 uint64
	x393, x394 = bits.Add64(x343, x375, uint64(p521Uint1(x392)))
	var x395 uint64
	var x396 uint64
	x395, x396 = bits.Add64(x345, x377, uint64(p521Uint1(x394)))
	var x397 uint64
	var x398 uint64
	x397, x398 = bits.Add64((uint64(p521Uint1(x346)) + (uint64(p521Uint1(x330)) + (uint64(p521Uint1(x312)) + x280))), x379, uint64(p521Uint1(x396)))
	var x399 uint64
	var x400 uint64
	x400, x399 = bits.Mul64(arg1[7], 0x400000000000)
	var x401 uint64
	var x402 uint64
	x401, x402 = bits.Add64(x385, x399, uint64(0x0))
	var x403 uint64
	var x404 uint64
	x403, x404 = bits.Add64(x387, x400, uint64(p521Uint1(x402)))
	var x405 uint64
	var x406 uint64
	x405, x406 = bits.Add64(x389, uint64(0x0), uint64(p521Uint1(x404)))
	var x407 uint64
	var x408 uint64
	x407, x408 = bits.Add64(x391, uint64(0x0), uint64(p521Uint1(x406)))
	var x409 uint64
	var x410 uint64
	x409, x410 = bits.Add64(x393, uint64(0x0), uint64(p521Uint1(x408)))
	var x411 uint64
	var x412 uint64
	x411, x412 = bits.Add64(x395, uint64(0x0), uint64(p521Uint1(x410)))
	var x413 uint64
	var x414 uint64
	x413, x414 = bits.Add64(x397, uint64(0x0), uint64(p521Uint1(x412)))
	var x415 uint64
	var x416 uint64
	x416, x415 = bits.Mul64(x383, 0x1ff)
	var x417 uint64
	var x418 uint64
	x418, x417 = bits.Mul64(x383, 0xffffffffffffffff)
	var x419 uint64
	var x420 uint64
	x420, x419 = bits.Mul64(x383, 0xffffffffffffffff)
	var x421 uint64
	var x422 uint64
	x422, x421 = bits.Mul64(x383, 0xffffffffffffffff)
	var x423 uint64
	var x424 uint64
	x424, x423 = bits.Mul64(x383, 0xffffffffffffffff)
	var x425 uint64
	var x426 uint64
	x426, x425 = bits.Mul64(x383, 0xffffffffffffffff)
	var x427 uint64
	var x428 uint64
	x428, x427 = bits.Mul64(x383, 0xffffffffffffffff)
	var x429 uint64
	var x430 uint64
	x430, x429 = bits.Mul64(x383, 0xffffffffffffffff)
	var x431 uint64
	var x432 uint64
	x432, x431 = bits.Mul64(x383, 0xffffffffffffffff)
	var x433 uint64
	var x434 uint64
	x433, x434 = bits.Add64(x432, x429, uint64(0x0))
	var x435 uint64
	var x436 uint64
	x435, x436 = bits.Add64(x430, x427, uint64(p521Uint1(x434)))
	var x437 uint64
	var x438 uint64
	x437, x438 = bits.Add64(x428, x425, uint64(p521Uint1(x436)))
	var x439 uint64
	var x440 uint64
	x439, x440 = bits.Add64(x426, x423, uint64(p521Uint1(x438)))
	var x441 uint64
	var x442 uint64
	x441, x442 = bits.Add64(x424, x421, uint64(p521Uint1(x440)))
	var x443 uint64
	var x444 uint64
	x443, x444 = bits.Add64(x422, x419, uint64(p521Uint1(x442)))
	var x445 uint64
	var x446 uint64
	x445, x446 = bits.Add64(x420, x417, uint64(p521Uint1(x444)))
	var x447 uint64
	var x448 uint64
	x447, x448 = bits.Add64(x418, x415, uint64(p521Uint1(x446)))
	var x450 uint64
	_, x450 = bits.Add64(x383, x431, uint64(0x0))
	var x451 uint64
	var x452 uint64
	x451, x452 = bits.Add64(x401, x433, uint64(p521Uint1(x450)))
	var x453 uint64
	var x454 uint64
	x453, x454 = bits.Add64(x403, x435, uint64(p521Uint1(x452)))
	var x455 uint64
	var x456 uint64
	x455, x456 = bits.Add64(x405, x437, uint64(p521Uint1(x454)))
	var x457 uint64
	var x458 uint64
	x457, x458 = bits.Add64(x407, x439, uint64(p521Uint1(x456)))
	var x459 uint64
	var x460 uint64
	x459, x460 = bits.Add64(x409, x441, uint64(p521Uint1(x458)))
	var x461 uint64
	var x462 uint64
	x461, x462 = bits.Add64(x411, x443, uint64(p521Uint1(x460)))
	var x463 uint64
	var x464 uint64
	x463, x464 = bits.Add64(x413, x445, uint64(p521Uint1(x462)))
	var x465 uint64
	var x466 uint64
	x465, x466 = bits.Add64((uint64(p521Uint1(x414)) + (uint64(p521Uint1(x398)) + (uint64(p521Uint1(x380)) + x348))), x447, uint64(p521Uint1(x464)))
	var x467 uint64
	var x468 uint64
	x468, x467 = bits.Mul64(arg1[8], 0x400000000000)
	var x469 uint64
	var x470 uint64
	x469, x470 = bits.Add64(x453, x467, uint64(0x0))
	var x471 uint64
	var x472 uint64
	x471, x472 = bits.Add64(x455, x468, uint64(p521Uint1(x470)))
	var x473 uint64
	var x474 uint64
	x473, x474 = bits.Add64(x457, uint64(0x0), uint64(p521Uint1(x472)))
	var x475 uint64
	var x476 uint64
	x475, x476 = bits.Add64(x459, uint64(0x0), uint64(p521Uint1(x474)))
	var x477 uint64
	var x478 uint64
	x477, x478 = bits.Add64(x461, uint64(0x0), uint64(p521Uint1(x476)))
	var x479 uint64
	var x480 uint64
	x479, x480 = bits.Add64(x463, uint64(0x0), uint64(p521Uint1(x478)))
	var x481 uint64
	var x482 uint64
	x481, x482 = bits.Add64(x465, uint64(0x0), uint64(p521Uint1(x480)))
	var x483 uint64
	var x484 uint64
	x484, x483 = bits.Mul64(x451, 0x1ff)
	var x485 uint64
	var x486 uint64
	x486, x485 = bits.Mul64(x451, 0xffffffffffffffff)
	var x487 uint64
	var x488 uint64
	x488, x487 = bits.Mul64(x451, 0xffffffffffffffff)
	var x489 uint64
	var x490 uint64
	x490, x489 = bits.Mul64(x451, 0xffffffffffffffff)
	var x491 uint64
	var x492 uint64
	x492, x491 = bits.Mul64(x451, 0xffffffffffffffff)
	var x493 uint64
	var x494 uint64
	x494, x493 = bits.Mul64(x451, 0xffffffffffffffff)
	var x495 uint64
	var x496 uint64
	x496, x495 = bits.Mul64(x451, 0xffffffffffffffff)
	var x497 uint64
	var x498 uint64
	x498, x497 = bits.Mul64(x451, 0xffffffffffffffff)
	var x499 uint64
	var x500 uint64
	x500, x499 = bits.Mul64(x451, 0xffffffffffffffff)
	var x501 uint64
	var x502 uint64
	x501, x502 = bits.Add64(x500, x497, uint64(0x0))
	var x503 uint64
	var x504 uint64
	x503, x504 = bits.Add64(x498, x495, uint64(p521Uint1(x502)))
	var x505 uint64
	var x506 uint64
	x505, x506 = bits.Add64(x496, x493, uint64(p521Uint1(x504)))
	var x507 uint64
	var x508 uint64
	x507, x508 = bits.Add64(x494, x491, uint64(p521Uint1(x506)))
	var x509 uint64
	var x510 uint64
	x509, x510 = bits.Add64(x492, x489, uint64(p521Uint1(x508)))
	var x511 uint64
	var x512 uint64
	x511, x512 = bits.Add64(x490, x487, uint64(p521Uint1(x510)))
	var x513 uint64
	var x514 uint64
	x513, x514 = bits.Add64(x488, x485, uint64(p521Uint1(x512)))
	var x515 uint64
	var x516 uint64
	x515, x516 = bits.Add64(x486, x483, uint64(p521Uint1(x514)))
	var x518 uint64
	_, x518 = bits.Add64(x451, x499, uint64(0x0))
	var x519 uint64
	var x520 uint64
	x519, x520 = bits.Add64(x469, x501, uint64(p521Uint1(x518)))
	var x521 uint64
	var x522 uint64
	x521, x522 = bits.Add64(x471, x503, uint64(p521Uint1(x520)))
	var x523 uint64
	var x524 uint64
	x523, x524 = bits.Add64(x473, x505, uint64(p521Uint1(x522)))
	var x525 uint64
	var x526 uint64
	x525, x526 = bits.Add64(x475, x507, uint64(p521Uint1(x524)))
	var x527 uint64
	var x528 uint64
	x527, x528 = bits.Add64(x477, x509, uint64(p521Uint1(x526)))
	var x529 uint64
	var x530 uint64
	x529, x530 = bits.Add64(x479, x511, uint64(p521Uint1(x528)))
	var x531 uint64
	var x532 uint64
	x531, x532 = bits.Add64(x481, x513, uint64(p521Uint1(x530)))
	var x533 uint64
	var x534 uint64
	x533, x534 = bits.Add64((uint64(p521Uint1(x482)) + (uint64(p521Uint1(x466)) + (uint64(p521Uint1(x448)) + x416))), x515, uint64(p521Uint1(x532)))
	x535 := (uint64(p521Uint1(x534)) + (uint64(p521Uint1(x516)) + x484))
	var x536 uint64
	var x537 uint64
	x536, x537 = bits.Sub64(x519, 0xffffffffffffffff, uint64(0x0))
	var x538 uint64
	var x539 uint64
	x538, x539 = bits.Sub64(x521, 0xffffffffffffffff, uint64(p521Uint1(x537)))
	var x540 uint64
	var x541 uint64
	x540, x541 = bits.Sub64(x523, 0xffffffffffffffff, uint64(p521Uint1(x539)))
	var x542 uint64
	var x543 uint64
	x542, x543 = bits.Sub64(x525, 0xffffffffffffffff, uint64(p521Uint1(x541)))
	var x544 uint64
	var x545 uint64
	x544, x545 = bits.Sub64(x527, 0xffffffffffffffff, uint64(p521Uint1(x543)))
	var x546 uint64
	var x547 uint64
	x546, x547 = bits.Sub64(x529, 0xffffffffffffffff, uint64(p521Uint1(x545)))
	var x548 uint64
	var x549 uint64
	x548, x549 = bits.Sub64(x531, 0xffffffffffffffff, uint64(p521Uint1(x547)))
	var x550 uint64
	var x551 uint64
	x550, x551 = bits.Sub64(x533, 0xffffffffffffffff, uint64(p521Uint1(x549)))
	var x552 uint64
	var x553 uint64
	x552, x553 = bits.Sub64(x535, 0x1ff, uint64(p521Uint1(x551)))
	var x555 uint64
	_, x555 = bits.Sub64(uint64(0x0), uint64(0x0), uint64(p521Uint1(x553)))
	var x556 uint64
	p521CmovznzU64(&x556, p521Uint1(x555), x536, x519)
	var x557 uint64
	p521CmovznzU64(&x557, p521Uint1(x555), x538, x521)
	var x558 uint64
	p521CmovznzU64(&x558, p521Uint1(x555), x540, x523)
	var x559 uint64
	p521CmovznzU64(&x559, p521Uint1(x555), x542, x525)
	var x560 uint64
	p521CmovznzU64(&x560, p521Uint1(x555), x544, x527)
	var x561 uint64
	p521CmovznzU64(&x561, p521Uint1(x555), x546, x529)
	var x562 uint64
	p521CmovznzU64(&x562, p521Uint1(x555), x548, x531)
	var x563 uint64
	p521CmovznzU64(&x563, p521Uint1(x555), x550, x533)
	var x564 uint64
	p521CmovznzU64(&x564, p521Uint1(x555), x552, x535)
	out1[0] = x556
	out1[1] = x557
	out1[2] = x558
	out1[3] = x559
	out1[4] = x560
	out1[5] = x561
	out1[6] = x562
	out1[7] = x563
	out1[8] = x564
}

// p521Selectznz is a multi-limb conditional select.
//
// Postconditions:
//
//	eval out1 = (if arg1 = 0 then eval arg2 else eval arg3)
//
// Input Bounds:
//
//	arg1: [0x0 ~> 0x1]
//	arg2: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]]
//	arg3: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]]
//
// Output Bounds:
//
//	out1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]]
func p521Selectznz(out1 *[9]uint64, arg1 p521Uint1, arg2 *[9]uint64, arg3 *[9]uint64) {
	var x1 uint64
	p521CmovznzU64(&x1, arg1, arg2[0], arg3[0])
	var x2 uint64
	p521CmovznzU64(&x2, arg1, arg2[1], arg3[1])
	var x3 uint64
	p521CmovznzU64(&x3, arg1, arg2[2], arg3[2])
	var x4 uint64
	p521CmovznzU64(&x4, arg1, arg2[3], arg3[3])
	var x5 uint64
	p521CmovznzU64(&x5, arg1, arg2[4], arg3[4])
	var x6 uint64
	p521CmovznzU64(&x6, arg1, arg2[5], arg3[5])
	var x7 uint64
	p521CmovznzU64(&x7, arg1, arg2[6], arg3[6])
	var x8 uint64
	p521CmovznzU64(&x8, arg1, arg2[7], arg3[7])
	var x9 uint64
	p521CmovznzU64(&x9, arg1, arg2[8], arg3[8])
	out1[0] = x1
	out1[1] = x2
	out1[2] = x3
	out1[3] = x4
	out1[4] = x5
	out1[5] = x6
	out1[6] = x7
	out1[7] = x8
	out1[8] = x9
}

// p521ToBytes serializes a field element NOT in the Montgomery domain to bytes in little-endian order.
//
// Preconditions:
//
//	0 ≤ eval arg1 < m
//
// Postconditions:
//
//	out1 = map (λ x, ⌊((eval arg1 mod m) mod 2^(8 * (x + 1))) / 2^(8 * x)⌋) [0..65]
//
// Input Bounds:
//
//	arg1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0x1ff]]
//
// Output Bounds:
//
//	out1: [[0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0x1]]
func p521ToBytes(out1 *[66]uint8, arg1 *[9]uint64) {
	x1 := arg1[8]
	x2 := arg1[7]
	x3 := arg1[6]
	x4 := arg1[5]
	x5 := arg1[4]
	x6 := arg1[3]
	x7 := arg1[2]
	x8 := arg1[1]
	x9 := arg1[0]
	x10 := (uint8(x9) & 0xff)
	x11 := (x9 >> 8)
	x12 := (uint8(x11) & 0xff)
	x13 := (x11 >> 8)
	x14 := (uint8(x13) & 0xff)
	x15 := (x13 >> 8)
	x16 := (uint8(x15) & 0xff)
	x17 := (x15 >> 8)
	x18 := (uint8(x17) & 0xff)
	x19 := (x17 >> 8)
	x20 := (uint8(x19) & 0xff)
	x21 := (x19 >> 8)
	x22 := (uint8(x21) & 0xff)
	x23 := uint8((x21 >> 8))
	x24 := (uint8(x8) & 0xff)
	x25 := (x8 >> 8)
	x26 := (uint8(x25) & 0xff)
	x27 := (x25 >> 8)
	x28 := (uint8(x27) & 0xff)
	x29 := (x27 >> 8)
	x30 := (uint8(x29) & 0xff)
	x31 := (x29 >> 8)
	x32 := (uint8(x31) & 0xff)
	x33 := (x31 >> 8)
	x34 := (uint8(x33) & 0xff)
	x35 := (x33 >> 8)
	x36 := (uint8(x35) & 0xff)
	x37 := uint8((x35 >> 8))
	x38 := (uint8(x7) & 0xff)
	x39 := (x7 >> 8)
	x40 := (uint8(x39) & 0xff)
	x41 := (x39 >> 8)
	x42 := (uint8(x41) & 0xff)
	x43 := (x41 >> 8)
	x44 := (uint8(x43) & 0xff)
	x45 := (x43 >> 8)
	x46 := (uint8(x45) & 0xff)
	x47 := (x45 >> 8)
	x48 := (uint8(x47) & 0xff)
	x49 := (x47 >> 8)
	x50 := (uint8(x49) & 0xff)
	x51 := uint8((x49 >> 8))
	x52 := (uint8(x6) & 0xff)
	x53 := (x6 >> 8)
	x54 := (uint8(x53) & 0xff)
	x55 := (x53 >> 8)
	x56 := (uint8(x55) & 0xff)
	x57 := (x55 >> 8)
	x58 := (uint8(x57) & 0xff)
	x59 := (x57 >> 8)
	x60 := (uint8(x59) & 0xff)
	x61 := (x59 >> 8)
	x62 := (uint8(x61) & 0xff)
	x63 := (x61 >> 8)
	x64 := (uint8(x63) & 0xff)
	x65 := uint8((x63 >> 8))
	x66 := (uint8(x5) & 0xff)
	x67 := (x5 >> 8)
	x68 := (uint8(x67) & 0xff)
	x69 := (x67 >> 8)
	x70 := (uint8(x69) & 0xff)
	x71 := (x69 >> 8)
	x72 := (uint8(x71) & 0xff)
	x73 := (x71 >> 8)
	x74 := (uint8(x73) & 0xff)
	x75 := (x73 >> 8)
	x76 := (uint8(x75) & 0xff)
	x77 := (x75 >> 8)
	x78 := (uint8(x77) & 0xff)
	x79 := uint8((x77 >> 8))
	x80 := (uint8(x4) & 0xff)
	x81 := (x4 >> 8)
	x82 := (uint8(x81) & 0xff)
	x83 := (x81 >> 8)
	x84 := (uint8(x83) & 0xff)
	x85 := (x83 >> 8)
	x86 := (uint8(x85) & 0xff)
	x87 := (x85 >> 8)
	x88 := (uint8(x87) & 0xff)
	x89 := (x87 >> 8)
	x90 := (uint8(x89) & 0xff)
	x91 := (x89 >> 8)
	x92 := (uint8(x91) & 0xff)
	x93 := uint8((x91 >> 8))
	x94 := (uint8(x3) & 0xff)
	x95 := (x3 >> 8)
	x96 := (uint8(x95) & 0xff)
	x97 := (x95 >> 8)
	x98 := (uint8(x97) & 0xff)
	x99 := (x97 >> 8)
	x100 := (uint8(x99) & 0xff)
	x101 := (x99 >> 8)
	x102 := (uint8(x101) & 0xff)
	x103 := (x101 >> 8)
	x104 := (uint8(x103) & 0xff)
	x105 := (x103 >> 8)
	x106 := (uint8(x105) & 0xff)
	x107 := uint8((x105 >> 8))
	x108 := (uint8(x2) & 0xff)
	x109 := (x2 >> 8)
	x110 := (uint8(x109) & 0xff)
	x111 := (x109 >> 8)
	x112 := (uint8(x111) & 0xff)
	x113 := (x111 >> 8)
	x114 := (uint8(x113) & 0xff)
	x115 := (x113 >> 8)
	x116 := (uint8(x115) & 0xff)
	x117 := (x115 >> 8)
	x118 := (uint8(x117) & 0xff)
	x119 := (x117 >> 8)
	x120 := (uint8(x119) & 0xff)
	x121 := uint8((x119 >> 8))
	x122 := (uint8(x1) & 0xff)
	x123 := p521Uint1((x1 >> 8))
	out1[0] = x10
	out1[1] = x12
	out1[2] = x14
	out1[3] = x16
	out1[4] = x18
	out1[5] = x20
	out1[6] = x22
	out1[7] = x23
	out1[8] = x24
	out1[9] = x26
	out1[10] = x28
	out1[11] = x30
	out1[12] = x32
	out1[13] = x34
	out1[14] = x36
	out1[15] = x37
	out1[16] = x38
	out1[17] = x40
	out1[18] = x42
	out1[19] = x44
	out1[20] = x46
	out1[21] = x48
	out1[22] = x50
	out1[23] = x51
	out1[24] = x52
	out1[25] = x54
	out1[26] = x56
	out1[27] = x58
	out1[28] = x60
	out1[29] = x62
	out1[30] = x64
	out1[31] = x65
	out1[32] = x66
	out1[33] = x68
	out1[34] = x70
	out1[35] = x72
	out1[36] = x74
	out1[37] = x76
	out1[38] = x78
	out1[39] = x79
	out1[40] = x80
	out1[41] = x82
	out1[42] = x84
	out1[43] = x86
	out1[44] = x88
	out1[45] = x90
	out1[46] = x92
	out1[47] = x93
	out1[48] = x94
	out1[49] = x96
	out1[50] = x98
	out1[51] = x100
	out1[52] = x102
	out1[53] = x104
	out1[54] = x106
	out1[55] = x107
	out1[56] = x108
	out1[57] = x110
	out1[58] = x112
	out1[59] = x114
	out1[60] = x116
	out1[61] = x118
	out1[62] = x120
	out1[63] = x121
	out1[64] = x122
	out1[65] = uint8(x123)
}

// p521FromBytes deserializes a field element NOT in the Montgomery domain from bytes in little-endian order.
//
// Preconditions:
//
//	0 ≤ bytes_eval arg1 < m
//
// Postconditions:
//
//	eval out1 mod m = bytes_eval arg1 mod m
//	0 ≤ eval out1 < m
//
// Input Bounds:
//
//	arg1: [[0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0x1]]
//
// Output Bounds:
//
//	out1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0x1ff]]
func p521FromBytes(out1 *[9]uint64, arg1 *[66]uint8) {
	x1 := (uint64(p521Uint1(arg1[65])) << 8)
	x2 := arg1[64]
	x3 := (uint64(arg1[63]) << 56)
	x4 := (uint64(arg1[62]) << 48)
	x5 := (uint64(arg1[61]) << 40)
	x6 := (uint64(arg1[60]) << 32)
	x7 := (uint64(arg1[59]) << 24)
	x8 := (uint64(arg1[58]) << 16)
	x9 := (uint64(arg1[57]) << 8)
	x10 := arg1[56]
	x11 := (uint64(arg1[55]) << 56)
	x12 := (uint64(arg1[54]) << 48)
	x13 := (uint64(arg1[53]) << 40)
	x14 := (uint64(arg1[52]) << 32)
	x15 := (uint64(arg1[51]) << 24)
	x16 := (uint64(arg1[50]) << 16)
	x17 := (uint64(arg1[49]) << 8)
	x18 := arg1[48]
	x19 := (uint64(arg1[47]) << 56)
	x20 := (uint64(arg1[46]) << 48)
	x21 := (uint64(arg1[45]) << 40)
	x22 := (uint64(arg1[44]) << 32)
	x23 := (uint64(arg1[43]) << 24)
	x24 := (uint64(arg1[42]) << 16)
	x25 := (uint64(arg1[41]) << 8)
	x26 := arg1[40]
	x27 := (uint64(arg1[39]) << 56)
	x28 := (uint64(arg1[38]) << 48)
	x29 := (uint64(arg1[37]) << 40)
	x30 := (uint64(arg1[36]) << 32)
	x31 := (uint64(arg1[35]) << 24)
	x32 := (uint64(arg1[34]) << 16)
	x33 := (uint64(arg1[33]) << 8)
	x34 := arg1[32]
	x35 := (uint64(arg1[31]) << 56)
	x36 := (uint64(arg1[30]) << 48)
	x37 := (uint64(arg1[29]) << 40)
	x38 := (uint64(arg1[28]) << 32)
	x39 := (uint64(arg1[27]) << 24)
	x40 := (uint64(arg1[26]) << 16)
	x41 := (uint64(arg1[25]) << 8)
	x42 := arg1[24]
	x43 := (uint64(arg1[23]) << 56)
	x44 := (uint64(arg1[22]) << 48)
	x45 := (uint64(arg1[21]) << 40)
	x46 := (uint64(arg1[20]) << 32)
	x47 := (uint64(arg1[19]) << 24)
	x48 := (uint64(arg1[18]) << 16)
	x49 := (uint64(arg1[17]) << 8)
	x50 := arg1[16]
	x51 := (uint64(arg1[15]) << 56)
	x52 := (uint64(arg1[14]) << 48)
	x53 := (uint64(arg1[13]) << 40)
	x54 := (uint64(arg1[12]) << 32)
	x55 := (uint64(arg1[11]) << 24)
	x56 := (uint64(arg1[10]) << 16)
	x57 := (uint64(arg1[9]) << 8)
	x58 := arg1[8]
	x59 := (uint64(arg1[7]) << 56)
	x60 := (uint64(arg1[6]) << 48)
	x61 := (uint64(arg1[5]) << 40)
	x62 := (uint64(arg1[4]) << 32)
	x63 := (uint64(arg1[3]) << 24)
	x64 := (uint64(arg1[2]) << 16)
	x65 := (uint64(arg1[1]) << 8)
	x66 := arg1[0]
	x67 := (x65 + uint64(x66))
	x68 := (x64 + x67)
	x69 := (x63 + x68)
	x70 := (x62 + x69)
	x71 := (x61 + x70)
	x72 := (x60 + x71)
	x73 := (x59 + x72)
	x74 := (x57 + uint64(x58))
	x75 := (x56 + x74)
	x76 := (x55 + x75)
	x77 := (x54 + x76)
	x78 := (x53 + x77)
	x79 := (x52 + x78)
	x80 := (x51 + x79)
	x81 := (x49 + uint64(x50))
	x82 := (x48 + x81)
	x83 := (x47 + x82)
	x84 := (x46 + x83)
	x85 := (x45 + x84)
	x86 := (x44 + x85)
	x87 := (x43 + x86)
	x88 := (x41 + uint64(x42))
	x89 := (x40 + x88)
	x90 := (x39 + x89)
	x91 := (x38 + x90)
	x92 := (x37 + x91)
	x93 := (x36 + x92)
	x94 := (x35 + x93)
	x95 := (x33 + uint64(x34))
	x96 := (x32 + x95)
	x97 := (x31 + x96)
	x98 := (x30 + x97)
	x99 := (x29 + x98)
	x100 := (x28 + x99)
	x101 := (x27 + x100)
	x102 := (x25 + uint64(x26))
	x103 := (x24 + x102)
	x104 := (x23 + x103)
	x105 := (x22 + x104)
	x106 := (x21 + x105)
	x107 := (x20 + x106)
	x108 := (x19 + x107)
	x109 := (x17 + uint64(x18))
	x110 := (x16 + x109)
	x111 := (x15 + x110)
	x112 := (x14 + x111)
	x113 := (x13 + x112)
	x114 := (x12 + x113)
	x115 := (x11 + x114)
	x116 := (x9 + uint64(x10))
	x117 := (x8 + x116)
	x118 := (x7 + x117)
	x119 := (x6 + x118)
	x120 := (x5 + x119)
	x121 := (x4 + x120)
	x122 := (x3 + x121)
	x123 := (x1 + uint64(x2))
	out1[0] = x73
	out1[1] = x80
	out1[2] = x87
	out1[3] = x94
	out1[4] = x101
	out1[5] = x108
	out1[6] = x115
	out1[7] = x122
	out1[8] = x123
}

Zerion Mini Shell 1.0