blob: 87a359e88ed681733542b68385d22ea99067f715 [file] [log] [blame]
// 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
}