enter curve25519_mul int64 h int64 f int64 g input h input f input g int64 constants int64 constants_low float64 two127 float64 twom127 float64 f0 float64 f22 float64 f43 float64 f64 float64 f85 float64 f107 float64 f128 float64 f149 float64 f170 float64 f192 float64 f213 float64 f234 float64 g0 float64 g22 float64 g43 float64 g64 float64 g85 float64 g107 float64 g128 float64 g149 float64 g170 float64 g192 float64 g213 float64 g234 float64 u0 float64 u22 float64 u43 float64 u64 float64 u85 float64 u107 float64 v0 float64 v22 float64 v43 float64 v64 float64 v85 float64 v107 float64 u22v0 float64 u22v22 float64 u22v43 float64 u22v64 float64 u22v85 float64 u43v0 float64 u43v22 float64 u43v43 float64 u43v64 float64 u43v85 float64 u64v0 float64 u64v22 float64 u64v43 float64 u64v64 float64 u64v85 float64 u85v0 float64 u85v22 float64 u85v43 float64 u85v64 float64 u85v85 float64 u107v0 float64 u107v22 float64 u107v43 float64 u107v64 float64 u107v85 float64 w0 float64 w22 float64 w43 float64 w64 float64 w85 float64 w107 float64 w128 float64 w149 float64 w170 float64 w192 float64 w213 float64 f22g0 float64 f22g22 float64 f22g43 float64 f22g64 float64 f22g85 float64 f22g107 float64 f22g128 float64 f22g149 float64 f22g170 float64 f22g192 float64 f22g213 float64 f22g234 float64 f43g0 float64 f43g22 float64 f43g43 float64 f43g64 float64 f43g85 float64 f43g107 float64 f43g128 float64 f43g149 float64 f43g170 float64 f43g192 float64 f43g213 float64 f43g234 float64 f64g0 float64 f64g22 float64 f64g43 float64 f64g64 float64 f64g85 float64 f64g107 float64 f64g128 float64 f64g149 float64 f64g170 float64 f64g192 float64 f64g213 float64 f64g234 float64 f85g0 float64 f85g22 float64 f85g43 float64 f85g64 float64 f85g85 float64 f85g107 float64 f85g128 float64 f85g149 float64 f85g170 float64 f85g192 float64 f85g213 float64 f85g234 float64 f107g0 float64 f107g22 float64 f107g43 float64 f107g64 float64 f107g85 float64 f107g107 float64 f107g128 float64 f107g149 float64 f107g170 float64 f107g192 float64 f107g213 float64 f107g234 float64 f128g0 float64 f128g22 float64 f128g43 float64 f128g64 float64 f128g85 float64 f128g107 float64 f128g128 float64 f128g149 float64 f128g170 float64 f128g192 float64 f128g213 float64 f128g234 float64 f149g0 float64 f149g22 float64 f149g43 float64 f149g64 float64 f149g85 float64 f149g107 float64 f149g128 float64 f149g149 float64 f149g170 float64 f149g192 float64 f149g213 float64 f149g234 float64 f170g0 float64 f170g22 float64 f170g43 float64 f170g64 float64 f170g85 float64 f170g107 float64 f170g128 float64 f170g149 float64 f170g170 float64 f170g192 float64 f170g213 float64 f170g234 float64 f192g0 float64 f192g22 float64 f192g43 float64 f192g64 float64 f192g85 float64 f192g107 float64 f192g128 float64 f192g149 float64 f192g170 float64 f192g192 float64 f192g213 float64 f192g234 float64 f213g0 float64 f213g22 float64 f213g43 float64 f213g64 float64 f213g85 float64 f213g107 float64 f213g128 float64 f213g149 float64 f213g170 float64 f213g192 float64 f213g213 float64 f213g234 float64 f234g0 float64 f234g22 float64 f234g43 float64 f234g64 float64 f234g85 float64 f234g107 float64 f234g128 float64 f234g149 float64 f234g170 float64 f234g192 float64 f234g213 float64 f234g234 float64 k128 float64 k149 float64 k170 float64 k192 float64 k213 float64 h0 float64 h22 float64 h43 float64 h64 float64 h85 float64 h107 float64 h128 float64 h149 float64 h170 float64 h192 float64 h213 float64 h234 float64 h255 float64 h277 float64 h298 float64 h319 float64 h340 float64 h362 float64 h383 float64 h404 float64 h425 float64 h447 float64 h468 float64 twom127h362 float64 twom127h383 float64 twom127h404 float64 twom127h425 float64 twom127h447 float64 twom127h468 constants = (curve25519_constants & 0xfffffc0000000000) >> 32 constants_low = curve25519_constants & 0xfffffc00 constants |= (curve25519_constants & 0x3ff00000000) >> 32 constants_low |= curve25519_constants & 0x3ff constants <<= 32 constants |= constants_low f0 = *(float64 *) (f + 0) f22 = *(float64 *) (f + 8) f43 = *(float64 *) (f + 16) f64 = *(float64 *) (f + 24) f85 = *(float64 *) (f + 32) f107 = *(float64 *) (f + 40) g0 = *(float64 *) (g + 0) g22 = *(float64 *) (g + 8) g43 = *(float64 *) (g + 16) g64 = *(float64 *) (g + 24) g85 = *(float64 *) (g + 32) g107 = *(float64 *) (g + 40) h0 = f0 * g0 h22 = f0 * g22 f22g0 = f22 * g0 h22 += f22g0 h43 = f0 * g43 f22g22 = f22 * g22 h43 += f22g22 f43g0 = f43 * g0 h43 += f43g0 h64 = f0 * g64 f22g43 = f22 * g43 h64 += f22g43 f43g22 = f43 * g22 h64 += f43g22 f64g0 = f64 * g0 h64 += f64g0 h85 = f0 * g85 f22g64 = f22 * g64 h85 += f22g64 f43g43 = f43 * g43 h85 += f43g43 f64g22 = f64 * g22 h85 += f64g22 f85g0 = f85 * g0 h85 += f85g0 h107 = f0 * g107 f22g85 = f22 * g85 h107 += f22g85 f43g64 = f43 * g64 h107 += f43g64 f64g43 = f64 * g43 h107 += f64g43 f85g22 = f85 * g22 h107 += f85g22 f107g0 = f107 * g0 h107 += f107g0 two127 = *(float64 *) (constants + 0) twom127 = *(float64 *) (constants + 8) f128 = *(float64 *) (f + 48) f149 = *(float64 *) (f + 56) f170 = *(float64 *) (f + 64) f192 = *(float64 *) (f + 72) f213 = *(float64 *) (f + 80) f234 = *(float64 *) (f + 88) f0 = *(float64 *) (f + 0) f22 = *(float64 *) (f + 8) f43 = *(float64 *) (f + 16) f64 = *(float64 *) (f + 24) f85 = *(float64 *) (f + 32) f107 = *(float64 *) (f + 40) u0 = twom127 * f128 u22 = twom127 * f149 u43 = twom127 * f170 u64 = twom127 * f192 u85 = twom127 * f213 u107 = twom127 * f234 u0 += f0 u22 += f22 u43 += f43 u64 += f64 u85 += f85 u107 += f107 g128 = *(float64 *) (g + 48) g149 = *(float64 *) (g + 56) g170 = *(float64 *) (g + 64) g192 = *(float64 *) (g + 72) g213 = *(float64 *) (g + 80) g234 = *(float64 *) (g + 88) g0 = *(float64 *) (g + 0) g22 = *(float64 *) (g + 8) g43 = *(float64 *) (g + 16) g64 = *(float64 *) (g + 24) g85 = *(float64 *) (g + 32) g107 = *(float64 *) (g + 40) v0 = twom127 * g128 v22 = twom127 * g149 v43 = twom127 * g170 v64 = twom127 * g192 v85 = twom127 * g213 v107 = twom127 * g234 v0 += g0 v22 += g22 v43 += g43 v64 += g64 v85 += g85 v107 += g107 w0 = u0 * v0 w22 = u0 * v22 w43 = u0 * v43 w64 = u0 * v64 w85 = u0 * v85 w107 = u0 * v107 u22v0 = u22 * v0 u22v22 = u22 * v22 u22v43 = u22 * v43 u22v64 = u22 * v64 u22v85 = u22 * v85 w128 = u22 * v107 w22 += u22v0 w43 += u22v22 w64 += u22v43 w85 += u22v64 w107 += u22v85 u43v0 = u43 * v0 u43v22 = u43 * v22 u43v43 = u43 * v43 u43v64 = u43 * v64 u43v85 = u43 * v85 w149 = u43 * v107 w43 += u43v0 w64 += u43v22 w85 += u43v43 w107 += u43v64 w128 += u43v85 u64v0 = u64 * v0 u64v22 = u64 * v22 u64v43 = u64 * v43 u64v64 = u64 * v64 u64v85 = u64 * v85 w170 = u64 * v107 w64 += u64v0 w85 += u64v22 w107 += u64v43 w128 += u64v64 w149 += u64v85 u85v0 = u85 * v0 u85v22 = u85 * v22 u85v43 = u85 * v43 u85v64 = u85 * v64 u85v85 = u85 * v85 w192 = u85 * v107 w85 += u85v0 w107 += u85v22 w128 += u85v43 w149 += u85v64 w170 += u85v85 u107v0 = u107 * v0 u107v22 = u107 * v22 u107v43 = u107 * v43 u107v64 = u107 * v64 u107v85 = u107 * v85 w213 = u107 * v107 w107 += u107v0 w128 += u107v22 w149 += u107v43 w170 += u107v64 w192 += u107v85 h128 = w0 - h0 h149 = w22 - h22 h170 = w43 - h43 h192 = w64 - h64 h213 = w85 - h85 h234 = w107 - h107 *(float64 *) (h + 0) = h0 *(float64 *) (h + 8) = h22 *(float64 *) (h + 16) = h43 *(float64 *) (h + 24) = h64 *(float64 *) (h + 32) = h85 *(float64 *) (h + 40) = h107 f128 = *(float64 *) (f + 48) f149 = *(float64 *) (f + 56) f170 = *(float64 *) (f + 64) f192 = *(float64 *) (f + 72) f213 = *(float64 *) (f + 80) f234 = *(float64 *) (f + 88) g128 = *(float64 *) (g + 48) g149 = *(float64 *) (g + 56) g170 = *(float64 *) (g + 64) g192 = *(float64 *) (g + 72) g213 = *(float64 *) (g + 80) g234 = *(float64 *) (g + 88) k128 = f128 * g128 k149 = f128 * g149 k170 = f128 * g170 k192 = f128 * g192 k213 = f128 * g213 f149g128 = f149 * g128 k149 += f149g128 f149g149 = f149 * g149 k170 += f149g149 f149g170 = f149 * g170 k192 += f149g170 f149g192 = f149 * g192 k213 += f149g192 f170g128 = f170 * g128 k170 += f170g128 f170g149 = f170 * g149 k192 += f170g149 f170g170 = f170 * g170 k213 += f170g170 f192g128 = f192 * g128 k192 += f192g128 f192g149 = f192 * g149 k213 += f192g149 f213g128 = f213 * g128 k213 += f213g128 k128 *= twom127 k149 *= twom127 k170 *= twom127 k192 *= twom127 k213 *= twom127 f0 = *(float64 *) (f + 0) f22 = *(float64 *) (f + 8) f43 = *(float64 *) (f + 16) f64 = *(float64 *) (f + 24) f85 = *(float64 *) (f + 32) f107 = *(float64 *) (f + 40) g0 = *(float64 *) (g + 0) g22 = *(float64 *) (g + 8) g43 = *(float64 *) (g + 16) g64 = *(float64 *) (g + 24) g85 = *(float64 *) (g + 32) g107 = *(float64 *) (g + 40) f22g107 = f22 * g107 k128 = f22g107 - k128 f43g85 = f43 * g85 k128 += f43g85 f43g107 = f43 * g107 k149 = f43g107 - k149 f64g64 = f64 * g64 k128 += f64g64 f64g85 = f64 * g85 k149 += f64g85 f64g107 = f64 * g107 k170 = f64g107 - k170 f85g43 = f85 * g43 k128 += f85g43 f85g64 = f85 * g64 k149 += f85g64 f85g85 = f85 * g85 k170 += f85g85 f85g107 = f85 * g107 k192 = f85g107 - k192 f107g22 = f107 * g22 k128 += f107g22 f107g43 = f107 * g43 k149 += f107g43 f107g64 = f107 * g64 k170 += f107g64 f107g85 = f107 * g85 k192 += f107g85 f107g107 = f107 * g107 k213 = f107g107 - k213 h255 = w128 - k128 h277 = w149 - k149 h298 = w170 - k170 h319 = w192 - k192 h340 = w213 - k213 h128 *= two127 h128 += k128 h149 *= two127 h149 += k149 h170 *= two127 h170 += k170 h192 *= two127 h192 += k192 h213 *= two127 h213 += k213 *(float64 *) (h + 48) = h128 *(float64 *) (h + 56) = h149 *(float64 *) (h + 64) = h170 *(float64 *) (h + 72) = h192 *(float64 *) (h + 80) = h213 f128 = *(float64 *) (f + 48) f149 = *(float64 *) (f + 56) f170 = *(float64 *) (f + 64) f192 = *(float64 *) (f + 72) f213 = *(float64 *) (f + 80) f234 = *(float64 *) (f + 88) g128 = *(float64 *) (g + 48) g149 = *(float64 *) (g + 56) g170 = *(float64 *) (g + 64) g192 = *(float64 *) (g + 72) g213 = *(float64 *) (g + 80) g234 = *(float64 *) (g + 88) h362 = f128 * g234 f149g213 = f149 * g213 h362 += f149g213 f170g192 = f170 * g192 h362 += f170g192 f192g170 = f192 * g170 h362 += f192g170 f213g149 = f213 * g149 h362 += f213g149 f234g128 = f234 * g128 h362 += f234g128 h383 = f149 * g234 f170g213 = f170 * g213 h383 += f170g213 f192g192 = f192 * g192 h383 += f192g192 f213g170 = f213 * g170 h383 += f213g170 f234g149 = f234 * g149 h383 += f234g149 h404 = f170 * g234 f192g213 = f192 * g213 h404 += f192g213 f213g192 = f213 * g192 h404 += f213g192 f234g170 = f234 * g170 h404 += f234g170 h425 = f192 * g234 f213g213 = f213 * g213 h425 += f213g213 f234g192 = f234 * g192 h425 += f234g192 h447 = f213 * g234 f234g213 = f234 * g213 h447 += f234g213 h468 = f234 * g234 twom127h362 = twom127 * h362 twom127h383 = twom127 * h383 twom127h404 = twom127 * h404 twom127h425 = twom127 * h425 twom127h447 = twom127 * h447 twom127h468 = twom127 * h468 h234 *= two127 h234 -= twom127h362 h255 *= two127 h255 -= twom127h383 h277 *= two127 h277 -= twom127h404 h298 *= two127 h298 -= twom127h425 h319 *= two127 h319 -= twom127h447 h340 *= two127 h340 -= twom127h468 *(float64 *) (h + 88) = h234 *(float64 *) (h + 96) = h255 *(float64 *) (h + 104) = h277 *(float64 *) (h + 112) = h298 *(float64 *) (h + 120) = h319 *(float64 *) (h + 128) = h340 *(float64 *) (h + 136) = h362 *(float64 *) (h + 144) = h383 *(float64 *) (h + 152) = h404 *(float64 *) (h + 160) = h425 *(float64 *) (h + 168) = h447 *(float64 *) (h + 176) = h468 leave