summaryrefslogtreecommitdiffstats
path: root/vendor/p384
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/p384')
-rw-r--r--vendor/p384/.cargo-checksum.json1
-rw-r--r--vendor/p384/CHANGELOG.md161
-rw-r--r--vendor/p384/Cargo.toml170
-rw-r--r--vendor/p384/LICENSE-APACHE201
-rw-r--r--vendor/p384/LICENSE-MIT25
-rw-r--r--vendor/p384/README.md90
-rw-r--r--vendor/p384/benches/field.rs54
-rw-r--r--vendor/p384/benches/scalar.rs73
-rw-r--r--vendor/p384/src/arithmetic.rs32
-rw-r--r--vendor/p384/src/arithmetic/affine.rs415
-rw-r--r--vendor/p384/src/arithmetic/field.rs152
-rw-r--r--vendor/p384/src/arithmetic/field/p384_32.rs9945
-rw-r--r--vendor/p384/src/arithmetic/field/p384_64.rs3661
-rw-r--r--vendor/p384/src/arithmetic/macros.rs47
-rw-r--r--vendor/p384/src/arithmetic/projective.rs673
-rw-r--r--vendor/p384/src/arithmetic/scalar.rs370
-rw-r--r--vendor/p384/src/arithmetic/scalar/p384_scalar_32.rs11535
-rw-r--r--vendor/p384/src/arithmetic/scalar/p384_scalar_64.rs3782
-rw-r--r--vendor/p384/src/ecdh.rs53
-rw-r--r--vendor/p384/src/ecdsa.rs138
-rw-r--r--vendor/p384/src/lib.rs125
-rw-r--r--vendor/p384/src/test_vectors.rs5
-rw-r--r--vendor/p384/src/test_vectors/data/wycheproof.blbbin0 -> 46367 bytes
-rw-r--r--vendor/p384/src/test_vectors/ecdsa.rs150
-rw-r--r--vendor/p384/src/test_vectors/group.rs256
25 files changed, 32114 insertions, 0 deletions
diff --git a/vendor/p384/.cargo-checksum.json b/vendor/p384/.cargo-checksum.json
new file mode 100644
index 000000000..83eede491
--- /dev/null
+++ b/vendor/p384/.cargo-checksum.json
@@ -0,0 +1 @@
+{"files":{"CHANGELOG.md":"61fcd8cd29fdb33d52276375d17e86ebb4c8b12063610b47a17d024dd69d8c59","Cargo.toml":"fb45f931624f753e0db0cf27053bd1103df24219b02be518919ed30267d4b4d1","LICENSE-APACHE":"a9040321c3712d8fd0b09cf52b17445de04a23a10165049ae187cd39e5c86be5","LICENSE-MIT":"02168781a5b59970e3da1784d2eb69f432598a3757f283dbffdafd9d483a9113","README.md":"915f1dbf8e8cdd265d8de61480bc459e87739c9a3882b9af6eb00f71efd21545","benches/field.rs":"735e9bf8c638a73eb5e885610923aa6848e0a2b5b21b9638d3b1eedf483f9042","benches/scalar.rs":"78918113cfc3b95c482b559e1b1bbebd2a57773c016a5297ede9f0d7ed510d75","src/arithmetic.rs":"78943f77cf53577fab94ee327b4fb9e310e9225aba187e3092ca50d1cbc5bb04","src/arithmetic/affine.rs":"3c55ea26f7487c70518849fdbbcef26e10c12e465a369a320198bcc64a7d8851","src/arithmetic/field.rs":"7cbfb7a717e8a569321659f643142988c9472ba9295abc41af6b56f6ee5014fe","src/arithmetic/field/p384_32.rs":"0ecd16551d7730ea853e37492b6da25b241a2cf066bd0c9828352af9d0f41044","src/arithmetic/field/p384_64.rs":"e71f4e552d3ec4e1bfce63b4229b8c73fb3e02a238aa9ed7fd2f97390336ba34","src/arithmetic/macros.rs":"d3cc510dea8e3d5a9f25e79dcb179f54ace866fd39532ad1f5648fffbfe0e67a","src/arithmetic/projective.rs":"d7801eac296f2ad3485015478e1159f0833f61ce5b321812fc4e7d0983b7cfb0","src/arithmetic/scalar.rs":"2cc9b17ab7191e09e7a15faf8697f8e173d6e2f9e595c921fa14e2bbb30bb0d3","src/arithmetic/scalar/p384_scalar_32.rs":"bb1839c7a1ba68855d358f44db07b067ccc83ca5d7d28d3b8b15b1408dc28f81","src/arithmetic/scalar/p384_scalar_64.rs":"6e7a5d23609003ca109881f17d36ee4c775e4006713afd727c4ad6c32e4da207","src/ecdh.rs":"3fcb3fa01f79ead2c6837621dd81102c25a4c3dc3b102318aaea47d8272216b6","src/ecdsa.rs":"e33c5f0c4c5053163f127084fff477529521748a26b424adf07b761647439604","src/lib.rs":"061cba82f8046b81aac8b270853278b6c5e4845d6c0bb1d04e8a3f989a1b7476","src/test_vectors.rs":"bf003ed537b66c01d30335035a1e5a2fe50a8fb0ae8b3061cc0ad6de86aceb45","src/test_vectors/data/wycheproof.blb":"d4918982427a6fe9a98c48a03bc6a414077da3599c6f9a5f967a6ff7814a3b49","src/test_vectors/ecdsa.rs":"595dae618074b5957c763a84846a8c3ff22083e4c223649590f0174766b8759b","src/test_vectors/group.rs":"60d64a2b9b81aa6c7f15771f55e51bbc099281da65cd7611a33ee95ff9fb3ee9"},"package":"dfc8c5bf642dde52bb9e87c0ecd8ca5a76faac2eeed98dedb7c717997e1080aa"} \ No newline at end of file
diff --git a/vendor/p384/CHANGELOG.md b/vendor/p384/CHANGELOG.md
new file mode 100644
index 000000000..7f72de677
--- /dev/null
+++ b/vendor/p384/CHANGELOG.md
@@ -0,0 +1,161 @@
+# Changelog
+All notable changes to this project will be documented in this file.
+
+The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
+and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
+
+## 0.11.2 (2022-08-03)
+### Added
+- Re-export low-level `diffie_hellman` function ([#627])
+
+[#627]: https://github.com/RustCrypto/elliptic-curves/pull/627
+
+## 0.11.1 (2022-06-12)
+### Added
+- RFC6979 test vectors ([#591])
+- Impl `serde::{Serialize, Deserialize}` for `Scalar` ([#604])
+
+### Changed
+- Use generic prime order formulas ([#601])
+
+[#591]: https://github.com/RustCrypto/elliptic-curves/pull/591
+[#601]: https://github.com/RustCrypto/elliptic-curves/pull/601
+[#604]: https://github.com/RustCrypto/elliptic-curves/pull/604
+
+## 0.11.0 (2022-06-03)
+### Added
+- Arithmetic implementation ([#565], [#573])
+ - Addition formulas from Renes-Costello-Batina 2015, adapted from
+ @str4d's implementation in the `p256` crate
+ - `FieldElement::{invert, sqrt}` implementations
+ - `Scalar::{invert, sqrt}` implementations
+ - Scalar field implementation generated using `fiat-crypto`
+ - Scalar multiplication using 4-bit window ala [#563]
+ - ECDH support using generic implementation from `elliptic-curve`
+ - ECDSA support using generic implementation from the `ecdsa` crate
+- Wycheproof test vectors ([#574])
+- `const fn` field arithmetic ([#589], [#590])
+
+[#563]: https://github.com/RustCrypto/elliptic-curves/pull/563
+[#565]: https://github.com/RustCrypto/elliptic-curves/pull/565
+[#573]: https://github.com/RustCrypto/elliptic-curves/pull/573
+[#574]: https://github.com/RustCrypto/elliptic-curves/pull/574
+[#589]: https://github.com/RustCrypto/elliptic-curves/pull/589
+[#590]: https://github.com/RustCrypto/elliptic-curves/pull/590
+
+## 0.10.0 (2022-05-09)
+### Changed
+- Bump `digest` to v0.10 ([#515])
+- Have `pkcs8` feature activate `ecdsa/pkcs8` ([#538])
+- Bump `elliptic-curve` to v0.12 ([#544])
+- Bump `ecdsa` to v0.14 ([#544])
+
+[#515]: https://github.com/RustCrypto/elliptic-curves/pull/515
+[#538]: https://github.com/RustCrypto/elliptic-curves/pull/538
+[#544]: https://github.com/RustCrypto/elliptic-curves/pull/544
+
+## 0.9.0 (2021-12-14)
+### Added
+- `serde` feature ([#463])
+
+### Changed
+- Use `sec1` crate for `EncodedPoint` type ([#435])
+- Rust 2021 edition upgrade; MSRV 1.56+ ([#453])
+- Bump `elliptic-curve` crate dependency to v0.11 ([#466])
+- Bump `ecdsa` crate dependency to v0.13 ([#467])
+
+[#435]: https://github.com/RustCrypto/elliptic-curves/pull/435
+[#453]: https://github.com/RustCrypto/elliptic-curves/pull/453
+[#463]: https://github.com/RustCrypto/elliptic-curves/pull/463
+[#466]: https://github.com/RustCrypto/elliptic-curves/pull/466
+[#467]: https://github.com/RustCrypto/elliptic-curves/pull/467
+
+## 0.8.0 (2021-06-08)
+### Changed
+- Bump `elliptic-curve` to v0.10; MSRV 1.51+ ([#349])
+- Bump `ecdsa` to v0.12 ([#349])
+
+[#349]: https://github.com/RustCrypto/elliptic-curves/pull/349
+
+## 0.7.0 (2021-04-29)
+### Added
+- `jwk` feature ([#279])
+- `Order` constant ([#328])
+
+### Changed
+- Rename `ecdsa::Asn1Signature` to `::DerSignature` ([#288])
+- Bump `elliptic-curve` crate dependency to v0.9 ([#293])
+- Bump `pkcs8` crate dependency to v0.6 ([#319])
+- Bump `ecdsa` crate dependency to v0.11 ([#330])
+
+[#279]: https://github.com/RustCrypto/elliptic-curves/pull/279
+[#288]: https://github.com/RustCrypto/elliptic-curves/pull/288
+[#293]: https://github.com/RustCrypto/elliptic-curves/pull/293
+[#319]: https://github.com/RustCrypto/elliptic-curves/pull/319
+[#328]: https://github.com/RustCrypto/elliptic-curves/pull/328
+[#330]: https://github.com/RustCrypto/elliptic-curves/pull/330
+
+## 0.6.1 (2020-12-16)
+### Fixed
+- Trigger docs.rs rebuild with nightly bugfix ([RustCrypto/traits#412])
+
+[RustCrypto/traits#412]: https://github.com/RustCrypto/traits/pull/412
+
+## 0.6.0 (2020-12-16)
+### Changed
+- Bump `elliptic-curve` dependency to v0.8 ([#260])
+- Bump `ecdsa` to v0.10 ([#260])
+
+[#260]: https://github.com/RustCrypto/elliptic-curves/pull/260
+
+## 0.5.0 (2020-12-06)
+### Added
+- PKCS#8 support ([#243], [#244])
+
+### Changed
+- Bump `elliptic-curve` crate dependency to v0.7; MSRV 1.46+ ([#247])
+- Bump `ecdsa` crate dependency to v0.9 ([#247])
+
+[#247]: https://github.com/RustCrypto/elliptic-curves/pull/247
+[#244]: https://github.com/RustCrypto/elliptic-curves/pull/244
+[#243]: https://github.com/RustCrypto/elliptic-curves/pull/243
+
+## 0.4.1 (2020-10-08)
+### Added
+- `SecretValue` impl when `arithmetic` feature is disabled ([#222])
+
+[#222]: https://github.com/RustCrypto/elliptic-curves/pull/222
+
+## 0.4.0 (2020-09-18)
+### Added
+- `ecdsa::Asn1Signature` type alias ([#186])
+
+### Changed
+- Rename `ElementBytes` => `FieldBytes` ([#176])
+- Rename `Curve::ElementSize` => `FieldSize` ([#150])
+
+[#186]: https://github.com/RustCrypto/elliptic-curves/pull/186
+[#176]: https://github.com/RustCrypto/elliptic-curves/pull/176
+[#150]: https://github.com/RustCrypto/elliptic-curves/pull/150
+
+## 0.3.0 (2020-08-10)
+### Added
+- ECDSA types ([#73])
+- OID support ([#103], [#113])
+
+### Changed
+- Bump `elliptic-curve` crate dependency to v0.5 ([#126])
+
+[#73]: https://github.com/RustCrypto/elliptic-curves/pull/73
+[#103]: https://github.com/RustCrypto/elliptic-curves/pull/103
+[#113]: https://github.com/RustCrypto/elliptic-curves/pull/113
+[#126]: https://github.com/RustCrypto/elliptic-curves/pull/126
+
+## 0.2.0 (2020-06-08)
+### Changed
+- Bump `elliptic-curve` crate dependency to v0.4 ([#39])
+
+[#39]: https://github.com/RustCrypto/elliptic-curves/pull/39
+
+## 0.1.0 (2020-01-15)
+- Initial release
diff --git a/vendor/p384/Cargo.toml b/vendor/p384/Cargo.toml
new file mode 100644
index 000000000..c3d50806e
--- /dev/null
+++ b/vendor/p384/Cargo.toml
@@ -0,0 +1,170 @@
+# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO
+#
+# When uploading crates to the registry Cargo will automatically
+# "normalize" Cargo.toml files for maximal compatibility
+# with all versions of Cargo and also rewrite `path` dependencies
+# to registry (e.g., crates.io) dependencies.
+#
+# If you are reading this file be aware that the original Cargo.toml
+# will likely look very different (and much more reasonable).
+# See Cargo.toml.orig for the original contents.
+
+[package]
+edition = "2021"
+rust-version = "1.57"
+name = "p384"
+version = "0.11.2"
+authors = [
+ "RustCrypto Developers",
+ "Frank Denis <github@pureftpd.org>",
+]
+description = """
+Pure Rust implementation of the NIST P-384 (a.k.a. secp384r1) elliptic curve
+with support for ECDH, ECDSA signing/verification, and general purpose curve
+arithmetic support.
+"""
+documentation = "https://docs.rs/p384"
+readme = "README.md"
+keywords = [
+ "crypto",
+ "ecc",
+ "nist",
+ "secp384r1",
+]
+categories = [
+ "cryptography",
+ "no-std",
+]
+license = "Apache-2.0 OR MIT"
+repository = "https://github.com/RustCrypto/elliptic-curves/tree/master/p384"
+resolver = "2"
+
+[package.metadata.docs.rs]
+rustdoc-args = [
+ "--cfg",
+ "docsrs",
+]
+
+[[bench]]
+name = "field"
+harness = false
+required-features = ["expose-field"]
+
+[[bench]]
+name = "scalar"
+harness = false
+
+[dependencies.ecdsa-core]
+version = "0.14"
+features = ["der"]
+optional = true
+default-features = false
+package = "ecdsa"
+
+[dependencies.elliptic-curve]
+version = "0.12.3"
+features = [
+ "hazmat",
+ "sec1",
+]
+default-features = false
+
+[dependencies.hex-literal]
+version = "0.3"
+optional = true
+
+[dependencies.serdect]
+version = "0.1"
+optional = true
+default-features = false
+
+[dependencies.sha2]
+version = "0.10"
+optional = true
+default-features = false
+
+[dev-dependencies.blobby]
+version = "0.3"
+
+[dev-dependencies.criterion]
+version = "0.3"
+
+[dev-dependencies.ecdsa-core]
+version = "0.14"
+features = ["dev"]
+default-features = false
+package = "ecdsa"
+
+[dev-dependencies.hex-literal]
+version = "0.3"
+
+[dev-dependencies.proptest]
+version = "1.0"
+
+[dev-dependencies.rand_core]
+version = "0.6"
+features = ["getrandom"]
+
+[features]
+arithmetic = [
+ "elliptic-curve/arithmetic",
+ "elliptic-curve/digest",
+]
+bits = [
+ "arithmetic",
+ "elliptic-curve/bits",
+]
+default = [
+ "arithmetic",
+ "ecdh",
+ "ecdsa",
+ "pem",
+ "std",
+]
+digest = [
+ "ecdsa-core/digest",
+ "ecdsa-core/hazmat",
+]
+ecdh = [
+ "arithmetic",
+ "elliptic-curve/ecdh",
+]
+ecdsa = [
+ "arithmetic",
+ "ecdsa-core/sign",
+ "ecdsa-core/verify",
+ "sha384",
+]
+expose-field = ["arithmetic"]
+hash2curve = [
+ "arithmetic",
+ "elliptic-curve/hash2curve",
+]
+jwk = ["elliptic-curve/jwk"]
+pem = [
+ "elliptic-curve/pem",
+ "ecdsa-core/pem",
+ "pkcs8",
+]
+pkcs8 = [
+ "ecdsa-core/pkcs8",
+ "elliptic-curve/pkcs8",
+]
+serde = [
+ "ecdsa-core/serde",
+ "elliptic-curve/serde",
+ "serdect",
+]
+sha384 = [
+ "digest",
+ "sha2",
+]
+std = [
+ "ecdsa-core/std",
+ "elliptic-curve/std",
+]
+test-vectors = ["hex-literal"]
+voprf = [
+ "elliptic-curve/voprf",
+ "sha2",
+]
diff --git a/vendor/p384/LICENSE-APACHE b/vendor/p384/LICENSE-APACHE
new file mode 100644
index 000000000..78173fa2e
--- /dev/null
+++ b/vendor/p384/LICENSE-APACHE
@@ -0,0 +1,201 @@
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+END OF TERMS AND CONDITIONS
+
+APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+Copyright [yyyy] [name of copyright owner]
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
diff --git a/vendor/p384/LICENSE-MIT b/vendor/p384/LICENSE-MIT
new file mode 100644
index 000000000..c4edc443d
--- /dev/null
+++ b/vendor/p384/LICENSE-MIT
@@ -0,0 +1,25 @@
+Copyright (c) 2020-2021 RustCrypto Developers
+
+Permission is hereby granted, free of charge, to any
+person obtaining a copy of this software and associated
+documentation files (the "Software"), to deal in the
+Software without restriction, including without
+limitation the rights to use, copy, modify, merge,
+publish, distribute, sublicense, and/or sell copies of
+the Software, and to permit persons to whom the Software
+is furnished to do so, subject to the following
+conditions:
+
+The above copyright notice and this permission notice
+shall be included in all copies or substantial portions
+of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF
+ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
+TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
+PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT
+SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR
+IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+DEALINGS IN THE SOFTWARE.
diff --git a/vendor/p384/README.md b/vendor/p384/README.md
new file mode 100644
index 000000000..d9161f840
--- /dev/null
+++ b/vendor/p384/README.md
@@ -0,0 +1,90 @@
+# RustCrypto: NIST P-384 (secp384r1) elliptic curve
+
+[![crate][crate-image]][crate-link]
+[![Docs][docs-image]][docs-link]
+[![Build Status][build-image]][build-link]
+![Apache2/MIT licensed][license-image]
+![Rust Version][rustc-image]
+[![Project Chat][chat-image]][chat-link]
+
+Pure Rust implementation of the NIST P-384 (a.k.a. secp384r1) elliptic curve
+with support for ECDH, ECDSA signing/verification, and general purpose curve
+arithmetic support implemented in terms of traits from the [`elliptic-curve`]
+crate.
+
+[Documentation][docs-link]
+
+## ⚠️ Security Warning
+
+The elliptic curve arithmetic contained in this crate has never been
+independently audited!
+
+This crate has been designed with the goal of ensuring that secret-dependent
+operations are performed in constant time (using the `subtle` crate and
+constant-time formulas). However, it has not been thoroughly assessed to ensure
+that generated assembly is constant time on common CPU architectures.
+
+USE AT YOUR OWN RISK!
+
+## Supported Algorithms
+
+- [Elliptic Curve Diffie-Hellman (ECDH)][ECDH]: gated under the `ecdh` feature.
+- [Elliptic Curve Digital Signature Algorithm (ECDSA)][ECDSA]: gated under the
+ `ecdsa` feature.
+
+## About P-384
+
+NIST P-384 is a Weierstrass curve specified in FIPS 186-4: Digital Signature
+Standard (DSS):
+
+<https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.186-4.pdf>
+
+Also known as secp384r1 (SECG), it's included in the US National Security
+Agency's "Suite B" and is widely used in protocols like TLS and the associated
+X.509 PKI.
+
+## Minimum Supported Rust Version
+
+Rust **1.57** or higher.
+
+Minimum supported Rust version can be changed in the future, but it will be
+done with a minor version bump.
+
+## SemVer Policy
+
+- All on-by-default features of this library are covered by SemVer
+- MSRV is considered exempt from SemVer as noted above
+
+## License
+
+All crates licensed under either of
+
+ * [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0)
+ * [MIT license](http://opensource.org/licenses/MIT)
+
+at your option.
+
+### Contribution
+
+Unless you explicitly state otherwise, any contribution intentionally submitted
+for inclusion in the work by you, as defined in the Apache-2.0 license, shall be
+dual licensed as above, without any additional terms or conditions.
+
+[//]: # (badges)
+
+[crate-image]: https://buildstats.info/crate/p384
+[crate-link]: https://crates.io/crates/p384
+[docs-image]: https://docs.rs/p384/badge.svg
+[docs-link]: https://docs.rs/p384/
+[build-image]: https://github.com/RustCrypto/elliptic-curves/actions/workflows/p384.yml/badge.svg
+[build-link]: https://github.com/RustCrypto/elliptic-curves/actions/workflows/p384.yml
+[license-image]: https://img.shields.io/badge/license-Apache2.0/MIT-blue.svg
+[rustc-image]: https://img.shields.io/badge/rustc-1.57+-blue.svg
+[chat-image]: https://img.shields.io/badge/zulip-join_chat-blue.svg
+[chat-link]: https://rustcrypto.zulipchat.com/#narrow/stream/260040-elliptic-curves
+
+[//]: # (general links)
+
+[`elliptic-curve`]: https://github.com/RustCrypto/traits/tree/master/elliptic-curve
+[ECDH]: https://en.wikipedia.org/wiki/Elliptic-curve_Diffie-Hellman
+[ECDSA]: https://en.wikipedia.org/wiki/Elliptic_Curve_Digital_Signature_Algorithm \ No newline at end of file
diff --git a/vendor/p384/benches/field.rs b/vendor/p384/benches/field.rs
new file mode 100644
index 000000000..6dcd524c6
--- /dev/null
+++ b/vendor/p384/benches/field.rs
@@ -0,0 +1,54 @@
+//! secp384r1 field element benchmarks
+
+use criterion::{
+ criterion_group, criterion_main, measurement::Measurement, BenchmarkGroup, Criterion,
+};
+use hex_literal::hex;
+use p384::FieldElement;
+
+fn test_field_element_x() -> FieldElement {
+ FieldElement::from_sec1(
+ hex!("c2b47944fb5de342d03285880177ca5f7d0f2fcad7678cce4229d6e1932fcac11bfc3c3e97d942a3c56bf34123013dbf").into()
+ )
+ .unwrap()
+}
+
+fn test_field_element_y() -> FieldElement {
+ FieldElement::from_sec1(
+ hex!("37257906a8223866eda0743c519616a76a758ae58aee81c5fd35fbf3a855b7754a36d4a0672df95d6c44a81cf7620c2d").into()
+ )
+ .unwrap()
+}
+
+fn bench_field_element_mul<'a, M: Measurement>(group: &mut BenchmarkGroup<'a, M>) {
+ let x = test_field_element_x();
+ let y = test_field_element_y();
+ group.bench_function("mul", |b| b.iter(|| &x * &y));
+}
+
+fn bench_field_element_square<'a, M: Measurement>(group: &mut BenchmarkGroup<'a, M>) {
+ let x = test_field_element_x();
+ group.bench_function("square", |b| b.iter(|| x.square()));
+}
+
+fn bench_field_element_sqrt<'a, M: Measurement>(group: &mut BenchmarkGroup<'a, M>) {
+ let x = test_field_element_x();
+ group.bench_function("sqrt", |b| b.iter(|| x.sqrt()));
+}
+
+fn bench_field_element_invert<'a, M: Measurement>(group: &mut BenchmarkGroup<'a, M>) {
+ let x = test_field_element_x();
+ group.bench_function("invert", |b| b.iter(|| x.invert()));
+}
+
+fn bench_field_element(c: &mut Criterion) {
+ let mut group = c.benchmark_group("field element operations");
+ bench_field_element_mul(&mut group);
+ bench_field_element_square(&mut group);
+ bench_field_element_invert(&mut group);
+ bench_field_element_sqrt(&mut group);
+ group.finish();
+}
+
+criterion_group!(benches, bench_field_element);
+criterion_main!(benches);
diff --git a/vendor/p384/benches/scalar.rs b/vendor/p384/benches/scalar.rs
new file mode 100644
index 000000000..3589d79d1
--- /dev/null
+++ b/vendor/p384/benches/scalar.rs
@@ -0,0 +1,73 @@
+//! secp384r1 scalar arithmetic benchmarks
+
+use criterion::{
+ criterion_group, criterion_main, measurement::Measurement, BenchmarkGroup, Criterion,
+};
+use hex_literal::hex;
+use p384::{elliptic_curve::group::ff::PrimeField, ProjectivePoint, Scalar};
+
+fn test_scalar_x() -> Scalar {
+ Scalar::from_repr(
+ hex!("201b432d8df14324182d6261db3e4b3f46a8284482d52e370da41e6cbdf45ec2952f5db7ccbce3bc29449f4fb080ac97").into()
+ ).unwrap()
+}
+
+fn test_scalar_y() -> Scalar {
+ Scalar::from_repr(
+ hex!("23d9f4ea6d87b7d6163d64256e3449255db14786401a51daa7847161bf56d494325ad2ac8ba928394e01061d882c3528").into()
+ ).unwrap()
+}
+
+fn bench_point_mul<'a, M: Measurement>(group: &mut BenchmarkGroup<'a, M>) {
+ let p = ProjectivePoint::GENERATOR;
+ let m = test_scalar_x();
+ let s = Scalar::from_repr(m.into()).unwrap();
+ group.bench_function("point-scalar mul", |b| b.iter(|| &p * &s));
+}
+
+fn bench_scalar_sub<'a, M: Measurement>(group: &mut BenchmarkGroup<'a, M>) {
+ let x = test_scalar_x();
+ let y = test_scalar_y();
+ group.bench_function("sub", |b| b.iter(|| &x - &y));
+}
+
+fn bench_scalar_add<'a, M: Measurement>(group: &mut BenchmarkGroup<'a, M>) {
+ let x = test_scalar_x();
+ let y = test_scalar_y();
+ group.bench_function("add", |b| b.iter(|| &x + &y));
+}
+
+fn bench_scalar_mul<'a, M: Measurement>(group: &mut BenchmarkGroup<'a, M>) {
+ let x = test_scalar_x();
+ let y = test_scalar_y();
+ group.bench_function("mul", |b| b.iter(|| &x * &y));
+}
+
+fn bench_scalar_negate<'a, M: Measurement>(group: &mut BenchmarkGroup<'a, M>) {
+ let x = test_scalar_x();
+ group.bench_function("negate", |b| b.iter(|| -x));
+}
+
+fn bench_scalar_invert<'a, M: Measurement>(group: &mut BenchmarkGroup<'a, M>) {
+ let x = test_scalar_x();
+ group.bench_function("invert", |b| b.iter(|| x.invert()));
+}
+
+fn bench_point(c: &mut Criterion) {
+ let mut group = c.benchmark_group("point operations");
+ bench_point_mul(&mut group);
+ group.finish();
+}
+
+fn bench_scalar(c: &mut Criterion) {
+ let mut group = c.benchmark_group("scalar operations");
+ bench_scalar_sub(&mut group);
+ bench_scalar_add(&mut group);
+ bench_scalar_mul(&mut group);
+ bench_scalar_negate(&mut group);
+ bench_scalar_invert(&mut group);
+ group.finish();
+}
+
+criterion_group!(benches, bench_point, bench_scalar);
+criterion_main!(benches);
diff --git a/vendor/p384/src/arithmetic.rs b/vendor/p384/src/arithmetic.rs
new file mode 100644
index 000000000..6ffbcb7b3
--- /dev/null
+++ b/vendor/p384/src/arithmetic.rs
@@ -0,0 +1,32 @@
+//! Pure Rust implementation of group operations on secp384r1.
+//!
+//! Curve parameters can be found in FIPS 186-4: Digital Signature Standard
+//! (DSS): <https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.186-4.pdf>
+//!
+//! See section D.1.2.4: Curve P-384.
+
+#[macro_use]
+mod macros;
+
+pub(crate) mod affine;
+pub(crate) mod field;
+pub(crate) mod projective;
+pub(crate) mod scalar;
+
+use self::{
+ affine::AffinePoint,
+ field::{FieldElement, MODULUS},
+ projective::ProjectivePoint,
+ scalar::Scalar,
+};
+
+/// a = -3 (0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000fffffffc)
+const CURVE_EQUATION_A: FieldElement = FieldElement::ZERO
+ .sub(&FieldElement::ONE)
+ .sub(&FieldElement::ONE)
+ .sub(&FieldElement::ONE);
+
+/// b = b3312fa7 e23ee7e4 988e056b e3f82d19 181d9c6e fe814112
+/// 0314088f 5013875a c656398d 8a2ed19d 2a85c8ed d3ec2aef
+const CURVE_EQUATION_B: FieldElement =
+ FieldElement::from_be_hex("b3312fa7e23ee7e4988e056be3f82d19181d9c6efe8141120314088f5013875ac656398d8a2ed19d2a85c8edd3ec2aef");
diff --git a/vendor/p384/src/arithmetic/affine.rs b/vendor/p384/src/arithmetic/affine.rs
new file mode 100644
index 000000000..5f4a3f3fa
--- /dev/null
+++ b/vendor/p384/src/arithmetic/affine.rs
@@ -0,0 +1,415 @@
+//! Affine points on the NIST P-384 elliptic curve.
+
+#![allow(clippy::op_ref)]
+
+use core::ops::{Mul, Neg};
+
+use super::{FieldElement, ProjectivePoint, CURVE_EQUATION_A, CURVE_EQUATION_B, MODULUS};
+use crate::{CompressedPoint, EncodedPoint, FieldBytes, NistP384, PublicKey, Scalar};
+use elliptic_curve::{
+ group::{prime::PrimeCurveAffine, GroupEncoding},
+ sec1::{self, FromEncodedPoint, ToEncodedPoint},
+ subtle::{Choice, ConditionallySelectable, ConstantTimeEq, CtOption},
+ zeroize::DefaultIsZeroes,
+ AffineArithmetic, AffineXCoordinate, DecompressPoint, Error, Result,
+};
+
+#[cfg(feature = "serde")]
+use serdect::serde::{de, ser, Deserialize, Serialize};
+
+impl AffineArithmetic for NistP384 {
+ type AffinePoint = AffinePoint;
+}
+
+/// NIST P-384 (secp384r1) curve point expressed in affine coordinates.
+///
+/// # `serde` support
+///
+/// When the `serde` feature of this crate is enabled, the `Serialize` and
+/// `Deserialize` traits are impl'd for this type.
+///
+/// The serialization uses the [SEC1] `Elliptic-Curve-Point-to-Octet-String`
+/// encoding, serialized as binary.
+///
+/// When serialized with a text-based format, the SEC1 representation is
+/// subsequently hex encoded.
+///
+/// [SEC1]: https://www.secg.org/sec1-v2.pdf
+#[derive(Clone, Copy, Debug)]
+#[cfg_attr(docsrs, doc(cfg(feature = "arithmetic")))]
+pub struct AffinePoint {
+ /// x-coordinate
+ pub x: FieldElement,
+
+ /// y-coordinate
+ pub y: FieldElement,
+
+ /// Is this point the point at infinity? 0 = no, 1 = yes
+ ///
+ /// This is a proxy for [`Choice`], but uses `u8` instead to permit `const`
+ /// constructors for `IDENTITY` and `GENERATOR`.
+ pub infinity: u8,
+}
+
+impl AffinePoint {
+ /// Base point of P-384.
+ ///
+ /// Defined in FIPS 186-4 § D.1.2.4:
+ ///
+ /// ```text
+ /// Gₓ = aa87ca22 be8b0537 8eb1c71e f320ad74 6e1d3b62 8ba79b98
+ /// 59f741e0 82542a38 5502f25d bf55296c 3a545e38 72760ab7
+ /// Gᵧ = 3617de4a 96262c6f 5d9e98bf 9292dc29 f8f41dbd 289a147c
+ /// e9da3113 b5f0b8c0 0a60b1ce 1d7e819d 7a431d7c 90ea0e5f
+ /// ```
+ ///
+ /// NOTE: coordinate field elements have been translated into the Montgomery
+ /// domain.
+ pub const GENERATOR: Self = Self {
+ x: FieldElement::from_be_hex("aa87ca22be8b05378eb1c71ef320ad746e1d3b628ba79b9859f741e082542a385502f25dbf55296c3a545e3872760ab7"),
+ y: FieldElement::from_be_hex("3617de4a96262c6f5d9e98bf9292dc29f8f41dbd289a147ce9da3113b5f0b8c00a60b1ce1d7e819d7a431d7c90ea0e5f"),
+ infinity: 0,
+ };
+
+ /// Additive identity of the group: the point at infinity.
+ pub const IDENTITY: Self = Self {
+ x: FieldElement::ZERO,
+ y: FieldElement::ZERO,
+ infinity: 1,
+ };
+}
+
+impl PrimeCurveAffine for AffinePoint {
+ type Curve = ProjectivePoint;
+ type Scalar = Scalar;
+
+ fn identity() -> AffinePoint {
+ Self::IDENTITY
+ }
+
+ fn generator() -> AffinePoint {
+ Self::GENERATOR
+ }
+
+ fn is_identity(&self) -> Choice {
+ Choice::from(self.infinity)
+ }
+
+ fn to_curve(&self) -> ProjectivePoint {
+ ProjectivePoint::from(*self)
+ }
+}
+
+impl AffineXCoordinate<NistP384> for AffinePoint {
+ fn x(&self) -> FieldBytes {
+ self.x.to_sec1()
+ }
+}
+
+impl ConditionallySelectable for AffinePoint {
+ fn conditional_select(a: &AffinePoint, b: &AffinePoint, choice: Choice) -> AffinePoint {
+ AffinePoint {
+ x: FieldElement::conditional_select(&a.x, &b.x, choice),
+ y: FieldElement::conditional_select(&a.y, &b.y, choice),
+ infinity: u8::conditional_select(&a.infinity, &b.infinity, choice),
+ }
+ }
+}
+
+impl ConstantTimeEq for AffinePoint {
+ fn ct_eq(&self, other: &AffinePoint) -> Choice {
+ self.x.ct_eq(&other.x) & self.y.ct_eq(&other.y) & self.infinity.ct_eq(&other.infinity)
+ }
+}
+
+impl Default for AffinePoint {
+ fn default() -> Self {
+ Self::IDENTITY
+ }
+}
+
+impl DefaultIsZeroes for AffinePoint {}
+
+impl Eq for AffinePoint {}
+
+impl PartialEq for AffinePoint {
+ fn eq(&self, other: &AffinePoint) -> bool {
+ self.ct_eq(other).into()
+ }
+}
+
+impl Mul<Scalar> for AffinePoint {
+ type Output = ProjectivePoint;
+
+ fn mul(self, scalar: Scalar) -> ProjectivePoint {
+ ProjectivePoint::from(self) * scalar
+ }
+}
+
+impl Mul<&Scalar> for AffinePoint {
+ type Output = ProjectivePoint;
+
+ fn mul(self, scalar: &Scalar) -> ProjectivePoint {
+ ProjectivePoint::from(self) * scalar
+ }
+}
+
+impl Neg for AffinePoint {
+ type Output = AffinePoint;
+
+ fn neg(self) -> Self::Output {
+ AffinePoint {
+ x: self.x,
+ y: -self.y,
+ infinity: self.infinity,
+ }
+ }
+}
+
+impl DecompressPoint<NistP384> for AffinePoint {
+ fn decompress(x_bytes: &FieldBytes, y_is_odd: Choice) -> CtOption<Self> {
+ FieldElement::from_sec1(*x_bytes).and_then(|x| {
+ let alpha = x * &x * &x + &(CURVE_EQUATION_A * &x) + &CURVE_EQUATION_B;
+ let beta = alpha.sqrt();
+
+ beta.map(|beta| {
+ let y = FieldElement::conditional_select(
+ &(FieldElement(MODULUS) - &beta),
+ &beta,
+ beta.is_odd().ct_eq(&y_is_odd),
+ );
+
+ Self { x, y, infinity: 0 }
+ })
+ })
+ }
+}
+
+impl GroupEncoding for AffinePoint {
+ type Repr = CompressedPoint;
+
+ /// NOTE: not constant-time with respect to identity point
+ fn from_bytes(bytes: &Self::Repr) -> CtOption<Self> {
+ EncodedPoint::from_bytes(bytes)
+ .map(|point| CtOption::new(point, Choice::from(1)))
+ .unwrap_or_else(|_| {
+ // SEC1 identity encoding is technically 1-byte 0x00, but the
+ // `GroupEncoding` API requires a fixed-width `Repr`
+ let is_identity = bytes.ct_eq(&Self::Repr::default());
+ CtOption::new(EncodedPoint::identity(), is_identity)
+ })
+ .and_then(|point| Self::from_encoded_point(&point))
+ }
+
+ fn from_bytes_unchecked(bytes: &Self::Repr) -> CtOption<Self> {
+ // No unchecked conversion possible for compressed points
+ Self::from_bytes(bytes)
+ }
+
+ fn to_bytes(&self) -> Self::Repr {
+ let encoded = self.to_encoded_point(true);
+ let mut result = CompressedPoint::default();
+ result[..encoded.len()].copy_from_slice(encoded.as_bytes());
+ result
+ }
+}
+
+impl FromEncodedPoint<NistP384> for AffinePoint {
+ /// Attempts to parse the given [`EncodedPoint`] as an SEC1-encoded
+ /// [`AffinePoint`].
+ ///
+ /// # Returns
+ ///
+ /// `None` value if `encoded_point` is not on the secp384r1 curve.
+ fn from_encoded_point(encoded_point: &EncodedPoint) -> CtOption<Self> {
+ match encoded_point.coordinates() {
+ sec1::Coordinates::Identity => CtOption::new(Self::identity(), 1.into()),
+ // TODO(tarcieri): point decompaction support
+ sec1::Coordinates::Compact { .. } => CtOption::new(AffinePoint::IDENTITY, 0.into()),
+ sec1::Coordinates::Compressed { x, y_is_odd } => {
+ AffinePoint::decompress(x, Choice::from(y_is_odd as u8))
+ }
+ sec1::Coordinates::Uncompressed { x, y } => {
+ let x = FieldElement::from_sec1(*x);
+ let y = FieldElement::from_sec1(*y);
+
+ x.and_then(|x| {
+ y.and_then(|y| {
+ // Check that the point is on the curve
+ let lhs = y * &y;
+ let rhs = x * &x * &x + &(CURVE_EQUATION_A * &x) + &CURVE_EQUATION_B;
+ let point = AffinePoint { x, y, infinity: 0 };
+ CtOption::new(point, lhs.ct_eq(&rhs))
+ })
+ })
+ }
+ }
+ }
+}
+
+impl ToEncodedPoint<NistP384> for AffinePoint {
+ fn to_encoded_point(&self, compress: bool) -> EncodedPoint {
+ EncodedPoint::conditional_select(
+ &EncodedPoint::from_affine_coordinates(&self.x.to_sec1(), &self.y.to_sec1(), compress),
+ &EncodedPoint::identity(),
+ self.is_identity(),
+ )
+ }
+}
+
+impl TryFrom<EncodedPoint> for AffinePoint {
+ type Error = Error;
+
+ fn try_from(point: EncodedPoint) -> Result<AffinePoint> {
+ AffinePoint::try_from(&point)
+ }
+}
+
+impl TryFrom<&EncodedPoint> for AffinePoint {
+ type Error = Error;
+
+ fn try_from(point: &EncodedPoint) -> Result<AffinePoint> {
+ Option::from(AffinePoint::from_encoded_point(point)).ok_or(Error)
+ }
+}
+
+impl From<AffinePoint> for EncodedPoint {
+ fn from(affine_point: AffinePoint) -> EncodedPoint {
+ affine_point.to_encoded_point(false)
+ }
+}
+
+impl From<PublicKey> for AffinePoint {
+ fn from(public_key: PublicKey) -> AffinePoint {
+ *public_key.as_affine()
+ }
+}
+
+impl From<&PublicKey> for AffinePoint {
+ fn from(public_key: &PublicKey) -> AffinePoint {
+ AffinePoint::from(*public_key)
+ }
+}
+
+impl TryFrom<AffinePoint> for PublicKey {
+ type Error = Error;
+
+ fn try_from(affine_point: AffinePoint) -> Result<PublicKey> {
+ PublicKey::from_affine(affine_point)
+ }
+}
+
+impl TryFrom<&AffinePoint> for PublicKey {
+ type Error = Error;
+
+ fn try_from(affine_point: &AffinePoint) -> Result<PublicKey> {
+ PublicKey::try_from(*affine_point)
+ }
+}
+
+#[cfg(feature = "serde")]
+#[cfg_attr(docsrs, doc(cfg(feature = "serde")))]
+impl Serialize for AffinePoint {
+ fn serialize<S>(&self, serializer: S) -> core::result::Result<S::Ok, S::Error>
+ where
+ S: ser::Serializer,
+ {
+ self.to_encoded_point(true).serialize(serializer)
+ }
+}
+
+#[cfg(feature = "serde")]
+#[cfg_attr(docsrs, doc(cfg(feature = "serde")))]
+impl<'de> Deserialize<'de> for AffinePoint {
+ fn deserialize<D>(deserializer: D) -> core::result::Result<Self, D::Error>
+ where
+ D: de::Deserializer<'de>,
+ {
+ EncodedPoint::deserialize(deserializer)?
+ .try_into()
+ .map_err(de::Error::custom)
+ }
+}
+
+#[cfg(test)]
+mod tests {
+ use elliptic_curve::{
+ group::{prime::PrimeCurveAffine, GroupEncoding},
+ sec1::{FromEncodedPoint, ToEncodedPoint},
+ };
+ use hex_literal::hex;
+
+ use super::AffinePoint;
+ use crate::EncodedPoint;
+
+ const UNCOMPRESSED_BASEPOINT: &[u8] = &hex!(
+ "04 aa87ca22 be8b0537 8eb1c71e f320ad74 6e1d3b62 8ba79b98
+ 59f741e0 82542a38 5502f25d bf55296c 3a545e38 72760ab7
+ 3617de4a 96262c6f 5d9e98bf 9292dc29 f8f41dbd 289a147c
+ e9da3113 b5f0b8c0 0a60b1ce 1d7e819d 7a431d7c 90ea0e5f"
+ );
+
+ const COMPRESSED_BASEPOINT: &[u8] = &hex!(
+ "03 aa87ca22 be8b0537 8eb1c71e f320ad74 6e1d3b62 8ba79b98
+ 59f741e0 82542a38 5502f25d bf55296c 3a545e38 72760ab7"
+ );
+
+ #[test]
+ fn uncompressed_round_trip() {
+ let pubkey = EncodedPoint::from_bytes(UNCOMPRESSED_BASEPOINT).unwrap();
+ let point = AffinePoint::from_encoded_point(&pubkey).unwrap();
+ assert_eq!(point, AffinePoint::generator());
+
+ let res: EncodedPoint = point.into();
+ assert_eq!(res, pubkey);
+ }
+
+ #[test]
+ fn compressed_round_trip() {
+ let pubkey = EncodedPoint::from_bytes(COMPRESSED_BASEPOINT).unwrap();
+ let point = AffinePoint::from_encoded_point(&pubkey).unwrap();
+ assert_eq!(point, AffinePoint::generator());
+
+ let res: EncodedPoint = point.to_encoded_point(true);
+ assert_eq!(res, pubkey);
+ }
+
+ #[test]
+ fn uncompressed_to_compressed() {
+ let encoded = EncodedPoint::from_bytes(UNCOMPRESSED_BASEPOINT).unwrap();
+
+ let res = AffinePoint::from_encoded_point(&encoded)
+ .unwrap()
+ .to_encoded_point(true);
+
+ assert_eq!(res.as_bytes(), COMPRESSED_BASEPOINT);
+ }
+
+ #[test]
+ fn compressed_to_uncompressed() {
+ let encoded = EncodedPoint::from_bytes(COMPRESSED_BASEPOINT).unwrap();
+
+ let res = AffinePoint::from_encoded_point(&encoded)
+ .unwrap()
+ .to_encoded_point(false);
+
+ assert_eq!(res.as_bytes(), UNCOMPRESSED_BASEPOINT);
+ }
+
+ #[test]
+ fn affine_negation() {
+ let basepoint = AffinePoint::generator();
+ assert_eq!(-(-basepoint), basepoint);
+ }
+
+ #[test]
+ fn identity_encoding() {
+ // This is technically an invalid SEC1 encoding, but is preferable to panicking.
+ assert_eq!([0; 49], AffinePoint::IDENTITY.to_bytes().as_slice());
+ assert!(bool::from(
+ AffinePoint::from_bytes(&AffinePoint::IDENTITY.to_bytes())
+ .unwrap()
+ .is_identity()
+ ))
+ }
+}
diff --git a/vendor/p384/src/arithmetic/field.rs b/vendor/p384/src/arithmetic/field.rs
new file mode 100644
index 000000000..858bac927
--- /dev/null
+++ b/vendor/p384/src/arithmetic/field.rs
@@ -0,0 +1,152 @@
+//! Field arithmetic modulo p = 2^{384} − 2^{128} − 2^{96} + 2^{32} − 1
+//!
+//! Arithmetic implementations are extracted Rust code from the Coq fiat-crypto
+//! libraries.
+//!
+//! # License
+//!
+//! Copyright (c) 2015-2020 the fiat-crypto authors
+//!
+//! fiat-crypto is distributed under the terms of the MIT License, the
+//! Apache License (Version 2.0), and the BSD 1-Clause License;
+//! users may pick which license to apply.
+
+#![allow(
+ clippy::should_implement_trait,
+ clippy::suspicious_op_assign_impl,
+ clippy::unused_unit,
+ clippy::unnecessary_cast,
+ clippy::too_many_arguments,
+ clippy::identity_op
+)]
+
+#[cfg_attr(target_pointer_width = "32", path = "field/p384_32.rs")]
+#[cfg_attr(target_pointer_width = "64", path = "field/p384_64.rs")]
+mod field_impl;
+
+use self::field_impl::*;
+use crate::FieldBytes;
+use core::ops::{AddAssign, MulAssign, Neg, SubAssign};
+use elliptic_curve::{
+ bigint::{self, Encoding, Limb, U384},
+ subtle::{Choice, ConstantTimeEq, CtOption},
+};
+
+/// Constant representing the modulus
+/// p = 2^{384} − 2^{128} − 2^{96} + 2^{32} − 1
+pub(crate) const MODULUS: U384 = U384::from_be_hex("fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff");
+
+/// Element of the secp384r1 base field used for curve coordinates.
+#[derive(Clone, Copy, Debug)]
+pub struct FieldElement(pub(super) U384);
+
+elliptic_curve::impl_field_element!(
+ FieldElement,
+ FieldBytes,
+ U384,
+ MODULUS,
+ fiat_p384_montgomery_domain_field_element,
+ fiat_p384_from_montgomery,
+ fiat_p384_to_montgomery,
+ fiat_p384_add,
+ fiat_p384_sub,
+ fiat_p384_mul,
+ fiat_p384_opp,
+ fiat_p384_square
+);
+
+impl FieldElement {
+ /// Parse the given byte array as an SEC1-encoded field element.
+ ///
+ /// Returns `None` if the byte array does not contain a big-endian integer in
+ /// the range `[0, p)`.
+ pub fn from_sec1(bytes: FieldBytes) -> CtOption<Self> {
+ Self::from_be_bytes(bytes)
+ }
+
+ /// Returns the SEC1 encoding of this field element.
+ pub fn to_sec1(self) -> FieldBytes {
+ self.to_be_bytes()
+ }
+
+ /// Compute [`FieldElement`] inversion: `1 / self`.
+ pub fn invert(&self) -> CtOption<Self> {
+ let ret = impl_field_invert!(
+ self.to_canonical().to_words(),
+ Self::ONE.0.to_words(),
+ Limb::BIT_SIZE,
+ bigint::nlimbs!(U384::BIT_SIZE),
+ fiat_p384_mul,
+ fiat_p384_opp,
+ fiat_p384_divstep_precomp,
+ fiat_p384_divstep,
+ fiat_p384_msat,
+ fiat_p384_selectznz,
+ );
+ CtOption::new(Self(ret.into()), !self.is_zero())
+ }
+
+ /// Returns the square root of self mod p, or `None` if no square root
+ /// exists.
+ pub fn sqrt(&self) -> CtOption<Self> {
+ // p mod 4 = 3 -> compute sqrt(x) using x^((p+1)/4) =
+ // x^9850501549098619803069760025035903451269934817616361666987073351061430442874217582261816522064734500465401743278080
+ let t1 = *self;
+ let t10 = t1.square();
+ let t11 = t1 * t10;
+ let t110 = t11.square();
+ let t111 = t1 * t110;
+ let t111000 = t111.sqn(3);
+ let t111111 = t111 * t111000;
+ let t1111110 = t111111.square();
+ let t1111111 = t1 * t1111110;
+ let x12 = t1111110.sqn(5) * t111111;
+ let x24 = x12.sqn(12) * x12;
+ let x31 = x24.sqn(7) * t1111111;
+ let x32 = x31.square() * t1;
+ let x63 = x32.sqn(31) * x31;
+ let x126 = x63.sqn(63) * x63;
+ let x252 = x126.sqn(126) * x126;
+ let x255 = x252.sqn(3) * t111;
+ let x = ((x255.sqn(33) * x32).sqn(64) * t1).sqn(30);
+ CtOption::new(x, x.square().ct_eq(&t1))
+ }
+
+ /// Returns self^(2^n) mod p.
+ fn sqn(&self, n: usize) -> Self {
+ let mut x = *self;
+ for _ in 0..n {
+ x = x.square();
+ }
+ x
+ }
+}
+
+#[cfg(test)]
+mod tests {
+ use super::FieldElement;
+
+ /// Basic tests that field inversion works.
+ #[test]
+ fn invert() {
+ let one = FieldElement::ONE;
+ assert_eq!(one.invert().unwrap(), one);
+
+ let three = one + &one + &one;
+ let inv_three = three.invert().unwrap();
+ assert_eq!(three * &inv_three, one);
+
+ let minus_three = -three;
+ let inv_minus_three = minus_three.invert().unwrap();
+ assert_eq!(inv_minus_three, -inv_three);
+ assert_eq!(three * &inv_minus_three, -one);
+ }
+
+ #[test]
+ fn sqrt() {
+ let one = FieldElement::ONE;
+ let two = one + &one;
+ let four = two.square();
+ assert_eq!(four.sqrt().unwrap(), two);
+ }
+}
diff --git a/vendor/p384/src/arithmetic/field/p384_32.rs b/vendor/p384/src/arithmetic/field/p384_32.rs
new file mode 100644
index 000000000..bfe810045
--- /dev/null
+++ b/vendor/p384/src/arithmetic/field/p384_32.rs
@@ -0,0 +1,9945 @@
+#![doc = " fiat-crypto output postprocessed by fiat-constify: https://github.com/rustcrypto/utils"]
+#![doc = " Autogenerated: 'src/ExtractionOCaml/word_by_word_montgomery' --lang Rust --inline p384 32 '2^384 - 2^128 - 2^96 + 2^32 - 1' mul square add sub opp from_montgomery to_montgomery nonzero selectznz to_bytes from_bytes one msat divstep divstep_precomp"]
+#![doc = " curve description: p384"]
+#![doc = " machine_wordsize = 32 (from \"32\")"]
+#![doc = " requested operations: mul, square, add, sub, opp, from_montgomery, to_montgomery, nonzero, selectznz, to_bytes, from_bytes, one, msat, divstep, divstep_precomp"]
+#![doc = " m = 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff (from \"2^384 - 2^128 - 2^96 + 2^32 - 1\")"]
+#![doc = ""]
+#![doc = " NOTE: In addition to the bounds specified above each function, all"]
+#![doc = " functions synthesized for this Montgomery arithmetic require the"]
+#![doc = " input to be strictly less than the prime modulus (m), and also"]
+#![doc = " require the input to be in the unique saturated representation."]
+#![doc = " All functions also ensure that these two properties are true of"]
+#![doc = " return values."]
+#![doc = ""]
+#![doc = " Computed values:"]
+#![doc = " eval z = z[0] + (z[1] << 32) + (z[2] << 64) + (z[3] << 96) + (z[4] << 128) + (z[5] << 160) + (z[6] << 192) + (z[7] << 224) + (z[8] << 256) + (z[9] << 0x120) + (z[10] << 0x140) + (z[11] << 0x160)"]
+#![doc = " 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)"]
+#![doc = " twos_complement_eval z = let x1 := z[0] + (z[1] << 32) + (z[2] << 64) + (z[3] << 96) + (z[4] << 128) + (z[5] << 160) + (z[6] << 192) + (z[7] << 224) + (z[8] << 256) + (z[9] << 0x120) + (z[10] << 0x140) + (z[11] << 0x160) in"]
+#![doc = " if x1 & (2^384-1) < 2^383 then x1 & (2^384-1) else (x1 & (2^384-1)) - 2^384"]
+#![allow(unused_parens)]
+#![allow(non_camel_case_types)]
+#![allow(
+ dead_code,
+ rustdoc::bare_urls,
+ rustdoc::broken_intra_doc_links,
+ unused_assignments,
+ unused_mut,
+ unused_variables
+)]
+pub type fiat_p384_u1 = u8;
+pub type fiat_p384_i1 = i8;
+pub type fiat_p384_u2 = u8;
+pub type fiat_p384_i2 = i8;
+pub type fiat_p384_montgomery_domain_field_element = [u32; 12];
+pub type fiat_p384_non_montgomery_domain_field_element = [u32; 12];
+#[doc = " The function fiat_p384_addcarryx_u32 is an addition with carry."]
+#[doc = ""]
+#[doc = " Postconditions:"]
+#[doc = " out1 = (arg1 + arg2 + arg3) mod 2^32"]
+#[doc = " out2 = ⌊(arg1 + arg2 + arg3) / 2^32⌋"]
+#[doc = ""]
+#[doc = " Input Bounds:"]
+#[doc = " arg1: [0x0 ~> 0x1]"]
+#[doc = " arg2: [0x0 ~> 0xffffffff]"]
+#[doc = " arg3: [0x0 ~> 0xffffffff]"]
+#[doc = " Output Bounds:"]
+#[doc = " out1: [0x0 ~> 0xffffffff]"]
+#[doc = " out2: [0x0 ~> 0x1]"]
+#[inline]
+pub const fn fiat_p384_addcarryx_u32(
+ arg1: fiat_p384_u1,
+ arg2: u32,
+ arg3: u32,
+) -> (u32, fiat_p384_u1) {
+ let mut out1: u32 = 0;
+ let mut out2: fiat_p384_u1 = 0;
+ let x1: u64 = (((arg1 as u64) + (arg2 as u64)) + (arg3 as u64));
+ let x2: u32 = ((x1 & (0xffffffff as u64)) as u32);
+ let x3: fiat_p384_u1 = ((x1 >> 32) as fiat_p384_u1);
+ out1 = x2;
+ out2 = x3;
+ (out1, out2)
+}
+#[doc = " The function fiat_p384_subborrowx_u32 is a subtraction with borrow."]
+#[doc = ""]
+#[doc = " Postconditions:"]
+#[doc = " out1 = (-arg1 + arg2 + -arg3) mod 2^32"]
+#[doc = " out2 = -⌊(-arg1 + arg2 + -arg3) / 2^32⌋"]
+#[doc = ""]
+#[doc = " Input Bounds:"]
+#[doc = " arg1: [0x0 ~> 0x1]"]
+#[doc = " arg2: [0x0 ~> 0xffffffff]"]
+#[doc = " arg3: [0x0 ~> 0xffffffff]"]
+#[doc = " Output Bounds:"]
+#[doc = " out1: [0x0 ~> 0xffffffff]"]
+#[doc = " out2: [0x0 ~> 0x1]"]
+#[inline]
+pub const fn fiat_p384_subborrowx_u32(
+ arg1: fiat_p384_u1,
+ arg2: u32,
+ arg3: u32,
+) -> (u32, fiat_p384_u1) {
+ let mut out1: u32 = 0;
+ let mut out2: fiat_p384_u1 = 0;
+ let x1: i64 = (((arg2 as i64) - (arg1 as i64)) - (arg3 as i64));
+ let x2: fiat_p384_i1 = ((x1 >> 32) as fiat_p384_i1);
+ let x3: u32 = ((x1 & (0xffffffff as i64)) as u32);
+ out1 = x3;
+ out2 = (((0x0 as fiat_p384_i2) - (x2 as fiat_p384_i2)) as fiat_p384_u1);
+ (out1, out2)
+}
+#[doc = " The function fiat_p384_mulx_u32 is a multiplication, returning the full double-width result."]
+#[doc = ""]
+#[doc = " Postconditions:"]
+#[doc = " out1 = (arg1 * arg2) mod 2^32"]
+#[doc = " out2 = ⌊arg1 * arg2 / 2^32⌋"]
+#[doc = ""]
+#[doc = " Input Bounds:"]
+#[doc = " arg1: [0x0 ~> 0xffffffff]"]
+#[doc = " arg2: [0x0 ~> 0xffffffff]"]
+#[doc = " Output Bounds:"]
+#[doc = " out1: [0x0 ~> 0xffffffff]"]
+#[doc = " out2: [0x0 ~> 0xffffffff]"]
+#[inline]
+pub const fn fiat_p384_mulx_u32(arg1: u32, arg2: u32) -> (u32, u32) {
+ let mut out1: u32 = 0;
+ let mut out2: u32 = 0;
+ let x1: u64 = ((arg1 as u64) * (arg2 as u64));
+ let x2: u32 = ((x1 & (0xffffffff as u64)) as u32);
+ let x3: u32 = ((x1 >> 32) as u32);
+ out1 = x2;
+ out2 = x3;
+ (out1, out2)
+}
+#[doc = " The function fiat_p384_cmovznz_u32 is a single-word conditional move."]
+#[doc = ""]
+#[doc = " Postconditions:"]
+#[doc = " out1 = (if arg1 = 0 then arg2 else arg3)"]
+#[doc = ""]
+#[doc = " Input Bounds:"]
+#[doc = " arg1: [0x0 ~> 0x1]"]
+#[doc = " arg2: [0x0 ~> 0xffffffff]"]
+#[doc = " arg3: [0x0 ~> 0xffffffff]"]
+#[doc = " Output Bounds:"]
+#[doc = " out1: [0x0 ~> 0xffffffff]"]
+#[inline]
+pub const fn fiat_p384_cmovznz_u32(arg1: fiat_p384_u1, arg2: u32, arg3: u32) -> u32 {
+ let mut out1: u32 = 0;
+ let x1: fiat_p384_u1 = (!(!arg1));
+ let x2: u32 = ((((((0x0 as fiat_p384_i2) - (x1 as fiat_p384_i2)) as fiat_p384_i1) as i64)
+ & (0xffffffff as i64)) as u32);
+ let x3: u32 = ((x2 & arg3) | ((!x2) & arg2));
+ out1 = x3;
+ out1
+}
+#[doc = " The function fiat_p384_mul multiplies two field elements in the Montgomery domain."]
+#[doc = ""]
+#[doc = " Preconditions:"]
+#[doc = " 0 ≤ eval arg1 < m"]
+#[doc = " 0 ≤ eval arg2 < m"]
+#[doc = " Postconditions:"]
+#[doc = " eval (from_montgomery out1) mod m = (eval (from_montgomery arg1) * eval (from_montgomery arg2)) mod m"]
+#[doc = " 0 ≤ eval out1 < m"]
+#[doc = ""]
+#[inline]
+pub const fn fiat_p384_mul(
+ arg1: &fiat_p384_montgomery_domain_field_element,
+ arg2: &fiat_p384_montgomery_domain_field_element,
+) -> fiat_p384_montgomery_domain_field_element {
+ let mut out1: fiat_p384_montgomery_domain_field_element = [0; 12];
+ let x1: u32 = (arg1[1]);
+ let x2: u32 = (arg1[2]);
+ let x3: u32 = (arg1[3]);
+ let x4: u32 = (arg1[4]);
+ let x5: u32 = (arg1[5]);
+ let x6: u32 = (arg1[6]);
+ let x7: u32 = (arg1[7]);
+ let x8: u32 = (arg1[8]);
+ let x9: u32 = (arg1[9]);
+ let x10: u32 = (arg1[10]);
+ let x11: u32 = (arg1[11]);
+ let x12: u32 = (arg1[0]);
+ let mut x13: u32 = 0;
+ let mut x14: u32 = 0;
+ let (x13, x14) = fiat_p384_mulx_u32(x12, (arg2[11]));
+ let mut x15: u32 = 0;
+ let mut x16: u32 = 0;
+ let (x15, x16) = fiat_p384_mulx_u32(x12, (arg2[10]));
+ let mut x17: u32 = 0;
+ let mut x18: u32 = 0;
+ let (x17, x18) = fiat_p384_mulx_u32(x12, (arg2[9]));
+ let mut x19: u32 = 0;
+ let mut x20: u32 = 0;
+ let (x19, x20) = fiat_p384_mulx_u32(x12, (arg2[8]));
+ let mut x21: u32 = 0;
+ let mut x22: u32 = 0;
+ let (x21, x22) = fiat_p384_mulx_u32(x12, (arg2[7]));
+ let mut x23: u32 = 0;
+ let mut x24: u32 = 0;
+ let (x23, x24) = fiat_p384_mulx_u32(x12, (arg2[6]));
+ let mut x25: u32 = 0;
+ let mut x26: u32 = 0;
+ let (x25, x26) = fiat_p384_mulx_u32(x12, (arg2[5]));
+ let mut x27: u32 = 0;
+ let mut x28: u32 = 0;
+ let (x27, x28) = fiat_p384_mulx_u32(x12, (arg2[4]));
+ let mut x29: u32 = 0;
+ let mut x30: u32 = 0;
+ let (x29, x30) = fiat_p384_mulx_u32(x12, (arg2[3]));
+ let mut x31: u32 = 0;
+ let mut x32: u32 = 0;
+ let (x31, x32) = fiat_p384_mulx_u32(x12, (arg2[2]));
+ let mut x33: u32 = 0;
+ let mut x34: u32 = 0;
+ let (x33, x34) = fiat_p384_mulx_u32(x12, (arg2[1]));
+ let mut x35: u32 = 0;
+ let mut x36: u32 = 0;
+ let (x35, x36) = fiat_p384_mulx_u32(x12, (arg2[0]));
+ let mut x37: u32 = 0;
+ let mut x38: fiat_p384_u1 = 0;
+ let (x37, x38) = fiat_p384_addcarryx_u32(0x0, x36, x33);
+ let mut x39: u32 = 0;
+ let mut x40: fiat_p384_u1 = 0;
+ let (x39, x40) = fiat_p384_addcarryx_u32(x38, x34, x31);
+ let mut x41: u32 = 0;
+ let mut x42: fiat_p384_u1 = 0;
+ let (x41, x42) = fiat_p384_addcarryx_u32(x40, x32, x29);
+ let mut x43: u32 = 0;
+ let mut x44: fiat_p384_u1 = 0;
+ let (x43, x44) = fiat_p384_addcarryx_u32(x42, x30, x27);
+ let mut x45: u32 = 0;
+ let mut x46: fiat_p384_u1 = 0;
+ let (x45, x46) = fiat_p384_addcarryx_u32(x44, x28, x25);
+ let mut x47: u32 = 0;
+ let mut x48: fiat_p384_u1 = 0;
+ let (x47, x48) = fiat_p384_addcarryx_u32(x46, x26, x23);
+ let mut x49: u32 = 0;
+ let mut x50: fiat_p384_u1 = 0;
+ let (x49, x50) = fiat_p384_addcarryx_u32(x48, x24, x21);
+ let mut x51: u32 = 0;
+ let mut x52: fiat_p384_u1 = 0;
+ let (x51, x52) = fiat_p384_addcarryx_u32(x50, x22, x19);
+ let mut x53: u32 = 0;
+ let mut x54: fiat_p384_u1 = 0;
+ let (x53, x54) = fiat_p384_addcarryx_u32(x52, x20, x17);
+ let mut x55: u32 = 0;
+ let mut x56: fiat_p384_u1 = 0;
+ let (x55, x56) = fiat_p384_addcarryx_u32(x54, x18, x15);
+ let mut x57: u32 = 0;
+ let mut x58: fiat_p384_u1 = 0;
+ let (x57, x58) = fiat_p384_addcarryx_u32(x56, x16, x13);
+ let x59: u32 = ((x58 as u32) + x14);
+ let mut x60: u32 = 0;
+ let mut x61: u32 = 0;
+ let (x60, x61) = fiat_p384_mulx_u32(x35, 0xffffffff);
+ let mut x62: u32 = 0;
+ let mut x63: u32 = 0;
+ let (x62, x63) = fiat_p384_mulx_u32(x35, 0xffffffff);
+ let mut x64: u32 = 0;
+ let mut x65: u32 = 0;
+ let (x64, x65) = fiat_p384_mulx_u32(x35, 0xffffffff);
+ let mut x66: u32 = 0;
+ let mut x67: u32 = 0;
+ let (x66, x67) = fiat_p384_mulx_u32(x35, 0xffffffff);
+ let mut x68: u32 = 0;
+ let mut x69: u32 = 0;
+ let (x68, x69) = fiat_p384_mulx_u32(x35, 0xffffffff);
+ let mut x70: u32 = 0;
+ let mut x71: u32 = 0;
+ let (x70, x71) = fiat_p384_mulx_u32(x35, 0xffffffff);
+ let mut x72: u32 = 0;
+ let mut x73: u32 = 0;
+ let (x72, x73) = fiat_p384_mulx_u32(x35, 0xffffffff);
+ let mut x74: u32 = 0;
+ let mut x75: u32 = 0;
+ let (x74, x75) = fiat_p384_mulx_u32(x35, 0xfffffffe);
+ let mut x76: u32 = 0;
+ let mut x77: u32 = 0;
+ let (x76, x77) = fiat_p384_mulx_u32(x35, 0xffffffff);
+ let mut x78: u32 = 0;
+ let mut x79: u32 = 0;
+ let (x78, x79) = fiat_p384_mulx_u32(x35, 0xffffffff);
+ let mut x80: u32 = 0;
+ let mut x81: fiat_p384_u1 = 0;
+ let (x80, x81) = fiat_p384_addcarryx_u32(0x0, x77, x74);
+ let mut x82: u32 = 0;
+ let mut x83: fiat_p384_u1 = 0;
+ let (x82, x83) = fiat_p384_addcarryx_u32(x81, x75, x72);
+ let mut x84: u32 = 0;
+ let mut x85: fiat_p384_u1 = 0;
+ let (x84, x85) = fiat_p384_addcarryx_u32(x83, x73, x70);
+ let mut x86: u32 = 0;
+ let mut x87: fiat_p384_u1 = 0;
+ let (x86, x87) = fiat_p384_addcarryx_u32(x85, x71, x68);
+ let mut x88: u32 = 0;
+ let mut x89: fiat_p384_u1 = 0;
+ let (x88, x89) = fiat_p384_addcarryx_u32(x87, x69, x66);
+ let mut x90: u32 = 0;
+ let mut x91: fiat_p384_u1 = 0;
+ let (x90, x91) = fiat_p384_addcarryx_u32(x89, x67, x64);
+ let mut x92: u32 = 0;
+ let mut x93: fiat_p384_u1 = 0;
+ let (x92, x93) = fiat_p384_addcarryx_u32(x91, x65, x62);
+ let mut x94: u32 = 0;
+ let mut x95: fiat_p384_u1 = 0;
+ let (x94, x95) = fiat_p384_addcarryx_u32(x93, x63, x60);
+ let x96: u32 = ((x95 as u32) + x61);
+ let mut x97: u32 = 0;
+ let mut x98: fiat_p384_u1 = 0;
+ let (x97, x98) = fiat_p384_addcarryx_u32(0x0, x35, x78);
+ let mut x99: u32 = 0;
+ let mut x100: fiat_p384_u1 = 0;
+ let (x99, x100) = fiat_p384_addcarryx_u32(x98, x37, x79);
+ let mut x101: u32 = 0;
+ let mut x102: fiat_p384_u1 = 0;
+ let (x101, x102) = fiat_p384_addcarryx_u32(x100, x39, (0x0 as u32));
+ let mut x103: u32 = 0;
+ let mut x104: fiat_p384_u1 = 0;
+ let (x103, x104) = fiat_p384_addcarryx_u32(x102, x41, x76);
+ let mut x105: u32 = 0;
+ let mut x106: fiat_p384_u1 = 0;
+ let (x105, x106) = fiat_p384_addcarryx_u32(x104, x43, x80);
+ let mut x107: u32 = 0;
+ let mut x108: fiat_p384_u1 = 0;
+ let (x107, x108) = fiat_p384_addcarryx_u32(x106, x45, x82);
+ let mut x109: u32 = 0;
+ let mut x110: fiat_p384_u1 = 0;
+ let (x109, x110) = fiat_p384_addcarryx_u32(x108, x47, x84);
+ let mut x111: u32 = 0;
+ let mut x112: fiat_p384_u1 = 0;
+ let (x111, x112) = fiat_p384_addcarryx_u32(x110, x49, x86);
+ let mut x113: u32 = 0;
+ let mut x114: fiat_p384_u1 = 0;
+ let (x113, x114) = fiat_p384_addcarryx_u32(x112, x51, x88);
+ let mut x115: u32 = 0;
+ let mut x116: fiat_p384_u1 = 0;
+ let (x115, x116) = fiat_p384_addcarryx_u32(x114, x53, x90);
+ let mut x117: u32 = 0;
+ let mut x118: fiat_p384_u1 = 0;
+ let (x117, x118) = fiat_p384_addcarryx_u32(x116, x55, x92);
+ let mut x119: u32 = 0;
+ let mut x120: fiat_p384_u1 = 0;
+ let (x119, x120) = fiat_p384_addcarryx_u32(x118, x57, x94);
+ let mut x121: u32 = 0;
+ let mut x122: fiat_p384_u1 = 0;
+ let (x121, x122) = fiat_p384_addcarryx_u32(x120, x59, x96);
+ let mut x123: u32 = 0;
+ let mut x124: u32 = 0;
+ let (x123, x124) = fiat_p384_mulx_u32(x1, (arg2[11]));
+ let mut x125: u32 = 0;
+ let mut x126: u32 = 0;
+ let (x125, x126) = fiat_p384_mulx_u32(x1, (arg2[10]));
+ let mut x127: u32 = 0;
+ let mut x128: u32 = 0;
+ let (x127, x128) = fiat_p384_mulx_u32(x1, (arg2[9]));
+ let mut x129: u32 = 0;
+ let mut x130: u32 = 0;
+ let (x129, x130) = fiat_p384_mulx_u32(x1, (arg2[8]));
+ let mut x131: u32 = 0;
+ let mut x132: u32 = 0;
+ let (x131, x132) = fiat_p384_mulx_u32(x1, (arg2[7]));
+ let mut x133: u32 = 0;
+ let mut x134: u32 = 0;
+ let (x133, x134) = fiat_p384_mulx_u32(x1, (arg2[6]));
+ let mut x135: u32 = 0;
+ let mut x136: u32 = 0;
+ let (x135, x136) = fiat_p384_mulx_u32(x1, (arg2[5]));
+ let mut x137: u32 = 0;
+ let mut x138: u32 = 0;
+ let (x137, x138) = fiat_p384_mulx_u32(x1, (arg2[4]));
+ let mut x139: u32 = 0;
+ let mut x140: u32 = 0;
+ let (x139, x140) = fiat_p384_mulx_u32(x1, (arg2[3]));
+ let mut x141: u32 = 0;
+ let mut x142: u32 = 0;
+ let (x141, x142) = fiat_p384_mulx_u32(x1, (arg2[2]));
+ let mut x143: u32 = 0;
+ let mut x144: u32 = 0;
+ let (x143, x144) = fiat_p384_mulx_u32(x1, (arg2[1]));
+ let mut x145: u32 = 0;
+ let mut x146: u32 = 0;
+ let (x145, x146) = fiat_p384_mulx_u32(x1, (arg2[0]));
+ let mut x147: u32 = 0;
+ let mut x148: fiat_p384_u1 = 0;
+ let (x147, x148) = fiat_p384_addcarryx_u32(0x0, x146, x143);
+ let mut x149: u32 = 0;
+ let mut x150: fiat_p384_u1 = 0;
+ let (x149, x150) = fiat_p384_addcarryx_u32(x148, x144, x141);
+ let mut x151: u32 = 0;
+ let mut x152: fiat_p384_u1 = 0;
+ let (x151, x152) = fiat_p384_addcarryx_u32(x150, x142, x139);
+ let mut x153: u32 = 0;
+ let mut x154: fiat_p384_u1 = 0;
+ let (x153, x154) = fiat_p384_addcarryx_u32(x152, x140, x137);
+ let mut x155: u32 = 0;
+ let mut x156: fiat_p384_u1 = 0;
+ let (x155, x156) = fiat_p384_addcarryx_u32(x154, x138, x135);
+ let mut x157: u32 = 0;
+ let mut x158: fiat_p384_u1 = 0;
+ let (x157, x158) = fiat_p384_addcarryx_u32(x156, x136, x133);
+ let mut x159: u32 = 0;
+ let mut x160: fiat_p384_u1 = 0;
+ let (x159, x160) = fiat_p384_addcarryx_u32(x158, x134, x131);
+ let mut x161: u32 = 0;
+ let mut x162: fiat_p384_u1 = 0;
+ let (x161, x162) = fiat_p384_addcarryx_u32(x160, x132, x129);
+ let mut x163: u32 = 0;
+ let mut x164: fiat_p384_u1 = 0;
+ let (x163, x164) = fiat_p384_addcarryx_u32(x162, x130, x127);
+ let mut x165: u32 = 0;
+ let mut x166: fiat_p384_u1 = 0;
+ let (x165, x166) = fiat_p384_addcarryx_u32(x164, x128, x125);
+ let mut x167: u32 = 0;
+ let mut x168: fiat_p384_u1 = 0;
+ let (x167, x168) = fiat_p384_addcarryx_u32(x166, x126, x123);
+ let x169: u32 = ((x168 as u32) + x124);
+ let mut x170: u32 = 0;
+ let mut x171: fiat_p384_u1 = 0;
+ let (x170, x171) = fiat_p384_addcarryx_u32(0x0, x99, x145);
+ let mut x172: u32 = 0;
+ let mut x173: fiat_p384_u1 = 0;
+ let (x172, x173) = fiat_p384_addcarryx_u32(x171, x101, x147);
+ let mut x174: u32 = 0;
+ let mut x175: fiat_p384_u1 = 0;
+ let (x174, x175) = fiat_p384_addcarryx_u32(x173, x103, x149);
+ let mut x176: u32 = 0;
+ let mut x177: fiat_p384_u1 = 0;
+ let (x176, x177) = fiat_p384_addcarryx_u32(x175, x105, x151);
+ let mut x178: u32 = 0;
+ let mut x179: fiat_p384_u1 = 0;
+ let (x178, x179) = fiat_p384_addcarryx_u32(x177, x107, x153);
+ let mut x180: u32 = 0;
+ let mut x181: fiat_p384_u1 = 0;
+ let (x180, x181) = fiat_p384_addcarryx_u32(x179, x109, x155);
+ let mut x182: u32 = 0;
+ let mut x183: fiat_p384_u1 = 0;
+ let (x182, x183) = fiat_p384_addcarryx_u32(x181, x111, x157);
+ let mut x184: u32 = 0;
+ let mut x185: fiat_p384_u1 = 0;
+ let (x184, x185) = fiat_p384_addcarryx_u32(x183, x113, x159);
+ let mut x186: u32 = 0;
+ let mut x187: fiat_p384_u1 = 0;
+ let (x186, x187) = fiat_p384_addcarryx_u32(x185, x115, x161);
+ let mut x188: u32 = 0;
+ let mut x189: fiat_p384_u1 = 0;
+ let (x188, x189) = fiat_p384_addcarryx_u32(x187, x117, x163);
+ let mut x190: u32 = 0;
+ let mut x191: fiat_p384_u1 = 0;
+ let (x190, x191) = fiat_p384_addcarryx_u32(x189, x119, x165);
+ let mut x192: u32 = 0;
+ let mut x193: fiat_p384_u1 = 0;
+ let (x192, x193) = fiat_p384_addcarryx_u32(x191, x121, x167);
+ let mut x194: u32 = 0;
+ let mut x195: fiat_p384_u1 = 0;
+ let (x194, x195) = fiat_p384_addcarryx_u32(x193, (x122 as u32), x169);
+ let mut x196: u32 = 0;
+ let mut x197: u32 = 0;
+ let (x196, x197) = fiat_p384_mulx_u32(x170, 0xffffffff);
+ let mut x198: u32 = 0;
+ let mut x199: u32 = 0;
+ let (x198, x199) = fiat_p384_mulx_u32(x170, 0xffffffff);
+ let mut x200: u32 = 0;
+ let mut x201: u32 = 0;
+ let (x200, x201) = fiat_p384_mulx_u32(x170, 0xffffffff);
+ let mut x202: u32 = 0;
+ let mut x203: u32 = 0;
+ let (x202, x203) = fiat_p384_mulx_u32(x170, 0xffffffff);
+ let mut x204: u32 = 0;
+ let mut x205: u32 = 0;
+ let (x204, x205) = fiat_p384_mulx_u32(x170, 0xffffffff);
+ let mut x206: u32 = 0;
+ let mut x207: u32 = 0;
+ let (x206, x207) = fiat_p384_mulx_u32(x170, 0xffffffff);
+ let mut x208: u32 = 0;
+ let mut x209: u32 = 0;
+ let (x208, x209) = fiat_p384_mulx_u32(x170, 0xffffffff);
+ let mut x210: u32 = 0;
+ let mut x211: u32 = 0;
+ let (x210, x211) = fiat_p384_mulx_u32(x170, 0xfffffffe);
+ let mut x212: u32 = 0;
+ let mut x213: u32 = 0;
+ let (x212, x213) = fiat_p384_mulx_u32(x170, 0xffffffff);
+ let mut x214: u32 = 0;
+ let mut x215: u32 = 0;
+ let (x214, x215) = fiat_p384_mulx_u32(x170, 0xffffffff);
+ let mut x216: u32 = 0;
+ let mut x217: fiat_p384_u1 = 0;
+ let (x216, x217) = fiat_p384_addcarryx_u32(0x0, x213, x210);
+ let mut x218: u32 = 0;
+ let mut x219: fiat_p384_u1 = 0;
+ let (x218, x219) = fiat_p384_addcarryx_u32(x217, x211, x208);
+ let mut x220: u32 = 0;
+ let mut x221: fiat_p384_u1 = 0;
+ let (x220, x221) = fiat_p384_addcarryx_u32(x219, x209, x206);
+ let mut x222: u32 = 0;
+ let mut x223: fiat_p384_u1 = 0;
+ let (x222, x223) = fiat_p384_addcarryx_u32(x221, x207, x204);
+ let mut x224: u32 = 0;
+ let mut x225: fiat_p384_u1 = 0;
+ let (x224, x225) = fiat_p384_addcarryx_u32(x223, x205, x202);
+ let mut x226: u32 = 0;
+ let mut x227: fiat_p384_u1 = 0;
+ let (x226, x227) = fiat_p384_addcarryx_u32(x225, x203, x200);
+ let mut x228: u32 = 0;
+ let mut x229: fiat_p384_u1 = 0;
+ let (x228, x229) = fiat_p384_addcarryx_u32(x227, x201, x198);
+ let mut x230: u32 = 0;
+ let mut x231: fiat_p384_u1 = 0;
+ let (x230, x231) = fiat_p384_addcarryx_u32(x229, x199, x196);
+ let x232: u32 = ((x231 as u32) + x197);
+ let mut x233: u32 = 0;
+ let mut x234: fiat_p384_u1 = 0;
+ let (x233, x234) = fiat_p384_addcarryx_u32(0x0, x170, x214);
+ let mut x235: u32 = 0;
+ let mut x236: fiat_p384_u1 = 0;
+ let (x235, x236) = fiat_p384_addcarryx_u32(x234, x172, x215);
+ let mut x237: u32 = 0;
+ let mut x238: fiat_p384_u1 = 0;
+ let (x237, x238) = fiat_p384_addcarryx_u32(x236, x174, (0x0 as u32));
+ let mut x239: u32 = 0;
+ let mut x240: fiat_p384_u1 = 0;
+ let (x239, x240) = fiat_p384_addcarryx_u32(x238, x176, x212);
+ let mut x241: u32 = 0;
+ let mut x242: fiat_p384_u1 = 0;
+ let (x241, x242) = fiat_p384_addcarryx_u32(x240, x178, x216);
+ let mut x243: u32 = 0;
+ let mut x244: fiat_p384_u1 = 0;
+ let (x243, x244) = fiat_p384_addcarryx_u32(x242, x180, x218);
+ let mut x245: u32 = 0;
+ let mut x246: fiat_p384_u1 = 0;
+ let (x245, x246) = fiat_p384_addcarryx_u32(x244, x182, x220);
+ let mut x247: u32 = 0;
+ let mut x248: fiat_p384_u1 = 0;
+ let (x247, x248) = fiat_p384_addcarryx_u32(x246, x184, x222);
+ let mut x249: u32 = 0;
+ let mut x250: fiat_p384_u1 = 0;
+ let (x249, x250) = fiat_p384_addcarryx_u32(x248, x186, x224);
+ let mut x251: u32 = 0;
+ let mut x252: fiat_p384_u1 = 0;
+ let (x251, x252) = fiat_p384_addcarryx_u32(x250, x188, x226);
+ let mut x253: u32 = 0;
+ let mut x254: fiat_p384_u1 = 0;
+ let (x253, x254) = fiat_p384_addcarryx_u32(x252, x190, x228);
+ let mut x255: u32 = 0;
+ let mut x256: fiat_p384_u1 = 0;
+ let (x255, x256) = fiat_p384_addcarryx_u32(x254, x192, x230);
+ let mut x257: u32 = 0;
+ let mut x258: fiat_p384_u1 = 0;
+ let (x257, x258) = fiat_p384_addcarryx_u32(x256, x194, x232);
+ let x259: u32 = ((x258 as u32) + (x195 as u32));
+ let mut x260: u32 = 0;
+ let mut x261: u32 = 0;
+ let (x260, x261) = fiat_p384_mulx_u32(x2, (arg2[11]));
+ let mut x262: u32 = 0;
+ let mut x263: u32 = 0;
+ let (x262, x263) = fiat_p384_mulx_u32(x2, (arg2[10]));
+ let mut x264: u32 = 0;
+ let mut x265: u32 = 0;
+ let (x264, x265) = fiat_p384_mulx_u32(x2, (arg2[9]));
+ let mut x266: u32 = 0;
+ let mut x267: u32 = 0;
+ let (x266, x267) = fiat_p384_mulx_u32(x2, (arg2[8]));
+ let mut x268: u32 = 0;
+ let mut x269: u32 = 0;
+ let (x268, x269) = fiat_p384_mulx_u32(x2, (arg2[7]));
+ let mut x270: u32 = 0;
+ let mut x271: u32 = 0;
+ let (x270, x271) = fiat_p384_mulx_u32(x2, (arg2[6]));
+ let mut x272: u32 = 0;
+ let mut x273: u32 = 0;
+ let (x272, x273) = fiat_p384_mulx_u32(x2, (arg2[5]));
+ let mut x274: u32 = 0;
+ let mut x275: u32 = 0;
+ let (x274, x275) = fiat_p384_mulx_u32(x2, (arg2[4]));
+ let mut x276: u32 = 0;
+ let mut x277: u32 = 0;
+ let (x276, x277) = fiat_p384_mulx_u32(x2, (arg2[3]));
+ let mut x278: u32 = 0;
+ let mut x279: u32 = 0;
+ let (x278, x279) = fiat_p384_mulx_u32(x2, (arg2[2]));
+ let mut x280: u32 = 0;
+ let mut x281: u32 = 0;
+ let (x280, x281) = fiat_p384_mulx_u32(x2, (arg2[1]));
+ let mut x282: u32 = 0;
+ let mut x283: u32 = 0;
+ let (x282, x283) = fiat_p384_mulx_u32(x2, (arg2[0]));
+ let mut x284: u32 = 0;
+ let mut x285: fiat_p384_u1 = 0;
+ let (x284, x285) = fiat_p384_addcarryx_u32(0x0, x283, x280);
+ let mut x286: u32 = 0;
+ let mut x287: fiat_p384_u1 = 0;
+ let (x286, x287) = fiat_p384_addcarryx_u32(x285, x281, x278);
+ let mut x288: u32 = 0;
+ let mut x289: fiat_p384_u1 = 0;
+ let (x288, x289) = fiat_p384_addcarryx_u32(x287, x279, x276);
+ let mut x290: u32 = 0;
+ let mut x291: fiat_p384_u1 = 0;
+ let (x290, x291) = fiat_p384_addcarryx_u32(x289, x277, x274);
+ let mut x292: u32 = 0;
+ let mut x293: fiat_p384_u1 = 0;
+ let (x292, x293) = fiat_p384_addcarryx_u32(x291, x275, x272);
+ let mut x294: u32 = 0;
+ let mut x295: fiat_p384_u1 = 0;
+ let (x294, x295) = fiat_p384_addcarryx_u32(x293, x273, x270);
+ let mut x296: u32 = 0;
+ let mut x297: fiat_p384_u1 = 0;
+ let (x296, x297) = fiat_p384_addcarryx_u32(x295, x271, x268);
+ let mut x298: u32 = 0;
+ let mut x299: fiat_p384_u1 = 0;
+ let (x298, x299) = fiat_p384_addcarryx_u32(x297, x269, x266);
+ let mut x300: u32 = 0;
+ let mut x301: fiat_p384_u1 = 0;
+ let (x300, x301) = fiat_p384_addcarryx_u32(x299, x267, x264);
+ let mut x302: u32 = 0;
+ let mut x303: fiat_p384_u1 = 0;
+ let (x302, x303) = fiat_p384_addcarryx_u32(x301, x265, x262);
+ let mut x304: u32 = 0;
+ let mut x305: fiat_p384_u1 = 0;
+ let (x304, x305) = fiat_p384_addcarryx_u32(x303, x263, x260);
+ let x306: u32 = ((x305 as u32) + x261);
+ let mut x307: u32 = 0;
+ let mut x308: fiat_p384_u1 = 0;
+ let (x307, x308) = fiat_p384_addcarryx_u32(0x0, x235, x282);
+ let mut x309: u32 = 0;
+ let mut x310: fiat_p384_u1 = 0;
+ let (x309, x310) = fiat_p384_addcarryx_u32(x308, x237, x284);
+ let mut x311: u32 = 0;
+ let mut x312: fiat_p384_u1 = 0;
+ let (x311, x312) = fiat_p384_addcarryx_u32(x310, x239, x286);
+ let mut x313: u32 = 0;
+ let mut x314: fiat_p384_u1 = 0;
+ let (x313, x314) = fiat_p384_addcarryx_u32(x312, x241, x288);
+ let mut x315: u32 = 0;
+ let mut x316: fiat_p384_u1 = 0;
+ let (x315, x316) = fiat_p384_addcarryx_u32(x314, x243, x290);
+ let mut x317: u32 = 0;
+ let mut x318: fiat_p384_u1 = 0;
+ let (x317, x318) = fiat_p384_addcarryx_u32(x316, x245, x292);
+ let mut x319: u32 = 0;
+ let mut x320: fiat_p384_u1 = 0;
+ let (x319, x320) = fiat_p384_addcarryx_u32(x318, x247, x294);
+ let mut x321: u32 = 0;
+ let mut x322: fiat_p384_u1 = 0;
+ let (x321, x322) = fiat_p384_addcarryx_u32(x320, x249, x296);
+ let mut x323: u32 = 0;
+ let mut x324: fiat_p384_u1 = 0;
+ let (x323, x324) = fiat_p384_addcarryx_u32(x322, x251, x298);
+ let mut x325: u32 = 0;
+ let mut x326: fiat_p384_u1 = 0;
+ let (x325, x326) = fiat_p384_addcarryx_u32(x324, x253, x300);
+ let mut x327: u32 = 0;
+ let mut x328: fiat_p384_u1 = 0;
+ let (x327, x328) = fiat_p384_addcarryx_u32(x326, x255, x302);
+ let mut x329: u32 = 0;
+ let mut x330: fiat_p384_u1 = 0;
+ let (x329, x330) = fiat_p384_addcarryx_u32(x328, x257, x304);
+ let mut x331: u32 = 0;
+ let mut x332: fiat_p384_u1 = 0;
+ let (x331, x332) = fiat_p384_addcarryx_u32(x330, x259, x306);
+ let mut x333: u32 = 0;
+ let mut x334: u32 = 0;
+ let (x333, x334) = fiat_p384_mulx_u32(x307, 0xffffffff);
+ let mut x335: u32 = 0;
+ let mut x336: u32 = 0;
+ let (x335, x336) = fiat_p384_mulx_u32(x307, 0xffffffff);
+ let mut x337: u32 = 0;
+ let mut x338: u32 = 0;
+ let (x337, x338) = fiat_p384_mulx_u32(x307, 0xffffffff);
+ let mut x339: u32 = 0;
+ let mut x340: u32 = 0;
+ let (x339, x340) = fiat_p384_mulx_u32(x307, 0xffffffff);
+ let mut x341: u32 = 0;
+ let mut x342: u32 = 0;
+ let (x341, x342) = fiat_p384_mulx_u32(x307, 0xffffffff);
+ let mut x343: u32 = 0;
+ let mut x344: u32 = 0;
+ let (x343, x344) = fiat_p384_mulx_u32(x307, 0xffffffff);
+ let mut x345: u32 = 0;
+ let mut x346: u32 = 0;
+ let (x345, x346) = fiat_p384_mulx_u32(x307, 0xffffffff);
+ let mut x347: u32 = 0;
+ let mut x348: u32 = 0;
+ let (x347, x348) = fiat_p384_mulx_u32(x307, 0xfffffffe);
+ let mut x349: u32 = 0;
+ let mut x350: u32 = 0;
+ let (x349, x350) = fiat_p384_mulx_u32(x307, 0xffffffff);
+ let mut x351: u32 = 0;
+ let mut x352: u32 = 0;
+ let (x351, x352) = fiat_p384_mulx_u32(x307, 0xffffffff);
+ let mut x353: u32 = 0;
+ let mut x354: fiat_p384_u1 = 0;
+ let (x353, x354) = fiat_p384_addcarryx_u32(0x0, x350, x347);
+ let mut x355: u32 = 0;
+ let mut x356: fiat_p384_u1 = 0;
+ let (x355, x356) = fiat_p384_addcarryx_u32(x354, x348, x345);
+ let mut x357: u32 = 0;
+ let mut x358: fiat_p384_u1 = 0;
+ let (x357, x358) = fiat_p384_addcarryx_u32(x356, x346, x343);
+ let mut x359: u32 = 0;
+ let mut x360: fiat_p384_u1 = 0;
+ let (x359, x360) = fiat_p384_addcarryx_u32(x358, x344, x341);
+ let mut x361: u32 = 0;
+ let mut x362: fiat_p384_u1 = 0;
+ let (x361, x362) = fiat_p384_addcarryx_u32(x360, x342, x339);
+ let mut x363: u32 = 0;
+ let mut x364: fiat_p384_u1 = 0;
+ let (x363, x364) = fiat_p384_addcarryx_u32(x362, x340, x337);
+ let mut x365: u32 = 0;
+ let mut x366: fiat_p384_u1 = 0;
+ let (x365, x366) = fiat_p384_addcarryx_u32(x364, x338, x335);
+ let mut x367: u32 = 0;
+ let mut x368: fiat_p384_u1 = 0;
+ let (x367, x368) = fiat_p384_addcarryx_u32(x366, x336, x333);
+ let x369: u32 = ((x368 as u32) + x334);
+ let mut x370: u32 = 0;
+ let mut x371: fiat_p384_u1 = 0;
+ let (x370, x371) = fiat_p384_addcarryx_u32(0x0, x307, x351);
+ let mut x372: u32 = 0;
+ let mut x373: fiat_p384_u1 = 0;
+ let (x372, x373) = fiat_p384_addcarryx_u32(x371, x309, x352);
+ let mut x374: u32 = 0;
+ let mut x375: fiat_p384_u1 = 0;
+ let (x374, x375) = fiat_p384_addcarryx_u32(x373, x311, (0x0 as u32));
+ let mut x376: u32 = 0;
+ let mut x377: fiat_p384_u1 = 0;
+ let (x376, x377) = fiat_p384_addcarryx_u32(x375, x313, x349);
+ let mut x378: u32 = 0;
+ let mut x379: fiat_p384_u1 = 0;
+ let (x378, x379) = fiat_p384_addcarryx_u32(x377, x315, x353);
+ let mut x380: u32 = 0;
+ let mut x381: fiat_p384_u1 = 0;
+ let (x380, x381) = fiat_p384_addcarryx_u32(x379, x317, x355);
+ let mut x382: u32 = 0;
+ let mut x383: fiat_p384_u1 = 0;
+ let (x382, x383) = fiat_p384_addcarryx_u32(x381, x319, x357);
+ let mut x384: u32 = 0;
+ let mut x385: fiat_p384_u1 = 0;
+ let (x384, x385) = fiat_p384_addcarryx_u32(x383, x321, x359);
+ let mut x386: u32 = 0;
+ let mut x387: fiat_p384_u1 = 0;
+ let (x386, x387) = fiat_p384_addcarryx_u32(x385, x323, x361);
+ let mut x388: u32 = 0;
+ let mut x389: fiat_p384_u1 = 0;
+ let (x388, x389) = fiat_p384_addcarryx_u32(x387, x325, x363);
+ let mut x390: u32 = 0;
+ let mut x391: fiat_p384_u1 = 0;
+ let (x390, x391) = fiat_p384_addcarryx_u32(x389, x327, x365);
+ let mut x392: u32 = 0;
+ let mut x393: fiat_p384_u1 = 0;
+ let (x392, x393) = fiat_p384_addcarryx_u32(x391, x329, x367);
+ let mut x394: u32 = 0;
+ let mut x395: fiat_p384_u1 = 0;
+ let (x394, x395) = fiat_p384_addcarryx_u32(x393, x331, x369);
+ let x396: u32 = ((x395 as u32) + (x332 as u32));
+ let mut x397: u32 = 0;
+ let mut x398: u32 = 0;
+ let (x397, x398) = fiat_p384_mulx_u32(x3, (arg2[11]));
+ let mut x399: u32 = 0;
+ let mut x400: u32 = 0;
+ let (x399, x400) = fiat_p384_mulx_u32(x3, (arg2[10]));
+ let mut x401: u32 = 0;
+ let mut x402: u32 = 0;
+ let (x401, x402) = fiat_p384_mulx_u32(x3, (arg2[9]));
+ let mut x403: u32 = 0;
+ let mut x404: u32 = 0;
+ let (x403, x404) = fiat_p384_mulx_u32(x3, (arg2[8]));
+ let mut x405: u32 = 0;
+ let mut x406: u32 = 0;
+ let (x405, x406) = fiat_p384_mulx_u32(x3, (arg2[7]));
+ let mut x407: u32 = 0;
+ let mut x408: u32 = 0;
+ let (x407, x408) = fiat_p384_mulx_u32(x3, (arg2[6]));
+ let mut x409: u32 = 0;
+ let mut x410: u32 = 0;
+ let (x409, x410) = fiat_p384_mulx_u32(x3, (arg2[5]));
+ let mut x411: u32 = 0;
+ let mut x412: u32 = 0;
+ let (x411, x412) = fiat_p384_mulx_u32(x3, (arg2[4]));
+ let mut x413: u32 = 0;
+ let mut x414: u32 = 0;
+ let (x413, x414) = fiat_p384_mulx_u32(x3, (arg2[3]));
+ let mut x415: u32 = 0;
+ let mut x416: u32 = 0;
+ let (x415, x416) = fiat_p384_mulx_u32(x3, (arg2[2]));
+ let mut x417: u32 = 0;
+ let mut x418: u32 = 0;
+ let (x417, x418) = fiat_p384_mulx_u32(x3, (arg2[1]));
+ let mut x419: u32 = 0;
+ let mut x420: u32 = 0;
+ let (x419, x420) = fiat_p384_mulx_u32(x3, (arg2[0]));
+ let mut x421: u32 = 0;
+ let mut x422: fiat_p384_u1 = 0;
+ let (x421, x422) = fiat_p384_addcarryx_u32(0x0, x420, x417);
+ let mut x423: u32 = 0;
+ let mut x424: fiat_p384_u1 = 0;
+ let (x423, x424) = fiat_p384_addcarryx_u32(x422, x418, x415);
+ let mut x425: u32 = 0;
+ let mut x426: fiat_p384_u1 = 0;
+ let (x425, x426) = fiat_p384_addcarryx_u32(x424, x416, x413);
+ let mut x427: u32 = 0;
+ let mut x428: fiat_p384_u1 = 0;
+ let (x427, x428) = fiat_p384_addcarryx_u32(x426, x414, x411);
+ let mut x429: u32 = 0;
+ let mut x430: fiat_p384_u1 = 0;
+ let (x429, x430) = fiat_p384_addcarryx_u32(x428, x412, x409);
+ let mut x431: u32 = 0;
+ let mut x432: fiat_p384_u1 = 0;
+ let (x431, x432) = fiat_p384_addcarryx_u32(x430, x410, x407);
+ let mut x433: u32 = 0;
+ let mut x434: fiat_p384_u1 = 0;
+ let (x433, x434) = fiat_p384_addcarryx_u32(x432, x408, x405);
+ let mut x435: u32 = 0;
+ let mut x436: fiat_p384_u1 = 0;
+ let (x435, x436) = fiat_p384_addcarryx_u32(x434, x406, x403);
+ let mut x437: u32 = 0;
+ let mut x438: fiat_p384_u1 = 0;
+ let (x437, x438) = fiat_p384_addcarryx_u32(x436, x404, x401);
+ let mut x439: u32 = 0;
+ let mut x440: fiat_p384_u1 = 0;
+ let (x439, x440) = fiat_p384_addcarryx_u32(x438, x402, x399);
+ let mut x441: u32 = 0;
+ let mut x442: fiat_p384_u1 = 0;
+ let (x441, x442) = fiat_p384_addcarryx_u32(x440, x400, x397);
+ let x443: u32 = ((x442 as u32) + x398);
+ let mut x444: u32 = 0;
+ let mut x445: fiat_p384_u1 = 0;
+ let (x444, x445) = fiat_p384_addcarryx_u32(0x0, x372, x419);
+ let mut x446: u32 = 0;
+ let mut x447: fiat_p384_u1 = 0;
+ let (x446, x447) = fiat_p384_addcarryx_u32(x445, x374, x421);
+ let mut x448: u32 = 0;
+ let mut x449: fiat_p384_u1 = 0;
+ let (x448, x449) = fiat_p384_addcarryx_u32(x447, x376, x423);
+ let mut x450: u32 = 0;
+ let mut x451: fiat_p384_u1 = 0;
+ let (x450, x451) = fiat_p384_addcarryx_u32(x449, x378, x425);
+ let mut x452: u32 = 0;
+ let mut x453: fiat_p384_u1 = 0;
+ let (x452, x453) = fiat_p384_addcarryx_u32(x451, x380, x427);
+ let mut x454: u32 = 0;
+ let mut x455: fiat_p384_u1 = 0;
+ let (x454, x455) = fiat_p384_addcarryx_u32(x453, x382, x429);
+ let mut x456: u32 = 0;
+ let mut x457: fiat_p384_u1 = 0;
+ let (x456, x457) = fiat_p384_addcarryx_u32(x455, x384, x431);
+ let mut x458: u32 = 0;
+ let mut x459: fiat_p384_u1 = 0;
+ let (x458, x459) = fiat_p384_addcarryx_u32(x457, x386, x433);
+ let mut x460: u32 = 0;
+ let mut x461: fiat_p384_u1 = 0;
+ let (x460, x461) = fiat_p384_addcarryx_u32(x459, x388, x435);
+ let mut x462: u32 = 0;
+ let mut x463: fiat_p384_u1 = 0;
+ let (x462, x463) = fiat_p384_addcarryx_u32(x461, x390, x437);
+ let mut x464: u32 = 0;
+ let mut x465: fiat_p384_u1 = 0;
+ let (x464, x465) = fiat_p384_addcarryx_u32(x463, x392, x439);
+ let mut x466: u32 = 0;
+ let mut x467: fiat_p384_u1 = 0;
+ let (x466, x467) = fiat_p384_addcarryx_u32(x465, x394, x441);
+ let mut x468: u32 = 0;
+ let mut x469: fiat_p384_u1 = 0;
+ let (x468, x469) = fiat_p384_addcarryx_u32(x467, x396, x443);
+ let mut x470: u32 = 0;
+ let mut x471: u32 = 0;
+ let (x470, x471) = fiat_p384_mulx_u32(x444, 0xffffffff);
+ let mut x472: u32 = 0;
+ let mut x473: u32 = 0;
+ let (x472, x473) = fiat_p384_mulx_u32(x444, 0xffffffff);
+ let mut x474: u32 = 0;
+ let mut x475: u32 = 0;
+ let (x474, x475) = fiat_p384_mulx_u32(x444, 0xffffffff);
+ let mut x476: u32 = 0;
+ let mut x477: u32 = 0;
+ let (x476, x477) = fiat_p384_mulx_u32(x444, 0xffffffff);
+ let mut x478: u32 = 0;
+ let mut x479: u32 = 0;
+ let (x478, x479) = fiat_p384_mulx_u32(x444, 0xffffffff);
+ let mut x480: u32 = 0;
+ let mut x481: u32 = 0;
+ let (x480, x481) = fiat_p384_mulx_u32(x444, 0xffffffff);
+ let mut x482: u32 = 0;
+ let mut x483: u32 = 0;
+ let (x482, x483) = fiat_p384_mulx_u32(x444, 0xffffffff);
+ let mut x484: u32 = 0;
+ let mut x485: u32 = 0;
+ let (x484, x485) = fiat_p384_mulx_u32(x444, 0xfffffffe);
+ let mut x486: u32 = 0;
+ let mut x487: u32 = 0;
+ let (x486, x487) = fiat_p384_mulx_u32(x444, 0xffffffff);
+ let mut x488: u32 = 0;
+ let mut x489: u32 = 0;
+ let (x488, x489) = fiat_p384_mulx_u32(x444, 0xffffffff);
+ let mut x490: u32 = 0;
+ let mut x491: fiat_p384_u1 = 0;
+ let (x490, x491) = fiat_p384_addcarryx_u32(0x0, x487, x484);
+ let mut x492: u32 = 0;
+ let mut x493: fiat_p384_u1 = 0;
+ let (x492, x493) = fiat_p384_addcarryx_u32(x491, x485, x482);
+ let mut x494: u32 = 0;
+ let mut x495: fiat_p384_u1 = 0;
+ let (x494, x495) = fiat_p384_addcarryx_u32(x493, x483, x480);
+ let mut x496: u32 = 0;
+ let mut x497: fiat_p384_u1 = 0;
+ let (x496, x497) = fiat_p384_addcarryx_u32(x495, x481, x478);
+ let mut x498: u32 = 0;
+ let mut x499: fiat_p384_u1 = 0;
+ let (x498, x499) = fiat_p384_addcarryx_u32(x497, x479, x476);
+ let mut x500: u32 = 0;
+ let mut x501: fiat_p384_u1 = 0;
+ let (x500, x501) = fiat_p384_addcarryx_u32(x499, x477, x474);
+ let mut x502: u32 = 0;
+ let mut x503: fiat_p384_u1 = 0;
+ let (x502, x503) = fiat_p384_addcarryx_u32(x501, x475, x472);
+ let mut x504: u32 = 0;
+ let mut x505: fiat_p384_u1 = 0;
+ let (x504, x505) = fiat_p384_addcarryx_u32(x503, x473, x470);
+ let x506: u32 = ((x505 as u32) + x471);
+ let mut x507: u32 = 0;
+ let mut x508: fiat_p384_u1 = 0;
+ let (x507, x508) = fiat_p384_addcarryx_u32(0x0, x444, x488);
+ let mut x509: u32 = 0;
+ let mut x510: fiat_p384_u1 = 0;
+ let (x509, x510) = fiat_p384_addcarryx_u32(x508, x446, x489);
+ let mut x511: u32 = 0;
+ let mut x512: fiat_p384_u1 = 0;
+ let (x511, x512) = fiat_p384_addcarryx_u32(x510, x448, (0x0 as u32));
+ let mut x513: u32 = 0;
+ let mut x514: fiat_p384_u1 = 0;
+ let (x513, x514) = fiat_p384_addcarryx_u32(x512, x450, x486);
+ let mut x515: u32 = 0;
+ let mut x516: fiat_p384_u1 = 0;
+ let (x515, x516) = fiat_p384_addcarryx_u32(x514, x452, x490);
+ let mut x517: u32 = 0;
+ let mut x518: fiat_p384_u1 = 0;
+ let (x517, x518) = fiat_p384_addcarryx_u32(x516, x454, x492);
+ let mut x519: u32 = 0;
+ let mut x520: fiat_p384_u1 = 0;
+ let (x519, x520) = fiat_p384_addcarryx_u32(x518, x456, x494);
+ let mut x521: u32 = 0;
+ let mut x522: fiat_p384_u1 = 0;
+ let (x521, x522) = fiat_p384_addcarryx_u32(x520, x458, x496);
+ let mut x523: u32 = 0;
+ let mut x524: fiat_p384_u1 = 0;
+ let (x523, x524) = fiat_p384_addcarryx_u32(x522, x460, x498);
+ let mut x525: u32 = 0;
+ let mut x526: fiat_p384_u1 = 0;
+ let (x525, x526) = fiat_p384_addcarryx_u32(x524, x462, x500);
+ let mut x527: u32 = 0;
+ let mut x528: fiat_p384_u1 = 0;
+ let (x527, x528) = fiat_p384_addcarryx_u32(x526, x464, x502);
+ let mut x529: u32 = 0;
+ let mut x530: fiat_p384_u1 = 0;
+ let (x529, x530) = fiat_p384_addcarryx_u32(x528, x466, x504);
+ let mut x531: u32 = 0;
+ let mut x532: fiat_p384_u1 = 0;
+ let (x531, x532) = fiat_p384_addcarryx_u32(x530, x468, x506);
+ let x533: u32 = ((x532 as u32) + (x469 as u32));
+ let mut x534: u32 = 0;
+ let mut x535: u32 = 0;
+ let (x534, x535) = fiat_p384_mulx_u32(x4, (arg2[11]));
+ let mut x536: u32 = 0;
+ let mut x537: u32 = 0;
+ let (x536, x537) = fiat_p384_mulx_u32(x4, (arg2[10]));
+ let mut x538: u32 = 0;
+ let mut x539: u32 = 0;
+ let (x538, x539) = fiat_p384_mulx_u32(x4, (arg2[9]));
+ let mut x540: u32 = 0;
+ let mut x541: u32 = 0;
+ let (x540, x541) = fiat_p384_mulx_u32(x4, (arg2[8]));
+ let mut x542: u32 = 0;
+ let mut x543: u32 = 0;
+ let (x542, x543) = fiat_p384_mulx_u32(x4, (arg2[7]));
+ let mut x544: u32 = 0;
+ let mut x545: u32 = 0;
+ let (x544, x545) = fiat_p384_mulx_u32(x4, (arg2[6]));
+ let mut x546: u32 = 0;
+ let mut x547: u32 = 0;
+ let (x546, x547) = fiat_p384_mulx_u32(x4, (arg2[5]));
+ let mut x548: u32 = 0;
+ let mut x549: u32 = 0;
+ let (x548, x549) = fiat_p384_mulx_u32(x4, (arg2[4]));
+ let mut x550: u32 = 0;
+ let mut x551: u32 = 0;
+ let (x550, x551) = fiat_p384_mulx_u32(x4, (arg2[3]));
+ let mut x552: u32 = 0;
+ let mut x553: u32 = 0;
+ let (x552, x553) = fiat_p384_mulx_u32(x4, (arg2[2]));
+ let mut x554: u32 = 0;
+ let mut x555: u32 = 0;
+ let (x554, x555) = fiat_p384_mulx_u32(x4, (arg2[1]));
+ let mut x556: u32 = 0;
+ let mut x557: u32 = 0;
+ let (x556, x557) = fiat_p384_mulx_u32(x4, (arg2[0]));
+ let mut x558: u32 = 0;
+ let mut x559: fiat_p384_u1 = 0;
+ let (x558, x559) = fiat_p384_addcarryx_u32(0x0, x557, x554);
+ let mut x560: u32 = 0;
+ let mut x561: fiat_p384_u1 = 0;
+ let (x560, x561) = fiat_p384_addcarryx_u32(x559, x555, x552);
+ let mut x562: u32 = 0;
+ let mut x563: fiat_p384_u1 = 0;
+ let (x562, x563) = fiat_p384_addcarryx_u32(x561, x553, x550);
+ let mut x564: u32 = 0;
+ let mut x565: fiat_p384_u1 = 0;
+ let (x564, x565) = fiat_p384_addcarryx_u32(x563, x551, x548);
+ let mut x566: u32 = 0;
+ let mut x567: fiat_p384_u1 = 0;
+ let (x566, x567) = fiat_p384_addcarryx_u32(x565, x549, x546);
+ let mut x568: u32 = 0;
+ let mut x569: fiat_p384_u1 = 0;
+ let (x568, x569) = fiat_p384_addcarryx_u32(x567, x547, x544);
+ let mut x570: u32 = 0;
+ let mut x571: fiat_p384_u1 = 0;
+ let (x570, x571) = fiat_p384_addcarryx_u32(x569, x545, x542);
+ let mut x572: u32 = 0;
+ let mut x573: fiat_p384_u1 = 0;
+ let (x572, x573) = fiat_p384_addcarryx_u32(x571, x543, x540);
+ let mut x574: u32 = 0;
+ let mut x575: fiat_p384_u1 = 0;
+ let (x574, x575) = fiat_p384_addcarryx_u32(x573, x541, x538);
+ let mut x576: u32 = 0;
+ let mut x577: fiat_p384_u1 = 0;
+ let (x576, x577) = fiat_p384_addcarryx_u32(x575, x539, x536);
+ let mut x578: u32 = 0;
+ let mut x579: fiat_p384_u1 = 0;
+ let (x578, x579) = fiat_p384_addcarryx_u32(x577, x537, x534);
+ let x580: u32 = ((x579 as u32) + x535);
+ let mut x581: u32 = 0;
+ let mut x582: fiat_p384_u1 = 0;
+ let (x581, x582) = fiat_p384_addcarryx_u32(0x0, x509, x556);
+ let mut x583: u32 = 0;
+ let mut x584: fiat_p384_u1 = 0;
+ let (x583, x584) = fiat_p384_addcarryx_u32(x582, x511, x558);
+ let mut x585: u32 = 0;
+ let mut x586: fiat_p384_u1 = 0;
+ let (x585, x586) = fiat_p384_addcarryx_u32(x584, x513, x560);
+ let mut x587: u32 = 0;
+ let mut x588: fiat_p384_u1 = 0;
+ let (x587, x588) = fiat_p384_addcarryx_u32(x586, x515, x562);
+ let mut x589: u32 = 0;
+ let mut x590: fiat_p384_u1 = 0;
+ let (x589, x590) = fiat_p384_addcarryx_u32(x588, x517, x564);
+ let mut x591: u32 = 0;
+ let mut x592: fiat_p384_u1 = 0;
+ let (x591, x592) = fiat_p384_addcarryx_u32(x590, x519, x566);
+ let mut x593: u32 = 0;
+ let mut x594: fiat_p384_u1 = 0;
+ let (x593, x594) = fiat_p384_addcarryx_u32(x592, x521, x568);
+ let mut x595: u32 = 0;
+ let mut x596: fiat_p384_u1 = 0;
+ let (x595, x596) = fiat_p384_addcarryx_u32(x594, x523, x570);
+ let mut x597: u32 = 0;
+ let mut x598: fiat_p384_u1 = 0;
+ let (x597, x598) = fiat_p384_addcarryx_u32(x596, x525, x572);
+ let mut x599: u32 = 0;
+ let mut x600: fiat_p384_u1 = 0;
+ let (x599, x600) = fiat_p384_addcarryx_u32(x598, x527, x574);
+ let mut x601: u32 = 0;
+ let mut x602: fiat_p384_u1 = 0;
+ let (x601, x602) = fiat_p384_addcarryx_u32(x600, x529, x576);
+ let mut x603: u32 = 0;
+ let mut x604: fiat_p384_u1 = 0;
+ let (x603, x604) = fiat_p384_addcarryx_u32(x602, x531, x578);
+ let mut x605: u32 = 0;
+ let mut x606: fiat_p384_u1 = 0;
+ let (x605, x606) = fiat_p384_addcarryx_u32(x604, x533, x580);
+ let mut x607: u32 = 0;
+ let mut x608: u32 = 0;
+ let (x607, x608) = fiat_p384_mulx_u32(x581, 0xffffffff);
+ let mut x609: u32 = 0;
+ let mut x610: u32 = 0;
+ let (x609, x610) = fiat_p384_mulx_u32(x581, 0xffffffff);
+ let mut x611: u32 = 0;
+ let mut x612: u32 = 0;
+ let (x611, x612) = fiat_p384_mulx_u32(x581, 0xffffffff);
+ let mut x613: u32 = 0;
+ let mut x614: u32 = 0;
+ let (x613, x614) = fiat_p384_mulx_u32(x581, 0xffffffff);
+ let mut x615: u32 = 0;
+ let mut x616: u32 = 0;
+ let (x615, x616) = fiat_p384_mulx_u32(x581, 0xffffffff);
+ let mut x617: u32 = 0;
+ let mut x618: u32 = 0;
+ let (x617, x618) = fiat_p384_mulx_u32(x581, 0xffffffff);
+ let mut x619: u32 = 0;
+ let mut x620: u32 = 0;
+ let (x619, x620) = fiat_p384_mulx_u32(x581, 0xffffffff);
+ let mut x621: u32 = 0;
+ let mut x622: u32 = 0;
+ let (x621, x622) = fiat_p384_mulx_u32(x581, 0xfffffffe);
+ let mut x623: u32 = 0;
+ let mut x624: u32 = 0;
+ let (x623, x624) = fiat_p384_mulx_u32(x581, 0xffffffff);
+ let mut x625: u32 = 0;
+ let mut x626: u32 = 0;
+ let (x625, x626) = fiat_p384_mulx_u32(x581, 0xffffffff);
+ let mut x627: u32 = 0;
+ let mut x628: fiat_p384_u1 = 0;
+ let (x627, x628) = fiat_p384_addcarryx_u32(0x0, x624, x621);
+ let mut x629: u32 = 0;
+ let mut x630: fiat_p384_u1 = 0;
+ let (x629, x630) = fiat_p384_addcarryx_u32(x628, x622, x619);
+ let mut x631: u32 = 0;
+ let mut x632: fiat_p384_u1 = 0;
+ let (x631, x632) = fiat_p384_addcarryx_u32(x630, x620, x617);
+ let mut x633: u32 = 0;
+ let mut x634: fiat_p384_u1 = 0;
+ let (x633, x634) = fiat_p384_addcarryx_u32(x632, x618, x615);
+ let mut x635: u32 = 0;
+ let mut x636: fiat_p384_u1 = 0;
+ let (x635, x636) = fiat_p384_addcarryx_u32(x634, x616, x613);
+ let mut x637: u32 = 0;
+ let mut x638: fiat_p384_u1 = 0;
+ let (x637, x638) = fiat_p384_addcarryx_u32(x636, x614, x611);
+ let mut x639: u32 = 0;
+ let mut x640: fiat_p384_u1 = 0;
+ let (x639, x640) = fiat_p384_addcarryx_u32(x638, x612, x609);
+ let mut x641: u32 = 0;
+ let mut x642: fiat_p384_u1 = 0;
+ let (x641, x642) = fiat_p384_addcarryx_u32(x640, x610, x607);
+ let x643: u32 = ((x642 as u32) + x608);
+ let mut x644: u32 = 0;
+ let mut x645: fiat_p384_u1 = 0;
+ let (x644, x645) = fiat_p384_addcarryx_u32(0x0, x581, x625);
+ let mut x646: u32 = 0;
+ let mut x647: fiat_p384_u1 = 0;
+ let (x646, x647) = fiat_p384_addcarryx_u32(x645, x583, x626);
+ let mut x648: u32 = 0;
+ let mut x649: fiat_p384_u1 = 0;
+ let (x648, x649) = fiat_p384_addcarryx_u32(x647, x585, (0x0 as u32));
+ let mut x650: u32 = 0;
+ let mut x651: fiat_p384_u1 = 0;
+ let (x650, x651) = fiat_p384_addcarryx_u32(x649, x587, x623);
+ let mut x652: u32 = 0;
+ let mut x653: fiat_p384_u1 = 0;
+ let (x652, x653) = fiat_p384_addcarryx_u32(x651, x589, x627);
+ let mut x654: u32 = 0;
+ let mut x655: fiat_p384_u1 = 0;
+ let (x654, x655) = fiat_p384_addcarryx_u32(x653, x591, x629);
+ let mut x656: u32 = 0;
+ let mut x657: fiat_p384_u1 = 0;
+ let (x656, x657) = fiat_p384_addcarryx_u32(x655, x593, x631);
+ let mut x658: u32 = 0;
+ let mut x659: fiat_p384_u1 = 0;
+ let (x658, x659) = fiat_p384_addcarryx_u32(x657, x595, x633);
+ let mut x660: u32 = 0;
+ let mut x661: fiat_p384_u1 = 0;
+ let (x660, x661) = fiat_p384_addcarryx_u32(x659, x597, x635);
+ let mut x662: u32 = 0;
+ let mut x663: fiat_p384_u1 = 0;
+ let (x662, x663) = fiat_p384_addcarryx_u32(x661, x599, x637);
+ let mut x664: u32 = 0;
+ let mut x665: fiat_p384_u1 = 0;
+ let (x664, x665) = fiat_p384_addcarryx_u32(x663, x601, x639);
+ let mut x666: u32 = 0;
+ let mut x667: fiat_p384_u1 = 0;
+ let (x666, x667) = fiat_p384_addcarryx_u32(x665, x603, x641);
+ let mut x668: u32 = 0;
+ let mut x669: fiat_p384_u1 = 0;
+ let (x668, x669) = fiat_p384_addcarryx_u32(x667, x605, x643);
+ let x670: u32 = ((x669 as u32) + (x606 as u32));
+ let mut x671: u32 = 0;
+ let mut x672: u32 = 0;
+ let (x671, x672) = fiat_p384_mulx_u32(x5, (arg2[11]));
+ let mut x673: u32 = 0;
+ let mut x674: u32 = 0;
+ let (x673, x674) = fiat_p384_mulx_u32(x5, (arg2[10]));
+ let mut x675: u32 = 0;
+ let mut x676: u32 = 0;
+ let (x675, x676) = fiat_p384_mulx_u32(x5, (arg2[9]));
+ let mut x677: u32 = 0;
+ let mut x678: u32 = 0;
+ let (x677, x678) = fiat_p384_mulx_u32(x5, (arg2[8]));
+ let mut x679: u32 = 0;
+ let mut x680: u32 = 0;
+ let (x679, x680) = fiat_p384_mulx_u32(x5, (arg2[7]));
+ let mut x681: u32 = 0;
+ let mut x682: u32 = 0;
+ let (x681, x682) = fiat_p384_mulx_u32(x5, (arg2[6]));
+ let mut x683: u32 = 0;
+ let mut x684: u32 = 0;
+ let (x683, x684) = fiat_p384_mulx_u32(x5, (arg2[5]));
+ let mut x685: u32 = 0;
+ let mut x686: u32 = 0;
+ let (x685, x686) = fiat_p384_mulx_u32(x5, (arg2[4]));
+ let mut x687: u32 = 0;
+ let mut x688: u32 = 0;
+ let (x687, x688) = fiat_p384_mulx_u32(x5, (arg2[3]));
+ let mut x689: u32 = 0;
+ let mut x690: u32 = 0;
+ let (x689, x690) = fiat_p384_mulx_u32(x5, (arg2[2]));
+ let mut x691: u32 = 0;
+ let mut x692: u32 = 0;
+ let (x691, x692) = fiat_p384_mulx_u32(x5, (arg2[1]));
+ let mut x693: u32 = 0;
+ let mut x694: u32 = 0;
+ let (x693, x694) = fiat_p384_mulx_u32(x5, (arg2[0]));
+ let mut x695: u32 = 0;
+ let mut x696: fiat_p384_u1 = 0;
+ let (x695, x696) = fiat_p384_addcarryx_u32(0x0, x694, x691);
+ let mut x697: u32 = 0;
+ let mut x698: fiat_p384_u1 = 0;
+ let (x697, x698) = fiat_p384_addcarryx_u32(x696, x692, x689);
+ let mut x699: u32 = 0;
+ let mut x700: fiat_p384_u1 = 0;
+ let (x699, x700) = fiat_p384_addcarryx_u32(x698, x690, x687);
+ let mut x701: u32 = 0;
+ let mut x702: fiat_p384_u1 = 0;
+ let (x701, x702) = fiat_p384_addcarryx_u32(x700, x688, x685);
+ let mut x703: u32 = 0;
+ let mut x704: fiat_p384_u1 = 0;
+ let (x703, x704) = fiat_p384_addcarryx_u32(x702, x686, x683);
+ let mut x705: u32 = 0;
+ let mut x706: fiat_p384_u1 = 0;
+ let (x705, x706) = fiat_p384_addcarryx_u32(x704, x684, x681);
+ let mut x707: u32 = 0;
+ let mut x708: fiat_p384_u1 = 0;
+ let (x707, x708) = fiat_p384_addcarryx_u32(x706, x682, x679);
+ let mut x709: u32 = 0;
+ let mut x710: fiat_p384_u1 = 0;
+ let (x709, x710) = fiat_p384_addcarryx_u32(x708, x680, x677);
+ let mut x711: u32 = 0;
+ let mut x712: fiat_p384_u1 = 0;
+ let (x711, x712) = fiat_p384_addcarryx_u32(x710, x678, x675);
+ let mut x713: u32 = 0;
+ let mut x714: fiat_p384_u1 = 0;
+ let (x713, x714) = fiat_p384_addcarryx_u32(x712, x676, x673);
+ let mut x715: u32 = 0;
+ let mut x716: fiat_p384_u1 = 0;
+ let (x715, x716) = fiat_p384_addcarryx_u32(x714, x674, x671);
+ let x717: u32 = ((x716 as u32) + x672);
+ let mut x718: u32 = 0;
+ let mut x719: fiat_p384_u1 = 0;
+ let (x718, x719) = fiat_p384_addcarryx_u32(0x0, x646, x693);
+ let mut x720: u32 = 0;
+ let mut x721: fiat_p384_u1 = 0;
+ let (x720, x721) = fiat_p384_addcarryx_u32(x719, x648, x695);
+ let mut x722: u32 = 0;
+ let mut x723: fiat_p384_u1 = 0;
+ let (x722, x723) = fiat_p384_addcarryx_u32(x721, x650, x697);
+ let mut x724: u32 = 0;
+ let mut x725: fiat_p384_u1 = 0;
+ let (x724, x725) = fiat_p384_addcarryx_u32(x723, x652, x699);
+ let mut x726: u32 = 0;
+ let mut x727: fiat_p384_u1 = 0;
+ let (x726, x727) = fiat_p384_addcarryx_u32(x725, x654, x701);
+ let mut x728: u32 = 0;
+ let mut x729: fiat_p384_u1 = 0;
+ let (x728, x729) = fiat_p384_addcarryx_u32(x727, x656, x703);
+ let mut x730: u32 = 0;
+ let mut x731: fiat_p384_u1 = 0;
+ let (x730, x731) = fiat_p384_addcarryx_u32(x729, x658, x705);
+ let mut x732: u32 = 0;
+ let mut x733: fiat_p384_u1 = 0;
+ let (x732, x733) = fiat_p384_addcarryx_u32(x731, x660, x707);
+ let mut x734: u32 = 0;
+ let mut x735: fiat_p384_u1 = 0;
+ let (x734, x735) = fiat_p384_addcarryx_u32(x733, x662, x709);
+ let mut x736: u32 = 0;
+ let mut x737: fiat_p384_u1 = 0;
+ let (x736, x737) = fiat_p384_addcarryx_u32(x735, x664, x711);
+ let mut x738: u32 = 0;
+ let mut x739: fiat_p384_u1 = 0;
+ let (x738, x739) = fiat_p384_addcarryx_u32(x737, x666, x713);
+ let mut x740: u32 = 0;
+ let mut x741: fiat_p384_u1 = 0;
+ let (x740, x741) = fiat_p384_addcarryx_u32(x739, x668, x715);
+ let mut x742: u32 = 0;
+ let mut x743: fiat_p384_u1 = 0;
+ let (x742, x743) = fiat_p384_addcarryx_u32(x741, x670, x717);
+ let mut x744: u32 = 0;
+ let mut x745: u32 = 0;
+ let (x744, x745) = fiat_p384_mulx_u32(x718, 0xffffffff);
+ let mut x746: u32 = 0;
+ let mut x747: u32 = 0;
+ let (x746, x747) = fiat_p384_mulx_u32(x718, 0xffffffff);
+ let mut x748: u32 = 0;
+ let mut x749: u32 = 0;
+ let (x748, x749) = fiat_p384_mulx_u32(x718, 0xffffffff);
+ let mut x750: u32 = 0;
+ let mut x751: u32 = 0;
+ let (x750, x751) = fiat_p384_mulx_u32(x718, 0xffffffff);
+ let mut x752: u32 = 0;
+ let mut x753: u32 = 0;
+ let (x752, x753) = fiat_p384_mulx_u32(x718, 0xffffffff);
+ let mut x754: u32 = 0;
+ let mut x755: u32 = 0;
+ let (x754, x755) = fiat_p384_mulx_u32(x718, 0xffffffff);
+ let mut x756: u32 = 0;
+ let mut x757: u32 = 0;
+ let (x756, x757) = fiat_p384_mulx_u32(x718, 0xffffffff);
+ let mut x758: u32 = 0;
+ let mut x759: u32 = 0;
+ let (x758, x759) = fiat_p384_mulx_u32(x718, 0xfffffffe);
+ let mut x760: u32 = 0;
+ let mut x761: u32 = 0;
+ let (x760, x761) = fiat_p384_mulx_u32(x718, 0xffffffff);
+ let mut x762: u32 = 0;
+ let mut x763: u32 = 0;
+ let (x762, x763) = fiat_p384_mulx_u32(x718, 0xffffffff);
+ let mut x764: u32 = 0;
+ let mut x765: fiat_p384_u1 = 0;
+ let (x764, x765) = fiat_p384_addcarryx_u32(0x0, x761, x758);
+ let mut x766: u32 = 0;
+ let mut x767: fiat_p384_u1 = 0;
+ let (x766, x767) = fiat_p384_addcarryx_u32(x765, x759, x756);
+ let mut x768: u32 = 0;
+ let mut x769: fiat_p384_u1 = 0;
+ let (x768, x769) = fiat_p384_addcarryx_u32(x767, x757, x754);
+ let mut x770: u32 = 0;
+ let mut x771: fiat_p384_u1 = 0;
+ let (x770, x771) = fiat_p384_addcarryx_u32(x769, x755, x752);
+ let mut x772: u32 = 0;
+ let mut x773: fiat_p384_u1 = 0;
+ let (x772, x773) = fiat_p384_addcarryx_u32(x771, x753, x750);
+ let mut x774: u32 = 0;
+ let mut x775: fiat_p384_u1 = 0;
+ let (x774, x775) = fiat_p384_addcarryx_u32(x773, x751, x748);
+ let mut x776: u32 = 0;
+ let mut x777: fiat_p384_u1 = 0;
+ let (x776, x777) = fiat_p384_addcarryx_u32(x775, x749, x746);
+ let mut x778: u32 = 0;
+ let mut x779: fiat_p384_u1 = 0;
+ let (x778, x779) = fiat_p384_addcarryx_u32(x777, x747, x744);
+ let x780: u32 = ((x779 as u32) + x745);
+ let mut x781: u32 = 0;
+ let mut x782: fiat_p384_u1 = 0;
+ let (x781, x782) = fiat_p384_addcarryx_u32(0x0, x718, x762);
+ let mut x783: u32 = 0;
+ let mut x784: fiat_p384_u1 = 0;
+ let (x783, x784) = fiat_p384_addcarryx_u32(x782, x720, x763);
+ let mut x785: u32 = 0;
+ let mut x786: fiat_p384_u1 = 0;
+ let (x785, x786) = fiat_p384_addcarryx_u32(x784, x722, (0x0 as u32));
+ let mut x787: u32 = 0;
+ let mut x788: fiat_p384_u1 = 0;
+ let (x787, x788) = fiat_p384_addcarryx_u32(x786, x724, x760);
+ let mut x789: u32 = 0;
+ let mut x790: fiat_p384_u1 = 0;
+ let (x789, x790) = fiat_p384_addcarryx_u32(x788, x726, x764);
+ let mut x791: u32 = 0;
+ let mut x792: fiat_p384_u1 = 0;
+ let (x791, x792) = fiat_p384_addcarryx_u32(x790, x728, x766);
+ let mut x793: u32 = 0;
+ let mut x794: fiat_p384_u1 = 0;
+ let (x793, x794) = fiat_p384_addcarryx_u32(x792, x730, x768);
+ let mut x795: u32 = 0;
+ let mut x796: fiat_p384_u1 = 0;
+ let (x795, x796) = fiat_p384_addcarryx_u32(x794, x732, x770);
+ let mut x797: u32 = 0;
+ let mut x798: fiat_p384_u1 = 0;
+ let (x797, x798) = fiat_p384_addcarryx_u32(x796, x734, x772);
+ let mut x799: u32 = 0;
+ let mut x800: fiat_p384_u1 = 0;
+ let (x799, x800) = fiat_p384_addcarryx_u32(x798, x736, x774);
+ let mut x801: u32 = 0;
+ let mut x802: fiat_p384_u1 = 0;
+ let (x801, x802) = fiat_p384_addcarryx_u32(x800, x738, x776);
+ let mut x803: u32 = 0;
+ let mut x804: fiat_p384_u1 = 0;
+ let (x803, x804) = fiat_p384_addcarryx_u32(x802, x740, x778);
+ let mut x805: u32 = 0;
+ let mut x806: fiat_p384_u1 = 0;
+ let (x805, x806) = fiat_p384_addcarryx_u32(x804, x742, x780);
+ let x807: u32 = ((x806 as u32) + (x743 as u32));
+ let mut x808: u32 = 0;
+ let mut x809: u32 = 0;
+ let (x808, x809) = fiat_p384_mulx_u32(x6, (arg2[11]));
+ let mut x810: u32 = 0;
+ let mut x811: u32 = 0;
+ let (x810, x811) = fiat_p384_mulx_u32(x6, (arg2[10]));
+ let mut x812: u32 = 0;
+ let mut x813: u32 = 0;
+ let (x812, x813) = fiat_p384_mulx_u32(x6, (arg2[9]));
+ let mut x814: u32 = 0;
+ let mut x815: u32 = 0;
+ let (x814, x815) = fiat_p384_mulx_u32(x6, (arg2[8]));
+ let mut x816: u32 = 0;
+ let mut x817: u32 = 0;
+ let (x816, x817) = fiat_p384_mulx_u32(x6, (arg2[7]));
+ let mut x818: u32 = 0;
+ let mut x819: u32 = 0;
+ let (x818, x819) = fiat_p384_mulx_u32(x6, (arg2[6]));
+ let mut x820: u32 = 0;
+ let mut x821: u32 = 0;
+ let (x820, x821) = fiat_p384_mulx_u32(x6, (arg2[5]));
+ let mut x822: u32 = 0;
+ let mut x823: u32 = 0;
+ let (x822, x823) = fiat_p384_mulx_u32(x6, (arg2[4]));
+ let mut x824: u32 = 0;
+ let mut x825: u32 = 0;
+ let (x824, x825) = fiat_p384_mulx_u32(x6, (arg2[3]));
+ let mut x826: u32 = 0;
+ let mut x827: u32 = 0;
+ let (x826, x827) = fiat_p384_mulx_u32(x6, (arg2[2]));
+ let mut x828: u32 = 0;
+ let mut x829: u32 = 0;
+ let (x828, x829) = fiat_p384_mulx_u32(x6, (arg2[1]));
+ let mut x830: u32 = 0;
+ let mut x831: u32 = 0;
+ let (x830, x831) = fiat_p384_mulx_u32(x6, (arg2[0]));
+ let mut x832: u32 = 0;
+ let mut x833: fiat_p384_u1 = 0;
+ let (x832, x833) = fiat_p384_addcarryx_u32(0x0, x831, x828);
+ let mut x834: u32 = 0;
+ let mut x835: fiat_p384_u1 = 0;
+ let (x834, x835) = fiat_p384_addcarryx_u32(x833, x829, x826);
+ let mut x836: u32 = 0;
+ let mut x837: fiat_p384_u1 = 0;
+ let (x836, x837) = fiat_p384_addcarryx_u32(x835, x827, x824);
+ let mut x838: u32 = 0;
+ let mut x839: fiat_p384_u1 = 0;
+ let (x838, x839) = fiat_p384_addcarryx_u32(x837, x825, x822);
+ let mut x840: u32 = 0;
+ let mut x841: fiat_p384_u1 = 0;
+ let (x840, x841) = fiat_p384_addcarryx_u32(x839, x823, x820);
+ let mut x842: u32 = 0;
+ let mut x843: fiat_p384_u1 = 0;
+ let (x842, x843) = fiat_p384_addcarryx_u32(x841, x821, x818);
+ let mut x844: u32 = 0;
+ let mut x845: fiat_p384_u1 = 0;
+ let (x844, x845) = fiat_p384_addcarryx_u32(x843, x819, x816);
+ let mut x846: u32 = 0;
+ let mut x847: fiat_p384_u1 = 0;
+ let (x846, x847) = fiat_p384_addcarryx_u32(x845, x817, x814);
+ let mut x848: u32 = 0;
+ let mut x849: fiat_p384_u1 = 0;
+ let (x848, x849) = fiat_p384_addcarryx_u32(x847, x815, x812);
+ let mut x850: u32 = 0;
+ let mut x851: fiat_p384_u1 = 0;
+ let (x850, x851) = fiat_p384_addcarryx_u32(x849, x813, x810);
+ let mut x852: u32 = 0;
+ let mut x853: fiat_p384_u1 = 0;
+ let (x852, x853) = fiat_p384_addcarryx_u32(x851, x811, x808);
+ let x854: u32 = ((x853 as u32) + x809);
+ let mut x855: u32 = 0;
+ let mut x856: fiat_p384_u1 = 0;
+ let (x855, x856) = fiat_p384_addcarryx_u32(0x0, x783, x830);
+ let mut x857: u32 = 0;
+ let mut x858: fiat_p384_u1 = 0;
+ let (x857, x858) = fiat_p384_addcarryx_u32(x856, x785, x832);
+ let mut x859: u32 = 0;
+ let mut x860: fiat_p384_u1 = 0;
+ let (x859, x860) = fiat_p384_addcarryx_u32(x858, x787, x834);
+ let mut x861: u32 = 0;
+ let mut x862: fiat_p384_u1 = 0;
+ let (x861, x862) = fiat_p384_addcarryx_u32(x860, x789, x836);
+ let mut x863: u32 = 0;
+ let mut x864: fiat_p384_u1 = 0;
+ let (x863, x864) = fiat_p384_addcarryx_u32(x862, x791, x838);
+ let mut x865: u32 = 0;
+ let mut x866: fiat_p384_u1 = 0;
+ let (x865, x866) = fiat_p384_addcarryx_u32(x864, x793, x840);
+ let mut x867: u32 = 0;
+ let mut x868: fiat_p384_u1 = 0;
+ let (x867, x868) = fiat_p384_addcarryx_u32(x866, x795, x842);
+ let mut x869: u32 = 0;
+ let mut x870: fiat_p384_u1 = 0;
+ let (x869, x870) = fiat_p384_addcarryx_u32(x868, x797, x844);
+ let mut x871: u32 = 0;
+ let mut x872: fiat_p384_u1 = 0;
+ let (x871, x872) = fiat_p384_addcarryx_u32(x870, x799, x846);
+ let mut x873: u32 = 0;
+ let mut x874: fiat_p384_u1 = 0;
+ let (x873, x874) = fiat_p384_addcarryx_u32(x872, x801, x848);
+ let mut x875: u32 = 0;
+ let mut x876: fiat_p384_u1 = 0;
+ let (x875, x876) = fiat_p384_addcarryx_u32(x874, x803, x850);
+ let mut x877: u32 = 0;
+ let mut x878: fiat_p384_u1 = 0;
+ let (x877, x878) = fiat_p384_addcarryx_u32(x876, x805, x852);
+ let mut x879: u32 = 0;
+ let mut x880: fiat_p384_u1 = 0;
+ let (x879, x880) = fiat_p384_addcarryx_u32(x878, x807, x854);
+ let mut x881: u32 = 0;
+ let mut x882: u32 = 0;
+ let (x881, x882) = fiat_p384_mulx_u32(x855, 0xffffffff);
+ let mut x883: u32 = 0;
+ let mut x884: u32 = 0;
+ let (x883, x884) = fiat_p384_mulx_u32(x855, 0xffffffff);
+ let mut x885: u32 = 0;
+ let mut x886: u32 = 0;
+ let (x885, x886) = fiat_p384_mulx_u32(x855, 0xffffffff);
+ let mut x887: u32 = 0;
+ let mut x888: u32 = 0;
+ let (x887, x888) = fiat_p384_mulx_u32(x855, 0xffffffff);
+ let mut x889: u32 = 0;
+ let mut x890: u32 = 0;
+ let (x889, x890) = fiat_p384_mulx_u32(x855, 0xffffffff);
+ let mut x891: u32 = 0;
+ let mut x892: u32 = 0;
+ let (x891, x892) = fiat_p384_mulx_u32(x855, 0xffffffff);
+ let mut x893: u32 = 0;
+ let mut x894: u32 = 0;
+ let (x893, x894) = fiat_p384_mulx_u32(x855, 0xffffffff);
+ let mut x895: u32 = 0;
+ let mut x896: u32 = 0;
+ let (x895, x896) = fiat_p384_mulx_u32(x855, 0xfffffffe);
+ let mut x897: u32 = 0;
+ let mut x898: u32 = 0;
+ let (x897, x898) = fiat_p384_mulx_u32(x855, 0xffffffff);
+ let mut x899: u32 = 0;
+ let mut x900: u32 = 0;
+ let (x899, x900) = fiat_p384_mulx_u32(x855, 0xffffffff);
+ let mut x901: u32 = 0;
+ let mut x902: fiat_p384_u1 = 0;
+ let (x901, x902) = fiat_p384_addcarryx_u32(0x0, x898, x895);
+ let mut x903: u32 = 0;
+ let mut x904: fiat_p384_u1 = 0;
+ let (x903, x904) = fiat_p384_addcarryx_u32(x902, x896, x893);
+ let mut x905: u32 = 0;
+ let mut x906: fiat_p384_u1 = 0;
+ let (x905, x906) = fiat_p384_addcarryx_u32(x904, x894, x891);
+ let mut x907: u32 = 0;
+ let mut x908: fiat_p384_u1 = 0;
+ let (x907, x908) = fiat_p384_addcarryx_u32(x906, x892, x889);
+ let mut x909: u32 = 0;
+ let mut x910: fiat_p384_u1 = 0;
+ let (x909, x910) = fiat_p384_addcarryx_u32(x908, x890, x887);
+ let mut x911: u32 = 0;
+ let mut x912: fiat_p384_u1 = 0;
+ let (x911, x912) = fiat_p384_addcarryx_u32(x910, x888, x885);
+ let mut x913: u32 = 0;
+ let mut x914: fiat_p384_u1 = 0;
+ let (x913, x914) = fiat_p384_addcarryx_u32(x912, x886, x883);
+ let mut x915: u32 = 0;
+ let mut x916: fiat_p384_u1 = 0;
+ let (x915, x916) = fiat_p384_addcarryx_u32(x914, x884, x881);
+ let x917: u32 = ((x916 as u32) + x882);
+ let mut x918: u32 = 0;
+ let mut x919: fiat_p384_u1 = 0;
+ let (x918, x919) = fiat_p384_addcarryx_u32(0x0, x855, x899);
+ let mut x920: u32 = 0;
+ let mut x921: fiat_p384_u1 = 0;
+ let (x920, x921) = fiat_p384_addcarryx_u32(x919, x857, x900);
+ let mut x922: u32 = 0;
+ let mut x923: fiat_p384_u1 = 0;
+ let (x922, x923) = fiat_p384_addcarryx_u32(x921, x859, (0x0 as u32));
+ let mut x924: u32 = 0;
+ let mut x925: fiat_p384_u1 = 0;
+ let (x924, x925) = fiat_p384_addcarryx_u32(x923, x861, x897);
+ let mut x926: u32 = 0;
+ let mut x927: fiat_p384_u1 = 0;
+ let (x926, x927) = fiat_p384_addcarryx_u32(x925, x863, x901);
+ let mut x928: u32 = 0;
+ let mut x929: fiat_p384_u1 = 0;
+ let (x928, x929) = fiat_p384_addcarryx_u32(x927, x865, x903);
+ let mut x930: u32 = 0;
+ let mut x931: fiat_p384_u1 = 0;
+ let (x930, x931) = fiat_p384_addcarryx_u32(x929, x867, x905);
+ let mut x932: u32 = 0;
+ let mut x933: fiat_p384_u1 = 0;
+ let (x932, x933) = fiat_p384_addcarryx_u32(x931, x869, x907);
+ let mut x934: u32 = 0;
+ let mut x935: fiat_p384_u1 = 0;
+ let (x934, x935) = fiat_p384_addcarryx_u32(x933, x871, x909);
+ let mut x936: u32 = 0;
+ let mut x937: fiat_p384_u1 = 0;
+ let (x936, x937) = fiat_p384_addcarryx_u32(x935, x873, x911);
+ let mut x938: u32 = 0;
+ let mut x939: fiat_p384_u1 = 0;
+ let (x938, x939) = fiat_p384_addcarryx_u32(x937, x875, x913);
+ let mut x940: u32 = 0;
+ let mut x941: fiat_p384_u1 = 0;
+ let (x940, x941) = fiat_p384_addcarryx_u32(x939, x877, x915);
+ let mut x942: u32 = 0;
+ let mut x943: fiat_p384_u1 = 0;
+ let (x942, x943) = fiat_p384_addcarryx_u32(x941, x879, x917);
+ let x944: u32 = ((x943 as u32) + (x880 as u32));
+ let mut x945: u32 = 0;
+ let mut x946: u32 = 0;
+ let (x945, x946) = fiat_p384_mulx_u32(x7, (arg2[11]));
+ let mut x947: u32 = 0;
+ let mut x948: u32 = 0;
+ let (x947, x948) = fiat_p384_mulx_u32(x7, (arg2[10]));
+ let mut x949: u32 = 0;
+ let mut x950: u32 = 0;
+ let (x949, x950) = fiat_p384_mulx_u32(x7, (arg2[9]));
+ let mut x951: u32 = 0;
+ let mut x952: u32 = 0;
+ let (x951, x952) = fiat_p384_mulx_u32(x7, (arg2[8]));
+ let mut x953: u32 = 0;
+ let mut x954: u32 = 0;
+ let (x953, x954) = fiat_p384_mulx_u32(x7, (arg2[7]));
+ let mut x955: u32 = 0;
+ let mut x956: u32 = 0;
+ let (x955, x956) = fiat_p384_mulx_u32(x7, (arg2[6]));
+ let mut x957: u32 = 0;
+ let mut x958: u32 = 0;
+ let (x957, x958) = fiat_p384_mulx_u32(x7, (arg2[5]));
+ let mut x959: u32 = 0;
+ let mut x960: u32 = 0;
+ let (x959, x960) = fiat_p384_mulx_u32(x7, (arg2[4]));
+ let mut x961: u32 = 0;
+ let mut x962: u32 = 0;
+ let (x961, x962) = fiat_p384_mulx_u32(x7, (arg2[3]));
+ let mut x963: u32 = 0;
+ let mut x964: u32 = 0;
+ let (x963, x964) = fiat_p384_mulx_u32(x7, (arg2[2]));
+ let mut x965: u32 = 0;
+ let mut x966: u32 = 0;
+ let (x965, x966) = fiat_p384_mulx_u32(x7, (arg2[1]));
+ let mut x967: u32 = 0;
+ let mut x968: u32 = 0;
+ let (x967, x968) = fiat_p384_mulx_u32(x7, (arg2[0]));
+ let mut x969: u32 = 0;
+ let mut x970: fiat_p384_u1 = 0;
+ let (x969, x970) = fiat_p384_addcarryx_u32(0x0, x968, x965);
+ let mut x971: u32 = 0;
+ let mut x972: fiat_p384_u1 = 0;
+ let (x971, x972) = fiat_p384_addcarryx_u32(x970, x966, x963);
+ let mut x973: u32 = 0;
+ let mut x974: fiat_p384_u1 = 0;
+ let (x973, x974) = fiat_p384_addcarryx_u32(x972, x964, x961);
+ let mut x975: u32 = 0;
+ let mut x976: fiat_p384_u1 = 0;
+ let (x975, x976) = fiat_p384_addcarryx_u32(x974, x962, x959);
+ let mut x977: u32 = 0;
+ let mut x978: fiat_p384_u1 = 0;
+ let (x977, x978) = fiat_p384_addcarryx_u32(x976, x960, x957);
+ let mut x979: u32 = 0;
+ let mut x980: fiat_p384_u1 = 0;
+ let (x979, x980) = fiat_p384_addcarryx_u32(x978, x958, x955);
+ let mut x981: u32 = 0;
+ let mut x982: fiat_p384_u1 = 0;
+ let (x981, x982) = fiat_p384_addcarryx_u32(x980, x956, x953);
+ let mut x983: u32 = 0;
+ let mut x984: fiat_p384_u1 = 0;
+ let (x983, x984) = fiat_p384_addcarryx_u32(x982, x954, x951);
+ let mut x985: u32 = 0;
+ let mut x986: fiat_p384_u1 = 0;
+ let (x985, x986) = fiat_p384_addcarryx_u32(x984, x952, x949);
+ let mut x987: u32 = 0;
+ let mut x988: fiat_p384_u1 = 0;
+ let (x987, x988) = fiat_p384_addcarryx_u32(x986, x950, x947);
+ let mut x989: u32 = 0;
+ let mut x990: fiat_p384_u1 = 0;
+ let (x989, x990) = fiat_p384_addcarryx_u32(x988, x948, x945);
+ let x991: u32 = ((x990 as u32) + x946);
+ let mut x992: u32 = 0;
+ let mut x993: fiat_p384_u1 = 0;
+ let (x992, x993) = fiat_p384_addcarryx_u32(0x0, x920, x967);
+ let mut x994: u32 = 0;
+ let mut x995: fiat_p384_u1 = 0;
+ let (x994, x995) = fiat_p384_addcarryx_u32(x993, x922, x969);
+ let mut x996: u32 = 0;
+ let mut x997: fiat_p384_u1 = 0;
+ let (x996, x997) = fiat_p384_addcarryx_u32(x995, x924, x971);
+ let mut x998: u32 = 0;
+ let mut x999: fiat_p384_u1 = 0;
+ let (x998, x999) = fiat_p384_addcarryx_u32(x997, x926, x973);
+ let mut x1000: u32 = 0;
+ let mut x1001: fiat_p384_u1 = 0;
+ let (x1000, x1001) = fiat_p384_addcarryx_u32(x999, x928, x975);
+ let mut x1002: u32 = 0;
+ let mut x1003: fiat_p384_u1 = 0;
+ let (x1002, x1003) = fiat_p384_addcarryx_u32(x1001, x930, x977);
+ let mut x1004: u32 = 0;
+ let mut x1005: fiat_p384_u1 = 0;
+ let (x1004, x1005) = fiat_p384_addcarryx_u32(x1003, x932, x979);
+ let mut x1006: u32 = 0;
+ let mut x1007: fiat_p384_u1 = 0;
+ let (x1006, x1007) = fiat_p384_addcarryx_u32(x1005, x934, x981);
+ let mut x1008: u32 = 0;
+ let mut x1009: fiat_p384_u1 = 0;
+ let (x1008, x1009) = fiat_p384_addcarryx_u32(x1007, x936, x983);
+ let mut x1010: u32 = 0;
+ let mut x1011: fiat_p384_u1 = 0;
+ let (x1010, x1011) = fiat_p384_addcarryx_u32(x1009, x938, x985);
+ let mut x1012: u32 = 0;
+ let mut x1013: fiat_p384_u1 = 0;
+ let (x1012, x1013) = fiat_p384_addcarryx_u32(x1011, x940, x987);
+ let mut x1014: u32 = 0;
+ let mut x1015: fiat_p384_u1 = 0;
+ let (x1014, x1015) = fiat_p384_addcarryx_u32(x1013, x942, x989);
+ let mut x1016: u32 = 0;
+ let mut x1017: fiat_p384_u1 = 0;
+ let (x1016, x1017) = fiat_p384_addcarryx_u32(x1015, x944, x991);
+ let mut x1018: u32 = 0;
+ let mut x1019: u32 = 0;
+ let (x1018, x1019) = fiat_p384_mulx_u32(x992, 0xffffffff);
+ let mut x1020: u32 = 0;
+ let mut x1021: u32 = 0;
+ let (x1020, x1021) = fiat_p384_mulx_u32(x992, 0xffffffff);
+ let mut x1022: u32 = 0;
+ let mut x1023: u32 = 0;
+ let (x1022, x1023) = fiat_p384_mulx_u32(x992, 0xffffffff);
+ let mut x1024: u32 = 0;
+ let mut x1025: u32 = 0;
+ let (x1024, x1025) = fiat_p384_mulx_u32(x992, 0xffffffff);
+ let mut x1026: u32 = 0;
+ let mut x1027: u32 = 0;
+ let (x1026, x1027) = fiat_p384_mulx_u32(x992, 0xffffffff);
+ let mut x1028: u32 = 0;
+ let mut x1029: u32 = 0;
+ let (x1028, x1029) = fiat_p384_mulx_u32(x992, 0xffffffff);
+ let mut x1030: u32 = 0;
+ let mut x1031: u32 = 0;
+ let (x1030, x1031) = fiat_p384_mulx_u32(x992, 0xffffffff);
+ let mut x1032: u32 = 0;
+ let mut x1033: u32 = 0;
+ let (x1032, x1033) = fiat_p384_mulx_u32(x992, 0xfffffffe);
+ let mut x1034: u32 = 0;
+ let mut x1035: u32 = 0;
+ let (x1034, x1035) = fiat_p384_mulx_u32(x992, 0xffffffff);
+ let mut x1036: u32 = 0;
+ let mut x1037: u32 = 0;
+ let (x1036, x1037) = fiat_p384_mulx_u32(x992, 0xffffffff);
+ let mut x1038: u32 = 0;
+ let mut x1039: fiat_p384_u1 = 0;
+ let (x1038, x1039) = fiat_p384_addcarryx_u32(0x0, x1035, x1032);
+ let mut x1040: u32 = 0;
+ let mut x1041: fiat_p384_u1 = 0;
+ let (x1040, x1041) = fiat_p384_addcarryx_u32(x1039, x1033, x1030);
+ let mut x1042: u32 = 0;
+ let mut x1043: fiat_p384_u1 = 0;
+ let (x1042, x1043) = fiat_p384_addcarryx_u32(x1041, x1031, x1028);
+ let mut x1044: u32 = 0;
+ let mut x1045: fiat_p384_u1 = 0;
+ let (x1044, x1045) = fiat_p384_addcarryx_u32(x1043, x1029, x1026);
+ let mut x1046: u32 = 0;
+ let mut x1047: fiat_p384_u1 = 0;
+ let (x1046, x1047) = fiat_p384_addcarryx_u32(x1045, x1027, x1024);
+ let mut x1048: u32 = 0;
+ let mut x1049: fiat_p384_u1 = 0;
+ let (x1048, x1049) = fiat_p384_addcarryx_u32(x1047, x1025, x1022);
+ let mut x1050: u32 = 0;
+ let mut x1051: fiat_p384_u1 = 0;
+ let (x1050, x1051) = fiat_p384_addcarryx_u32(x1049, x1023, x1020);
+ let mut x1052: u32 = 0;
+ let mut x1053: fiat_p384_u1 = 0;
+ let (x1052, x1053) = fiat_p384_addcarryx_u32(x1051, x1021, x1018);
+ let x1054: u32 = ((x1053 as u32) + x1019);
+ let mut x1055: u32 = 0;
+ let mut x1056: fiat_p384_u1 = 0;
+ let (x1055, x1056) = fiat_p384_addcarryx_u32(0x0, x992, x1036);
+ let mut x1057: u32 = 0;
+ let mut x1058: fiat_p384_u1 = 0;
+ let (x1057, x1058) = fiat_p384_addcarryx_u32(x1056, x994, x1037);
+ let mut x1059: u32 = 0;
+ let mut x1060: fiat_p384_u1 = 0;
+ let (x1059, x1060) = fiat_p384_addcarryx_u32(x1058, x996, (0x0 as u32));
+ let mut x1061: u32 = 0;
+ let mut x1062: fiat_p384_u1 = 0;
+ let (x1061, x1062) = fiat_p384_addcarryx_u32(x1060, x998, x1034);
+ let mut x1063: u32 = 0;
+ let mut x1064: fiat_p384_u1 = 0;
+ let (x1063, x1064) = fiat_p384_addcarryx_u32(x1062, x1000, x1038);
+ let mut x1065: u32 = 0;
+ let mut x1066: fiat_p384_u1 = 0;
+ let (x1065, x1066) = fiat_p384_addcarryx_u32(x1064, x1002, x1040);
+ let mut x1067: u32 = 0;
+ let mut x1068: fiat_p384_u1 = 0;
+ let (x1067, x1068) = fiat_p384_addcarryx_u32(x1066, x1004, x1042);
+ let mut x1069: u32 = 0;
+ let mut x1070: fiat_p384_u1 = 0;
+ let (x1069, x1070) = fiat_p384_addcarryx_u32(x1068, x1006, x1044);
+ let mut x1071: u32 = 0;
+ let mut x1072: fiat_p384_u1 = 0;
+ let (x1071, x1072) = fiat_p384_addcarryx_u32(x1070, x1008, x1046);
+ let mut x1073: u32 = 0;
+ let mut x1074: fiat_p384_u1 = 0;
+ let (x1073, x1074) = fiat_p384_addcarryx_u32(x1072, x1010, x1048);
+ let mut x1075: u32 = 0;
+ let mut x1076: fiat_p384_u1 = 0;
+ let (x1075, x1076) = fiat_p384_addcarryx_u32(x1074, x1012, x1050);
+ let mut x1077: u32 = 0;
+ let mut x1078: fiat_p384_u1 = 0;
+ let (x1077, x1078) = fiat_p384_addcarryx_u32(x1076, x1014, x1052);
+ let mut x1079: u32 = 0;
+ let mut x1080: fiat_p384_u1 = 0;
+ let (x1079, x1080) = fiat_p384_addcarryx_u32(x1078, x1016, x1054);
+ let x1081: u32 = ((x1080 as u32) + (x1017 as u32));
+ let mut x1082: u32 = 0;
+ let mut x1083: u32 = 0;
+ let (x1082, x1083) = fiat_p384_mulx_u32(x8, (arg2[11]));
+ let mut x1084: u32 = 0;
+ let mut x1085: u32 = 0;
+ let (x1084, x1085) = fiat_p384_mulx_u32(x8, (arg2[10]));
+ let mut x1086: u32 = 0;
+ let mut x1087: u32 = 0;
+ let (x1086, x1087) = fiat_p384_mulx_u32(x8, (arg2[9]));
+ let mut x1088: u32 = 0;
+ let mut x1089: u32 = 0;
+ let (x1088, x1089) = fiat_p384_mulx_u32(x8, (arg2[8]));
+ let mut x1090: u32 = 0;
+ let mut x1091: u32 = 0;
+ let (x1090, x1091) = fiat_p384_mulx_u32(x8, (arg2[7]));
+ let mut x1092: u32 = 0;
+ let mut x1093: u32 = 0;
+ let (x1092, x1093) = fiat_p384_mulx_u32(x8, (arg2[6]));
+ let mut x1094: u32 = 0;
+ let mut x1095: u32 = 0;
+ let (x1094, x1095) = fiat_p384_mulx_u32(x8, (arg2[5]));
+ let mut x1096: u32 = 0;
+ let mut x1097: u32 = 0;
+ let (x1096, x1097) = fiat_p384_mulx_u32(x8, (arg2[4]));
+ let mut x1098: u32 = 0;
+ let mut x1099: u32 = 0;
+ let (x1098, x1099) = fiat_p384_mulx_u32(x8, (arg2[3]));
+ let mut x1100: u32 = 0;
+ let mut x1101: u32 = 0;
+ let (x1100, x1101) = fiat_p384_mulx_u32(x8, (arg2[2]));
+ let mut x1102: u32 = 0;
+ let mut x1103: u32 = 0;
+ let (x1102, x1103) = fiat_p384_mulx_u32(x8, (arg2[1]));
+ let mut x1104: u32 = 0;
+ let mut x1105: u32 = 0;
+ let (x1104, x1105) = fiat_p384_mulx_u32(x8, (arg2[0]));
+ let mut x1106: u32 = 0;
+ let mut x1107: fiat_p384_u1 = 0;
+ let (x1106, x1107) = fiat_p384_addcarryx_u32(0x0, x1105, x1102);
+ let mut x1108: u32 = 0;
+ let mut x1109: fiat_p384_u1 = 0;
+ let (x1108, x1109) = fiat_p384_addcarryx_u32(x1107, x1103, x1100);
+ let mut x1110: u32 = 0;
+ let mut x1111: fiat_p384_u1 = 0;
+ let (x1110, x1111) = fiat_p384_addcarryx_u32(x1109, x1101, x1098);
+ let mut x1112: u32 = 0;
+ let mut x1113: fiat_p384_u1 = 0;
+ let (x1112, x1113) = fiat_p384_addcarryx_u32(x1111, x1099, x1096);
+ let mut x1114: u32 = 0;
+ let mut x1115: fiat_p384_u1 = 0;
+ let (x1114, x1115) = fiat_p384_addcarryx_u32(x1113, x1097, x1094);
+ let mut x1116: u32 = 0;
+ let mut x1117: fiat_p384_u1 = 0;
+ let (x1116, x1117) = fiat_p384_addcarryx_u32(x1115, x1095, x1092);
+ let mut x1118: u32 = 0;
+ let mut x1119: fiat_p384_u1 = 0;
+ let (x1118, x1119) = fiat_p384_addcarryx_u32(x1117, x1093, x1090);
+ let mut x1120: u32 = 0;
+ let mut x1121: fiat_p384_u1 = 0;
+ let (x1120, x1121) = fiat_p384_addcarryx_u32(x1119, x1091, x1088);
+ let mut x1122: u32 = 0;
+ let mut x1123: fiat_p384_u1 = 0;
+ let (x1122, x1123) = fiat_p384_addcarryx_u32(x1121, x1089, x1086);
+ let mut x1124: u32 = 0;
+ let mut x1125: fiat_p384_u1 = 0;
+ let (x1124, x1125) = fiat_p384_addcarryx_u32(x1123, x1087, x1084);
+ let mut x1126: u32 = 0;
+ let mut x1127: fiat_p384_u1 = 0;
+ let (x1126, x1127) = fiat_p384_addcarryx_u32(x1125, x1085, x1082);
+ let x1128: u32 = ((x1127 as u32) + x1083);
+ let mut x1129: u32 = 0;
+ let mut x1130: fiat_p384_u1 = 0;
+ let (x1129, x1130) = fiat_p384_addcarryx_u32(0x0, x1057, x1104);
+ let mut x1131: u32 = 0;
+ let mut x1132: fiat_p384_u1 = 0;
+ let (x1131, x1132) = fiat_p384_addcarryx_u32(x1130, x1059, x1106);
+ let mut x1133: u32 = 0;
+ let mut x1134: fiat_p384_u1 = 0;
+ let (x1133, x1134) = fiat_p384_addcarryx_u32(x1132, x1061, x1108);
+ let mut x1135: u32 = 0;
+ let mut x1136: fiat_p384_u1 = 0;
+ let (x1135, x1136) = fiat_p384_addcarryx_u32(x1134, x1063, x1110);
+ let mut x1137: u32 = 0;
+ let mut x1138: fiat_p384_u1 = 0;
+ let (x1137, x1138) = fiat_p384_addcarryx_u32(x1136, x1065, x1112);
+ let mut x1139: u32 = 0;
+ let mut x1140: fiat_p384_u1 = 0;
+ let (x1139, x1140) = fiat_p384_addcarryx_u32(x1138, x1067, x1114);
+ let mut x1141: u32 = 0;
+ let mut x1142: fiat_p384_u1 = 0;
+ let (x1141, x1142) = fiat_p384_addcarryx_u32(x1140, x1069, x1116);
+ let mut x1143: u32 = 0;
+ let mut x1144: fiat_p384_u1 = 0;
+ let (x1143, x1144) = fiat_p384_addcarryx_u32(x1142, x1071, x1118);
+ let mut x1145: u32 = 0;
+ let mut x1146: fiat_p384_u1 = 0;
+ let (x1145, x1146) = fiat_p384_addcarryx_u32(x1144, x1073, x1120);
+ let mut x1147: u32 = 0;
+ let mut x1148: fiat_p384_u1 = 0;
+ let (x1147, x1148) = fiat_p384_addcarryx_u32(x1146, x1075, x1122);
+ let mut x1149: u32 = 0;
+ let mut x1150: fiat_p384_u1 = 0;
+ let (x1149, x1150) = fiat_p384_addcarryx_u32(x1148, x1077, x1124);
+ let mut x1151: u32 = 0;
+ let mut x1152: fiat_p384_u1 = 0;
+ let (x1151, x1152) = fiat_p384_addcarryx_u32(x1150, x1079, x1126);
+ let mut x1153: u32 = 0;
+ let mut x1154: fiat_p384_u1 = 0;
+ let (x1153, x1154) = fiat_p384_addcarryx_u32(x1152, x1081, x1128);
+ let mut x1155: u32 = 0;
+ let mut x1156: u32 = 0;
+ let (x1155, x1156) = fiat_p384_mulx_u32(x1129, 0xffffffff);
+ let mut x1157: u32 = 0;
+ let mut x1158: u32 = 0;
+ let (x1157, x1158) = fiat_p384_mulx_u32(x1129, 0xffffffff);
+ let mut x1159: u32 = 0;
+ let mut x1160: u32 = 0;
+ let (x1159, x1160) = fiat_p384_mulx_u32(x1129, 0xffffffff);
+ let mut x1161: u32 = 0;
+ let mut x1162: u32 = 0;
+ let (x1161, x1162) = fiat_p384_mulx_u32(x1129, 0xffffffff);
+ let mut x1163: u32 = 0;
+ let mut x1164: u32 = 0;
+ let (x1163, x1164) = fiat_p384_mulx_u32(x1129, 0xffffffff);
+ let mut x1165: u32 = 0;
+ let mut x1166: u32 = 0;
+ let (x1165, x1166) = fiat_p384_mulx_u32(x1129, 0xffffffff);
+ let mut x1167: u32 = 0;
+ let mut x1168: u32 = 0;
+ let (x1167, x1168) = fiat_p384_mulx_u32(x1129, 0xffffffff);
+ let mut x1169: u32 = 0;
+ let mut x1170: u32 = 0;
+ let (x1169, x1170) = fiat_p384_mulx_u32(x1129, 0xfffffffe);
+ let mut x1171: u32 = 0;
+ let mut x1172: u32 = 0;
+ let (x1171, x1172) = fiat_p384_mulx_u32(x1129, 0xffffffff);
+ let mut x1173: u32 = 0;
+ let mut x1174: u32 = 0;
+ let (x1173, x1174) = fiat_p384_mulx_u32(x1129, 0xffffffff);
+ let mut x1175: u32 = 0;
+ let mut x1176: fiat_p384_u1 = 0;
+ let (x1175, x1176) = fiat_p384_addcarryx_u32(0x0, x1172, x1169);
+ let mut x1177: u32 = 0;
+ let mut x1178: fiat_p384_u1 = 0;
+ let (x1177, x1178) = fiat_p384_addcarryx_u32(x1176, x1170, x1167);
+ let mut x1179: u32 = 0;
+ let mut x1180: fiat_p384_u1 = 0;
+ let (x1179, x1180) = fiat_p384_addcarryx_u32(x1178, x1168, x1165);
+ let mut x1181: u32 = 0;
+ let mut x1182: fiat_p384_u1 = 0;
+ let (x1181, x1182) = fiat_p384_addcarryx_u32(x1180, x1166, x1163);
+ let mut x1183: u32 = 0;
+ let mut x1184: fiat_p384_u1 = 0;
+ let (x1183, x1184) = fiat_p384_addcarryx_u32(x1182, x1164, x1161);
+ let mut x1185: u32 = 0;
+ let mut x1186: fiat_p384_u1 = 0;
+ let (x1185, x1186) = fiat_p384_addcarryx_u32(x1184, x1162, x1159);
+ let mut x1187: u32 = 0;
+ let mut x1188: fiat_p384_u1 = 0;
+ let (x1187, x1188) = fiat_p384_addcarryx_u32(x1186, x1160, x1157);
+ let mut x1189: u32 = 0;
+ let mut x1190: fiat_p384_u1 = 0;
+ let (x1189, x1190) = fiat_p384_addcarryx_u32(x1188, x1158, x1155);
+ let x1191: u32 = ((x1190 as u32) + x1156);
+ let mut x1192: u32 = 0;
+ let mut x1193: fiat_p384_u1 = 0;
+ let (x1192, x1193) = fiat_p384_addcarryx_u32(0x0, x1129, x1173);
+ let mut x1194: u32 = 0;
+ let mut x1195: fiat_p384_u1 = 0;
+ let (x1194, x1195) = fiat_p384_addcarryx_u32(x1193, x1131, x1174);
+ let mut x1196: u32 = 0;
+ let mut x1197: fiat_p384_u1 = 0;
+ let (x1196, x1197) = fiat_p384_addcarryx_u32(x1195, x1133, (0x0 as u32));
+ let mut x1198: u32 = 0;
+ let mut x1199: fiat_p384_u1 = 0;
+ let (x1198, x1199) = fiat_p384_addcarryx_u32(x1197, x1135, x1171);
+ let mut x1200: u32 = 0;
+ let mut x1201: fiat_p384_u1 = 0;
+ let (x1200, x1201) = fiat_p384_addcarryx_u32(x1199, x1137, x1175);
+ let mut x1202: u32 = 0;
+ let mut x1203: fiat_p384_u1 = 0;
+ let (x1202, x1203) = fiat_p384_addcarryx_u32(x1201, x1139, x1177);
+ let mut x1204: u32 = 0;
+ let mut x1205: fiat_p384_u1 = 0;
+ let (x1204, x1205) = fiat_p384_addcarryx_u32(x1203, x1141, x1179);
+ let mut x1206: u32 = 0;
+ let mut x1207: fiat_p384_u1 = 0;
+ let (x1206, x1207) = fiat_p384_addcarryx_u32(x1205, x1143, x1181);
+ let mut x1208: u32 = 0;
+ let mut x1209: fiat_p384_u1 = 0;
+ let (x1208, x1209) = fiat_p384_addcarryx_u32(x1207, x1145, x1183);
+ let mut x1210: u32 = 0;
+ let mut x1211: fiat_p384_u1 = 0;
+ let (x1210, x1211) = fiat_p384_addcarryx_u32(x1209, x1147, x1185);
+ let mut x1212: u32 = 0;
+ let mut x1213: fiat_p384_u1 = 0;
+ let (x1212, x1213) = fiat_p384_addcarryx_u32(x1211, x1149, x1187);
+ let mut x1214: u32 = 0;
+ let mut x1215: fiat_p384_u1 = 0;
+ let (x1214, x1215) = fiat_p384_addcarryx_u32(x1213, x1151, x1189);
+ let mut x1216: u32 = 0;
+ let mut x1217: fiat_p384_u1 = 0;
+ let (x1216, x1217) = fiat_p384_addcarryx_u32(x1215, x1153, x1191);
+ let x1218: u32 = ((x1217 as u32) + (x1154 as u32));
+ let mut x1219: u32 = 0;
+ let mut x1220: u32 = 0;
+ let (x1219, x1220) = fiat_p384_mulx_u32(x9, (arg2[11]));
+ let mut x1221: u32 = 0;
+ let mut x1222: u32 = 0;
+ let (x1221, x1222) = fiat_p384_mulx_u32(x9, (arg2[10]));
+ let mut x1223: u32 = 0;
+ let mut x1224: u32 = 0;
+ let (x1223, x1224) = fiat_p384_mulx_u32(x9, (arg2[9]));
+ let mut x1225: u32 = 0;
+ let mut x1226: u32 = 0;
+ let (x1225, x1226) = fiat_p384_mulx_u32(x9, (arg2[8]));
+ let mut x1227: u32 = 0;
+ let mut x1228: u32 = 0;
+ let (x1227, x1228) = fiat_p384_mulx_u32(x9, (arg2[7]));
+ let mut x1229: u32 = 0;
+ let mut x1230: u32 = 0;
+ let (x1229, x1230) = fiat_p384_mulx_u32(x9, (arg2[6]));
+ let mut x1231: u32 = 0;
+ let mut x1232: u32 = 0;
+ let (x1231, x1232) = fiat_p384_mulx_u32(x9, (arg2[5]));
+ let mut x1233: u32 = 0;
+ let mut x1234: u32 = 0;
+ let (x1233, x1234) = fiat_p384_mulx_u32(x9, (arg2[4]));
+ let mut x1235: u32 = 0;
+ let mut x1236: u32 = 0;
+ let (x1235, x1236) = fiat_p384_mulx_u32(x9, (arg2[3]));
+ let mut x1237: u32 = 0;
+ let mut x1238: u32 = 0;
+ let (x1237, x1238) = fiat_p384_mulx_u32(x9, (arg2[2]));
+ let mut x1239: u32 = 0;
+ let mut x1240: u32 = 0;
+ let (x1239, x1240) = fiat_p384_mulx_u32(x9, (arg2[1]));
+ let mut x1241: u32 = 0;
+ let mut x1242: u32 = 0;
+ let (x1241, x1242) = fiat_p384_mulx_u32(x9, (arg2[0]));
+ let mut x1243: u32 = 0;
+ let mut x1244: fiat_p384_u1 = 0;
+ let (x1243, x1244) = fiat_p384_addcarryx_u32(0x0, x1242, x1239);
+ let mut x1245: u32 = 0;
+ let mut x1246: fiat_p384_u1 = 0;
+ let (x1245, x1246) = fiat_p384_addcarryx_u32(x1244, x1240, x1237);
+ let mut x1247: u32 = 0;
+ let mut x1248: fiat_p384_u1 = 0;
+ let (x1247, x1248) = fiat_p384_addcarryx_u32(x1246, x1238, x1235);
+ let mut x1249: u32 = 0;
+ let mut x1250: fiat_p384_u1 = 0;
+ let (x1249, x1250) = fiat_p384_addcarryx_u32(x1248, x1236, x1233);
+ let mut x1251: u32 = 0;
+ let mut x1252: fiat_p384_u1 = 0;
+ let (x1251, x1252) = fiat_p384_addcarryx_u32(x1250, x1234, x1231);
+ let mut x1253: u32 = 0;
+ let mut x1254: fiat_p384_u1 = 0;
+ let (x1253, x1254) = fiat_p384_addcarryx_u32(x1252, x1232, x1229);
+ let mut x1255: u32 = 0;
+ let mut x1256: fiat_p384_u1 = 0;
+ let (x1255, x1256) = fiat_p384_addcarryx_u32(x1254, x1230, x1227);
+ let mut x1257: u32 = 0;
+ let mut x1258: fiat_p384_u1 = 0;
+ let (x1257, x1258) = fiat_p384_addcarryx_u32(x1256, x1228, x1225);
+ let mut x1259: u32 = 0;
+ let mut x1260: fiat_p384_u1 = 0;
+ let (x1259, x1260) = fiat_p384_addcarryx_u32(x1258, x1226, x1223);
+ let mut x1261: u32 = 0;
+ let mut x1262: fiat_p384_u1 = 0;
+ let (x1261, x1262) = fiat_p384_addcarryx_u32(x1260, x1224, x1221);
+ let mut x1263: u32 = 0;
+ let mut x1264: fiat_p384_u1 = 0;
+ let (x1263, x1264) = fiat_p384_addcarryx_u32(x1262, x1222, x1219);
+ let x1265: u32 = ((x1264 as u32) + x1220);
+ let mut x1266: u32 = 0;
+ let mut x1267: fiat_p384_u1 = 0;
+ let (x1266, x1267) = fiat_p384_addcarryx_u32(0x0, x1194, x1241);
+ let mut x1268: u32 = 0;
+ let mut x1269: fiat_p384_u1 = 0;
+ let (x1268, x1269) = fiat_p384_addcarryx_u32(x1267, x1196, x1243);
+ let mut x1270: u32 = 0;
+ let mut x1271: fiat_p384_u1 = 0;
+ let (x1270, x1271) = fiat_p384_addcarryx_u32(x1269, x1198, x1245);
+ let mut x1272: u32 = 0;
+ let mut x1273: fiat_p384_u1 = 0;
+ let (x1272, x1273) = fiat_p384_addcarryx_u32(x1271, x1200, x1247);
+ let mut x1274: u32 = 0;
+ let mut x1275: fiat_p384_u1 = 0;
+ let (x1274, x1275) = fiat_p384_addcarryx_u32(x1273, x1202, x1249);
+ let mut x1276: u32 = 0;
+ let mut x1277: fiat_p384_u1 = 0;
+ let (x1276, x1277) = fiat_p384_addcarryx_u32(x1275, x1204, x1251);
+ let mut x1278: u32 = 0;
+ let mut x1279: fiat_p384_u1 = 0;
+ let (x1278, x1279) = fiat_p384_addcarryx_u32(x1277, x1206, x1253);
+ let mut x1280: u32 = 0;
+ let mut x1281: fiat_p384_u1 = 0;
+ let (x1280, x1281) = fiat_p384_addcarryx_u32(x1279, x1208, x1255);
+ let mut x1282: u32 = 0;
+ let mut x1283: fiat_p384_u1 = 0;
+ let (x1282, x1283) = fiat_p384_addcarryx_u32(x1281, x1210, x1257);
+ let mut x1284: u32 = 0;
+ let mut x1285: fiat_p384_u1 = 0;
+ let (x1284, x1285) = fiat_p384_addcarryx_u32(x1283, x1212, x1259);
+ let mut x1286: u32 = 0;
+ let mut x1287: fiat_p384_u1 = 0;
+ let (x1286, x1287) = fiat_p384_addcarryx_u32(x1285, x1214, x1261);
+ let mut x1288: u32 = 0;
+ let mut x1289: fiat_p384_u1 = 0;
+ let (x1288, x1289) = fiat_p384_addcarryx_u32(x1287, x1216, x1263);
+ let mut x1290: u32 = 0;
+ let mut x1291: fiat_p384_u1 = 0;
+ let (x1290, x1291) = fiat_p384_addcarryx_u32(x1289, x1218, x1265);
+ let mut x1292: u32 = 0;
+ let mut x1293: u32 = 0;
+ let (x1292, x1293) = fiat_p384_mulx_u32(x1266, 0xffffffff);
+ let mut x1294: u32 = 0;
+ let mut x1295: u32 = 0;
+ let (x1294, x1295) = fiat_p384_mulx_u32(x1266, 0xffffffff);
+ let mut x1296: u32 = 0;
+ let mut x1297: u32 = 0;
+ let (x1296, x1297) = fiat_p384_mulx_u32(x1266, 0xffffffff);
+ let mut x1298: u32 = 0;
+ let mut x1299: u32 = 0;
+ let (x1298, x1299) = fiat_p384_mulx_u32(x1266, 0xffffffff);
+ let mut x1300: u32 = 0;
+ let mut x1301: u32 = 0;
+ let (x1300, x1301) = fiat_p384_mulx_u32(x1266, 0xffffffff);
+ let mut x1302: u32 = 0;
+ let mut x1303: u32 = 0;
+ let (x1302, x1303) = fiat_p384_mulx_u32(x1266, 0xffffffff);
+ let mut x1304: u32 = 0;
+ let mut x1305: u32 = 0;
+ let (x1304, x1305) = fiat_p384_mulx_u32(x1266, 0xffffffff);
+ let mut x1306: u32 = 0;
+ let mut x1307: u32 = 0;
+ let (x1306, x1307) = fiat_p384_mulx_u32(x1266, 0xfffffffe);
+ let mut x1308: u32 = 0;
+ let mut x1309: u32 = 0;
+ let (x1308, x1309) = fiat_p384_mulx_u32(x1266, 0xffffffff);
+ let mut x1310: u32 = 0;
+ let mut x1311: u32 = 0;
+ let (x1310, x1311) = fiat_p384_mulx_u32(x1266, 0xffffffff);
+ let mut x1312: u32 = 0;
+ let mut x1313: fiat_p384_u1 = 0;
+ let (x1312, x1313) = fiat_p384_addcarryx_u32(0x0, x1309, x1306);
+ let mut x1314: u32 = 0;
+ let mut x1315: fiat_p384_u1 = 0;
+ let (x1314, x1315) = fiat_p384_addcarryx_u32(x1313, x1307, x1304);
+ let mut x1316: u32 = 0;
+ let mut x1317: fiat_p384_u1 = 0;
+ let (x1316, x1317) = fiat_p384_addcarryx_u32(x1315, x1305, x1302);
+ let mut x1318: u32 = 0;
+ let mut x1319: fiat_p384_u1 = 0;
+ let (x1318, x1319) = fiat_p384_addcarryx_u32(x1317, x1303, x1300);
+ let mut x1320: u32 = 0;
+ let mut x1321: fiat_p384_u1 = 0;
+ let (x1320, x1321) = fiat_p384_addcarryx_u32(x1319, x1301, x1298);
+ let mut x1322: u32 = 0;
+ let mut x1323: fiat_p384_u1 = 0;
+ let (x1322, x1323) = fiat_p384_addcarryx_u32(x1321, x1299, x1296);
+ let mut x1324: u32 = 0;
+ let mut x1325: fiat_p384_u1 = 0;
+ let (x1324, x1325) = fiat_p384_addcarryx_u32(x1323, x1297, x1294);
+ let mut x1326: u32 = 0;
+ let mut x1327: fiat_p384_u1 = 0;
+ let (x1326, x1327) = fiat_p384_addcarryx_u32(x1325, x1295, x1292);
+ let x1328: u32 = ((x1327 as u32) + x1293);
+ let mut x1329: u32 = 0;
+ let mut x1330: fiat_p384_u1 = 0;
+ let (x1329, x1330) = fiat_p384_addcarryx_u32(0x0, x1266, x1310);
+ let mut x1331: u32 = 0;
+ let mut x1332: fiat_p384_u1 = 0;
+ let (x1331, x1332) = fiat_p384_addcarryx_u32(x1330, x1268, x1311);
+ let mut x1333: u32 = 0;
+ let mut x1334: fiat_p384_u1 = 0;
+ let (x1333, x1334) = fiat_p384_addcarryx_u32(x1332, x1270, (0x0 as u32));
+ let mut x1335: u32 = 0;
+ let mut x1336: fiat_p384_u1 = 0;
+ let (x1335, x1336) = fiat_p384_addcarryx_u32(x1334, x1272, x1308);
+ let mut x1337: u32 = 0;
+ let mut x1338: fiat_p384_u1 = 0;
+ let (x1337, x1338) = fiat_p384_addcarryx_u32(x1336, x1274, x1312);
+ let mut x1339: u32 = 0;
+ let mut x1340: fiat_p384_u1 = 0;
+ let (x1339, x1340) = fiat_p384_addcarryx_u32(x1338, x1276, x1314);
+ let mut x1341: u32 = 0;
+ let mut x1342: fiat_p384_u1 = 0;
+ let (x1341, x1342) = fiat_p384_addcarryx_u32(x1340, x1278, x1316);
+ let mut x1343: u32 = 0;
+ let mut x1344: fiat_p384_u1 = 0;
+ let (x1343, x1344) = fiat_p384_addcarryx_u32(x1342, x1280, x1318);
+ let mut x1345: u32 = 0;
+ let mut x1346: fiat_p384_u1 = 0;
+ let (x1345, x1346) = fiat_p384_addcarryx_u32(x1344, x1282, x1320);
+ let mut x1347: u32 = 0;
+ let mut x1348: fiat_p384_u1 = 0;
+ let (x1347, x1348) = fiat_p384_addcarryx_u32(x1346, x1284, x1322);
+ let mut x1349: u32 = 0;
+ let mut x1350: fiat_p384_u1 = 0;
+ let (x1349, x1350) = fiat_p384_addcarryx_u32(x1348, x1286, x1324);
+ let mut x1351: u32 = 0;
+ let mut x1352: fiat_p384_u1 = 0;
+ let (x1351, x1352) = fiat_p384_addcarryx_u32(x1350, x1288, x1326);
+ let mut x1353: u32 = 0;
+ let mut x1354: fiat_p384_u1 = 0;
+ let (x1353, x1354) = fiat_p384_addcarryx_u32(x1352, x1290, x1328);
+ let x1355: u32 = ((x1354 as u32) + (x1291 as u32));
+ let mut x1356: u32 = 0;
+ let mut x1357: u32 = 0;
+ let (x1356, x1357) = fiat_p384_mulx_u32(x10, (arg2[11]));
+ let mut x1358: u32 = 0;
+ let mut x1359: u32 = 0;
+ let (x1358, x1359) = fiat_p384_mulx_u32(x10, (arg2[10]));
+ let mut x1360: u32 = 0;
+ let mut x1361: u32 = 0;
+ let (x1360, x1361) = fiat_p384_mulx_u32(x10, (arg2[9]));
+ let mut x1362: u32 = 0;
+ let mut x1363: u32 = 0;
+ let (x1362, x1363) = fiat_p384_mulx_u32(x10, (arg2[8]));
+ let mut x1364: u32 = 0;
+ let mut x1365: u32 = 0;
+ let (x1364, x1365) = fiat_p384_mulx_u32(x10, (arg2[7]));
+ let mut x1366: u32 = 0;
+ let mut x1367: u32 = 0;
+ let (x1366, x1367) = fiat_p384_mulx_u32(x10, (arg2[6]));
+ let mut x1368: u32 = 0;
+ let mut x1369: u32 = 0;
+ let (x1368, x1369) = fiat_p384_mulx_u32(x10, (arg2[5]));
+ let mut x1370: u32 = 0;
+ let mut x1371: u32 = 0;
+ let (x1370, x1371) = fiat_p384_mulx_u32(x10, (arg2[4]));
+ let mut x1372: u32 = 0;
+ let mut x1373: u32 = 0;
+ let (x1372, x1373) = fiat_p384_mulx_u32(x10, (arg2[3]));
+ let mut x1374: u32 = 0;
+ let mut x1375: u32 = 0;
+ let (x1374, x1375) = fiat_p384_mulx_u32(x10, (arg2[2]));
+ let mut x1376: u32 = 0;
+ let mut x1377: u32 = 0;
+ let (x1376, x1377) = fiat_p384_mulx_u32(x10, (arg2[1]));
+ let mut x1378: u32 = 0;
+ let mut x1379: u32 = 0;
+ let (x1378, x1379) = fiat_p384_mulx_u32(x10, (arg2[0]));
+ let mut x1380: u32 = 0;
+ let mut x1381: fiat_p384_u1 = 0;
+ let (x1380, x1381) = fiat_p384_addcarryx_u32(0x0, x1379, x1376);
+ let mut x1382: u32 = 0;
+ let mut x1383: fiat_p384_u1 = 0;
+ let (x1382, x1383) = fiat_p384_addcarryx_u32(x1381, x1377, x1374);
+ let mut x1384: u32 = 0;
+ let mut x1385: fiat_p384_u1 = 0;
+ let (x1384, x1385) = fiat_p384_addcarryx_u32(x1383, x1375, x1372);
+ let mut x1386: u32 = 0;
+ let mut x1387: fiat_p384_u1 = 0;
+ let (x1386, x1387) = fiat_p384_addcarryx_u32(x1385, x1373, x1370);
+ let mut x1388: u32 = 0;
+ let mut x1389: fiat_p384_u1 = 0;
+ let (x1388, x1389) = fiat_p384_addcarryx_u32(x1387, x1371, x1368);
+ let mut x1390: u32 = 0;
+ let mut x1391: fiat_p384_u1 = 0;
+ let (x1390, x1391) = fiat_p384_addcarryx_u32(x1389, x1369, x1366);
+ let mut x1392: u32 = 0;
+ let mut x1393: fiat_p384_u1 = 0;
+ let (x1392, x1393) = fiat_p384_addcarryx_u32(x1391, x1367, x1364);
+ let mut x1394: u32 = 0;
+ let mut x1395: fiat_p384_u1 = 0;
+ let (x1394, x1395) = fiat_p384_addcarryx_u32(x1393, x1365, x1362);
+ let mut x1396: u32 = 0;
+ let mut x1397: fiat_p384_u1 = 0;
+ let (x1396, x1397) = fiat_p384_addcarryx_u32(x1395, x1363, x1360);
+ let mut x1398: u32 = 0;
+ let mut x1399: fiat_p384_u1 = 0;
+ let (x1398, x1399) = fiat_p384_addcarryx_u32(x1397, x1361, x1358);
+ let mut x1400: u32 = 0;
+ let mut x1401: fiat_p384_u1 = 0;
+ let (x1400, x1401) = fiat_p384_addcarryx_u32(x1399, x1359, x1356);
+ let x1402: u32 = ((x1401 as u32) + x1357);
+ let mut x1403: u32 = 0;
+ let mut x1404: fiat_p384_u1 = 0;
+ let (x1403, x1404) = fiat_p384_addcarryx_u32(0x0, x1331, x1378);
+ let mut x1405: u32 = 0;
+ let mut x1406: fiat_p384_u1 = 0;
+ let (x1405, x1406) = fiat_p384_addcarryx_u32(x1404, x1333, x1380);
+ let mut x1407: u32 = 0;
+ let mut x1408: fiat_p384_u1 = 0;
+ let (x1407, x1408) = fiat_p384_addcarryx_u32(x1406, x1335, x1382);
+ let mut x1409: u32 = 0;
+ let mut x1410: fiat_p384_u1 = 0;
+ let (x1409, x1410) = fiat_p384_addcarryx_u32(x1408, x1337, x1384);
+ let mut x1411: u32 = 0;
+ let mut x1412: fiat_p384_u1 = 0;
+ let (x1411, x1412) = fiat_p384_addcarryx_u32(x1410, x1339, x1386);
+ let mut x1413: u32 = 0;
+ let mut x1414: fiat_p384_u1 = 0;
+ let (x1413, x1414) = fiat_p384_addcarryx_u32(x1412, x1341, x1388);
+ let mut x1415: u32 = 0;
+ let mut x1416: fiat_p384_u1 = 0;
+ let (x1415, x1416) = fiat_p384_addcarryx_u32(x1414, x1343, x1390);
+ let mut x1417: u32 = 0;
+ let mut x1418: fiat_p384_u1 = 0;
+ let (x1417, x1418) = fiat_p384_addcarryx_u32(x1416, x1345, x1392);
+ let mut x1419: u32 = 0;
+ let mut x1420: fiat_p384_u1 = 0;
+ let (x1419, x1420) = fiat_p384_addcarryx_u32(x1418, x1347, x1394);
+ let mut x1421: u32 = 0;
+ let mut x1422: fiat_p384_u1 = 0;
+ let (x1421, x1422) = fiat_p384_addcarryx_u32(x1420, x1349, x1396);
+ let mut x1423: u32 = 0;
+ let mut x1424: fiat_p384_u1 = 0;
+ let (x1423, x1424) = fiat_p384_addcarryx_u32(x1422, x1351, x1398);
+ let mut x1425: u32 = 0;
+ let mut x1426: fiat_p384_u1 = 0;
+ let (x1425, x1426) = fiat_p384_addcarryx_u32(x1424, x1353, x1400);
+ let mut x1427: u32 = 0;
+ let mut x1428: fiat_p384_u1 = 0;
+ let (x1427, x1428) = fiat_p384_addcarryx_u32(x1426, x1355, x1402);
+ let mut x1429: u32 = 0;
+ let mut x1430: u32 = 0;
+ let (x1429, x1430) = fiat_p384_mulx_u32(x1403, 0xffffffff);
+ let mut x1431: u32 = 0;
+ let mut x1432: u32 = 0;
+ let (x1431, x1432) = fiat_p384_mulx_u32(x1403, 0xffffffff);
+ let mut x1433: u32 = 0;
+ let mut x1434: u32 = 0;
+ let (x1433, x1434) = fiat_p384_mulx_u32(x1403, 0xffffffff);
+ let mut x1435: u32 = 0;
+ let mut x1436: u32 = 0;
+ let (x1435, x1436) = fiat_p384_mulx_u32(x1403, 0xffffffff);
+ let mut x1437: u32 = 0;
+ let mut x1438: u32 = 0;
+ let (x1437, x1438) = fiat_p384_mulx_u32(x1403, 0xffffffff);
+ let mut x1439: u32 = 0;
+ let mut x1440: u32 = 0;
+ let (x1439, x1440) = fiat_p384_mulx_u32(x1403, 0xffffffff);
+ let mut x1441: u32 = 0;
+ let mut x1442: u32 = 0;
+ let (x1441, x1442) = fiat_p384_mulx_u32(x1403, 0xffffffff);
+ let mut x1443: u32 = 0;
+ let mut x1444: u32 = 0;
+ let (x1443, x1444) = fiat_p384_mulx_u32(x1403, 0xfffffffe);
+ let mut x1445: u32 = 0;
+ let mut x1446: u32 = 0;
+ let (x1445, x1446) = fiat_p384_mulx_u32(x1403, 0xffffffff);
+ let mut x1447: u32 = 0;
+ let mut x1448: u32 = 0;
+ let (x1447, x1448) = fiat_p384_mulx_u32(x1403, 0xffffffff);
+ let mut x1449: u32 = 0;
+ let mut x1450: fiat_p384_u1 = 0;
+ let (x1449, x1450) = fiat_p384_addcarryx_u32(0x0, x1446, x1443);
+ let mut x1451: u32 = 0;
+ let mut x1452: fiat_p384_u1 = 0;
+ let (x1451, x1452) = fiat_p384_addcarryx_u32(x1450, x1444, x1441);
+ let mut x1453: u32 = 0;
+ let mut x1454: fiat_p384_u1 = 0;
+ let (x1453, x1454) = fiat_p384_addcarryx_u32(x1452, x1442, x1439);
+ let mut x1455: u32 = 0;
+ let mut x1456: fiat_p384_u1 = 0;
+ let (x1455, x1456) = fiat_p384_addcarryx_u32(x1454, x1440, x1437);
+ let mut x1457: u32 = 0;
+ let mut x1458: fiat_p384_u1 = 0;
+ let (x1457, x1458) = fiat_p384_addcarryx_u32(x1456, x1438, x1435);
+ let mut x1459: u32 = 0;
+ let mut x1460: fiat_p384_u1 = 0;
+ let (x1459, x1460) = fiat_p384_addcarryx_u32(x1458, x1436, x1433);
+ let mut x1461: u32 = 0;
+ let mut x1462: fiat_p384_u1 = 0;
+ let (x1461, x1462) = fiat_p384_addcarryx_u32(x1460, x1434, x1431);
+ let mut x1463: u32 = 0;
+ let mut x1464: fiat_p384_u1 = 0;
+ let (x1463, x1464) = fiat_p384_addcarryx_u32(x1462, x1432, x1429);
+ let x1465: u32 = ((x1464 as u32) + x1430);
+ let mut x1466: u32 = 0;
+ let mut x1467: fiat_p384_u1 = 0;
+ let (x1466, x1467) = fiat_p384_addcarryx_u32(0x0, x1403, x1447);
+ let mut x1468: u32 = 0;
+ let mut x1469: fiat_p384_u1 = 0;
+ let (x1468, x1469) = fiat_p384_addcarryx_u32(x1467, x1405, x1448);
+ let mut x1470: u32 = 0;
+ let mut x1471: fiat_p384_u1 = 0;
+ let (x1470, x1471) = fiat_p384_addcarryx_u32(x1469, x1407, (0x0 as u32));
+ let mut x1472: u32 = 0;
+ let mut x1473: fiat_p384_u1 = 0;
+ let (x1472, x1473) = fiat_p384_addcarryx_u32(x1471, x1409, x1445);
+ let mut x1474: u32 = 0;
+ let mut x1475: fiat_p384_u1 = 0;
+ let (x1474, x1475) = fiat_p384_addcarryx_u32(x1473, x1411, x1449);
+ let mut x1476: u32 = 0;
+ let mut x1477: fiat_p384_u1 = 0;
+ let (x1476, x1477) = fiat_p384_addcarryx_u32(x1475, x1413, x1451);
+ let mut x1478: u32 = 0;
+ let mut x1479: fiat_p384_u1 = 0;
+ let (x1478, x1479) = fiat_p384_addcarryx_u32(x1477, x1415, x1453);
+ let mut x1480: u32 = 0;
+ let mut x1481: fiat_p384_u1 = 0;
+ let (x1480, x1481) = fiat_p384_addcarryx_u32(x1479, x1417, x1455);
+ let mut x1482: u32 = 0;
+ let mut x1483: fiat_p384_u1 = 0;
+ let (x1482, x1483) = fiat_p384_addcarryx_u32(x1481, x1419, x1457);
+ let mut x1484: u32 = 0;
+ let mut x1485: fiat_p384_u1 = 0;
+ let (x1484, x1485) = fiat_p384_addcarryx_u32(x1483, x1421, x1459);
+ let mut x1486: u32 = 0;
+ let mut x1487: fiat_p384_u1 = 0;
+ let (x1486, x1487) = fiat_p384_addcarryx_u32(x1485, x1423, x1461);
+ let mut x1488: u32 = 0;
+ let mut x1489: fiat_p384_u1 = 0;
+ let (x1488, x1489) = fiat_p384_addcarryx_u32(x1487, x1425, x1463);
+ let mut x1490: u32 = 0;
+ let mut x1491: fiat_p384_u1 = 0;
+ let (x1490, x1491) = fiat_p384_addcarryx_u32(x1489, x1427, x1465);
+ let x1492: u32 = ((x1491 as u32) + (x1428 as u32));
+ let mut x1493: u32 = 0;
+ let mut x1494: u32 = 0;
+ let (x1493, x1494) = fiat_p384_mulx_u32(x11, (arg2[11]));
+ let mut x1495: u32 = 0;
+ let mut x1496: u32 = 0;
+ let (x1495, x1496) = fiat_p384_mulx_u32(x11, (arg2[10]));
+ let mut x1497: u32 = 0;
+ let mut x1498: u32 = 0;
+ let (x1497, x1498) = fiat_p384_mulx_u32(x11, (arg2[9]));
+ let mut x1499: u32 = 0;
+ let mut x1500: u32 = 0;
+ let (x1499, x1500) = fiat_p384_mulx_u32(x11, (arg2[8]));
+ let mut x1501: u32 = 0;
+ let mut x1502: u32 = 0;
+ let (x1501, x1502) = fiat_p384_mulx_u32(x11, (arg2[7]));
+ let mut x1503: u32 = 0;
+ let mut x1504: u32 = 0;
+ let (x1503, x1504) = fiat_p384_mulx_u32(x11, (arg2[6]));
+ let mut x1505: u32 = 0;
+ let mut x1506: u32 = 0;
+ let (x1505, x1506) = fiat_p384_mulx_u32(x11, (arg2[5]));
+ let mut x1507: u32 = 0;
+ let mut x1508: u32 = 0;
+ let (x1507, x1508) = fiat_p384_mulx_u32(x11, (arg2[4]));
+ let mut x1509: u32 = 0;
+ let mut x1510: u32 = 0;
+ let (x1509, x1510) = fiat_p384_mulx_u32(x11, (arg2[3]));
+ let mut x1511: u32 = 0;
+ let mut x1512: u32 = 0;
+ let (x1511, x1512) = fiat_p384_mulx_u32(x11, (arg2[2]));
+ let mut x1513: u32 = 0;
+ let mut x1514: u32 = 0;
+ let (x1513, x1514) = fiat_p384_mulx_u32(x11, (arg2[1]));
+ let mut x1515: u32 = 0;
+ let mut x1516: u32 = 0;
+ let (x1515, x1516) = fiat_p384_mulx_u32(x11, (arg2[0]));
+ let mut x1517: u32 = 0;
+ let mut x1518: fiat_p384_u1 = 0;
+ let (x1517, x1518) = fiat_p384_addcarryx_u32(0x0, x1516, x1513);
+ let mut x1519: u32 = 0;
+ let mut x1520: fiat_p384_u1 = 0;
+ let (x1519, x1520) = fiat_p384_addcarryx_u32(x1518, x1514, x1511);
+ let mut x1521: u32 = 0;
+ let mut x1522: fiat_p384_u1 = 0;
+ let (x1521, x1522) = fiat_p384_addcarryx_u32(x1520, x1512, x1509);
+ let mut x1523: u32 = 0;
+ let mut x1524: fiat_p384_u1 = 0;
+ let (x1523, x1524) = fiat_p384_addcarryx_u32(x1522, x1510, x1507);
+ let mut x1525: u32 = 0;
+ let mut x1526: fiat_p384_u1 = 0;
+ let (x1525, x1526) = fiat_p384_addcarryx_u32(x1524, x1508, x1505);
+ let mut x1527: u32 = 0;
+ let mut x1528: fiat_p384_u1 = 0;
+ let (x1527, x1528) = fiat_p384_addcarryx_u32(x1526, x1506, x1503);
+ let mut x1529: u32 = 0;
+ let mut x1530: fiat_p384_u1 = 0;
+ let (x1529, x1530) = fiat_p384_addcarryx_u32(x1528, x1504, x1501);
+ let mut x1531: u32 = 0;
+ let mut x1532: fiat_p384_u1 = 0;
+ let (x1531, x1532) = fiat_p384_addcarryx_u32(x1530, x1502, x1499);
+ let mut x1533: u32 = 0;
+ let mut x1534: fiat_p384_u1 = 0;
+ let (x1533, x1534) = fiat_p384_addcarryx_u32(x1532, x1500, x1497);
+ let mut x1535: u32 = 0;
+ let mut x1536: fiat_p384_u1 = 0;
+ let (x1535, x1536) = fiat_p384_addcarryx_u32(x1534, x1498, x1495);
+ let mut x1537: u32 = 0;
+ let mut x1538: fiat_p384_u1 = 0;
+ let (x1537, x1538) = fiat_p384_addcarryx_u32(x1536, x1496, x1493);
+ let x1539: u32 = ((x1538 as u32) + x1494);
+ let mut x1540: u32 = 0;
+ let mut x1541: fiat_p384_u1 = 0;
+ let (x1540, x1541) = fiat_p384_addcarryx_u32(0x0, x1468, x1515);
+ let mut x1542: u32 = 0;
+ let mut x1543: fiat_p384_u1 = 0;
+ let (x1542, x1543) = fiat_p384_addcarryx_u32(x1541, x1470, x1517);
+ let mut x1544: u32 = 0;
+ let mut x1545: fiat_p384_u1 = 0;
+ let (x1544, x1545) = fiat_p384_addcarryx_u32(x1543, x1472, x1519);
+ let mut x1546: u32 = 0;
+ let mut x1547: fiat_p384_u1 = 0;
+ let (x1546, x1547) = fiat_p384_addcarryx_u32(x1545, x1474, x1521);
+ let mut x1548: u32 = 0;
+ let mut x1549: fiat_p384_u1 = 0;
+ let (x1548, x1549) = fiat_p384_addcarryx_u32(x1547, x1476, x1523);
+ let mut x1550: u32 = 0;
+ let mut x1551: fiat_p384_u1 = 0;
+ let (x1550, x1551) = fiat_p384_addcarryx_u32(x1549, x1478, x1525);
+ let mut x1552: u32 = 0;
+ let mut x1553: fiat_p384_u1 = 0;
+ let (x1552, x1553) = fiat_p384_addcarryx_u32(x1551, x1480, x1527);
+ let mut x1554: u32 = 0;
+ let mut x1555: fiat_p384_u1 = 0;
+ let (x1554, x1555) = fiat_p384_addcarryx_u32(x1553, x1482, x1529);
+ let mut x1556: u32 = 0;
+ let mut x1557: fiat_p384_u1 = 0;
+ let (x1556, x1557) = fiat_p384_addcarryx_u32(x1555, x1484, x1531);
+ let mut x1558: u32 = 0;
+ let mut x1559: fiat_p384_u1 = 0;
+ let (x1558, x1559) = fiat_p384_addcarryx_u32(x1557, x1486, x1533);
+ let mut x1560: u32 = 0;
+ let mut x1561: fiat_p384_u1 = 0;
+ let (x1560, x1561) = fiat_p384_addcarryx_u32(x1559, x1488, x1535);
+ let mut x1562: u32 = 0;
+ let mut x1563: fiat_p384_u1 = 0;
+ let (x1562, x1563) = fiat_p384_addcarryx_u32(x1561, x1490, x1537);
+ let mut x1564: u32 = 0;
+ let mut x1565: fiat_p384_u1 = 0;
+ let (x1564, x1565) = fiat_p384_addcarryx_u32(x1563, x1492, x1539);
+ let mut x1566: u32 = 0;
+ let mut x1567: u32 = 0;
+ let (x1566, x1567) = fiat_p384_mulx_u32(x1540, 0xffffffff);
+ let mut x1568: u32 = 0;
+ let mut x1569: u32 = 0;
+ let (x1568, x1569) = fiat_p384_mulx_u32(x1540, 0xffffffff);
+ let mut x1570: u32 = 0;
+ let mut x1571: u32 = 0;
+ let (x1570, x1571) = fiat_p384_mulx_u32(x1540, 0xffffffff);
+ let mut x1572: u32 = 0;
+ let mut x1573: u32 = 0;
+ let (x1572, x1573) = fiat_p384_mulx_u32(x1540, 0xffffffff);
+ let mut x1574: u32 = 0;
+ let mut x1575: u32 = 0;
+ let (x1574, x1575) = fiat_p384_mulx_u32(x1540, 0xffffffff);
+ let mut x1576: u32 = 0;
+ let mut x1577: u32 = 0;
+ let (x1576, x1577) = fiat_p384_mulx_u32(x1540, 0xffffffff);
+ let mut x1578: u32 = 0;
+ let mut x1579: u32 = 0;
+ let (x1578, x1579) = fiat_p384_mulx_u32(x1540, 0xffffffff);
+ let mut x1580: u32 = 0;
+ let mut x1581: u32 = 0;
+ let (x1580, x1581) = fiat_p384_mulx_u32(x1540, 0xfffffffe);
+ let mut x1582: u32 = 0;
+ let mut x1583: u32 = 0;
+ let (x1582, x1583) = fiat_p384_mulx_u32(x1540, 0xffffffff);
+ let mut x1584: u32 = 0;
+ let mut x1585: u32 = 0;
+ let (x1584, x1585) = fiat_p384_mulx_u32(x1540, 0xffffffff);
+ let mut x1586: u32 = 0;
+ let mut x1587: fiat_p384_u1 = 0;
+ let (x1586, x1587) = fiat_p384_addcarryx_u32(0x0, x1583, x1580);
+ let mut x1588: u32 = 0;
+ let mut x1589: fiat_p384_u1 = 0;
+ let (x1588, x1589) = fiat_p384_addcarryx_u32(x1587, x1581, x1578);
+ let mut x1590: u32 = 0;
+ let mut x1591: fiat_p384_u1 = 0;
+ let (x1590, x1591) = fiat_p384_addcarryx_u32(x1589, x1579, x1576);
+ let mut x1592: u32 = 0;
+ let mut x1593: fiat_p384_u1 = 0;
+ let (x1592, x1593) = fiat_p384_addcarryx_u32(x1591, x1577, x1574);
+ let mut x1594: u32 = 0;
+ let mut x1595: fiat_p384_u1 = 0;
+ let (x1594, x1595) = fiat_p384_addcarryx_u32(x1593, x1575, x1572);
+ let mut x1596: u32 = 0;
+ let mut x1597: fiat_p384_u1 = 0;
+ let (x1596, x1597) = fiat_p384_addcarryx_u32(x1595, x1573, x1570);
+ let mut x1598: u32 = 0;
+ let mut x1599: fiat_p384_u1 = 0;
+ let (x1598, x1599) = fiat_p384_addcarryx_u32(x1597, x1571, x1568);
+ let mut x1600: u32 = 0;
+ let mut x1601: fiat_p384_u1 = 0;
+ let (x1600, x1601) = fiat_p384_addcarryx_u32(x1599, x1569, x1566);
+ let x1602: u32 = ((x1601 as u32) + x1567);
+ let mut x1603: u32 = 0;
+ let mut x1604: fiat_p384_u1 = 0;
+ let (x1603, x1604) = fiat_p384_addcarryx_u32(0x0, x1540, x1584);
+ let mut x1605: u32 = 0;
+ let mut x1606: fiat_p384_u1 = 0;
+ let (x1605, x1606) = fiat_p384_addcarryx_u32(x1604, x1542, x1585);
+ let mut x1607: u32 = 0;
+ let mut x1608: fiat_p384_u1 = 0;
+ let (x1607, x1608) = fiat_p384_addcarryx_u32(x1606, x1544, (0x0 as u32));
+ let mut x1609: u32 = 0;
+ let mut x1610: fiat_p384_u1 = 0;
+ let (x1609, x1610) = fiat_p384_addcarryx_u32(x1608, x1546, x1582);
+ let mut x1611: u32 = 0;
+ let mut x1612: fiat_p384_u1 = 0;
+ let (x1611, x1612) = fiat_p384_addcarryx_u32(x1610, x1548, x1586);
+ let mut x1613: u32 = 0;
+ let mut x1614: fiat_p384_u1 = 0;
+ let (x1613, x1614) = fiat_p384_addcarryx_u32(x1612, x1550, x1588);
+ let mut x1615: u32 = 0;
+ let mut x1616: fiat_p384_u1 = 0;
+ let (x1615, x1616) = fiat_p384_addcarryx_u32(x1614, x1552, x1590);
+ let mut x1617: u32 = 0;
+ let mut x1618: fiat_p384_u1 = 0;
+ let (x1617, x1618) = fiat_p384_addcarryx_u32(x1616, x1554, x1592);
+ let mut x1619: u32 = 0;
+ let mut x1620: fiat_p384_u1 = 0;
+ let (x1619, x1620) = fiat_p384_addcarryx_u32(x1618, x1556, x1594);
+ let mut x1621: u32 = 0;
+ let mut x1622: fiat_p384_u1 = 0;
+ let (x1621, x1622) = fiat_p384_addcarryx_u32(x1620, x1558, x1596);
+ let mut x1623: u32 = 0;
+ let mut x1624: fiat_p384_u1 = 0;
+ let (x1623, x1624) = fiat_p384_addcarryx_u32(x1622, x1560, x1598);
+ let mut x1625: u32 = 0;
+ let mut x1626: fiat_p384_u1 = 0;
+ let (x1625, x1626) = fiat_p384_addcarryx_u32(x1624, x1562, x1600);
+ let mut x1627: u32 = 0;
+ let mut x1628: fiat_p384_u1 = 0;
+ let (x1627, x1628) = fiat_p384_addcarryx_u32(x1626, x1564, x1602);
+ let x1629: u32 = ((x1628 as u32) + (x1565 as u32));
+ let mut x1630: u32 = 0;
+ let mut x1631: fiat_p384_u1 = 0;
+ let (x1630, x1631) = fiat_p384_subborrowx_u32(0x0, x1605, 0xffffffff);
+ let mut x1632: u32 = 0;
+ let mut x1633: fiat_p384_u1 = 0;
+ let (x1632, x1633) = fiat_p384_subborrowx_u32(x1631, x1607, (0x0 as u32));
+ let mut x1634: u32 = 0;
+ let mut x1635: fiat_p384_u1 = 0;
+ let (x1634, x1635) = fiat_p384_subborrowx_u32(x1633, x1609, (0x0 as u32));
+ let mut x1636: u32 = 0;
+ let mut x1637: fiat_p384_u1 = 0;
+ let (x1636, x1637) = fiat_p384_subborrowx_u32(x1635, x1611, 0xffffffff);
+ let mut x1638: u32 = 0;
+ let mut x1639: fiat_p384_u1 = 0;
+ let (x1638, x1639) = fiat_p384_subborrowx_u32(x1637, x1613, 0xfffffffe);
+ let mut x1640: u32 = 0;
+ let mut x1641: fiat_p384_u1 = 0;
+ let (x1640, x1641) = fiat_p384_subborrowx_u32(x1639, x1615, 0xffffffff);
+ let mut x1642: u32 = 0;
+ let mut x1643: fiat_p384_u1 = 0;
+ let (x1642, x1643) = fiat_p384_subborrowx_u32(x1641, x1617, 0xffffffff);
+ let mut x1644: u32 = 0;
+ let mut x1645: fiat_p384_u1 = 0;
+ let (x1644, x1645) = fiat_p384_subborrowx_u32(x1643, x1619, 0xffffffff);
+ let mut x1646: u32 = 0;
+ let mut x1647: fiat_p384_u1 = 0;
+ let (x1646, x1647) = fiat_p384_subborrowx_u32(x1645, x1621, 0xffffffff);
+ let mut x1648: u32 = 0;
+ let mut x1649: fiat_p384_u1 = 0;
+ let (x1648, x1649) = fiat_p384_subborrowx_u32(x1647, x1623, 0xffffffff);
+ let mut x1650: u32 = 0;
+ let mut x1651: fiat_p384_u1 = 0;
+ let (x1650, x1651) = fiat_p384_subborrowx_u32(x1649, x1625, 0xffffffff);
+ let mut x1652: u32 = 0;
+ let mut x1653: fiat_p384_u1 = 0;
+ let (x1652, x1653) = fiat_p384_subborrowx_u32(x1651, x1627, 0xffffffff);
+ let mut x1654: u32 = 0;
+ let mut x1655: fiat_p384_u1 = 0;
+ let (x1654, x1655) = fiat_p384_subborrowx_u32(x1653, x1629, (0x0 as u32));
+ let mut x1656: u32 = 0;
+ let (x1656) = fiat_p384_cmovznz_u32(x1655, x1630, x1605);
+ let mut x1657: u32 = 0;
+ let (x1657) = fiat_p384_cmovznz_u32(x1655, x1632, x1607);
+ let mut x1658: u32 = 0;
+ let (x1658) = fiat_p384_cmovznz_u32(x1655, x1634, x1609);
+ let mut x1659: u32 = 0;
+ let (x1659) = fiat_p384_cmovznz_u32(x1655, x1636, x1611);
+ let mut x1660: u32 = 0;
+ let (x1660) = fiat_p384_cmovznz_u32(x1655, x1638, x1613);
+ let mut x1661: u32 = 0;
+ let (x1661) = fiat_p384_cmovznz_u32(x1655, x1640, x1615);
+ let mut x1662: u32 = 0;
+ let (x1662) = fiat_p384_cmovznz_u32(x1655, x1642, x1617);
+ let mut x1663: u32 = 0;
+ let (x1663) = fiat_p384_cmovznz_u32(x1655, x1644, x1619);
+ let mut x1664: u32 = 0;
+ let (x1664) = fiat_p384_cmovznz_u32(x1655, x1646, x1621);
+ let mut x1665: u32 = 0;
+ let (x1665) = fiat_p384_cmovznz_u32(x1655, x1648, x1623);
+ let mut x1666: u32 = 0;
+ let (x1666) = fiat_p384_cmovznz_u32(x1655, x1650, x1625);
+ let mut x1667: u32 = 0;
+ let (x1667) = fiat_p384_cmovznz_u32(x1655, x1652, x1627);
+ out1[0] = x1656;
+ out1[1] = x1657;
+ out1[2] = x1658;
+ out1[3] = x1659;
+ out1[4] = x1660;
+ out1[5] = x1661;
+ out1[6] = x1662;
+ out1[7] = x1663;
+ out1[8] = x1664;
+ out1[9] = x1665;
+ out1[10] = x1666;
+ out1[11] = x1667;
+ out1
+}
+#[doc = " The function fiat_p384_square squares a field element in the Montgomery domain."]
+#[doc = ""]
+#[doc = " Preconditions:"]
+#[doc = " 0 ≤ eval arg1 < m"]
+#[doc = " Postconditions:"]
+#[doc = " eval (from_montgomery out1) mod m = (eval (from_montgomery arg1) * eval (from_montgomery arg1)) mod m"]
+#[doc = " 0 ≤ eval out1 < m"]
+#[doc = ""]
+#[inline]
+pub const fn fiat_p384_square(
+ arg1: &fiat_p384_montgomery_domain_field_element,
+) -> fiat_p384_montgomery_domain_field_element {
+ let mut out1: fiat_p384_montgomery_domain_field_element = [0; 12];
+ let x1: u32 = (arg1[1]);
+ let x2: u32 = (arg1[2]);
+ let x3: u32 = (arg1[3]);
+ let x4: u32 = (arg1[4]);
+ let x5: u32 = (arg1[5]);
+ let x6: u32 = (arg1[6]);
+ let x7: u32 = (arg1[7]);
+ let x8: u32 = (arg1[8]);
+ let x9: u32 = (arg1[9]);
+ let x10: u32 = (arg1[10]);
+ let x11: u32 = (arg1[11]);
+ let x12: u32 = (arg1[0]);
+ let mut x13: u32 = 0;
+ let mut x14: u32 = 0;
+ let (x13, x14) = fiat_p384_mulx_u32(x12, (arg1[11]));
+ let mut x15: u32 = 0;
+ let mut x16: u32 = 0;
+ let (x15, x16) = fiat_p384_mulx_u32(x12, (arg1[10]));
+ let mut x17: u32 = 0;
+ let mut x18: u32 = 0;
+ let (x17, x18) = fiat_p384_mulx_u32(x12, (arg1[9]));
+ let mut x19: u32 = 0;
+ let mut x20: u32 = 0;
+ let (x19, x20) = fiat_p384_mulx_u32(x12, (arg1[8]));
+ let mut x21: u32 = 0;
+ let mut x22: u32 = 0;
+ let (x21, x22) = fiat_p384_mulx_u32(x12, (arg1[7]));
+ let mut x23: u32 = 0;
+ let mut x24: u32 = 0;
+ let (x23, x24) = fiat_p384_mulx_u32(x12, (arg1[6]));
+ let mut x25: u32 = 0;
+ let mut x26: u32 = 0;
+ let (x25, x26) = fiat_p384_mulx_u32(x12, (arg1[5]));
+ let mut x27: u32 = 0;
+ let mut x28: u32 = 0;
+ let (x27, x28) = fiat_p384_mulx_u32(x12, (arg1[4]));
+ let mut x29: u32 = 0;
+ let mut x30: u32 = 0;
+ let (x29, x30) = fiat_p384_mulx_u32(x12, (arg1[3]));
+ let mut x31: u32 = 0;
+ let mut x32: u32 = 0;
+ let (x31, x32) = fiat_p384_mulx_u32(x12, (arg1[2]));
+ let mut x33: u32 = 0;
+ let mut x34: u32 = 0;
+ let (x33, x34) = fiat_p384_mulx_u32(x12, (arg1[1]));
+ let mut x35: u32 = 0;
+ let mut x36: u32 = 0;
+ let (x35, x36) = fiat_p384_mulx_u32(x12, (arg1[0]));
+ let mut x37: u32 = 0;
+ let mut x38: fiat_p384_u1 = 0;
+ let (x37, x38) = fiat_p384_addcarryx_u32(0x0, x36, x33);
+ let mut x39: u32 = 0;
+ let mut x40: fiat_p384_u1 = 0;
+ let (x39, x40) = fiat_p384_addcarryx_u32(x38, x34, x31);
+ let mut x41: u32 = 0;
+ let mut x42: fiat_p384_u1 = 0;
+ let (x41, x42) = fiat_p384_addcarryx_u32(x40, x32, x29);
+ let mut x43: u32 = 0;
+ let mut x44: fiat_p384_u1 = 0;
+ let (x43, x44) = fiat_p384_addcarryx_u32(x42, x30, x27);
+ let mut x45: u32 = 0;
+ let mut x46: fiat_p384_u1 = 0;
+ let (x45, x46) = fiat_p384_addcarryx_u32(x44, x28, x25);
+ let mut x47: u32 = 0;
+ let mut x48: fiat_p384_u1 = 0;
+ let (x47, x48) = fiat_p384_addcarryx_u32(x46, x26, x23);
+ let mut x49: u32 = 0;
+ let mut x50: fiat_p384_u1 = 0;
+ let (x49, x50) = fiat_p384_addcarryx_u32(x48, x24, x21);
+ let mut x51: u32 = 0;
+ let mut x52: fiat_p384_u1 = 0;
+ let (x51, x52) = fiat_p384_addcarryx_u32(x50, x22, x19);
+ let mut x53: u32 = 0;
+ let mut x54: fiat_p384_u1 = 0;
+ let (x53, x54) = fiat_p384_addcarryx_u32(x52, x20, x17);
+ let mut x55: u32 = 0;
+ let mut x56: fiat_p384_u1 = 0;
+ let (x55, x56) = fiat_p384_addcarryx_u32(x54, x18, x15);
+ let mut x57: u32 = 0;
+ let mut x58: fiat_p384_u1 = 0;
+ let (x57, x58) = fiat_p384_addcarryx_u32(x56, x16, x13);
+ let x59: u32 = ((x58 as u32) + x14);
+ let mut x60: u32 = 0;
+ let mut x61: u32 = 0;
+ let (x60, x61) = fiat_p384_mulx_u32(x35, 0xffffffff);
+ let mut x62: u32 = 0;
+ let mut x63: u32 = 0;
+ let (x62, x63) = fiat_p384_mulx_u32(x35, 0xffffffff);
+ let mut x64: u32 = 0;
+ let mut x65: u32 = 0;
+ let (x64, x65) = fiat_p384_mulx_u32(x35, 0xffffffff);
+ let mut x66: u32 = 0;
+ let mut x67: u32 = 0;
+ let (x66, x67) = fiat_p384_mulx_u32(x35, 0xffffffff);
+ let mut x68: u32 = 0;
+ let mut x69: u32 = 0;
+ let (x68, x69) = fiat_p384_mulx_u32(x35, 0xffffffff);
+ let mut x70: u32 = 0;
+ let mut x71: u32 = 0;
+ let (x70, x71) = fiat_p384_mulx_u32(x35, 0xffffffff);
+ let mut x72: u32 = 0;
+ let mut x73: u32 = 0;
+ let (x72, x73) = fiat_p384_mulx_u32(x35, 0xffffffff);
+ let mut x74: u32 = 0;
+ let mut x75: u32 = 0;
+ let (x74, x75) = fiat_p384_mulx_u32(x35, 0xfffffffe);
+ let mut x76: u32 = 0;
+ let mut x77: u32 = 0;
+ let (x76, x77) = fiat_p384_mulx_u32(x35, 0xffffffff);
+ let mut x78: u32 = 0;
+ let mut x79: u32 = 0;
+ let (x78, x79) = fiat_p384_mulx_u32(x35, 0xffffffff);
+ let mut x80: u32 = 0;
+ let mut x81: fiat_p384_u1 = 0;
+ let (x80, x81) = fiat_p384_addcarryx_u32(0x0, x77, x74);
+ let mut x82: u32 = 0;
+ let mut x83: fiat_p384_u1 = 0;
+ let (x82, x83) = fiat_p384_addcarryx_u32(x81, x75, x72);
+ let mut x84: u32 = 0;
+ let mut x85: fiat_p384_u1 = 0;
+ let (x84, x85) = fiat_p384_addcarryx_u32(x83, x73, x70);
+ let mut x86: u32 = 0;
+ let mut x87: fiat_p384_u1 = 0;
+ let (x86, x87) = fiat_p384_addcarryx_u32(x85, x71, x68);
+ let mut x88: u32 = 0;
+ let mut x89: fiat_p384_u1 = 0;
+ let (x88, x89) = fiat_p384_addcarryx_u32(x87, x69, x66);
+ let mut x90: u32 = 0;
+ let mut x91: fiat_p384_u1 = 0;
+ let (x90, x91) = fiat_p384_addcarryx_u32(x89, x67, x64);
+ let mut x92: u32 = 0;
+ let mut x93: fiat_p384_u1 = 0;
+ let (x92, x93) = fiat_p384_addcarryx_u32(x91, x65, x62);
+ let mut x94: u32 = 0;
+ let mut x95: fiat_p384_u1 = 0;
+ let (x94, x95) = fiat_p384_addcarryx_u32(x93, x63, x60);
+ let x96: u32 = ((x95 as u32) + x61);
+ let mut x97: u32 = 0;
+ let mut x98: fiat_p384_u1 = 0;
+ let (x97, x98) = fiat_p384_addcarryx_u32(0x0, x35, x78);
+ let mut x99: u32 = 0;
+ let mut x100: fiat_p384_u1 = 0;
+ let (x99, x100) = fiat_p384_addcarryx_u32(x98, x37, x79);
+ let mut x101: u32 = 0;
+ let mut x102: fiat_p384_u1 = 0;
+ let (x101, x102) = fiat_p384_addcarryx_u32(x100, x39, (0x0 as u32));
+ let mut x103: u32 = 0;
+ let mut x104: fiat_p384_u1 = 0;
+ let (x103, x104) = fiat_p384_addcarryx_u32(x102, x41, x76);
+ let mut x105: u32 = 0;
+ let mut x106: fiat_p384_u1 = 0;
+ let (x105, x106) = fiat_p384_addcarryx_u32(x104, x43, x80);
+ let mut x107: u32 = 0;
+ let mut x108: fiat_p384_u1 = 0;
+ let (x107, x108) = fiat_p384_addcarryx_u32(x106, x45, x82);
+ let mut x109: u32 = 0;
+ let mut x110: fiat_p384_u1 = 0;
+ let (x109, x110) = fiat_p384_addcarryx_u32(x108, x47, x84);
+ let mut x111: u32 = 0;
+ let mut x112: fiat_p384_u1 = 0;
+ let (x111, x112) = fiat_p384_addcarryx_u32(x110, x49, x86);
+ let mut x113: u32 = 0;
+ let mut x114: fiat_p384_u1 = 0;
+ let (x113, x114) = fiat_p384_addcarryx_u32(x112, x51, x88);
+ let mut x115: u32 = 0;
+ let mut x116: fiat_p384_u1 = 0;
+ let (x115, x116) = fiat_p384_addcarryx_u32(x114, x53, x90);
+ let mut x117: u32 = 0;
+ let mut x118: fiat_p384_u1 = 0;
+ let (x117, x118) = fiat_p384_addcarryx_u32(x116, x55, x92);
+ let mut x119: u32 = 0;
+ let mut x120: fiat_p384_u1 = 0;
+ let (x119, x120) = fiat_p384_addcarryx_u32(x118, x57, x94);
+ let mut x121: u32 = 0;
+ let mut x122: fiat_p384_u1 = 0;
+ let (x121, x122) = fiat_p384_addcarryx_u32(x120, x59, x96);
+ let mut x123: u32 = 0;
+ let mut x124: u32 = 0;
+ let (x123, x124) = fiat_p384_mulx_u32(x1, (arg1[11]));
+ let mut x125: u32 = 0;
+ let mut x126: u32 = 0;
+ let (x125, x126) = fiat_p384_mulx_u32(x1, (arg1[10]));
+ let mut x127: u32 = 0;
+ let mut x128: u32 = 0;
+ let (x127, x128) = fiat_p384_mulx_u32(x1, (arg1[9]));
+ let mut x129: u32 = 0;
+ let mut x130: u32 = 0;
+ let (x129, x130) = fiat_p384_mulx_u32(x1, (arg1[8]));
+ let mut x131: u32 = 0;
+ let mut x132: u32 = 0;
+ let (x131, x132) = fiat_p384_mulx_u32(x1, (arg1[7]));
+ let mut x133: u32 = 0;
+ let mut x134: u32 = 0;
+ let (x133, x134) = fiat_p384_mulx_u32(x1, (arg1[6]));
+ let mut x135: u32 = 0;
+ let mut x136: u32 = 0;
+ let (x135, x136) = fiat_p384_mulx_u32(x1, (arg1[5]));
+ let mut x137: u32 = 0;
+ let mut x138: u32 = 0;
+ let (x137, x138) = fiat_p384_mulx_u32(x1, (arg1[4]));
+ let mut x139: u32 = 0;
+ let mut x140: u32 = 0;
+ let (x139, x140) = fiat_p384_mulx_u32(x1, (arg1[3]));
+ let mut x141: u32 = 0;
+ let mut x142: u32 = 0;
+ let (x141, x142) = fiat_p384_mulx_u32(x1, (arg1[2]));
+ let mut x143: u32 = 0;
+ let mut x144: u32 = 0;
+ let (x143, x144) = fiat_p384_mulx_u32(x1, (arg1[1]));
+ let mut x145: u32 = 0;
+ let mut x146: u32 = 0;
+ let (x145, x146) = fiat_p384_mulx_u32(x1, (arg1[0]));
+ let mut x147: u32 = 0;
+ let mut x148: fiat_p384_u1 = 0;
+ let (x147, x148) = fiat_p384_addcarryx_u32(0x0, x146, x143);
+ let mut x149: u32 = 0;
+ let mut x150: fiat_p384_u1 = 0;
+ let (x149, x150) = fiat_p384_addcarryx_u32(x148, x144, x141);
+ let mut x151: u32 = 0;
+ let mut x152: fiat_p384_u1 = 0;
+ let (x151, x152) = fiat_p384_addcarryx_u32(x150, x142, x139);
+ let mut x153: u32 = 0;
+ let mut x154: fiat_p384_u1 = 0;
+ let (x153, x154) = fiat_p384_addcarryx_u32(x152, x140, x137);
+ let mut x155: u32 = 0;
+ let mut x156: fiat_p384_u1 = 0;
+ let (x155, x156) = fiat_p384_addcarryx_u32(x154, x138, x135);
+ let mut x157: u32 = 0;
+ let mut x158: fiat_p384_u1 = 0;
+ let (x157, x158) = fiat_p384_addcarryx_u32(x156, x136, x133);
+ let mut x159: u32 = 0;
+ let mut x160: fiat_p384_u1 = 0;
+ let (x159, x160) = fiat_p384_addcarryx_u32(x158, x134, x131);
+ let mut x161: u32 = 0;
+ let mut x162: fiat_p384_u1 = 0;
+ let (x161, x162) = fiat_p384_addcarryx_u32(x160, x132, x129);
+ let mut x163: u32 = 0;
+ let mut x164: fiat_p384_u1 = 0;
+ let (x163, x164) = fiat_p384_addcarryx_u32(x162, x130, x127);
+ let mut x165: u32 = 0;
+ let mut x166: fiat_p384_u1 = 0;
+ let (x165, x166) = fiat_p384_addcarryx_u32(x164, x128, x125);
+ let mut x167: u32 = 0;
+ let mut x168: fiat_p384_u1 = 0;
+ let (x167, x168) = fiat_p384_addcarryx_u32(x166, x126, x123);
+ let x169: u32 = ((x168 as u32) + x124);
+ let mut x170: u32 = 0;
+ let mut x171: fiat_p384_u1 = 0;
+ let (x170, x171) = fiat_p384_addcarryx_u32(0x0, x99, x145);
+ let mut x172: u32 = 0;
+ let mut x173: fiat_p384_u1 = 0;
+ let (x172, x173) = fiat_p384_addcarryx_u32(x171, x101, x147);
+ let mut x174: u32 = 0;
+ let mut x175: fiat_p384_u1 = 0;
+ let (x174, x175) = fiat_p384_addcarryx_u32(x173, x103, x149);
+ let mut x176: u32 = 0;
+ let mut x177: fiat_p384_u1 = 0;
+ let (x176, x177) = fiat_p384_addcarryx_u32(x175, x105, x151);
+ let mut x178: u32 = 0;
+ let mut x179: fiat_p384_u1 = 0;
+ let (x178, x179) = fiat_p384_addcarryx_u32(x177, x107, x153);
+ let mut x180: u32 = 0;
+ let mut x181: fiat_p384_u1 = 0;
+ let (x180, x181) = fiat_p384_addcarryx_u32(x179, x109, x155);
+ let mut x182: u32 = 0;
+ let mut x183: fiat_p384_u1 = 0;
+ let (x182, x183) = fiat_p384_addcarryx_u32(x181, x111, x157);
+ let mut x184: u32 = 0;
+ let mut x185: fiat_p384_u1 = 0;
+ let (x184, x185) = fiat_p384_addcarryx_u32(x183, x113, x159);
+ let mut x186: u32 = 0;
+ let mut x187: fiat_p384_u1 = 0;
+ let (x186, x187) = fiat_p384_addcarryx_u32(x185, x115, x161);
+ let mut x188: u32 = 0;
+ let mut x189: fiat_p384_u1 = 0;
+ let (x188, x189) = fiat_p384_addcarryx_u32(x187, x117, x163);
+ let mut x190: u32 = 0;
+ let mut x191: fiat_p384_u1 = 0;
+ let (x190, x191) = fiat_p384_addcarryx_u32(x189, x119, x165);
+ let mut x192: u32 = 0;
+ let mut x193: fiat_p384_u1 = 0;
+ let (x192, x193) = fiat_p384_addcarryx_u32(x191, x121, x167);
+ let mut x194: u32 = 0;
+ let mut x195: fiat_p384_u1 = 0;
+ let (x194, x195) = fiat_p384_addcarryx_u32(x193, (x122 as u32), x169);
+ let mut x196: u32 = 0;
+ let mut x197: u32 = 0;
+ let (x196, x197) = fiat_p384_mulx_u32(x170, 0xffffffff);
+ let mut x198: u32 = 0;
+ let mut x199: u32 = 0;
+ let (x198, x199) = fiat_p384_mulx_u32(x170, 0xffffffff);
+ let mut x200: u32 = 0;
+ let mut x201: u32 = 0;
+ let (x200, x201) = fiat_p384_mulx_u32(x170, 0xffffffff);
+ let mut x202: u32 = 0;
+ let mut x203: u32 = 0;
+ let (x202, x203) = fiat_p384_mulx_u32(x170, 0xffffffff);
+ let mut x204: u32 = 0;
+ let mut x205: u32 = 0;
+ let (x204, x205) = fiat_p384_mulx_u32(x170, 0xffffffff);
+ let mut x206: u32 = 0;
+ let mut x207: u32 = 0;
+ let (x206, x207) = fiat_p384_mulx_u32(x170, 0xffffffff);
+ let mut x208: u32 = 0;
+ let mut x209: u32 = 0;
+ let (x208, x209) = fiat_p384_mulx_u32(x170, 0xffffffff);
+ let mut x210: u32 = 0;
+ let mut x211: u32 = 0;
+ let (x210, x211) = fiat_p384_mulx_u32(x170, 0xfffffffe);
+ let mut x212: u32 = 0;
+ let mut x213: u32 = 0;
+ let (x212, x213) = fiat_p384_mulx_u32(x170, 0xffffffff);
+ let mut x214: u32 = 0;
+ let mut x215: u32 = 0;
+ let (x214, x215) = fiat_p384_mulx_u32(x170, 0xffffffff);
+ let mut x216: u32 = 0;
+ let mut x217: fiat_p384_u1 = 0;
+ let (x216, x217) = fiat_p384_addcarryx_u32(0x0, x213, x210);
+ let mut x218: u32 = 0;
+ let mut x219: fiat_p384_u1 = 0;
+ let (x218, x219) = fiat_p384_addcarryx_u32(x217, x211, x208);
+ let mut x220: u32 = 0;
+ let mut x221: fiat_p384_u1 = 0;
+ let (x220, x221) = fiat_p384_addcarryx_u32(x219, x209, x206);
+ let mut x222: u32 = 0;
+ let mut x223: fiat_p384_u1 = 0;
+ let (x222, x223) = fiat_p384_addcarryx_u32(x221, x207, x204);
+ let mut x224: u32 = 0;
+ let mut x225: fiat_p384_u1 = 0;
+ let (x224, x225) = fiat_p384_addcarryx_u32(x223, x205, x202);
+ let mut x226: u32 = 0;
+ let mut x227: fiat_p384_u1 = 0;
+ let (x226, x227) = fiat_p384_addcarryx_u32(x225, x203, x200);
+ let mut x228: u32 = 0;
+ let mut x229: fiat_p384_u1 = 0;
+ let (x228, x229) = fiat_p384_addcarryx_u32(x227, x201, x198);
+ let mut x230: u32 = 0;
+ let mut x231: fiat_p384_u1 = 0;
+ let (x230, x231) = fiat_p384_addcarryx_u32(x229, x199, x196);
+ let x232: u32 = ((x231 as u32) + x197);
+ let mut x233: u32 = 0;
+ let mut x234: fiat_p384_u1 = 0;
+ let (x233, x234) = fiat_p384_addcarryx_u32(0x0, x170, x214);
+ let mut x235: u32 = 0;
+ let mut x236: fiat_p384_u1 = 0;
+ let (x235, x236) = fiat_p384_addcarryx_u32(x234, x172, x215);
+ let mut x237: u32 = 0;
+ let mut x238: fiat_p384_u1 = 0;
+ let (x237, x238) = fiat_p384_addcarryx_u32(x236, x174, (0x0 as u32));
+ let mut x239: u32 = 0;
+ let mut x240: fiat_p384_u1 = 0;
+ let (x239, x240) = fiat_p384_addcarryx_u32(x238, x176, x212);
+ let mut x241: u32 = 0;
+ let mut x242: fiat_p384_u1 = 0;
+ let (x241, x242) = fiat_p384_addcarryx_u32(x240, x178, x216);
+ let mut x243: u32 = 0;
+ let mut x244: fiat_p384_u1 = 0;
+ let (x243, x244) = fiat_p384_addcarryx_u32(x242, x180, x218);
+ let mut x245: u32 = 0;
+ let mut x246: fiat_p384_u1 = 0;
+ let (x245, x246) = fiat_p384_addcarryx_u32(x244, x182, x220);
+ let mut x247: u32 = 0;
+ let mut x248: fiat_p384_u1 = 0;
+ let (x247, x248) = fiat_p384_addcarryx_u32(x246, x184, x222);
+ let mut x249: u32 = 0;
+ let mut x250: fiat_p384_u1 = 0;
+ let (x249, x250) = fiat_p384_addcarryx_u32(x248, x186, x224);
+ let mut x251: u32 = 0;
+ let mut x252: fiat_p384_u1 = 0;
+ let (x251, x252) = fiat_p384_addcarryx_u32(x250, x188, x226);
+ let mut x253: u32 = 0;
+ let mut x254: fiat_p384_u1 = 0;
+ let (x253, x254) = fiat_p384_addcarryx_u32(x252, x190, x228);
+ let mut x255: u32 = 0;
+ let mut x256: fiat_p384_u1 = 0;
+ let (x255, x256) = fiat_p384_addcarryx_u32(x254, x192, x230);
+ let mut x257: u32 = 0;
+ let mut x258: fiat_p384_u1 = 0;
+ let (x257, x258) = fiat_p384_addcarryx_u32(x256, x194, x232);
+ let x259: u32 = ((x258 as u32) + (x195 as u32));
+ let mut x260: u32 = 0;
+ let mut x261: u32 = 0;
+ let (x260, x261) = fiat_p384_mulx_u32(x2, (arg1[11]));
+ let mut x262: u32 = 0;
+ let mut x263: u32 = 0;
+ let (x262, x263) = fiat_p384_mulx_u32(x2, (arg1[10]));
+ let mut x264: u32 = 0;
+ let mut x265: u32 = 0;
+ let (x264, x265) = fiat_p384_mulx_u32(x2, (arg1[9]));
+ let mut x266: u32 = 0;
+ let mut x267: u32 = 0;
+ let (x266, x267) = fiat_p384_mulx_u32(x2, (arg1[8]));
+ let mut x268: u32 = 0;
+ let mut x269: u32 = 0;
+ let (x268, x269) = fiat_p384_mulx_u32(x2, (arg1[7]));
+ let mut x270: u32 = 0;
+ let mut x271: u32 = 0;
+ let (x270, x271) = fiat_p384_mulx_u32(x2, (arg1[6]));
+ let mut x272: u32 = 0;
+ let mut x273: u32 = 0;
+ let (x272, x273) = fiat_p384_mulx_u32(x2, (arg1[5]));
+ let mut x274: u32 = 0;
+ let mut x275: u32 = 0;
+ let (x274, x275) = fiat_p384_mulx_u32(x2, (arg1[4]));
+ let mut x276: u32 = 0;
+ let mut x277: u32 = 0;
+ let (x276, x277) = fiat_p384_mulx_u32(x2, (arg1[3]));
+ let mut x278: u32 = 0;
+ let mut x279: u32 = 0;
+ let (x278, x279) = fiat_p384_mulx_u32(x2, (arg1[2]));
+ let mut x280: u32 = 0;
+ let mut x281: u32 = 0;
+ let (x280, x281) = fiat_p384_mulx_u32(x2, (arg1[1]));
+ let mut x282: u32 = 0;
+ let mut x283: u32 = 0;
+ let (x282, x283) = fiat_p384_mulx_u32(x2, (arg1[0]));
+ let mut x284: u32 = 0;
+ let mut x285: fiat_p384_u1 = 0;
+ let (x284, x285) = fiat_p384_addcarryx_u32(0x0, x283, x280);
+ let mut x286: u32 = 0;
+ let mut x287: fiat_p384_u1 = 0;
+ let (x286, x287) = fiat_p384_addcarryx_u32(x285, x281, x278);
+ let mut x288: u32 = 0;
+ let mut x289: fiat_p384_u1 = 0;
+ let (x288, x289) = fiat_p384_addcarryx_u32(x287, x279, x276);
+ let mut x290: u32 = 0;
+ let mut x291: fiat_p384_u1 = 0;
+ let (x290, x291) = fiat_p384_addcarryx_u32(x289, x277, x274);
+ let mut x292: u32 = 0;
+ let mut x293: fiat_p384_u1 = 0;
+ let (x292, x293) = fiat_p384_addcarryx_u32(x291, x275, x272);
+ let mut x294: u32 = 0;
+ let mut x295: fiat_p384_u1 = 0;
+ let (x294, x295) = fiat_p384_addcarryx_u32(x293, x273, x270);
+ let mut x296: u32 = 0;
+ let mut x297: fiat_p384_u1 = 0;
+ let (x296, x297) = fiat_p384_addcarryx_u32(x295, x271, x268);
+ let mut x298: u32 = 0;
+ let mut x299: fiat_p384_u1 = 0;
+ let (x298, x299) = fiat_p384_addcarryx_u32(x297, x269, x266);
+ let mut x300: u32 = 0;
+ let mut x301: fiat_p384_u1 = 0;
+ let (x300, x301) = fiat_p384_addcarryx_u32(x299, x267, x264);
+ let mut x302: u32 = 0;
+ let mut x303: fiat_p384_u1 = 0;
+ let (x302, x303) = fiat_p384_addcarryx_u32(x301, x265, x262);
+ let mut x304: u32 = 0;
+ let mut x305: fiat_p384_u1 = 0;
+ let (x304, x305) = fiat_p384_addcarryx_u32(x303, x263, x260);
+ let x306: u32 = ((x305 as u32) + x261);
+ let mut x307: u32 = 0;
+ let mut x308: fiat_p384_u1 = 0;
+ let (x307, x308) = fiat_p384_addcarryx_u32(0x0, x235, x282);
+ let mut x309: u32 = 0;
+ let mut x310: fiat_p384_u1 = 0;
+ let (x309, x310) = fiat_p384_addcarryx_u32(x308, x237, x284);
+ let mut x311: u32 = 0;
+ let mut x312: fiat_p384_u1 = 0;
+ let (x311, x312) = fiat_p384_addcarryx_u32(x310, x239, x286);
+ let mut x313: u32 = 0;
+ let mut x314: fiat_p384_u1 = 0;
+ let (x313, x314) = fiat_p384_addcarryx_u32(x312, x241, x288);
+ let mut x315: u32 = 0;
+ let mut x316: fiat_p384_u1 = 0;
+ let (x315, x316) = fiat_p384_addcarryx_u32(x314, x243, x290);
+ let mut x317: u32 = 0;
+ let mut x318: fiat_p384_u1 = 0;
+ let (x317, x318) = fiat_p384_addcarryx_u32(x316, x245, x292);
+ let mut x319: u32 = 0;
+ let mut x320: fiat_p384_u1 = 0;
+ let (x319, x320) = fiat_p384_addcarryx_u32(x318, x247, x294);
+ let mut x321: u32 = 0;
+ let mut x322: fiat_p384_u1 = 0;
+ let (x321, x322) = fiat_p384_addcarryx_u32(x320, x249, x296);
+ let mut x323: u32 = 0;
+ let mut x324: fiat_p384_u1 = 0;
+ let (x323, x324) = fiat_p384_addcarryx_u32(x322, x251, x298);
+ let mut x325: u32 = 0;
+ let mut x326: fiat_p384_u1 = 0;
+ let (x325, x326) = fiat_p384_addcarryx_u32(x324, x253, x300);
+ let mut x327: u32 = 0;
+ let mut x328: fiat_p384_u1 = 0;
+ let (x327, x328) = fiat_p384_addcarryx_u32(x326, x255, x302);
+ let mut x329: u32 = 0;
+ let mut x330: fiat_p384_u1 = 0;
+ let (x329, x330) = fiat_p384_addcarryx_u32(x328, x257, x304);
+ let mut x331: u32 = 0;
+ let mut x332: fiat_p384_u1 = 0;
+ let (x331, x332) = fiat_p384_addcarryx_u32(x330, x259, x306);
+ let mut x333: u32 = 0;
+ let mut x334: u32 = 0;
+ let (x333, x334) = fiat_p384_mulx_u32(x307, 0xffffffff);
+ let mut x335: u32 = 0;
+ let mut x336: u32 = 0;
+ let (x335, x336) = fiat_p384_mulx_u32(x307, 0xffffffff);
+ let mut x337: u32 = 0;
+ let mut x338: u32 = 0;
+ let (x337, x338) = fiat_p384_mulx_u32(x307, 0xffffffff);
+ let mut x339: u32 = 0;
+ let mut x340: u32 = 0;
+ let (x339, x340) = fiat_p384_mulx_u32(x307, 0xffffffff);
+ let mut x341: u32 = 0;
+ let mut x342: u32 = 0;
+ let (x341, x342) = fiat_p384_mulx_u32(x307, 0xffffffff);
+ let mut x343: u32 = 0;
+ let mut x344: u32 = 0;
+ let (x343, x344) = fiat_p384_mulx_u32(x307, 0xffffffff);
+ let mut x345: u32 = 0;
+ let mut x346: u32 = 0;
+ let (x345, x346) = fiat_p384_mulx_u32(x307, 0xffffffff);
+ let mut x347: u32 = 0;
+ let mut x348: u32 = 0;
+ let (x347, x348) = fiat_p384_mulx_u32(x307, 0xfffffffe);
+ let mut x349: u32 = 0;
+ let mut x350: u32 = 0;
+ let (x349, x350) = fiat_p384_mulx_u32(x307, 0xffffffff);
+ let mut x351: u32 = 0;
+ let mut x352: u32 = 0;
+ let (x351, x352) = fiat_p384_mulx_u32(x307, 0xffffffff);
+ let mut x353: u32 = 0;
+ let mut x354: fiat_p384_u1 = 0;
+ let (x353, x354) = fiat_p384_addcarryx_u32(0x0, x350, x347);
+ let mut x355: u32 = 0;
+ let mut x356: fiat_p384_u1 = 0;
+ let (x355, x356) = fiat_p384_addcarryx_u32(x354, x348, x345);
+ let mut x357: u32 = 0;
+ let mut x358: fiat_p384_u1 = 0;
+ let (x357, x358) = fiat_p384_addcarryx_u32(x356, x346, x343);
+ let mut x359: u32 = 0;
+ let mut x360: fiat_p384_u1 = 0;
+ let (x359, x360) = fiat_p384_addcarryx_u32(x358, x344, x341);
+ let mut x361: u32 = 0;
+ let mut x362: fiat_p384_u1 = 0;
+ let (x361, x362) = fiat_p384_addcarryx_u32(x360, x342, x339);
+ let mut x363: u32 = 0;
+ let mut x364: fiat_p384_u1 = 0;
+ let (x363, x364) = fiat_p384_addcarryx_u32(x362, x340, x337);
+ let mut x365: u32 = 0;
+ let mut x366: fiat_p384_u1 = 0;
+ let (x365, x366) = fiat_p384_addcarryx_u32(x364, x338, x335);
+ let mut x367: u32 = 0;
+ let mut x368: fiat_p384_u1 = 0;
+ let (x367, x368) = fiat_p384_addcarryx_u32(x366, x336, x333);
+ let x369: u32 = ((x368 as u32) + x334);
+ let mut x370: u32 = 0;
+ let mut x371: fiat_p384_u1 = 0;
+ let (x370, x371) = fiat_p384_addcarryx_u32(0x0, x307, x351);
+ let mut x372: u32 = 0;
+ let mut x373: fiat_p384_u1 = 0;
+ let (x372, x373) = fiat_p384_addcarryx_u32(x371, x309, x352);
+ let mut x374: u32 = 0;
+ let mut x375: fiat_p384_u1 = 0;
+ let (x374, x375) = fiat_p384_addcarryx_u32(x373, x311, (0x0 as u32));
+ let mut x376: u32 = 0;
+ let mut x377: fiat_p384_u1 = 0;
+ let (x376, x377) = fiat_p384_addcarryx_u32(x375, x313, x349);
+ let mut x378: u32 = 0;
+ let mut x379: fiat_p384_u1 = 0;
+ let (x378, x379) = fiat_p384_addcarryx_u32(x377, x315, x353);
+ let mut x380: u32 = 0;
+ let mut x381: fiat_p384_u1 = 0;
+ let (x380, x381) = fiat_p384_addcarryx_u32(x379, x317, x355);
+ let mut x382: u32 = 0;
+ let mut x383: fiat_p384_u1 = 0;
+ let (x382, x383) = fiat_p384_addcarryx_u32(x381, x319, x357);
+ let mut x384: u32 = 0;
+ let mut x385: fiat_p384_u1 = 0;
+ let (x384, x385) = fiat_p384_addcarryx_u32(x383, x321, x359);
+ let mut x386: u32 = 0;
+ let mut x387: fiat_p384_u1 = 0;
+ let (x386, x387) = fiat_p384_addcarryx_u32(x385, x323, x361);
+ let mut x388: u32 = 0;
+ let mut x389: fiat_p384_u1 = 0;
+ let (x388, x389) = fiat_p384_addcarryx_u32(x387, x325, x363);
+ let mut x390: u32 = 0;
+ let mut x391: fiat_p384_u1 = 0;
+ let (x390, x391) = fiat_p384_addcarryx_u32(x389, x327, x365);
+ let mut x392: u32 = 0;
+ let mut x393: fiat_p384_u1 = 0;
+ let (x392, x393) = fiat_p384_addcarryx_u32(x391, x329, x367);
+ let mut x394: u32 = 0;
+ let mut x395: fiat_p384_u1 = 0;
+ let (x394, x395) = fiat_p384_addcarryx_u32(x393, x331, x369);
+ let x396: u32 = ((x395 as u32) + (x332 as u32));
+ let mut x397: u32 = 0;
+ let mut x398: u32 = 0;
+ let (x397, x398) = fiat_p384_mulx_u32(x3, (arg1[11]));
+ let mut x399: u32 = 0;
+ let mut x400: u32 = 0;
+ let (x399, x400) = fiat_p384_mulx_u32(x3, (arg1[10]));
+ let mut x401: u32 = 0;
+ let mut x402: u32 = 0;
+ let (x401, x402) = fiat_p384_mulx_u32(x3, (arg1[9]));
+ let mut x403: u32 = 0;
+ let mut x404: u32 = 0;
+ let (x403, x404) = fiat_p384_mulx_u32(x3, (arg1[8]));
+ let mut x405: u32 = 0;
+ let mut x406: u32 = 0;
+ let (x405, x406) = fiat_p384_mulx_u32(x3, (arg1[7]));
+ let mut x407: u32 = 0;
+ let mut x408: u32 = 0;
+ let (x407, x408) = fiat_p384_mulx_u32(x3, (arg1[6]));
+ let mut x409: u32 = 0;
+ let mut x410: u32 = 0;
+ let (x409, x410) = fiat_p384_mulx_u32(x3, (arg1[5]));
+ let mut x411: u32 = 0;
+ let mut x412: u32 = 0;
+ let (x411, x412) = fiat_p384_mulx_u32(x3, (arg1[4]));
+ let mut x413: u32 = 0;
+ let mut x414: u32 = 0;
+ let (x413, x414) = fiat_p384_mulx_u32(x3, (arg1[3]));
+ let mut x415: u32 = 0;
+ let mut x416: u32 = 0;
+ let (x415, x416) = fiat_p384_mulx_u32(x3, (arg1[2]));
+ let mut x417: u32 = 0;
+ let mut x418: u32 = 0;
+ let (x417, x418) = fiat_p384_mulx_u32(x3, (arg1[1]));
+ let mut x419: u32 = 0;
+ let mut x420: u32 = 0;
+ let (x419, x420) = fiat_p384_mulx_u32(x3, (arg1[0]));
+ let mut x421: u32 = 0;
+ let mut x422: fiat_p384_u1 = 0;
+ let (x421, x422) = fiat_p384_addcarryx_u32(0x0, x420, x417);
+ let mut x423: u32 = 0;
+ let mut x424: fiat_p384_u1 = 0;
+ let (x423, x424) = fiat_p384_addcarryx_u32(x422, x418, x415);
+ let mut x425: u32 = 0;
+ let mut x426: fiat_p384_u1 = 0;
+ let (x425, x426) = fiat_p384_addcarryx_u32(x424, x416, x413);
+ let mut x427: u32 = 0;
+ let mut x428: fiat_p384_u1 = 0;
+ let (x427, x428) = fiat_p384_addcarryx_u32(x426, x414, x411);
+ let mut x429: u32 = 0;
+ let mut x430: fiat_p384_u1 = 0;
+ let (x429, x430) = fiat_p384_addcarryx_u32(x428, x412, x409);
+ let mut x431: u32 = 0;
+ let mut x432: fiat_p384_u1 = 0;
+ let (x431, x432) = fiat_p384_addcarryx_u32(x430, x410, x407);
+ let mut x433: u32 = 0;
+ let mut x434: fiat_p384_u1 = 0;
+ let (x433, x434) = fiat_p384_addcarryx_u32(x432, x408, x405);
+ let mut x435: u32 = 0;
+ let mut x436: fiat_p384_u1 = 0;
+ let (x435, x436) = fiat_p384_addcarryx_u32(x434, x406, x403);
+ let mut x437: u32 = 0;
+ let mut x438: fiat_p384_u1 = 0;
+ let (x437, x438) = fiat_p384_addcarryx_u32(x436, x404, x401);
+ let mut x439: u32 = 0;
+ let mut x440: fiat_p384_u1 = 0;
+ let (x439, x440) = fiat_p384_addcarryx_u32(x438, x402, x399);
+ let mut x441: u32 = 0;
+ let mut x442: fiat_p384_u1 = 0;
+ let (x441, x442) = fiat_p384_addcarryx_u32(x440, x400, x397);
+ let x443: u32 = ((x442 as u32) + x398);
+ let mut x444: u32 = 0;
+ let mut x445: fiat_p384_u1 = 0;
+ let (x444, x445) = fiat_p384_addcarryx_u32(0x0, x372, x419);
+ let mut x446: u32 = 0;
+ let mut x447: fiat_p384_u1 = 0;
+ let (x446, x447) = fiat_p384_addcarryx_u32(x445, x374, x421);
+ let mut x448: u32 = 0;
+ let mut x449: fiat_p384_u1 = 0;
+ let (x448, x449) = fiat_p384_addcarryx_u32(x447, x376, x423);
+ let mut x450: u32 = 0;
+ let mut x451: fiat_p384_u1 = 0;
+ let (x450, x451) = fiat_p384_addcarryx_u32(x449, x378, x425);
+ let mut x452: u32 = 0;
+ let mut x453: fiat_p384_u1 = 0;
+ let (x452, x453) = fiat_p384_addcarryx_u32(x451, x380, x427);
+ let mut x454: u32 = 0;
+ let mut x455: fiat_p384_u1 = 0;
+ let (x454, x455) = fiat_p384_addcarryx_u32(x453, x382, x429);
+ let mut x456: u32 = 0;
+ let mut x457: fiat_p384_u1 = 0;
+ let (x456, x457) = fiat_p384_addcarryx_u32(x455, x384, x431);
+ let mut x458: u32 = 0;
+ let mut x459: fiat_p384_u1 = 0;
+ let (x458, x459) = fiat_p384_addcarryx_u32(x457, x386, x433);
+ let mut x460: u32 = 0;
+ let mut x461: fiat_p384_u1 = 0;
+ let (x460, x461) = fiat_p384_addcarryx_u32(x459, x388, x435);
+ let mut x462: u32 = 0;
+ let mut x463: fiat_p384_u1 = 0;
+ let (x462, x463) = fiat_p384_addcarryx_u32(x461, x390, x437);
+ let mut x464: u32 = 0;
+ let mut x465: fiat_p384_u1 = 0;
+ let (x464, x465) = fiat_p384_addcarryx_u32(x463, x392, x439);
+ let mut x466: u32 = 0;
+ let mut x467: fiat_p384_u1 = 0;
+ let (x466, x467) = fiat_p384_addcarryx_u32(x465, x394, x441);
+ let mut x468: u32 = 0;
+ let mut x469: fiat_p384_u1 = 0;
+ let (x468, x469) = fiat_p384_addcarryx_u32(x467, x396, x443);
+ let mut x470: u32 = 0;
+ let mut x471: u32 = 0;
+ let (x470, x471) = fiat_p384_mulx_u32(x444, 0xffffffff);
+ let mut x472: u32 = 0;
+ let mut x473: u32 = 0;
+ let (x472, x473) = fiat_p384_mulx_u32(x444, 0xffffffff);
+ let mut x474: u32 = 0;
+ let mut x475: u32 = 0;
+ let (x474, x475) = fiat_p384_mulx_u32(x444, 0xffffffff);
+ let mut x476: u32 = 0;
+ let mut x477: u32 = 0;
+ let (x476, x477) = fiat_p384_mulx_u32(x444, 0xffffffff);
+ let mut x478: u32 = 0;
+ let mut x479: u32 = 0;
+ let (x478, x479) = fiat_p384_mulx_u32(x444, 0xffffffff);
+ let mut x480: u32 = 0;
+ let mut x481: u32 = 0;
+ let (x480, x481) = fiat_p384_mulx_u32(x444, 0xffffffff);
+ let mut x482: u32 = 0;
+ let mut x483: u32 = 0;
+ let (x482, x483) = fiat_p384_mulx_u32(x444, 0xffffffff);
+ let mut x484: u32 = 0;
+ let mut x485: u32 = 0;
+ let (x484, x485) = fiat_p384_mulx_u32(x444, 0xfffffffe);
+ let mut x486: u32 = 0;
+ let mut x487: u32 = 0;
+ let (x486, x487) = fiat_p384_mulx_u32(x444, 0xffffffff);
+ let mut x488: u32 = 0;
+ let mut x489: u32 = 0;
+ let (x488, x489) = fiat_p384_mulx_u32(x444, 0xffffffff);
+ let mut x490: u32 = 0;
+ let mut x491: fiat_p384_u1 = 0;
+ let (x490, x491) = fiat_p384_addcarryx_u32(0x0, x487, x484);
+ let mut x492: u32 = 0;
+ let mut x493: fiat_p384_u1 = 0;
+ let (x492, x493) = fiat_p384_addcarryx_u32(x491, x485, x482);
+ let mut x494: u32 = 0;
+ let mut x495: fiat_p384_u1 = 0;
+ let (x494, x495) = fiat_p384_addcarryx_u32(x493, x483, x480);
+ let mut x496: u32 = 0;
+ let mut x497: fiat_p384_u1 = 0;
+ let (x496, x497) = fiat_p384_addcarryx_u32(x495, x481, x478);
+ let mut x498: u32 = 0;
+ let mut x499: fiat_p384_u1 = 0;
+ let (x498, x499) = fiat_p384_addcarryx_u32(x497, x479, x476);
+ let mut x500: u32 = 0;
+ let mut x501: fiat_p384_u1 = 0;
+ let (x500, x501) = fiat_p384_addcarryx_u32(x499, x477, x474);
+ let mut x502: u32 = 0;
+ let mut x503: fiat_p384_u1 = 0;
+ let (x502, x503) = fiat_p384_addcarryx_u32(x501, x475, x472);
+ let mut x504: u32 = 0;
+ let mut x505: fiat_p384_u1 = 0;
+ let (x504, x505) = fiat_p384_addcarryx_u32(x503, x473, x470);
+ let x506: u32 = ((x505 as u32) + x471);
+ let mut x507: u32 = 0;
+ let mut x508: fiat_p384_u1 = 0;
+ let (x507, x508) = fiat_p384_addcarryx_u32(0x0, x444, x488);
+ let mut x509: u32 = 0;
+ let mut x510: fiat_p384_u1 = 0;
+ let (x509, x510) = fiat_p384_addcarryx_u32(x508, x446, x489);
+ let mut x511: u32 = 0;
+ let mut x512: fiat_p384_u1 = 0;
+ let (x511, x512) = fiat_p384_addcarryx_u32(x510, x448, (0x0 as u32));
+ let mut x513: u32 = 0;
+ let mut x514: fiat_p384_u1 = 0;
+ let (x513, x514) = fiat_p384_addcarryx_u32(x512, x450, x486);
+ let mut x515: u32 = 0;
+ let mut x516: fiat_p384_u1 = 0;
+ let (x515, x516) = fiat_p384_addcarryx_u32(x514, x452, x490);
+ let mut x517: u32 = 0;
+ let mut x518: fiat_p384_u1 = 0;
+ let (x517, x518) = fiat_p384_addcarryx_u32(x516, x454, x492);
+ let mut x519: u32 = 0;
+ let mut x520: fiat_p384_u1 = 0;
+ let (x519, x520) = fiat_p384_addcarryx_u32(x518, x456, x494);
+ let mut x521: u32 = 0;
+ let mut x522: fiat_p384_u1 = 0;
+ let (x521, x522) = fiat_p384_addcarryx_u32(x520, x458, x496);
+ let mut x523: u32 = 0;
+ let mut x524: fiat_p384_u1 = 0;
+ let (x523, x524) = fiat_p384_addcarryx_u32(x522, x460, x498);
+ let mut x525: u32 = 0;
+ let mut x526: fiat_p384_u1 = 0;
+ let (x525, x526) = fiat_p384_addcarryx_u32(x524, x462, x500);
+ let mut x527: u32 = 0;
+ let mut x528: fiat_p384_u1 = 0;
+ let (x527, x528) = fiat_p384_addcarryx_u32(x526, x464, x502);
+ let mut x529: u32 = 0;
+ let mut x530: fiat_p384_u1 = 0;
+ let (x529, x530) = fiat_p384_addcarryx_u32(x528, x466, x504);
+ let mut x531: u32 = 0;
+ let mut x532: fiat_p384_u1 = 0;
+ let (x531, x532) = fiat_p384_addcarryx_u32(x530, x468, x506);
+ let x533: u32 = ((x532 as u32) + (x469 as u32));
+ let mut x534: u32 = 0;
+ let mut x535: u32 = 0;
+ let (x534, x535) = fiat_p384_mulx_u32(x4, (arg1[11]));
+ let mut x536: u32 = 0;
+ let mut x537: u32 = 0;
+ let (x536, x537) = fiat_p384_mulx_u32(x4, (arg1[10]));
+ let mut x538: u32 = 0;
+ let mut x539: u32 = 0;
+ let (x538, x539) = fiat_p384_mulx_u32(x4, (arg1[9]));
+ let mut x540: u32 = 0;
+ let mut x541: u32 = 0;
+ let (x540, x541) = fiat_p384_mulx_u32(x4, (arg1[8]));
+ let mut x542: u32 = 0;
+ let mut x543: u32 = 0;
+ let (x542, x543) = fiat_p384_mulx_u32(x4, (arg1[7]));
+ let mut x544: u32 = 0;
+ let mut x545: u32 = 0;
+ let (x544, x545) = fiat_p384_mulx_u32(x4, (arg1[6]));
+ let mut x546: u32 = 0;
+ let mut x547: u32 = 0;
+ let (x546, x547) = fiat_p384_mulx_u32(x4, (arg1[5]));
+ let mut x548: u32 = 0;
+ let mut x549: u32 = 0;
+ let (x548, x549) = fiat_p384_mulx_u32(x4, (arg1[4]));
+ let mut x550: u32 = 0;
+ let mut x551: u32 = 0;
+ let (x550, x551) = fiat_p384_mulx_u32(x4, (arg1[3]));
+ let mut x552: u32 = 0;
+ let mut x553: u32 = 0;
+ let (x552, x553) = fiat_p384_mulx_u32(x4, (arg1[2]));
+ let mut x554: u32 = 0;
+ let mut x555: u32 = 0;
+ let (x554, x555) = fiat_p384_mulx_u32(x4, (arg1[1]));
+ let mut x556: u32 = 0;
+ let mut x557: u32 = 0;
+ let (x556, x557) = fiat_p384_mulx_u32(x4, (arg1[0]));
+ let mut x558: u32 = 0;
+ let mut x559: fiat_p384_u1 = 0;
+ let (x558, x559) = fiat_p384_addcarryx_u32(0x0, x557, x554);
+ let mut x560: u32 = 0;
+ let mut x561: fiat_p384_u1 = 0;
+ let (x560, x561) = fiat_p384_addcarryx_u32(x559, x555, x552);
+ let mut x562: u32 = 0;
+ let mut x563: fiat_p384_u1 = 0;
+ let (x562, x563) = fiat_p384_addcarryx_u32(x561, x553, x550);
+ let mut x564: u32 = 0;
+ let mut x565: fiat_p384_u1 = 0;
+ let (x564, x565) = fiat_p384_addcarryx_u32(x563, x551, x548);
+ let mut x566: u32 = 0;
+ let mut x567: fiat_p384_u1 = 0;
+ let (x566, x567) = fiat_p384_addcarryx_u32(x565, x549, x546);
+ let mut x568: u32 = 0;
+ let mut x569: fiat_p384_u1 = 0;
+ let (x568, x569) = fiat_p384_addcarryx_u32(x567, x547, x544);
+ let mut x570: u32 = 0;
+ let mut x571: fiat_p384_u1 = 0;
+ let (x570, x571) = fiat_p384_addcarryx_u32(x569, x545, x542);
+ let mut x572: u32 = 0;
+ let mut x573: fiat_p384_u1 = 0;
+ let (x572, x573) = fiat_p384_addcarryx_u32(x571, x543, x540);
+ let mut x574: u32 = 0;
+ let mut x575: fiat_p384_u1 = 0;
+ let (x574, x575) = fiat_p384_addcarryx_u32(x573, x541, x538);
+ let mut x576: u32 = 0;
+ let mut x577: fiat_p384_u1 = 0;
+ let (x576, x577) = fiat_p384_addcarryx_u32(x575, x539, x536);
+ let mut x578: u32 = 0;
+ let mut x579: fiat_p384_u1 = 0;
+ let (x578, x579) = fiat_p384_addcarryx_u32(x577, x537, x534);
+ let x580: u32 = ((x579 as u32) + x535);
+ let mut x581: u32 = 0;
+ let mut x582: fiat_p384_u1 = 0;
+ let (x581, x582) = fiat_p384_addcarryx_u32(0x0, x509, x556);
+ let mut x583: u32 = 0;
+ let mut x584: fiat_p384_u1 = 0;
+ let (x583, x584) = fiat_p384_addcarryx_u32(x582, x511, x558);
+ let mut x585: u32 = 0;
+ let mut x586: fiat_p384_u1 = 0;
+ let (x585, x586) = fiat_p384_addcarryx_u32(x584, x513, x560);
+ let mut x587: u32 = 0;
+ let mut x588: fiat_p384_u1 = 0;
+ let (x587, x588) = fiat_p384_addcarryx_u32(x586, x515, x562);
+ let mut x589: u32 = 0;
+ let mut x590: fiat_p384_u1 = 0;
+ let (x589, x590) = fiat_p384_addcarryx_u32(x588, x517, x564);
+ let mut x591: u32 = 0;
+ let mut x592: fiat_p384_u1 = 0;
+ let (x591, x592) = fiat_p384_addcarryx_u32(x590, x519, x566);
+ let mut x593: u32 = 0;
+ let mut x594: fiat_p384_u1 = 0;
+ let (x593, x594) = fiat_p384_addcarryx_u32(x592, x521, x568);
+ let mut x595: u32 = 0;
+ let mut x596: fiat_p384_u1 = 0;
+ let (x595, x596) = fiat_p384_addcarryx_u32(x594, x523, x570);
+ let mut x597: u32 = 0;
+ let mut x598: fiat_p384_u1 = 0;
+ let (x597, x598) = fiat_p384_addcarryx_u32(x596, x525, x572);
+ let mut x599: u32 = 0;
+ let mut x600: fiat_p384_u1 = 0;
+ let (x599, x600) = fiat_p384_addcarryx_u32(x598, x527, x574);
+ let mut x601: u32 = 0;
+ let mut x602: fiat_p384_u1 = 0;
+ let (x601, x602) = fiat_p384_addcarryx_u32(x600, x529, x576);
+ let mut x603: u32 = 0;
+ let mut x604: fiat_p384_u1 = 0;
+ let (x603, x604) = fiat_p384_addcarryx_u32(x602, x531, x578);
+ let mut x605: u32 = 0;
+ let mut x606: fiat_p384_u1 = 0;
+ let (x605, x606) = fiat_p384_addcarryx_u32(x604, x533, x580);
+ let mut x607: u32 = 0;
+ let mut x608: u32 = 0;
+ let (x607, x608) = fiat_p384_mulx_u32(x581, 0xffffffff);
+ let mut x609: u32 = 0;
+ let mut x610: u32 = 0;
+ let (x609, x610) = fiat_p384_mulx_u32(x581, 0xffffffff);
+ let mut x611: u32 = 0;
+ let mut x612: u32 = 0;
+ let (x611, x612) = fiat_p384_mulx_u32(x581, 0xffffffff);
+ let mut x613: u32 = 0;
+ let mut x614: u32 = 0;
+ let (x613, x614) = fiat_p384_mulx_u32(x581, 0xffffffff);
+ let mut x615: u32 = 0;
+ let mut x616: u32 = 0;
+ let (x615, x616) = fiat_p384_mulx_u32(x581, 0xffffffff);
+ let mut x617: u32 = 0;
+ let mut x618: u32 = 0;
+ let (x617, x618) = fiat_p384_mulx_u32(x581, 0xffffffff);
+ let mut x619: u32 = 0;
+ let mut x620: u32 = 0;
+ let (x619, x620) = fiat_p384_mulx_u32(x581, 0xffffffff);
+ let mut x621: u32 = 0;
+ let mut x622: u32 = 0;
+ let (x621, x622) = fiat_p384_mulx_u32(x581, 0xfffffffe);
+ let mut x623: u32 = 0;
+ let mut x624: u32 = 0;
+ let (x623, x624) = fiat_p384_mulx_u32(x581, 0xffffffff);
+ let mut x625: u32 = 0;
+ let mut x626: u32 = 0;
+ let (x625, x626) = fiat_p384_mulx_u32(x581, 0xffffffff);
+ let mut x627: u32 = 0;
+ let mut x628: fiat_p384_u1 = 0;
+ let (x627, x628) = fiat_p384_addcarryx_u32(0x0, x624, x621);
+ let mut x629: u32 = 0;
+ let mut x630: fiat_p384_u1 = 0;
+ let (x629, x630) = fiat_p384_addcarryx_u32(x628, x622, x619);
+ let mut x631: u32 = 0;
+ let mut x632: fiat_p384_u1 = 0;
+ let (x631, x632) = fiat_p384_addcarryx_u32(x630, x620, x617);
+ let mut x633: u32 = 0;
+ let mut x634: fiat_p384_u1 = 0;
+ let (x633, x634) = fiat_p384_addcarryx_u32(x632, x618, x615);
+ let mut x635: u32 = 0;
+ let mut x636: fiat_p384_u1 = 0;
+ let (x635, x636) = fiat_p384_addcarryx_u32(x634, x616, x613);
+ let mut x637: u32 = 0;
+ let mut x638: fiat_p384_u1 = 0;
+ let (x637, x638) = fiat_p384_addcarryx_u32(x636, x614, x611);
+ let mut x639: u32 = 0;
+ let mut x640: fiat_p384_u1 = 0;
+ let (x639, x640) = fiat_p384_addcarryx_u32(x638, x612, x609);
+ let mut x641: u32 = 0;
+ let mut x642: fiat_p384_u1 = 0;
+ let (x641, x642) = fiat_p384_addcarryx_u32(x640, x610, x607);
+ let x643: u32 = ((x642 as u32) + x608);
+ let mut x644: u32 = 0;
+ let mut x645: fiat_p384_u1 = 0;
+ let (x644, x645) = fiat_p384_addcarryx_u32(0x0, x581, x625);
+ let mut x646: u32 = 0;
+ let mut x647: fiat_p384_u1 = 0;
+ let (x646, x647) = fiat_p384_addcarryx_u32(x645, x583, x626);
+ let mut x648: u32 = 0;
+ let mut x649: fiat_p384_u1 = 0;
+ let (x648, x649) = fiat_p384_addcarryx_u32(x647, x585, (0x0 as u32));
+ let mut x650: u32 = 0;
+ let mut x651: fiat_p384_u1 = 0;
+ let (x650, x651) = fiat_p384_addcarryx_u32(x649, x587, x623);
+ let mut x652: u32 = 0;
+ let mut x653: fiat_p384_u1 = 0;
+ let (x652, x653) = fiat_p384_addcarryx_u32(x651, x589, x627);
+ let mut x654: u32 = 0;
+ let mut x655: fiat_p384_u1 = 0;
+ let (x654, x655) = fiat_p384_addcarryx_u32(x653, x591, x629);
+ let mut x656: u32 = 0;
+ let mut x657: fiat_p384_u1 = 0;
+ let (x656, x657) = fiat_p384_addcarryx_u32(x655, x593, x631);
+ let mut x658: u32 = 0;
+ let mut x659: fiat_p384_u1 = 0;
+ let (x658, x659) = fiat_p384_addcarryx_u32(x657, x595, x633);
+ let mut x660: u32 = 0;
+ let mut x661: fiat_p384_u1 = 0;
+ let (x660, x661) = fiat_p384_addcarryx_u32(x659, x597, x635);
+ let mut x662: u32 = 0;
+ let mut x663: fiat_p384_u1 = 0;
+ let (x662, x663) = fiat_p384_addcarryx_u32(x661, x599, x637);
+ let mut x664: u32 = 0;
+ let mut x665: fiat_p384_u1 = 0;
+ let (x664, x665) = fiat_p384_addcarryx_u32(x663, x601, x639);
+ let mut x666: u32 = 0;
+ let mut x667: fiat_p384_u1 = 0;
+ let (x666, x667) = fiat_p384_addcarryx_u32(x665, x603, x641);
+ let mut x668: u32 = 0;
+ let mut x669: fiat_p384_u1 = 0;
+ let (x668, x669) = fiat_p384_addcarryx_u32(x667, x605, x643);
+ let x670: u32 = ((x669 as u32) + (x606 as u32));
+ let mut x671: u32 = 0;
+ let mut x672: u32 = 0;
+ let (x671, x672) = fiat_p384_mulx_u32(x5, (arg1[11]));
+ let mut x673: u32 = 0;
+ let mut x674: u32 = 0;
+ let (x673, x674) = fiat_p384_mulx_u32(x5, (arg1[10]));
+ let mut x675: u32 = 0;
+ let mut x676: u32 = 0;
+ let (x675, x676) = fiat_p384_mulx_u32(x5, (arg1[9]));
+ let mut x677: u32 = 0;
+ let mut x678: u32 = 0;
+ let (x677, x678) = fiat_p384_mulx_u32(x5, (arg1[8]));
+ let mut x679: u32 = 0;
+ let mut x680: u32 = 0;
+ let (x679, x680) = fiat_p384_mulx_u32(x5, (arg1[7]));
+ let mut x681: u32 = 0;
+ let mut x682: u32 = 0;
+ let (x681, x682) = fiat_p384_mulx_u32(x5, (arg1[6]));
+ let mut x683: u32 = 0;
+ let mut x684: u32 = 0;
+ let (x683, x684) = fiat_p384_mulx_u32(x5, (arg1[5]));
+ let mut x685: u32 = 0;
+ let mut x686: u32 = 0;
+ let (x685, x686) = fiat_p384_mulx_u32(x5, (arg1[4]));
+ let mut x687: u32 = 0;
+ let mut x688: u32 = 0;
+ let (x687, x688) = fiat_p384_mulx_u32(x5, (arg1[3]));
+ let mut x689: u32 = 0;
+ let mut x690: u32 = 0;
+ let (x689, x690) = fiat_p384_mulx_u32(x5, (arg1[2]));
+ let mut x691: u32 = 0;
+ let mut x692: u32 = 0;
+ let (x691, x692) = fiat_p384_mulx_u32(x5, (arg1[1]));
+ let mut x693: u32 = 0;
+ let mut x694: u32 = 0;
+ let (x693, x694) = fiat_p384_mulx_u32(x5, (arg1[0]));
+ let mut x695: u32 = 0;
+ let mut x696: fiat_p384_u1 = 0;
+ let (x695, x696) = fiat_p384_addcarryx_u32(0x0, x694, x691);
+ let mut x697: u32 = 0;
+ let mut x698: fiat_p384_u1 = 0;
+ let (x697, x698) = fiat_p384_addcarryx_u32(x696, x692, x689);
+ let mut x699: u32 = 0;
+ let mut x700: fiat_p384_u1 = 0;
+ let (x699, x700) = fiat_p384_addcarryx_u32(x698, x690, x687);
+ let mut x701: u32 = 0;
+ let mut x702: fiat_p384_u1 = 0;
+ let (x701, x702) = fiat_p384_addcarryx_u32(x700, x688, x685);
+ let mut x703: u32 = 0;
+ let mut x704: fiat_p384_u1 = 0;
+ let (x703, x704) = fiat_p384_addcarryx_u32(x702, x686, x683);
+ let mut x705: u32 = 0;
+ let mut x706: fiat_p384_u1 = 0;
+ let (x705, x706) = fiat_p384_addcarryx_u32(x704, x684, x681);
+ let mut x707: u32 = 0;
+ let mut x708: fiat_p384_u1 = 0;
+ let (x707, x708) = fiat_p384_addcarryx_u32(x706, x682, x679);
+ let mut x709: u32 = 0;
+ let mut x710: fiat_p384_u1 = 0;
+ let (x709, x710) = fiat_p384_addcarryx_u32(x708, x680, x677);
+ let mut x711: u32 = 0;
+ let mut x712: fiat_p384_u1 = 0;
+ let (x711, x712) = fiat_p384_addcarryx_u32(x710, x678, x675);
+ let mut x713: u32 = 0;
+ let mut x714: fiat_p384_u1 = 0;
+ let (x713, x714) = fiat_p384_addcarryx_u32(x712, x676, x673);
+ let mut x715: u32 = 0;
+ let mut x716: fiat_p384_u1 = 0;
+ let (x715, x716) = fiat_p384_addcarryx_u32(x714, x674, x671);
+ let x717: u32 = ((x716 as u32) + x672);
+ let mut x718: u32 = 0;
+ let mut x719: fiat_p384_u1 = 0;
+ let (x718, x719) = fiat_p384_addcarryx_u32(0x0, x646, x693);
+ let mut x720: u32 = 0;
+ let mut x721: fiat_p384_u1 = 0;
+ let (x720, x721) = fiat_p384_addcarryx_u32(x719, x648, x695);
+ let mut x722: u32 = 0;
+ let mut x723: fiat_p384_u1 = 0;
+ let (x722, x723) = fiat_p384_addcarryx_u32(x721, x650, x697);
+ let mut x724: u32 = 0;
+ let mut x725: fiat_p384_u1 = 0;
+ let (x724, x725) = fiat_p384_addcarryx_u32(x723, x652, x699);
+ let mut x726: u32 = 0;
+ let mut x727: fiat_p384_u1 = 0;
+ let (x726, x727) = fiat_p384_addcarryx_u32(x725, x654, x701);
+ let mut x728: u32 = 0;
+ let mut x729: fiat_p384_u1 = 0;
+ let (x728, x729) = fiat_p384_addcarryx_u32(x727, x656, x703);
+ let mut x730: u32 = 0;
+ let mut x731: fiat_p384_u1 = 0;
+ let (x730, x731) = fiat_p384_addcarryx_u32(x729, x658, x705);
+ let mut x732: u32 = 0;
+ let mut x733: fiat_p384_u1 = 0;
+ let (x732, x733) = fiat_p384_addcarryx_u32(x731, x660, x707);
+ let mut x734: u32 = 0;
+ let mut x735: fiat_p384_u1 = 0;
+ let (x734, x735) = fiat_p384_addcarryx_u32(x733, x662, x709);
+ let mut x736: u32 = 0;
+ let mut x737: fiat_p384_u1 = 0;
+ let (x736, x737) = fiat_p384_addcarryx_u32(x735, x664, x711);
+ let mut x738: u32 = 0;
+ let mut x739: fiat_p384_u1 = 0;
+ let (x738, x739) = fiat_p384_addcarryx_u32(x737, x666, x713);
+ let mut x740: u32 = 0;
+ let mut x741: fiat_p384_u1 = 0;
+ let (x740, x741) = fiat_p384_addcarryx_u32(x739, x668, x715);
+ let mut x742: u32 = 0;
+ let mut x743: fiat_p384_u1 = 0;
+ let (x742, x743) = fiat_p384_addcarryx_u32(x741, x670, x717);
+ let mut x744: u32 = 0;
+ let mut x745: u32 = 0;
+ let (x744, x745) = fiat_p384_mulx_u32(x718, 0xffffffff);
+ let mut x746: u32 = 0;
+ let mut x747: u32 = 0;
+ let (x746, x747) = fiat_p384_mulx_u32(x718, 0xffffffff);
+ let mut x748: u32 = 0;
+ let mut x749: u32 = 0;
+ let (x748, x749) = fiat_p384_mulx_u32(x718, 0xffffffff);
+ let mut x750: u32 = 0;
+ let mut x751: u32 = 0;
+ let (x750, x751) = fiat_p384_mulx_u32(x718, 0xffffffff);
+ let mut x752: u32 = 0;
+ let mut x753: u32 = 0;
+ let (x752, x753) = fiat_p384_mulx_u32(x718, 0xffffffff);
+ let mut x754: u32 = 0;
+ let mut x755: u32 = 0;
+ let (x754, x755) = fiat_p384_mulx_u32(x718, 0xffffffff);
+ let mut x756: u32 = 0;
+ let mut x757: u32 = 0;
+ let (x756, x757) = fiat_p384_mulx_u32(x718, 0xffffffff);
+ let mut x758: u32 = 0;
+ let mut x759: u32 = 0;
+ let (x758, x759) = fiat_p384_mulx_u32(x718, 0xfffffffe);
+ let mut x760: u32 = 0;
+ let mut x761: u32 = 0;
+ let (x760, x761) = fiat_p384_mulx_u32(x718, 0xffffffff);
+ let mut x762: u32 = 0;
+ let mut x763: u32 = 0;
+ let (x762, x763) = fiat_p384_mulx_u32(x718, 0xffffffff);
+ let mut x764: u32 = 0;
+ let mut x765: fiat_p384_u1 = 0;
+ let (x764, x765) = fiat_p384_addcarryx_u32(0x0, x761, x758);
+ let mut x766: u32 = 0;
+ let mut x767: fiat_p384_u1 = 0;
+ let (x766, x767) = fiat_p384_addcarryx_u32(x765, x759, x756);
+ let mut x768: u32 = 0;
+ let mut x769: fiat_p384_u1 = 0;
+ let (x768, x769) = fiat_p384_addcarryx_u32(x767, x757, x754);
+ let mut x770: u32 = 0;
+ let mut x771: fiat_p384_u1 = 0;
+ let (x770, x771) = fiat_p384_addcarryx_u32(x769, x755, x752);
+ let mut x772: u32 = 0;
+ let mut x773: fiat_p384_u1 = 0;
+ let (x772, x773) = fiat_p384_addcarryx_u32(x771, x753, x750);
+ let mut x774: u32 = 0;
+ let mut x775: fiat_p384_u1 = 0;
+ let (x774, x775) = fiat_p384_addcarryx_u32(x773, x751, x748);
+ let mut x776: u32 = 0;
+ let mut x777: fiat_p384_u1 = 0;
+ let (x776, x777) = fiat_p384_addcarryx_u32(x775, x749, x746);
+ let mut x778: u32 = 0;
+ let mut x779: fiat_p384_u1 = 0;
+ let (x778, x779) = fiat_p384_addcarryx_u32(x777, x747, x744);
+ let x780: u32 = ((x779 as u32) + x745);
+ let mut x781: u32 = 0;
+ let mut x782: fiat_p384_u1 = 0;
+ let (x781, x782) = fiat_p384_addcarryx_u32(0x0, x718, x762);
+ let mut x783: u32 = 0;
+ let mut x784: fiat_p384_u1 = 0;
+ let (x783, x784) = fiat_p384_addcarryx_u32(x782, x720, x763);
+ let mut x785: u32 = 0;
+ let mut x786: fiat_p384_u1 = 0;
+ let (x785, x786) = fiat_p384_addcarryx_u32(x784, x722, (0x0 as u32));
+ let mut x787: u32 = 0;
+ let mut x788: fiat_p384_u1 = 0;
+ let (x787, x788) = fiat_p384_addcarryx_u32(x786, x724, x760);
+ let mut x789: u32 = 0;
+ let mut x790: fiat_p384_u1 = 0;
+ let (x789, x790) = fiat_p384_addcarryx_u32(x788, x726, x764);
+ let mut x791: u32 = 0;
+ let mut x792: fiat_p384_u1 = 0;
+ let (x791, x792) = fiat_p384_addcarryx_u32(x790, x728, x766);
+ let mut x793: u32 = 0;
+ let mut x794: fiat_p384_u1 = 0;
+ let (x793, x794) = fiat_p384_addcarryx_u32(x792, x730, x768);
+ let mut x795: u32 = 0;
+ let mut x796: fiat_p384_u1 = 0;
+ let (x795, x796) = fiat_p384_addcarryx_u32(x794, x732, x770);
+ let mut x797: u32 = 0;
+ let mut x798: fiat_p384_u1 = 0;
+ let (x797, x798) = fiat_p384_addcarryx_u32(x796, x734, x772);
+ let mut x799: u32 = 0;
+ let mut x800: fiat_p384_u1 = 0;
+ let (x799, x800) = fiat_p384_addcarryx_u32(x798, x736, x774);
+ let mut x801: u32 = 0;
+ let mut x802: fiat_p384_u1 = 0;
+ let (x801, x802) = fiat_p384_addcarryx_u32(x800, x738, x776);
+ let mut x803: u32 = 0;
+ let mut x804: fiat_p384_u1 = 0;
+ let (x803, x804) = fiat_p384_addcarryx_u32(x802, x740, x778);
+ let mut x805: u32 = 0;
+ let mut x806: fiat_p384_u1 = 0;
+ let (x805, x806) = fiat_p384_addcarryx_u32(x804, x742, x780);
+ let x807: u32 = ((x806 as u32) + (x743 as u32));
+ let mut x808: u32 = 0;
+ let mut x809: u32 = 0;
+ let (x808, x809) = fiat_p384_mulx_u32(x6, (arg1[11]));
+ let mut x810: u32 = 0;
+ let mut x811: u32 = 0;
+ let (x810, x811) = fiat_p384_mulx_u32(x6, (arg1[10]));
+ let mut x812: u32 = 0;
+ let mut x813: u32 = 0;
+ let (x812, x813) = fiat_p384_mulx_u32(x6, (arg1[9]));
+ let mut x814: u32 = 0;
+ let mut x815: u32 = 0;
+ let (x814, x815) = fiat_p384_mulx_u32(x6, (arg1[8]));
+ let mut x816: u32 = 0;
+ let mut x817: u32 = 0;
+ let (x816, x817) = fiat_p384_mulx_u32(x6, (arg1[7]));
+ let mut x818: u32 = 0;
+ let mut x819: u32 = 0;
+ let (x818, x819) = fiat_p384_mulx_u32(x6, (arg1[6]));
+ let mut x820: u32 = 0;
+ let mut x821: u32 = 0;
+ let (x820, x821) = fiat_p384_mulx_u32(x6, (arg1[5]));
+ let mut x822: u32 = 0;
+ let mut x823: u32 = 0;
+ let (x822, x823) = fiat_p384_mulx_u32(x6, (arg1[4]));
+ let mut x824: u32 = 0;
+ let mut x825: u32 = 0;
+ let (x824, x825) = fiat_p384_mulx_u32(x6, (arg1[3]));
+ let mut x826: u32 = 0;
+ let mut x827: u32 = 0;
+ let (x826, x827) = fiat_p384_mulx_u32(x6, (arg1[2]));
+ let mut x828: u32 = 0;
+ let mut x829: u32 = 0;
+ let (x828, x829) = fiat_p384_mulx_u32(x6, (arg1[1]));
+ let mut x830: u32 = 0;
+ let mut x831: u32 = 0;
+ let (x830, x831) = fiat_p384_mulx_u32(x6, (arg1[0]));
+ let mut x832: u32 = 0;
+ let mut x833: fiat_p384_u1 = 0;
+ let (x832, x833) = fiat_p384_addcarryx_u32(0x0, x831, x828);
+ let mut x834: u32 = 0;
+ let mut x835: fiat_p384_u1 = 0;
+ let (x834, x835) = fiat_p384_addcarryx_u32(x833, x829, x826);
+ let mut x836: u32 = 0;
+ let mut x837: fiat_p384_u1 = 0;
+ let (x836, x837) = fiat_p384_addcarryx_u32(x835, x827, x824);
+ let mut x838: u32 = 0;
+ let mut x839: fiat_p384_u1 = 0;
+ let (x838, x839) = fiat_p384_addcarryx_u32(x837, x825, x822);
+ let mut x840: u32 = 0;
+ let mut x841: fiat_p384_u1 = 0;
+ let (x840, x841) = fiat_p384_addcarryx_u32(x839, x823, x820);
+ let mut x842: u32 = 0;
+ let mut x843: fiat_p384_u1 = 0;
+ let (x842, x843) = fiat_p384_addcarryx_u32(x841, x821, x818);
+ let mut x844: u32 = 0;
+ let mut x845: fiat_p384_u1 = 0;
+ let (x844, x845) = fiat_p384_addcarryx_u32(x843, x819, x816);
+ let mut x846: u32 = 0;
+ let mut x847: fiat_p384_u1 = 0;
+ let (x846, x847) = fiat_p384_addcarryx_u32(x845, x817, x814);
+ let mut x848: u32 = 0;
+ let mut x849: fiat_p384_u1 = 0;
+ let (x848, x849) = fiat_p384_addcarryx_u32(x847, x815, x812);
+ let mut x850: u32 = 0;
+ let mut x851: fiat_p384_u1 = 0;
+ let (x850, x851) = fiat_p384_addcarryx_u32(x849, x813, x810);
+ let mut x852: u32 = 0;
+ let mut x853: fiat_p384_u1 = 0;
+ let (x852, x853) = fiat_p384_addcarryx_u32(x851, x811, x808);
+ let x854: u32 = ((x853 as u32) + x809);
+ let mut x855: u32 = 0;
+ let mut x856: fiat_p384_u1 = 0;
+ let (x855, x856) = fiat_p384_addcarryx_u32(0x0, x783, x830);
+ let mut x857: u32 = 0;
+ let mut x858: fiat_p384_u1 = 0;
+ let (x857, x858) = fiat_p384_addcarryx_u32(x856, x785, x832);
+ let mut x859: u32 = 0;
+ let mut x860: fiat_p384_u1 = 0;
+ let (x859, x860) = fiat_p384_addcarryx_u32(x858, x787, x834);
+ let mut x861: u32 = 0;
+ let mut x862: fiat_p384_u1 = 0;
+ let (x861, x862) = fiat_p384_addcarryx_u32(x860, x789, x836);
+ let mut x863: u32 = 0;
+ let mut x864: fiat_p384_u1 = 0;
+ let (x863, x864) = fiat_p384_addcarryx_u32(x862, x791, x838);
+ let mut x865: u32 = 0;
+ let mut x866: fiat_p384_u1 = 0;
+ let (x865, x866) = fiat_p384_addcarryx_u32(x864, x793, x840);
+ let mut x867: u32 = 0;
+ let mut x868: fiat_p384_u1 = 0;
+ let (x867, x868) = fiat_p384_addcarryx_u32(x866, x795, x842);
+ let mut x869: u32 = 0;
+ let mut x870: fiat_p384_u1 = 0;
+ let (x869, x870) = fiat_p384_addcarryx_u32(x868, x797, x844);
+ let mut x871: u32 = 0;
+ let mut x872: fiat_p384_u1 = 0;
+ let (x871, x872) = fiat_p384_addcarryx_u32(x870, x799, x846);
+ let mut x873: u32 = 0;
+ let mut x874: fiat_p384_u1 = 0;
+ let (x873, x874) = fiat_p384_addcarryx_u32(x872, x801, x848);
+ let mut x875: u32 = 0;
+ let mut x876: fiat_p384_u1 = 0;
+ let (x875, x876) = fiat_p384_addcarryx_u32(x874, x803, x850);
+ let mut x877: u32 = 0;
+ let mut x878: fiat_p384_u1 = 0;
+ let (x877, x878) = fiat_p384_addcarryx_u32(x876, x805, x852);
+ let mut x879: u32 = 0;
+ let mut x880: fiat_p384_u1 = 0;
+ let (x879, x880) = fiat_p384_addcarryx_u32(x878, x807, x854);
+ let mut x881: u32 = 0;
+ let mut x882: u32 = 0;
+ let (x881, x882) = fiat_p384_mulx_u32(x855, 0xffffffff);
+ let mut x883: u32 = 0;
+ let mut x884: u32 = 0;
+ let (x883, x884) = fiat_p384_mulx_u32(x855, 0xffffffff);
+ let mut x885: u32 = 0;
+ let mut x886: u32 = 0;
+ let (x885, x886) = fiat_p384_mulx_u32(x855, 0xffffffff);
+ let mut x887: u32 = 0;
+ let mut x888: u32 = 0;
+ let (x887, x888) = fiat_p384_mulx_u32(x855, 0xffffffff);
+ let mut x889: u32 = 0;
+ let mut x890: u32 = 0;
+ let (x889, x890) = fiat_p384_mulx_u32(x855, 0xffffffff);
+ let mut x891: u32 = 0;
+ let mut x892: u32 = 0;
+ let (x891, x892) = fiat_p384_mulx_u32(x855, 0xffffffff);
+ let mut x893: u32 = 0;
+ let mut x894: u32 = 0;
+ let (x893, x894) = fiat_p384_mulx_u32(x855, 0xffffffff);
+ let mut x895: u32 = 0;
+ let mut x896: u32 = 0;
+ let (x895, x896) = fiat_p384_mulx_u32(x855, 0xfffffffe);
+ let mut x897: u32 = 0;
+ let mut x898: u32 = 0;
+ let (x897, x898) = fiat_p384_mulx_u32(x855, 0xffffffff);
+ let mut x899: u32 = 0;
+ let mut x900: u32 = 0;
+ let (x899, x900) = fiat_p384_mulx_u32(x855, 0xffffffff);
+ let mut x901: u32 = 0;
+ let mut x902: fiat_p384_u1 = 0;
+ let (x901, x902) = fiat_p384_addcarryx_u32(0x0, x898, x895);
+ let mut x903: u32 = 0;
+ let mut x904: fiat_p384_u1 = 0;
+ let (x903, x904) = fiat_p384_addcarryx_u32(x902, x896, x893);
+ let mut x905: u32 = 0;
+ let mut x906: fiat_p384_u1 = 0;
+ let (x905, x906) = fiat_p384_addcarryx_u32(x904, x894, x891);
+ let mut x907: u32 = 0;
+ let mut x908: fiat_p384_u1 = 0;
+ let (x907, x908) = fiat_p384_addcarryx_u32(x906, x892, x889);
+ let mut x909: u32 = 0;
+ let mut x910: fiat_p384_u1 = 0;
+ let (x909, x910) = fiat_p384_addcarryx_u32(x908, x890, x887);
+ let mut x911: u32 = 0;
+ let mut x912: fiat_p384_u1 = 0;
+ let (x911, x912) = fiat_p384_addcarryx_u32(x910, x888, x885);
+ let mut x913: u32 = 0;
+ let mut x914: fiat_p384_u1 = 0;
+ let (x913, x914) = fiat_p384_addcarryx_u32(x912, x886, x883);
+ let mut x915: u32 = 0;
+ let mut x916: fiat_p384_u1 = 0;
+ let (x915, x916) = fiat_p384_addcarryx_u32(x914, x884, x881);
+ let x917: u32 = ((x916 as u32) + x882);
+ let mut x918: u32 = 0;
+ let mut x919: fiat_p384_u1 = 0;
+ let (x918, x919) = fiat_p384_addcarryx_u32(0x0, x855, x899);
+ let mut x920: u32 = 0;
+ let mut x921: fiat_p384_u1 = 0;
+ let (x920, x921) = fiat_p384_addcarryx_u32(x919, x857, x900);
+ let mut x922: u32 = 0;
+ let mut x923: fiat_p384_u1 = 0;
+ let (x922, x923) = fiat_p384_addcarryx_u32(x921, x859, (0x0 as u32));
+ let mut x924: u32 = 0;
+ let mut x925: fiat_p384_u1 = 0;
+ let (x924, x925) = fiat_p384_addcarryx_u32(x923, x861, x897);
+ let mut x926: u32 = 0;
+ let mut x927: fiat_p384_u1 = 0;
+ let (x926, x927) = fiat_p384_addcarryx_u32(x925, x863, x901);
+ let mut x928: u32 = 0;
+ let mut x929: fiat_p384_u1 = 0;
+ let (x928, x929) = fiat_p384_addcarryx_u32(x927, x865, x903);
+ let mut x930: u32 = 0;
+ let mut x931: fiat_p384_u1 = 0;
+ let (x930, x931) = fiat_p384_addcarryx_u32(x929, x867, x905);
+ let mut x932: u32 = 0;
+ let mut x933: fiat_p384_u1 = 0;
+ let (x932, x933) = fiat_p384_addcarryx_u32(x931, x869, x907);
+ let mut x934: u32 = 0;
+ let mut x935: fiat_p384_u1 = 0;
+ let (x934, x935) = fiat_p384_addcarryx_u32(x933, x871, x909);
+ let mut x936: u32 = 0;
+ let mut x937: fiat_p384_u1 = 0;
+ let (x936, x937) = fiat_p384_addcarryx_u32(x935, x873, x911);
+ let mut x938: u32 = 0;
+ let mut x939: fiat_p384_u1 = 0;
+ let (x938, x939) = fiat_p384_addcarryx_u32(x937, x875, x913);
+ let mut x940: u32 = 0;
+ let mut x941: fiat_p384_u1 = 0;
+ let (x940, x941) = fiat_p384_addcarryx_u32(x939, x877, x915);
+ let mut x942: u32 = 0;
+ let mut x943: fiat_p384_u1 = 0;
+ let (x942, x943) = fiat_p384_addcarryx_u32(x941, x879, x917);
+ let x944: u32 = ((x943 as u32) + (x880 as u32));
+ let mut x945: u32 = 0;
+ let mut x946: u32 = 0;
+ let (x945, x946) = fiat_p384_mulx_u32(x7, (arg1[11]));
+ let mut x947: u32 = 0;
+ let mut x948: u32 = 0;
+ let (x947, x948) = fiat_p384_mulx_u32(x7, (arg1[10]));
+ let mut x949: u32 = 0;
+ let mut x950: u32 = 0;
+ let (x949, x950) = fiat_p384_mulx_u32(x7, (arg1[9]));
+ let mut x951: u32 = 0;
+ let mut x952: u32 = 0;
+ let (x951, x952) = fiat_p384_mulx_u32(x7, (arg1[8]));
+ let mut x953: u32 = 0;
+ let mut x954: u32 = 0;
+ let (x953, x954) = fiat_p384_mulx_u32(x7, (arg1[7]));
+ let mut x955: u32 = 0;
+ let mut x956: u32 = 0;
+ let (x955, x956) = fiat_p384_mulx_u32(x7, (arg1[6]));
+ let mut x957: u32 = 0;
+ let mut x958: u32 = 0;
+ let (x957, x958) = fiat_p384_mulx_u32(x7, (arg1[5]));
+ let mut x959: u32 = 0;
+ let mut x960: u32 = 0;
+ let (x959, x960) = fiat_p384_mulx_u32(x7, (arg1[4]));
+ let mut x961: u32 = 0;
+ let mut x962: u32 = 0;
+ let (x961, x962) = fiat_p384_mulx_u32(x7, (arg1[3]));
+ let mut x963: u32 = 0;
+ let mut x964: u32 = 0;
+ let (x963, x964) = fiat_p384_mulx_u32(x7, (arg1[2]));
+ let mut x965: u32 = 0;
+ let mut x966: u32 = 0;
+ let (x965, x966) = fiat_p384_mulx_u32(x7, (arg1[1]));
+ let mut x967: u32 = 0;
+ let mut x968: u32 = 0;
+ let (x967, x968) = fiat_p384_mulx_u32(x7, (arg1[0]));
+ let mut x969: u32 = 0;
+ let mut x970: fiat_p384_u1 = 0;
+ let (x969, x970) = fiat_p384_addcarryx_u32(0x0, x968, x965);
+ let mut x971: u32 = 0;
+ let mut x972: fiat_p384_u1 = 0;
+ let (x971, x972) = fiat_p384_addcarryx_u32(x970, x966, x963);
+ let mut x973: u32 = 0;
+ let mut x974: fiat_p384_u1 = 0;
+ let (x973, x974) = fiat_p384_addcarryx_u32(x972, x964, x961);
+ let mut x975: u32 = 0;
+ let mut x976: fiat_p384_u1 = 0;
+ let (x975, x976) = fiat_p384_addcarryx_u32(x974, x962, x959);
+ let mut x977: u32 = 0;
+ let mut x978: fiat_p384_u1 = 0;
+ let (x977, x978) = fiat_p384_addcarryx_u32(x976, x960, x957);
+ let mut x979: u32 = 0;
+ let mut x980: fiat_p384_u1 = 0;
+ let (x979, x980) = fiat_p384_addcarryx_u32(x978, x958, x955);
+ let mut x981: u32 = 0;
+ let mut x982: fiat_p384_u1 = 0;
+ let (x981, x982) = fiat_p384_addcarryx_u32(x980, x956, x953);
+ let mut x983: u32 = 0;
+ let mut x984: fiat_p384_u1 = 0;
+ let (x983, x984) = fiat_p384_addcarryx_u32(x982, x954, x951);
+ let mut x985: u32 = 0;
+ let mut x986: fiat_p384_u1 = 0;
+ let (x985, x986) = fiat_p384_addcarryx_u32(x984, x952, x949);
+ let mut x987: u32 = 0;
+ let mut x988: fiat_p384_u1 = 0;
+ let (x987, x988) = fiat_p384_addcarryx_u32(x986, x950, x947);
+ let mut x989: u32 = 0;
+ let mut x990: fiat_p384_u1 = 0;
+ let (x989, x990) = fiat_p384_addcarryx_u32(x988, x948, x945);
+ let x991: u32 = ((x990 as u32) + x946);
+ let mut x992: u32 = 0;
+ let mut x993: fiat_p384_u1 = 0;
+ let (x992, x993) = fiat_p384_addcarryx_u32(0x0, x920, x967);
+ let mut x994: u32 = 0;
+ let mut x995: fiat_p384_u1 = 0;
+ let (x994, x995) = fiat_p384_addcarryx_u32(x993, x922, x969);
+ let mut x996: u32 = 0;
+ let mut x997: fiat_p384_u1 = 0;
+ let (x996, x997) = fiat_p384_addcarryx_u32(x995, x924, x971);
+ let mut x998: u32 = 0;
+ let mut x999: fiat_p384_u1 = 0;
+ let (x998, x999) = fiat_p384_addcarryx_u32(x997, x926, x973);
+ let mut x1000: u32 = 0;
+ let mut x1001: fiat_p384_u1 = 0;
+ let (x1000, x1001) = fiat_p384_addcarryx_u32(x999, x928, x975);
+ let mut x1002: u32 = 0;
+ let mut x1003: fiat_p384_u1 = 0;
+ let (x1002, x1003) = fiat_p384_addcarryx_u32(x1001, x930, x977);
+ let mut x1004: u32 = 0;
+ let mut x1005: fiat_p384_u1 = 0;
+ let (x1004, x1005) = fiat_p384_addcarryx_u32(x1003, x932, x979);
+ let mut x1006: u32 = 0;
+ let mut x1007: fiat_p384_u1 = 0;
+ let (x1006, x1007) = fiat_p384_addcarryx_u32(x1005, x934, x981);
+ let mut x1008: u32 = 0;
+ let mut x1009: fiat_p384_u1 = 0;
+ let (x1008, x1009) = fiat_p384_addcarryx_u32(x1007, x936, x983);
+ let mut x1010: u32 = 0;
+ let mut x1011: fiat_p384_u1 = 0;
+ let (x1010, x1011) = fiat_p384_addcarryx_u32(x1009, x938, x985);
+ let mut x1012: u32 = 0;
+ let mut x1013: fiat_p384_u1 = 0;
+ let (x1012, x1013) = fiat_p384_addcarryx_u32(x1011, x940, x987);
+ let mut x1014: u32 = 0;
+ let mut x1015: fiat_p384_u1 = 0;
+ let (x1014, x1015) = fiat_p384_addcarryx_u32(x1013, x942, x989);
+ let mut x1016: u32 = 0;
+ let mut x1017: fiat_p384_u1 = 0;
+ let (x1016, x1017) = fiat_p384_addcarryx_u32(x1015, x944, x991);
+ let mut x1018: u32 = 0;
+ let mut x1019: u32 = 0;
+ let (x1018, x1019) = fiat_p384_mulx_u32(x992, 0xffffffff);
+ let mut x1020: u32 = 0;
+ let mut x1021: u32 = 0;
+ let (x1020, x1021) = fiat_p384_mulx_u32(x992, 0xffffffff);
+ let mut x1022: u32 = 0;
+ let mut x1023: u32 = 0;
+ let (x1022, x1023) = fiat_p384_mulx_u32(x992, 0xffffffff);
+ let mut x1024: u32 = 0;
+ let mut x1025: u32 = 0;
+ let (x1024, x1025) = fiat_p384_mulx_u32(x992, 0xffffffff);
+ let mut x1026: u32 = 0;
+ let mut x1027: u32 = 0;
+ let (x1026, x1027) = fiat_p384_mulx_u32(x992, 0xffffffff);
+ let mut x1028: u32 = 0;
+ let mut x1029: u32 = 0;
+ let (x1028, x1029) = fiat_p384_mulx_u32(x992, 0xffffffff);
+ let mut x1030: u32 = 0;
+ let mut x1031: u32 = 0;
+ let (x1030, x1031) = fiat_p384_mulx_u32(x992, 0xffffffff);
+ let mut x1032: u32 = 0;
+ let mut x1033: u32 = 0;
+ let (x1032, x1033) = fiat_p384_mulx_u32(x992, 0xfffffffe);
+ let mut x1034: u32 = 0;
+ let mut x1035: u32 = 0;
+ let (x1034, x1035) = fiat_p384_mulx_u32(x992, 0xffffffff);
+ let mut x1036: u32 = 0;
+ let mut x1037: u32 = 0;
+ let (x1036, x1037) = fiat_p384_mulx_u32(x992, 0xffffffff);
+ let mut x1038: u32 = 0;
+ let mut x1039: fiat_p384_u1 = 0;
+ let (x1038, x1039) = fiat_p384_addcarryx_u32(0x0, x1035, x1032);
+ let mut x1040: u32 = 0;
+ let mut x1041: fiat_p384_u1 = 0;
+ let (x1040, x1041) = fiat_p384_addcarryx_u32(x1039, x1033, x1030);
+ let mut x1042: u32 = 0;
+ let mut x1043: fiat_p384_u1 = 0;
+ let (x1042, x1043) = fiat_p384_addcarryx_u32(x1041, x1031, x1028);
+ let mut x1044: u32 = 0;
+ let mut x1045: fiat_p384_u1 = 0;
+ let (x1044, x1045) = fiat_p384_addcarryx_u32(x1043, x1029, x1026);
+ let mut x1046: u32 = 0;
+ let mut x1047: fiat_p384_u1 = 0;
+ let (x1046, x1047) = fiat_p384_addcarryx_u32(x1045, x1027, x1024);
+ let mut x1048: u32 = 0;
+ let mut x1049: fiat_p384_u1 = 0;
+ let (x1048, x1049) = fiat_p384_addcarryx_u32(x1047, x1025, x1022);
+ let mut x1050: u32 = 0;
+ let mut x1051: fiat_p384_u1 = 0;
+ let (x1050, x1051) = fiat_p384_addcarryx_u32(x1049, x1023, x1020);
+ let mut x1052: u32 = 0;
+ let mut x1053: fiat_p384_u1 = 0;
+ let (x1052, x1053) = fiat_p384_addcarryx_u32(x1051, x1021, x1018);
+ let x1054: u32 = ((x1053 as u32) + x1019);
+ let mut x1055: u32 = 0;
+ let mut x1056: fiat_p384_u1 = 0;
+ let (x1055, x1056) = fiat_p384_addcarryx_u32(0x0, x992, x1036);
+ let mut x1057: u32 = 0;
+ let mut x1058: fiat_p384_u1 = 0;
+ let (x1057, x1058) = fiat_p384_addcarryx_u32(x1056, x994, x1037);
+ let mut x1059: u32 = 0;
+ let mut x1060: fiat_p384_u1 = 0;
+ let (x1059, x1060) = fiat_p384_addcarryx_u32(x1058, x996, (0x0 as u32));
+ let mut x1061: u32 = 0;
+ let mut x1062: fiat_p384_u1 = 0;
+ let (x1061, x1062) = fiat_p384_addcarryx_u32(x1060, x998, x1034);
+ let mut x1063: u32 = 0;
+ let mut x1064: fiat_p384_u1 = 0;
+ let (x1063, x1064) = fiat_p384_addcarryx_u32(x1062, x1000, x1038);
+ let mut x1065: u32 = 0;
+ let mut x1066: fiat_p384_u1 = 0;
+ let (x1065, x1066) = fiat_p384_addcarryx_u32(x1064, x1002, x1040);
+ let mut x1067: u32 = 0;
+ let mut x1068: fiat_p384_u1 = 0;
+ let (x1067, x1068) = fiat_p384_addcarryx_u32(x1066, x1004, x1042);
+ let mut x1069: u32 = 0;
+ let mut x1070: fiat_p384_u1 = 0;
+ let (x1069, x1070) = fiat_p384_addcarryx_u32(x1068, x1006, x1044);
+ let mut x1071: u32 = 0;
+ let mut x1072: fiat_p384_u1 = 0;
+ let (x1071, x1072) = fiat_p384_addcarryx_u32(x1070, x1008, x1046);
+ let mut x1073: u32 = 0;
+ let mut x1074: fiat_p384_u1 = 0;
+ let (x1073, x1074) = fiat_p384_addcarryx_u32(x1072, x1010, x1048);
+ let mut x1075: u32 = 0;
+ let mut x1076: fiat_p384_u1 = 0;
+ let (x1075, x1076) = fiat_p384_addcarryx_u32(x1074, x1012, x1050);
+ let mut x1077: u32 = 0;
+ let mut x1078: fiat_p384_u1 = 0;
+ let (x1077, x1078) = fiat_p384_addcarryx_u32(x1076, x1014, x1052);
+ let mut x1079: u32 = 0;
+ let mut x1080: fiat_p384_u1 = 0;
+ let (x1079, x1080) = fiat_p384_addcarryx_u32(x1078, x1016, x1054);
+ let x1081: u32 = ((x1080 as u32) + (x1017 as u32));
+ let mut x1082: u32 = 0;
+ let mut x1083: u32 = 0;
+ let (x1082, x1083) = fiat_p384_mulx_u32(x8, (arg1[11]));
+ let mut x1084: u32 = 0;
+ let mut x1085: u32 = 0;
+ let (x1084, x1085) = fiat_p384_mulx_u32(x8, (arg1[10]));
+ let mut x1086: u32 = 0;
+ let mut x1087: u32 = 0;
+ let (x1086, x1087) = fiat_p384_mulx_u32(x8, (arg1[9]));
+ let mut x1088: u32 = 0;
+ let mut x1089: u32 = 0;
+ let (x1088, x1089) = fiat_p384_mulx_u32(x8, (arg1[8]));
+ let mut x1090: u32 = 0;
+ let mut x1091: u32 = 0;
+ let (x1090, x1091) = fiat_p384_mulx_u32(x8, (arg1[7]));
+ let mut x1092: u32 = 0;
+ let mut x1093: u32 = 0;
+ let (x1092, x1093) = fiat_p384_mulx_u32(x8, (arg1[6]));
+ let mut x1094: u32 = 0;
+ let mut x1095: u32 = 0;
+ let (x1094, x1095) = fiat_p384_mulx_u32(x8, (arg1[5]));
+ let mut x1096: u32 = 0;
+ let mut x1097: u32 = 0;
+ let (x1096, x1097) = fiat_p384_mulx_u32(x8, (arg1[4]));
+ let mut x1098: u32 = 0;
+ let mut x1099: u32 = 0;
+ let (x1098, x1099) = fiat_p384_mulx_u32(x8, (arg1[3]));
+ let mut x1100: u32 = 0;
+ let mut x1101: u32 = 0;
+ let (x1100, x1101) = fiat_p384_mulx_u32(x8, (arg1[2]));
+ let mut x1102: u32 = 0;
+ let mut x1103: u32 = 0;
+ let (x1102, x1103) = fiat_p384_mulx_u32(x8, (arg1[1]));
+ let mut x1104: u32 = 0;
+ let mut x1105: u32 = 0;
+ let (x1104, x1105) = fiat_p384_mulx_u32(x8, (arg1[0]));
+ let mut x1106: u32 = 0;
+ let mut x1107: fiat_p384_u1 = 0;
+ let (x1106, x1107) = fiat_p384_addcarryx_u32(0x0, x1105, x1102);
+ let mut x1108: u32 = 0;
+ let mut x1109: fiat_p384_u1 = 0;
+ let (x1108, x1109) = fiat_p384_addcarryx_u32(x1107, x1103, x1100);
+ let mut x1110: u32 = 0;
+ let mut x1111: fiat_p384_u1 = 0;
+ let (x1110, x1111) = fiat_p384_addcarryx_u32(x1109, x1101, x1098);
+ let mut x1112: u32 = 0;
+ let mut x1113: fiat_p384_u1 = 0;
+ let (x1112, x1113) = fiat_p384_addcarryx_u32(x1111, x1099, x1096);
+ let mut x1114: u32 = 0;
+ let mut x1115: fiat_p384_u1 = 0;
+ let (x1114, x1115) = fiat_p384_addcarryx_u32(x1113, x1097, x1094);
+ let mut x1116: u32 = 0;
+ let mut x1117: fiat_p384_u1 = 0;
+ let (x1116, x1117) = fiat_p384_addcarryx_u32(x1115, x1095, x1092);
+ let mut x1118: u32 = 0;
+ let mut x1119: fiat_p384_u1 = 0;
+ let (x1118, x1119) = fiat_p384_addcarryx_u32(x1117, x1093, x1090);
+ let mut x1120: u32 = 0;
+ let mut x1121: fiat_p384_u1 = 0;
+ let (x1120, x1121) = fiat_p384_addcarryx_u32(x1119, x1091, x1088);
+ let mut x1122: u32 = 0;
+ let mut x1123: fiat_p384_u1 = 0;
+ let (x1122, x1123) = fiat_p384_addcarryx_u32(x1121, x1089, x1086);
+ let mut x1124: u32 = 0;
+ let mut x1125: fiat_p384_u1 = 0;
+ let (x1124, x1125) = fiat_p384_addcarryx_u32(x1123, x1087, x1084);
+ let mut x1126: u32 = 0;
+ let mut x1127: fiat_p384_u1 = 0;
+ let (x1126, x1127) = fiat_p384_addcarryx_u32(x1125, x1085, x1082);
+ let x1128: u32 = ((x1127 as u32) + x1083);
+ let mut x1129: u32 = 0;
+ let mut x1130: fiat_p384_u1 = 0;
+ let (x1129, x1130) = fiat_p384_addcarryx_u32(0x0, x1057, x1104);
+ let mut x1131: u32 = 0;
+ let mut x1132: fiat_p384_u1 = 0;
+ let (x1131, x1132) = fiat_p384_addcarryx_u32(x1130, x1059, x1106);
+ let mut x1133: u32 = 0;
+ let mut x1134: fiat_p384_u1 = 0;
+ let (x1133, x1134) = fiat_p384_addcarryx_u32(x1132, x1061, x1108);
+ let mut x1135: u32 = 0;
+ let mut x1136: fiat_p384_u1 = 0;
+ let (x1135, x1136) = fiat_p384_addcarryx_u32(x1134, x1063, x1110);
+ let mut x1137: u32 = 0;
+ let mut x1138: fiat_p384_u1 = 0;
+ let (x1137, x1138) = fiat_p384_addcarryx_u32(x1136, x1065, x1112);
+ let mut x1139: u32 = 0;
+ let mut x1140: fiat_p384_u1 = 0;
+ let (x1139, x1140) = fiat_p384_addcarryx_u32(x1138, x1067, x1114);
+ let mut x1141: u32 = 0;
+ let mut x1142: fiat_p384_u1 = 0;
+ let (x1141, x1142) = fiat_p384_addcarryx_u32(x1140, x1069, x1116);
+ let mut x1143: u32 = 0;
+ let mut x1144: fiat_p384_u1 = 0;
+ let (x1143, x1144) = fiat_p384_addcarryx_u32(x1142, x1071, x1118);
+ let mut x1145: u32 = 0;
+ let mut x1146: fiat_p384_u1 = 0;
+ let (x1145, x1146) = fiat_p384_addcarryx_u32(x1144, x1073, x1120);
+ let mut x1147: u32 = 0;
+ let mut x1148: fiat_p384_u1 = 0;
+ let (x1147, x1148) = fiat_p384_addcarryx_u32(x1146, x1075, x1122);
+ let mut x1149: u32 = 0;
+ let mut x1150: fiat_p384_u1 = 0;
+ let (x1149, x1150) = fiat_p384_addcarryx_u32(x1148, x1077, x1124);
+ let mut x1151: u32 = 0;
+ let mut x1152: fiat_p384_u1 = 0;
+ let (x1151, x1152) = fiat_p384_addcarryx_u32(x1150, x1079, x1126);
+ let mut x1153: u32 = 0;
+ let mut x1154: fiat_p384_u1 = 0;
+ let (x1153, x1154) = fiat_p384_addcarryx_u32(x1152, x1081, x1128);
+ let mut x1155: u32 = 0;
+ let mut x1156: u32 = 0;
+ let (x1155, x1156) = fiat_p384_mulx_u32(x1129, 0xffffffff);
+ let mut x1157: u32 = 0;
+ let mut x1158: u32 = 0;
+ let (x1157, x1158) = fiat_p384_mulx_u32(x1129, 0xffffffff);
+ let mut x1159: u32 = 0;
+ let mut x1160: u32 = 0;
+ let (x1159, x1160) = fiat_p384_mulx_u32(x1129, 0xffffffff);
+ let mut x1161: u32 = 0;
+ let mut x1162: u32 = 0;
+ let (x1161, x1162) = fiat_p384_mulx_u32(x1129, 0xffffffff);
+ let mut x1163: u32 = 0;
+ let mut x1164: u32 = 0;
+ let (x1163, x1164) = fiat_p384_mulx_u32(x1129, 0xffffffff);
+ let mut x1165: u32 = 0;
+ let mut x1166: u32 = 0;
+ let (x1165, x1166) = fiat_p384_mulx_u32(x1129, 0xffffffff);
+ let mut x1167: u32 = 0;
+ let mut x1168: u32 = 0;
+ let (x1167, x1168) = fiat_p384_mulx_u32(x1129, 0xffffffff);
+ let mut x1169: u32 = 0;
+ let mut x1170: u32 = 0;
+ let (x1169, x1170) = fiat_p384_mulx_u32(x1129, 0xfffffffe);
+ let mut x1171: u32 = 0;
+ let mut x1172: u32 = 0;
+ let (x1171, x1172) = fiat_p384_mulx_u32(x1129, 0xffffffff);
+ let mut x1173: u32 = 0;
+ let mut x1174: u32 = 0;
+ let (x1173, x1174) = fiat_p384_mulx_u32(x1129, 0xffffffff);
+ let mut x1175: u32 = 0;
+ let mut x1176: fiat_p384_u1 = 0;
+ let (x1175, x1176) = fiat_p384_addcarryx_u32(0x0, x1172, x1169);
+ let mut x1177: u32 = 0;
+ let mut x1178: fiat_p384_u1 = 0;
+ let (x1177, x1178) = fiat_p384_addcarryx_u32(x1176, x1170, x1167);
+ let mut x1179: u32 = 0;
+ let mut x1180: fiat_p384_u1 = 0;
+ let (x1179, x1180) = fiat_p384_addcarryx_u32(x1178, x1168, x1165);
+ let mut x1181: u32 = 0;
+ let mut x1182: fiat_p384_u1 = 0;
+ let (x1181, x1182) = fiat_p384_addcarryx_u32(x1180, x1166, x1163);
+ let mut x1183: u32 = 0;
+ let mut x1184: fiat_p384_u1 = 0;
+ let (x1183, x1184) = fiat_p384_addcarryx_u32(x1182, x1164, x1161);
+ let mut x1185: u32 = 0;
+ let mut x1186: fiat_p384_u1 = 0;
+ let (x1185, x1186) = fiat_p384_addcarryx_u32(x1184, x1162, x1159);
+ let mut x1187: u32 = 0;
+ let mut x1188: fiat_p384_u1 = 0;
+ let (x1187, x1188) = fiat_p384_addcarryx_u32(x1186, x1160, x1157);
+ let mut x1189: u32 = 0;
+ let mut x1190: fiat_p384_u1 = 0;
+ let (x1189, x1190) = fiat_p384_addcarryx_u32(x1188, x1158, x1155);
+ let x1191: u32 = ((x1190 as u32) + x1156);
+ let mut x1192: u32 = 0;
+ let mut x1193: fiat_p384_u1 = 0;
+ let (x1192, x1193) = fiat_p384_addcarryx_u32(0x0, x1129, x1173);
+ let mut x1194: u32 = 0;
+ let mut x1195: fiat_p384_u1 = 0;
+ let (x1194, x1195) = fiat_p384_addcarryx_u32(x1193, x1131, x1174);
+ let mut x1196: u32 = 0;
+ let mut x1197: fiat_p384_u1 = 0;
+ let (x1196, x1197) = fiat_p384_addcarryx_u32(x1195, x1133, (0x0 as u32));
+ let mut x1198: u32 = 0;
+ let mut x1199: fiat_p384_u1 = 0;
+ let (x1198, x1199) = fiat_p384_addcarryx_u32(x1197, x1135, x1171);
+ let mut x1200: u32 = 0;
+ let mut x1201: fiat_p384_u1 = 0;
+ let (x1200, x1201) = fiat_p384_addcarryx_u32(x1199, x1137, x1175);
+ let mut x1202: u32 = 0;
+ let mut x1203: fiat_p384_u1 = 0;
+ let (x1202, x1203) = fiat_p384_addcarryx_u32(x1201, x1139, x1177);
+ let mut x1204: u32 = 0;
+ let mut x1205: fiat_p384_u1 = 0;
+ let (x1204, x1205) = fiat_p384_addcarryx_u32(x1203, x1141, x1179);
+ let mut x1206: u32 = 0;
+ let mut x1207: fiat_p384_u1 = 0;
+ let (x1206, x1207) = fiat_p384_addcarryx_u32(x1205, x1143, x1181);
+ let mut x1208: u32 = 0;
+ let mut x1209: fiat_p384_u1 = 0;
+ let (x1208, x1209) = fiat_p384_addcarryx_u32(x1207, x1145, x1183);
+ let mut x1210: u32 = 0;
+ let mut x1211: fiat_p384_u1 = 0;
+ let (x1210, x1211) = fiat_p384_addcarryx_u32(x1209, x1147, x1185);
+ let mut x1212: u32 = 0;
+ let mut x1213: fiat_p384_u1 = 0;
+ let (x1212, x1213) = fiat_p384_addcarryx_u32(x1211, x1149, x1187);
+ let mut x1214: u32 = 0;
+ let mut x1215: fiat_p384_u1 = 0;
+ let (x1214, x1215) = fiat_p384_addcarryx_u32(x1213, x1151, x1189);
+ let mut x1216: u32 = 0;
+ let mut x1217: fiat_p384_u1 = 0;
+ let (x1216, x1217) = fiat_p384_addcarryx_u32(x1215, x1153, x1191);
+ let x1218: u32 = ((x1217 as u32) + (x1154 as u32));
+ let mut x1219: u32 = 0;
+ let mut x1220: u32 = 0;
+ let (x1219, x1220) = fiat_p384_mulx_u32(x9, (arg1[11]));
+ let mut x1221: u32 = 0;
+ let mut x1222: u32 = 0;
+ let (x1221, x1222) = fiat_p384_mulx_u32(x9, (arg1[10]));
+ let mut x1223: u32 = 0;
+ let mut x1224: u32 = 0;
+ let (x1223, x1224) = fiat_p384_mulx_u32(x9, (arg1[9]));
+ let mut x1225: u32 = 0;
+ let mut x1226: u32 = 0;
+ let (x1225, x1226) = fiat_p384_mulx_u32(x9, (arg1[8]));
+ let mut x1227: u32 = 0;
+ let mut x1228: u32 = 0;
+ let (x1227, x1228) = fiat_p384_mulx_u32(x9, (arg1[7]));
+ let mut x1229: u32 = 0;
+ let mut x1230: u32 = 0;
+ let (x1229, x1230) = fiat_p384_mulx_u32(x9, (arg1[6]));
+ let mut x1231: u32 = 0;
+ let mut x1232: u32 = 0;
+ let (x1231, x1232) = fiat_p384_mulx_u32(x9, (arg1[5]));
+ let mut x1233: u32 = 0;
+ let mut x1234: u32 = 0;
+ let (x1233, x1234) = fiat_p384_mulx_u32(x9, (arg1[4]));
+ let mut x1235: u32 = 0;
+ let mut x1236: u32 = 0;
+ let (x1235, x1236) = fiat_p384_mulx_u32(x9, (arg1[3]));
+ let mut x1237: u32 = 0;
+ let mut x1238: u32 = 0;
+ let (x1237, x1238) = fiat_p384_mulx_u32(x9, (arg1[2]));
+ let mut x1239: u32 = 0;
+ let mut x1240: u32 = 0;
+ let (x1239, x1240) = fiat_p384_mulx_u32(x9, (arg1[1]));
+ let mut x1241: u32 = 0;
+ let mut x1242: u32 = 0;
+ let (x1241, x1242) = fiat_p384_mulx_u32(x9, (arg1[0]));
+ let mut x1243: u32 = 0;
+ let mut x1244: fiat_p384_u1 = 0;
+ let (x1243, x1244) = fiat_p384_addcarryx_u32(0x0, x1242, x1239);
+ let mut x1245: u32 = 0;
+ let mut x1246: fiat_p384_u1 = 0;
+ let (x1245, x1246) = fiat_p384_addcarryx_u32(x1244, x1240, x1237);
+ let mut x1247: u32 = 0;
+ let mut x1248: fiat_p384_u1 = 0;
+ let (x1247, x1248) = fiat_p384_addcarryx_u32(x1246, x1238, x1235);
+ let mut x1249: u32 = 0;
+ let mut x1250: fiat_p384_u1 = 0;
+ let (x1249, x1250) = fiat_p384_addcarryx_u32(x1248, x1236, x1233);
+ let mut x1251: u32 = 0;
+ let mut x1252: fiat_p384_u1 = 0;
+ let (x1251, x1252) = fiat_p384_addcarryx_u32(x1250, x1234, x1231);
+ let mut x1253: u32 = 0;
+ let mut x1254: fiat_p384_u1 = 0;
+ let (x1253, x1254) = fiat_p384_addcarryx_u32(x1252, x1232, x1229);
+ let mut x1255: u32 = 0;
+ let mut x1256: fiat_p384_u1 = 0;
+ let (x1255, x1256) = fiat_p384_addcarryx_u32(x1254, x1230, x1227);
+ let mut x1257: u32 = 0;
+ let mut x1258: fiat_p384_u1 = 0;
+ let (x1257, x1258) = fiat_p384_addcarryx_u32(x1256, x1228, x1225);
+ let mut x1259: u32 = 0;
+ let mut x1260: fiat_p384_u1 = 0;
+ let (x1259, x1260) = fiat_p384_addcarryx_u32(x1258, x1226, x1223);
+ let mut x1261: u32 = 0;
+ let mut x1262: fiat_p384_u1 = 0;
+ let (x1261, x1262) = fiat_p384_addcarryx_u32(x1260, x1224, x1221);
+ let mut x1263: u32 = 0;
+ let mut x1264: fiat_p384_u1 = 0;
+ let (x1263, x1264) = fiat_p384_addcarryx_u32(x1262, x1222, x1219);
+ let x1265: u32 = ((x1264 as u32) + x1220);
+ let mut x1266: u32 = 0;
+ let mut x1267: fiat_p384_u1 = 0;
+ let (x1266, x1267) = fiat_p384_addcarryx_u32(0x0, x1194, x1241);
+ let mut x1268: u32 = 0;
+ let mut x1269: fiat_p384_u1 = 0;
+ let (x1268, x1269) = fiat_p384_addcarryx_u32(x1267, x1196, x1243);
+ let mut x1270: u32 = 0;
+ let mut x1271: fiat_p384_u1 = 0;
+ let (x1270, x1271) = fiat_p384_addcarryx_u32(x1269, x1198, x1245);
+ let mut x1272: u32 = 0;
+ let mut x1273: fiat_p384_u1 = 0;
+ let (x1272, x1273) = fiat_p384_addcarryx_u32(x1271, x1200, x1247);
+ let mut x1274: u32 = 0;
+ let mut x1275: fiat_p384_u1 = 0;
+ let (x1274, x1275) = fiat_p384_addcarryx_u32(x1273, x1202, x1249);
+ let mut x1276: u32 = 0;
+ let mut x1277: fiat_p384_u1 = 0;
+ let (x1276, x1277) = fiat_p384_addcarryx_u32(x1275, x1204, x1251);
+ let mut x1278: u32 = 0;
+ let mut x1279: fiat_p384_u1 = 0;
+ let (x1278, x1279) = fiat_p384_addcarryx_u32(x1277, x1206, x1253);
+ let mut x1280: u32 = 0;
+ let mut x1281: fiat_p384_u1 = 0;
+ let (x1280, x1281) = fiat_p384_addcarryx_u32(x1279, x1208, x1255);
+ let mut x1282: u32 = 0;
+ let mut x1283: fiat_p384_u1 = 0;
+ let (x1282, x1283) = fiat_p384_addcarryx_u32(x1281, x1210, x1257);
+ let mut x1284: u32 = 0;
+ let mut x1285: fiat_p384_u1 = 0;
+ let (x1284, x1285) = fiat_p384_addcarryx_u32(x1283, x1212, x1259);
+ let mut x1286: u32 = 0;
+ let mut x1287: fiat_p384_u1 = 0;
+ let (x1286, x1287) = fiat_p384_addcarryx_u32(x1285, x1214, x1261);
+ let mut x1288: u32 = 0;
+ let mut x1289: fiat_p384_u1 = 0;
+ let (x1288, x1289) = fiat_p384_addcarryx_u32(x1287, x1216, x1263);
+ let mut x1290: u32 = 0;
+ let mut x1291: fiat_p384_u1 = 0;
+ let (x1290, x1291) = fiat_p384_addcarryx_u32(x1289, x1218, x1265);
+ let mut x1292: u32 = 0;
+ let mut x1293: u32 = 0;
+ let (x1292, x1293) = fiat_p384_mulx_u32(x1266, 0xffffffff);
+ let mut x1294: u32 = 0;
+ let mut x1295: u32 = 0;
+ let (x1294, x1295) = fiat_p384_mulx_u32(x1266, 0xffffffff);
+ let mut x1296: u32 = 0;
+ let mut x1297: u32 = 0;
+ let (x1296, x1297) = fiat_p384_mulx_u32(x1266, 0xffffffff);
+ let mut x1298: u32 = 0;
+ let mut x1299: u32 = 0;
+ let (x1298, x1299) = fiat_p384_mulx_u32(x1266, 0xffffffff);
+ let mut x1300: u32 = 0;
+ let mut x1301: u32 = 0;
+ let (x1300, x1301) = fiat_p384_mulx_u32(x1266, 0xffffffff);
+ let mut x1302: u32 = 0;
+ let mut x1303: u32 = 0;
+ let (x1302, x1303) = fiat_p384_mulx_u32(x1266, 0xffffffff);
+ let mut x1304: u32 = 0;
+ let mut x1305: u32 = 0;
+ let (x1304, x1305) = fiat_p384_mulx_u32(x1266, 0xffffffff);
+ let mut x1306: u32 = 0;
+ let mut x1307: u32 = 0;
+ let (x1306, x1307) = fiat_p384_mulx_u32(x1266, 0xfffffffe);
+ let mut x1308: u32 = 0;
+ let mut x1309: u32 = 0;
+ let (x1308, x1309) = fiat_p384_mulx_u32(x1266, 0xffffffff);
+ let mut x1310: u32 = 0;
+ let mut x1311: u32 = 0;
+ let (x1310, x1311) = fiat_p384_mulx_u32(x1266, 0xffffffff);
+ let mut x1312: u32 = 0;
+ let mut x1313: fiat_p384_u1 = 0;
+ let (x1312, x1313) = fiat_p384_addcarryx_u32(0x0, x1309, x1306);
+ let mut x1314: u32 = 0;
+ let mut x1315: fiat_p384_u1 = 0;
+ let (x1314, x1315) = fiat_p384_addcarryx_u32(x1313, x1307, x1304);
+ let mut x1316: u32 = 0;
+ let mut x1317: fiat_p384_u1 = 0;
+ let (x1316, x1317) = fiat_p384_addcarryx_u32(x1315, x1305, x1302);
+ let mut x1318: u32 = 0;
+ let mut x1319: fiat_p384_u1 = 0;
+ let (x1318, x1319) = fiat_p384_addcarryx_u32(x1317, x1303, x1300);
+ let mut x1320: u32 = 0;
+ let mut x1321: fiat_p384_u1 = 0;
+ let (x1320, x1321) = fiat_p384_addcarryx_u32(x1319, x1301, x1298);
+ let mut x1322: u32 = 0;
+ let mut x1323: fiat_p384_u1 = 0;
+ let (x1322, x1323) = fiat_p384_addcarryx_u32(x1321, x1299, x1296);
+ let mut x1324: u32 = 0;
+ let mut x1325: fiat_p384_u1 = 0;
+ let (x1324, x1325) = fiat_p384_addcarryx_u32(x1323, x1297, x1294);
+ let mut x1326: u32 = 0;
+ let mut x1327: fiat_p384_u1 = 0;
+ let (x1326, x1327) = fiat_p384_addcarryx_u32(x1325, x1295, x1292);
+ let x1328: u32 = ((x1327 as u32) + x1293);
+ let mut x1329: u32 = 0;
+ let mut x1330: fiat_p384_u1 = 0;
+ let (x1329, x1330) = fiat_p384_addcarryx_u32(0x0, x1266, x1310);
+ let mut x1331: u32 = 0;
+ let mut x1332: fiat_p384_u1 = 0;
+ let (x1331, x1332) = fiat_p384_addcarryx_u32(x1330, x1268, x1311);
+ let mut x1333: u32 = 0;
+ let mut x1334: fiat_p384_u1 = 0;
+ let (x1333, x1334) = fiat_p384_addcarryx_u32(x1332, x1270, (0x0 as u32));
+ let mut x1335: u32 = 0;
+ let mut x1336: fiat_p384_u1 = 0;
+ let (x1335, x1336) = fiat_p384_addcarryx_u32(x1334, x1272, x1308);
+ let mut x1337: u32 = 0;
+ let mut x1338: fiat_p384_u1 = 0;
+ let (x1337, x1338) = fiat_p384_addcarryx_u32(x1336, x1274, x1312);
+ let mut x1339: u32 = 0;
+ let mut x1340: fiat_p384_u1 = 0;
+ let (x1339, x1340) = fiat_p384_addcarryx_u32(x1338, x1276, x1314);
+ let mut x1341: u32 = 0;
+ let mut x1342: fiat_p384_u1 = 0;
+ let (x1341, x1342) = fiat_p384_addcarryx_u32(x1340, x1278, x1316);
+ let mut x1343: u32 = 0;
+ let mut x1344: fiat_p384_u1 = 0;
+ let (x1343, x1344) = fiat_p384_addcarryx_u32(x1342, x1280, x1318);
+ let mut x1345: u32 = 0;
+ let mut x1346: fiat_p384_u1 = 0;
+ let (x1345, x1346) = fiat_p384_addcarryx_u32(x1344, x1282, x1320);
+ let mut x1347: u32 = 0;
+ let mut x1348: fiat_p384_u1 = 0;
+ let (x1347, x1348) = fiat_p384_addcarryx_u32(x1346, x1284, x1322);
+ let mut x1349: u32 = 0;
+ let mut x1350: fiat_p384_u1 = 0;
+ let (x1349, x1350) = fiat_p384_addcarryx_u32(x1348, x1286, x1324);
+ let mut x1351: u32 = 0;
+ let mut x1352: fiat_p384_u1 = 0;
+ let (x1351, x1352) = fiat_p384_addcarryx_u32(x1350, x1288, x1326);
+ let mut x1353: u32 = 0;
+ let mut x1354: fiat_p384_u1 = 0;
+ let (x1353, x1354) = fiat_p384_addcarryx_u32(x1352, x1290, x1328);
+ let x1355: u32 = ((x1354 as u32) + (x1291 as u32));
+ let mut x1356: u32 = 0;
+ let mut x1357: u32 = 0;
+ let (x1356, x1357) = fiat_p384_mulx_u32(x10, (arg1[11]));
+ let mut x1358: u32 = 0;
+ let mut x1359: u32 = 0;
+ let (x1358, x1359) = fiat_p384_mulx_u32(x10, (arg1[10]));
+ let mut x1360: u32 = 0;
+ let mut x1361: u32 = 0;
+ let (x1360, x1361) = fiat_p384_mulx_u32(x10, (arg1[9]));
+ let mut x1362: u32 = 0;
+ let mut x1363: u32 = 0;
+ let (x1362, x1363) = fiat_p384_mulx_u32(x10, (arg1[8]));
+ let mut x1364: u32 = 0;
+ let mut x1365: u32 = 0;
+ let (x1364, x1365) = fiat_p384_mulx_u32(x10, (arg1[7]));
+ let mut x1366: u32 = 0;
+ let mut x1367: u32 = 0;
+ let (x1366, x1367) = fiat_p384_mulx_u32(x10, (arg1[6]));
+ let mut x1368: u32 = 0;
+ let mut x1369: u32 = 0;
+ let (x1368, x1369) = fiat_p384_mulx_u32(x10, (arg1[5]));
+ let mut x1370: u32 = 0;
+ let mut x1371: u32 = 0;
+ let (x1370, x1371) = fiat_p384_mulx_u32(x10, (arg1[4]));
+ let mut x1372: u32 = 0;
+ let mut x1373: u32 = 0;
+ let (x1372, x1373) = fiat_p384_mulx_u32(x10, (arg1[3]));
+ let mut x1374: u32 = 0;
+ let mut x1375: u32 = 0;
+ let (x1374, x1375) = fiat_p384_mulx_u32(x10, (arg1[2]));
+ let mut x1376: u32 = 0;
+ let mut x1377: u32 = 0;
+ let (x1376, x1377) = fiat_p384_mulx_u32(x10, (arg1[1]));
+ let mut x1378: u32 = 0;
+ let mut x1379: u32 = 0;
+ let (x1378, x1379) = fiat_p384_mulx_u32(x10, (arg1[0]));
+ let mut x1380: u32 = 0;
+ let mut x1381: fiat_p384_u1 = 0;
+ let (x1380, x1381) = fiat_p384_addcarryx_u32(0x0, x1379, x1376);
+ let mut x1382: u32 = 0;
+ let mut x1383: fiat_p384_u1 = 0;
+ let (x1382, x1383) = fiat_p384_addcarryx_u32(x1381, x1377, x1374);
+ let mut x1384: u32 = 0;
+ let mut x1385: fiat_p384_u1 = 0;
+ let (x1384, x1385) = fiat_p384_addcarryx_u32(x1383, x1375, x1372);
+ let mut x1386: u32 = 0;
+ let mut x1387: fiat_p384_u1 = 0;
+ let (x1386, x1387) = fiat_p384_addcarryx_u32(x1385, x1373, x1370);
+ let mut x1388: u32 = 0;
+ let mut x1389: fiat_p384_u1 = 0;
+ let (x1388, x1389) = fiat_p384_addcarryx_u32(x1387, x1371, x1368);
+ let mut x1390: u32 = 0;
+ let mut x1391: fiat_p384_u1 = 0;
+ let (x1390, x1391) = fiat_p384_addcarryx_u32(x1389, x1369, x1366);
+ let mut x1392: u32 = 0;
+ let mut x1393: fiat_p384_u1 = 0;
+ let (x1392, x1393) = fiat_p384_addcarryx_u32(x1391, x1367, x1364);
+ let mut x1394: u32 = 0;
+ let mut x1395: fiat_p384_u1 = 0;
+ let (x1394, x1395) = fiat_p384_addcarryx_u32(x1393, x1365, x1362);
+ let mut x1396: u32 = 0;
+ let mut x1397: fiat_p384_u1 = 0;
+ let (x1396, x1397) = fiat_p384_addcarryx_u32(x1395, x1363, x1360);
+ let mut x1398: u32 = 0;
+ let mut x1399: fiat_p384_u1 = 0;
+ let (x1398, x1399) = fiat_p384_addcarryx_u32(x1397, x1361, x1358);
+ let mut x1400: u32 = 0;
+ let mut x1401: fiat_p384_u1 = 0;
+ let (x1400, x1401) = fiat_p384_addcarryx_u32(x1399, x1359, x1356);
+ let x1402: u32 = ((x1401 as u32) + x1357);
+ let mut x1403: u32 = 0;
+ let mut x1404: fiat_p384_u1 = 0;
+ let (x1403, x1404) = fiat_p384_addcarryx_u32(0x0, x1331, x1378);
+ let mut x1405: u32 = 0;
+ let mut x1406: fiat_p384_u1 = 0;
+ let (x1405, x1406) = fiat_p384_addcarryx_u32(x1404, x1333, x1380);
+ let mut x1407: u32 = 0;
+ let mut x1408: fiat_p384_u1 = 0;
+ let (x1407, x1408) = fiat_p384_addcarryx_u32(x1406, x1335, x1382);
+ let mut x1409: u32 = 0;
+ let mut x1410: fiat_p384_u1 = 0;
+ let (x1409, x1410) = fiat_p384_addcarryx_u32(x1408, x1337, x1384);
+ let mut x1411: u32 = 0;
+ let mut x1412: fiat_p384_u1 = 0;
+ let (x1411, x1412) = fiat_p384_addcarryx_u32(x1410, x1339, x1386);
+ let mut x1413: u32 = 0;
+ let mut x1414: fiat_p384_u1 = 0;
+ let (x1413, x1414) = fiat_p384_addcarryx_u32(x1412, x1341, x1388);
+ let mut x1415: u32 = 0;
+ let mut x1416: fiat_p384_u1 = 0;
+ let (x1415, x1416) = fiat_p384_addcarryx_u32(x1414, x1343, x1390);
+ let mut x1417: u32 = 0;
+ let mut x1418: fiat_p384_u1 = 0;
+ let (x1417, x1418) = fiat_p384_addcarryx_u32(x1416, x1345, x1392);
+ let mut x1419: u32 = 0;
+ let mut x1420: fiat_p384_u1 = 0;
+ let (x1419, x1420) = fiat_p384_addcarryx_u32(x1418, x1347, x1394);
+ let mut x1421: u32 = 0;
+ let mut x1422: fiat_p384_u1 = 0;
+ let (x1421, x1422) = fiat_p384_addcarryx_u32(x1420, x1349, x1396);
+ let mut x1423: u32 = 0;
+ let mut x1424: fiat_p384_u1 = 0;
+ let (x1423, x1424) = fiat_p384_addcarryx_u32(x1422, x1351, x1398);
+ let mut x1425: u32 = 0;
+ let mut x1426: fiat_p384_u1 = 0;
+ let (x1425, x1426) = fiat_p384_addcarryx_u32(x1424, x1353, x1400);
+ let mut x1427: u32 = 0;
+ let mut x1428: fiat_p384_u1 = 0;
+ let (x1427, x1428) = fiat_p384_addcarryx_u32(x1426, x1355, x1402);
+ let mut x1429: u32 = 0;
+ let mut x1430: u32 = 0;
+ let (x1429, x1430) = fiat_p384_mulx_u32(x1403, 0xffffffff);
+ let mut x1431: u32 = 0;
+ let mut x1432: u32 = 0;
+ let (x1431, x1432) = fiat_p384_mulx_u32(x1403, 0xffffffff);
+ let mut x1433: u32 = 0;
+ let mut x1434: u32 = 0;
+ let (x1433, x1434) = fiat_p384_mulx_u32(x1403, 0xffffffff);
+ let mut x1435: u32 = 0;
+ let mut x1436: u32 = 0;
+ let (x1435, x1436) = fiat_p384_mulx_u32(x1403, 0xffffffff);
+ let mut x1437: u32 = 0;
+ let mut x1438: u32 = 0;
+ let (x1437, x1438) = fiat_p384_mulx_u32(x1403, 0xffffffff);
+ let mut x1439: u32 = 0;
+ let mut x1440: u32 = 0;
+ let (x1439, x1440) = fiat_p384_mulx_u32(x1403, 0xffffffff);
+ let mut x1441: u32 = 0;
+ let mut x1442: u32 = 0;
+ let (x1441, x1442) = fiat_p384_mulx_u32(x1403, 0xffffffff);
+ let mut x1443: u32 = 0;
+ let mut x1444: u32 = 0;
+ let (x1443, x1444) = fiat_p384_mulx_u32(x1403, 0xfffffffe);
+ let mut x1445: u32 = 0;
+ let mut x1446: u32 = 0;
+ let (x1445, x1446) = fiat_p384_mulx_u32(x1403, 0xffffffff);
+ let mut x1447: u32 = 0;
+ let mut x1448: u32 = 0;
+ let (x1447, x1448) = fiat_p384_mulx_u32(x1403, 0xffffffff);
+ let mut x1449: u32 = 0;
+ let mut x1450: fiat_p384_u1 = 0;
+ let (x1449, x1450) = fiat_p384_addcarryx_u32(0x0, x1446, x1443);
+ let mut x1451: u32 = 0;
+ let mut x1452: fiat_p384_u1 = 0;
+ let (x1451, x1452) = fiat_p384_addcarryx_u32(x1450, x1444, x1441);
+ let mut x1453: u32 = 0;
+ let mut x1454: fiat_p384_u1 = 0;
+ let (x1453, x1454) = fiat_p384_addcarryx_u32(x1452, x1442, x1439);
+ let mut x1455: u32 = 0;
+ let mut x1456: fiat_p384_u1 = 0;
+ let (x1455, x1456) = fiat_p384_addcarryx_u32(x1454, x1440, x1437);
+ let mut x1457: u32 = 0;
+ let mut x1458: fiat_p384_u1 = 0;
+ let (x1457, x1458) = fiat_p384_addcarryx_u32(x1456, x1438, x1435);
+ let mut x1459: u32 = 0;
+ let mut x1460: fiat_p384_u1 = 0;
+ let (x1459, x1460) = fiat_p384_addcarryx_u32(x1458, x1436, x1433);
+ let mut x1461: u32 = 0;
+ let mut x1462: fiat_p384_u1 = 0;
+ let (x1461, x1462) = fiat_p384_addcarryx_u32(x1460, x1434, x1431);
+ let mut x1463: u32 = 0;
+ let mut x1464: fiat_p384_u1 = 0;
+ let (x1463, x1464) = fiat_p384_addcarryx_u32(x1462, x1432, x1429);
+ let x1465: u32 = ((x1464 as u32) + x1430);
+ let mut x1466: u32 = 0;
+ let mut x1467: fiat_p384_u1 = 0;
+ let (x1466, x1467) = fiat_p384_addcarryx_u32(0x0, x1403, x1447);
+ let mut x1468: u32 = 0;
+ let mut x1469: fiat_p384_u1 = 0;
+ let (x1468, x1469) = fiat_p384_addcarryx_u32(x1467, x1405, x1448);
+ let mut x1470: u32 = 0;
+ let mut x1471: fiat_p384_u1 = 0;
+ let (x1470, x1471) = fiat_p384_addcarryx_u32(x1469, x1407, (0x0 as u32));
+ let mut x1472: u32 = 0;
+ let mut x1473: fiat_p384_u1 = 0;
+ let (x1472, x1473) = fiat_p384_addcarryx_u32(x1471, x1409, x1445);
+ let mut x1474: u32 = 0;
+ let mut x1475: fiat_p384_u1 = 0;
+ let (x1474, x1475) = fiat_p384_addcarryx_u32(x1473, x1411, x1449);
+ let mut x1476: u32 = 0;
+ let mut x1477: fiat_p384_u1 = 0;
+ let (x1476, x1477) = fiat_p384_addcarryx_u32(x1475, x1413, x1451);
+ let mut x1478: u32 = 0;
+ let mut x1479: fiat_p384_u1 = 0;
+ let (x1478, x1479) = fiat_p384_addcarryx_u32(x1477, x1415, x1453);
+ let mut x1480: u32 = 0;
+ let mut x1481: fiat_p384_u1 = 0;
+ let (x1480, x1481) = fiat_p384_addcarryx_u32(x1479, x1417, x1455);
+ let mut x1482: u32 = 0;
+ let mut x1483: fiat_p384_u1 = 0;
+ let (x1482, x1483) = fiat_p384_addcarryx_u32(x1481, x1419, x1457);
+ let mut x1484: u32 = 0;
+ let mut x1485: fiat_p384_u1 = 0;
+ let (x1484, x1485) = fiat_p384_addcarryx_u32(x1483, x1421, x1459);
+ let mut x1486: u32 = 0;
+ let mut x1487: fiat_p384_u1 = 0;
+ let (x1486, x1487) = fiat_p384_addcarryx_u32(x1485, x1423, x1461);
+ let mut x1488: u32 = 0;
+ let mut x1489: fiat_p384_u1 = 0;
+ let (x1488, x1489) = fiat_p384_addcarryx_u32(x1487, x1425, x1463);
+ let mut x1490: u32 = 0;
+ let mut x1491: fiat_p384_u1 = 0;
+ let (x1490, x1491) = fiat_p384_addcarryx_u32(x1489, x1427, x1465);
+ let x1492: u32 = ((x1491 as u32) + (x1428 as u32));
+ let mut x1493: u32 = 0;
+ let mut x1494: u32 = 0;
+ let (x1493, x1494) = fiat_p384_mulx_u32(x11, (arg1[11]));
+ let mut x1495: u32 = 0;
+ let mut x1496: u32 = 0;
+ let (x1495, x1496) = fiat_p384_mulx_u32(x11, (arg1[10]));
+ let mut x1497: u32 = 0;
+ let mut x1498: u32 = 0;
+ let (x1497, x1498) = fiat_p384_mulx_u32(x11, (arg1[9]));
+ let mut x1499: u32 = 0;
+ let mut x1500: u32 = 0;
+ let (x1499, x1500) = fiat_p384_mulx_u32(x11, (arg1[8]));
+ let mut x1501: u32 = 0;
+ let mut x1502: u32 = 0;
+ let (x1501, x1502) = fiat_p384_mulx_u32(x11, (arg1[7]));
+ let mut x1503: u32 = 0;
+ let mut x1504: u32 = 0;
+ let (x1503, x1504) = fiat_p384_mulx_u32(x11, (arg1[6]));
+ let mut x1505: u32 = 0;
+ let mut x1506: u32 = 0;
+ let (x1505, x1506) = fiat_p384_mulx_u32(x11, (arg1[5]));
+ let mut x1507: u32 = 0;
+ let mut x1508: u32 = 0;
+ let (x1507, x1508) = fiat_p384_mulx_u32(x11, (arg1[4]));
+ let mut x1509: u32 = 0;
+ let mut x1510: u32 = 0;
+ let (x1509, x1510) = fiat_p384_mulx_u32(x11, (arg1[3]));
+ let mut x1511: u32 = 0;
+ let mut x1512: u32 = 0;
+ let (x1511, x1512) = fiat_p384_mulx_u32(x11, (arg1[2]));
+ let mut x1513: u32 = 0;
+ let mut x1514: u32 = 0;
+ let (x1513, x1514) = fiat_p384_mulx_u32(x11, (arg1[1]));
+ let mut x1515: u32 = 0;
+ let mut x1516: u32 = 0;
+ let (x1515, x1516) = fiat_p384_mulx_u32(x11, (arg1[0]));
+ let mut x1517: u32 = 0;
+ let mut x1518: fiat_p384_u1 = 0;
+ let (x1517, x1518) = fiat_p384_addcarryx_u32(0x0, x1516, x1513);
+ let mut x1519: u32 = 0;
+ let mut x1520: fiat_p384_u1 = 0;
+ let (x1519, x1520) = fiat_p384_addcarryx_u32(x1518, x1514, x1511);
+ let mut x1521: u32 = 0;
+ let mut x1522: fiat_p384_u1 = 0;
+ let (x1521, x1522) = fiat_p384_addcarryx_u32(x1520, x1512, x1509);
+ let mut x1523: u32 = 0;
+ let mut x1524: fiat_p384_u1 = 0;
+ let (x1523, x1524) = fiat_p384_addcarryx_u32(x1522, x1510, x1507);
+ let mut x1525: u32 = 0;
+ let mut x1526: fiat_p384_u1 = 0;
+ let (x1525, x1526) = fiat_p384_addcarryx_u32(x1524, x1508, x1505);
+ let mut x1527: u32 = 0;
+ let mut x1528: fiat_p384_u1 = 0;
+ let (x1527, x1528) = fiat_p384_addcarryx_u32(x1526, x1506, x1503);
+ let mut x1529: u32 = 0;
+ let mut x1530: fiat_p384_u1 = 0;
+ let (x1529, x1530) = fiat_p384_addcarryx_u32(x1528, x1504, x1501);
+ let mut x1531: u32 = 0;
+ let mut x1532: fiat_p384_u1 = 0;
+ let (x1531, x1532) = fiat_p384_addcarryx_u32(x1530, x1502, x1499);
+ let mut x1533: u32 = 0;
+ let mut x1534: fiat_p384_u1 = 0;
+ let (x1533, x1534) = fiat_p384_addcarryx_u32(x1532, x1500, x1497);
+ let mut x1535: u32 = 0;
+ let mut x1536: fiat_p384_u1 = 0;
+ let (x1535, x1536) = fiat_p384_addcarryx_u32(x1534, x1498, x1495);
+ let mut x1537: u32 = 0;
+ let mut x1538: fiat_p384_u1 = 0;
+ let (x1537, x1538) = fiat_p384_addcarryx_u32(x1536, x1496, x1493);
+ let x1539: u32 = ((x1538 as u32) + x1494);
+ let mut x1540: u32 = 0;
+ let mut x1541: fiat_p384_u1 = 0;
+ let (x1540, x1541) = fiat_p384_addcarryx_u32(0x0, x1468, x1515);
+ let mut x1542: u32 = 0;
+ let mut x1543: fiat_p384_u1 = 0;
+ let (x1542, x1543) = fiat_p384_addcarryx_u32(x1541, x1470, x1517);
+ let mut x1544: u32 = 0;
+ let mut x1545: fiat_p384_u1 = 0;
+ let (x1544, x1545) = fiat_p384_addcarryx_u32(x1543, x1472, x1519);
+ let mut x1546: u32 = 0;
+ let mut x1547: fiat_p384_u1 = 0;
+ let (x1546, x1547) = fiat_p384_addcarryx_u32(x1545, x1474, x1521);
+ let mut x1548: u32 = 0;
+ let mut x1549: fiat_p384_u1 = 0;
+ let (x1548, x1549) = fiat_p384_addcarryx_u32(x1547, x1476, x1523);
+ let mut x1550: u32 = 0;
+ let mut x1551: fiat_p384_u1 = 0;
+ let (x1550, x1551) = fiat_p384_addcarryx_u32(x1549, x1478, x1525);
+ let mut x1552: u32 = 0;
+ let mut x1553: fiat_p384_u1 = 0;
+ let (x1552, x1553) = fiat_p384_addcarryx_u32(x1551, x1480, x1527);
+ let mut x1554: u32 = 0;
+ let mut x1555: fiat_p384_u1 = 0;
+ let (x1554, x1555) = fiat_p384_addcarryx_u32(x1553, x1482, x1529);
+ let mut x1556: u32 = 0;
+ let mut x1557: fiat_p384_u1 = 0;
+ let (x1556, x1557) = fiat_p384_addcarryx_u32(x1555, x1484, x1531);
+ let mut x1558: u32 = 0;
+ let mut x1559: fiat_p384_u1 = 0;
+ let (x1558, x1559) = fiat_p384_addcarryx_u32(x1557, x1486, x1533);
+ let mut x1560: u32 = 0;
+ let mut x1561: fiat_p384_u1 = 0;
+ let (x1560, x1561) = fiat_p384_addcarryx_u32(x1559, x1488, x1535);
+ let mut x1562: u32 = 0;
+ let mut x1563: fiat_p384_u1 = 0;
+ let (x1562, x1563) = fiat_p384_addcarryx_u32(x1561, x1490, x1537);
+ let mut x1564: u32 = 0;
+ let mut x1565: fiat_p384_u1 = 0;
+ let (x1564, x1565) = fiat_p384_addcarryx_u32(x1563, x1492, x1539);
+ let mut x1566: u32 = 0;
+ let mut x1567: u32 = 0;
+ let (x1566, x1567) = fiat_p384_mulx_u32(x1540, 0xffffffff);
+ let mut x1568: u32 = 0;
+ let mut x1569: u32 = 0;
+ let (x1568, x1569) = fiat_p384_mulx_u32(x1540, 0xffffffff);
+ let mut x1570: u32 = 0;
+ let mut x1571: u32 = 0;
+ let (x1570, x1571) = fiat_p384_mulx_u32(x1540, 0xffffffff);
+ let mut x1572: u32 = 0;
+ let mut x1573: u32 = 0;
+ let (x1572, x1573) = fiat_p384_mulx_u32(x1540, 0xffffffff);
+ let mut x1574: u32 = 0;
+ let mut x1575: u32 = 0;
+ let (x1574, x1575) = fiat_p384_mulx_u32(x1540, 0xffffffff);
+ let mut x1576: u32 = 0;
+ let mut x1577: u32 = 0;
+ let (x1576, x1577) = fiat_p384_mulx_u32(x1540, 0xffffffff);
+ let mut x1578: u32 = 0;
+ let mut x1579: u32 = 0;
+ let (x1578, x1579) = fiat_p384_mulx_u32(x1540, 0xffffffff);
+ let mut x1580: u32 = 0;
+ let mut x1581: u32 = 0;
+ let (x1580, x1581) = fiat_p384_mulx_u32(x1540, 0xfffffffe);
+ let mut x1582: u32 = 0;
+ let mut x1583: u32 = 0;
+ let (x1582, x1583) = fiat_p384_mulx_u32(x1540, 0xffffffff);
+ let mut x1584: u32 = 0;
+ let mut x1585: u32 = 0;
+ let (x1584, x1585) = fiat_p384_mulx_u32(x1540, 0xffffffff);
+ let mut x1586: u32 = 0;
+ let mut x1587: fiat_p384_u1 = 0;
+ let (x1586, x1587) = fiat_p384_addcarryx_u32(0x0, x1583, x1580);
+ let mut x1588: u32 = 0;
+ let mut x1589: fiat_p384_u1 = 0;
+ let (x1588, x1589) = fiat_p384_addcarryx_u32(x1587, x1581, x1578);
+ let mut x1590: u32 = 0;
+ let mut x1591: fiat_p384_u1 = 0;
+ let (x1590, x1591) = fiat_p384_addcarryx_u32(x1589, x1579, x1576);
+ let mut x1592: u32 = 0;
+ let mut x1593: fiat_p384_u1 = 0;
+ let (x1592, x1593) = fiat_p384_addcarryx_u32(x1591, x1577, x1574);
+ let mut x1594: u32 = 0;
+ let mut x1595: fiat_p384_u1 = 0;
+ let (x1594, x1595) = fiat_p384_addcarryx_u32(x1593, x1575, x1572);
+ let mut x1596: u32 = 0;
+ let mut x1597: fiat_p384_u1 = 0;
+ let (x1596, x1597) = fiat_p384_addcarryx_u32(x1595, x1573, x1570);
+ let mut x1598: u32 = 0;
+ let mut x1599: fiat_p384_u1 = 0;
+ let (x1598, x1599) = fiat_p384_addcarryx_u32(x1597, x1571, x1568);
+ let mut x1600: u32 = 0;
+ let mut x1601: fiat_p384_u1 = 0;
+ let (x1600, x1601) = fiat_p384_addcarryx_u32(x1599, x1569, x1566);
+ let x1602: u32 = ((x1601 as u32) + x1567);
+ let mut x1603: u32 = 0;
+ let mut x1604: fiat_p384_u1 = 0;
+ let (x1603, x1604) = fiat_p384_addcarryx_u32(0x0, x1540, x1584);
+ let mut x1605: u32 = 0;
+ let mut x1606: fiat_p384_u1 = 0;
+ let (x1605, x1606) = fiat_p384_addcarryx_u32(x1604, x1542, x1585);
+ let mut x1607: u32 = 0;
+ let mut x1608: fiat_p384_u1 = 0;
+ let (x1607, x1608) = fiat_p384_addcarryx_u32(x1606, x1544, (0x0 as u32));
+ let mut x1609: u32 = 0;
+ let mut x1610: fiat_p384_u1 = 0;
+ let (x1609, x1610) = fiat_p384_addcarryx_u32(x1608, x1546, x1582);
+ let mut x1611: u32 = 0;
+ let mut x1612: fiat_p384_u1 = 0;
+ let (x1611, x1612) = fiat_p384_addcarryx_u32(x1610, x1548, x1586);
+ let mut x1613: u32 = 0;
+ let mut x1614: fiat_p384_u1 = 0;
+ let (x1613, x1614) = fiat_p384_addcarryx_u32(x1612, x1550, x1588);
+ let mut x1615: u32 = 0;
+ let mut x1616: fiat_p384_u1 = 0;
+ let (x1615, x1616) = fiat_p384_addcarryx_u32(x1614, x1552, x1590);
+ let mut x1617: u32 = 0;
+ let mut x1618: fiat_p384_u1 = 0;
+ let (x1617, x1618) = fiat_p384_addcarryx_u32(x1616, x1554, x1592);
+ let mut x1619: u32 = 0;
+ let mut x1620: fiat_p384_u1 = 0;
+ let (x1619, x1620) = fiat_p384_addcarryx_u32(x1618, x1556, x1594);
+ let mut x1621: u32 = 0;
+ let mut x1622: fiat_p384_u1 = 0;
+ let (x1621, x1622) = fiat_p384_addcarryx_u32(x1620, x1558, x1596);
+ let mut x1623: u32 = 0;
+ let mut x1624: fiat_p384_u1 = 0;
+ let (x1623, x1624) = fiat_p384_addcarryx_u32(x1622, x1560, x1598);
+ let mut x1625: u32 = 0;
+ let mut x1626: fiat_p384_u1 = 0;
+ let (x1625, x1626) = fiat_p384_addcarryx_u32(x1624, x1562, x1600);
+ let mut x1627: u32 = 0;
+ let mut x1628: fiat_p384_u1 = 0;
+ let (x1627, x1628) = fiat_p384_addcarryx_u32(x1626, x1564, x1602);
+ let x1629: u32 = ((x1628 as u32) + (x1565 as u32));
+ let mut x1630: u32 = 0;
+ let mut x1631: fiat_p384_u1 = 0;
+ let (x1630, x1631) = fiat_p384_subborrowx_u32(0x0, x1605, 0xffffffff);
+ let mut x1632: u32 = 0;
+ let mut x1633: fiat_p384_u1 = 0;
+ let (x1632, x1633) = fiat_p384_subborrowx_u32(x1631, x1607, (0x0 as u32));
+ let mut x1634: u32 = 0;
+ let mut x1635: fiat_p384_u1 = 0;
+ let (x1634, x1635) = fiat_p384_subborrowx_u32(x1633, x1609, (0x0 as u32));
+ let mut x1636: u32 = 0;
+ let mut x1637: fiat_p384_u1 = 0;
+ let (x1636, x1637) = fiat_p384_subborrowx_u32(x1635, x1611, 0xffffffff);
+ let mut x1638: u32 = 0;
+ let mut x1639: fiat_p384_u1 = 0;
+ let (x1638, x1639) = fiat_p384_subborrowx_u32(x1637, x1613, 0xfffffffe);
+ let mut x1640: u32 = 0;
+ let mut x1641: fiat_p384_u1 = 0;
+ let (x1640, x1641) = fiat_p384_subborrowx_u32(x1639, x1615, 0xffffffff);
+ let mut x1642: u32 = 0;
+ let mut x1643: fiat_p384_u1 = 0;
+ let (x1642, x1643) = fiat_p384_subborrowx_u32(x1641, x1617, 0xffffffff);
+ let mut x1644: u32 = 0;
+ let mut x1645: fiat_p384_u1 = 0;
+ let (x1644, x1645) = fiat_p384_subborrowx_u32(x1643, x1619, 0xffffffff);
+ let mut x1646: u32 = 0;
+ let mut x1647: fiat_p384_u1 = 0;
+ let (x1646, x1647) = fiat_p384_subborrowx_u32(x1645, x1621, 0xffffffff);
+ let mut x1648: u32 = 0;
+ let mut x1649: fiat_p384_u1 = 0;
+ let (x1648, x1649) = fiat_p384_subborrowx_u32(x1647, x1623, 0xffffffff);
+ let mut x1650: u32 = 0;
+ let mut x1651: fiat_p384_u1 = 0;
+ let (x1650, x1651) = fiat_p384_subborrowx_u32(x1649, x1625, 0xffffffff);
+ let mut x1652: u32 = 0;
+ let mut x1653: fiat_p384_u1 = 0;
+ let (x1652, x1653) = fiat_p384_subborrowx_u32(x1651, x1627, 0xffffffff);
+ let mut x1654: u32 = 0;
+ let mut x1655: fiat_p384_u1 = 0;
+ let (x1654, x1655) = fiat_p384_subborrowx_u32(x1653, x1629, (0x0 as u32));
+ let mut x1656: u32 = 0;
+ let (x1656) = fiat_p384_cmovznz_u32(x1655, x1630, x1605);
+ let mut x1657: u32 = 0;
+ let (x1657) = fiat_p384_cmovznz_u32(x1655, x1632, x1607);
+ let mut x1658: u32 = 0;
+ let (x1658) = fiat_p384_cmovznz_u32(x1655, x1634, x1609);
+ let mut x1659: u32 = 0;
+ let (x1659) = fiat_p384_cmovznz_u32(x1655, x1636, x1611);
+ let mut x1660: u32 = 0;
+ let (x1660) = fiat_p384_cmovznz_u32(x1655, x1638, x1613);
+ let mut x1661: u32 = 0;
+ let (x1661) = fiat_p384_cmovznz_u32(x1655, x1640, x1615);
+ let mut x1662: u32 = 0;
+ let (x1662) = fiat_p384_cmovznz_u32(x1655, x1642, x1617);
+ let mut x1663: u32 = 0;
+ let (x1663) = fiat_p384_cmovznz_u32(x1655, x1644, x1619);
+ let mut x1664: u32 = 0;
+ let (x1664) = fiat_p384_cmovznz_u32(x1655, x1646, x1621);
+ let mut x1665: u32 = 0;
+ let (x1665) = fiat_p384_cmovznz_u32(x1655, x1648, x1623);
+ let mut x1666: u32 = 0;
+ let (x1666) = fiat_p384_cmovznz_u32(x1655, x1650, x1625);
+ let mut x1667: u32 = 0;
+ let (x1667) = fiat_p384_cmovznz_u32(x1655, x1652, x1627);
+ out1[0] = x1656;
+ out1[1] = x1657;
+ out1[2] = x1658;
+ out1[3] = x1659;
+ out1[4] = x1660;
+ out1[5] = x1661;
+ out1[6] = x1662;
+ out1[7] = x1663;
+ out1[8] = x1664;
+ out1[9] = x1665;
+ out1[10] = x1666;
+ out1[11] = x1667;
+ out1
+}
+#[doc = " The function fiat_p384_add adds two field elements in the Montgomery domain."]
+#[doc = ""]
+#[doc = " Preconditions:"]
+#[doc = " 0 ≤ eval arg1 < m"]
+#[doc = " 0 ≤ eval arg2 < m"]
+#[doc = " Postconditions:"]
+#[doc = " eval (from_montgomery out1) mod m = (eval (from_montgomery arg1) + eval (from_montgomery arg2)) mod m"]
+#[doc = " 0 ≤ eval out1 < m"]
+#[doc = ""]
+#[inline]
+pub const fn fiat_p384_add(
+ arg1: &fiat_p384_montgomery_domain_field_element,
+ arg2: &fiat_p384_montgomery_domain_field_element,
+) -> fiat_p384_montgomery_domain_field_element {
+ let mut out1: fiat_p384_montgomery_domain_field_element = [0; 12];
+ let mut x1: u32 = 0;
+ let mut x2: fiat_p384_u1 = 0;
+ let (x1, x2) = fiat_p384_addcarryx_u32(0x0, (arg1[0]), (arg2[0]));
+ let mut x3: u32 = 0;
+ let mut x4: fiat_p384_u1 = 0;
+ let (x3, x4) = fiat_p384_addcarryx_u32(x2, (arg1[1]), (arg2[1]));
+ let mut x5: u32 = 0;
+ let mut x6: fiat_p384_u1 = 0;
+ let (x5, x6) = fiat_p384_addcarryx_u32(x4, (arg1[2]), (arg2[2]));
+ let mut x7: u32 = 0;
+ let mut x8: fiat_p384_u1 = 0;
+ let (x7, x8) = fiat_p384_addcarryx_u32(x6, (arg1[3]), (arg2[3]));
+ let mut x9: u32 = 0;
+ let mut x10: fiat_p384_u1 = 0;
+ let (x9, x10) = fiat_p384_addcarryx_u32(x8, (arg1[4]), (arg2[4]));
+ let mut x11: u32 = 0;
+ let mut x12: fiat_p384_u1 = 0;
+ let (x11, x12) = fiat_p384_addcarryx_u32(x10, (arg1[5]), (arg2[5]));
+ let mut x13: u32 = 0;
+ let mut x14: fiat_p384_u1 = 0;
+ let (x13, x14) = fiat_p384_addcarryx_u32(x12, (arg1[6]), (arg2[6]));
+ let mut x15: u32 = 0;
+ let mut x16: fiat_p384_u1 = 0;
+ let (x15, x16) = fiat_p384_addcarryx_u32(x14, (arg1[7]), (arg2[7]));
+ let mut x17: u32 = 0;
+ let mut x18: fiat_p384_u1 = 0;
+ let (x17, x18) = fiat_p384_addcarryx_u32(x16, (arg1[8]), (arg2[8]));
+ let mut x19: u32 = 0;
+ let mut x20: fiat_p384_u1 = 0;
+ let (x19, x20) = fiat_p384_addcarryx_u32(x18, (arg1[9]), (arg2[9]));
+ let mut x21: u32 = 0;
+ let mut x22: fiat_p384_u1 = 0;
+ let (x21, x22) = fiat_p384_addcarryx_u32(x20, (arg1[10]), (arg2[10]));
+ let mut x23: u32 = 0;
+ let mut x24: fiat_p384_u1 = 0;
+ let (x23, x24) = fiat_p384_addcarryx_u32(x22, (arg1[11]), (arg2[11]));
+ let mut x25: u32 = 0;
+ let mut x26: fiat_p384_u1 = 0;
+ let (x25, x26) = fiat_p384_subborrowx_u32(0x0, x1, 0xffffffff);
+ let mut x27: u32 = 0;
+ let mut x28: fiat_p384_u1 = 0;
+ let (x27, x28) = fiat_p384_subborrowx_u32(x26, x3, (0x0 as u32));
+ let mut x29: u32 = 0;
+ let mut x30: fiat_p384_u1 = 0;
+ let (x29, x30) = fiat_p384_subborrowx_u32(x28, x5, (0x0 as u32));
+ let mut x31: u32 = 0;
+ let mut x32: fiat_p384_u1 = 0;
+ let (x31, x32) = fiat_p384_subborrowx_u32(x30, x7, 0xffffffff);
+ let mut x33: u32 = 0;
+ let mut x34: fiat_p384_u1 = 0;
+ let (x33, x34) = fiat_p384_subborrowx_u32(x32, x9, 0xfffffffe);
+ let mut x35: u32 = 0;
+ let mut x36: fiat_p384_u1 = 0;
+ let (x35, x36) = fiat_p384_subborrowx_u32(x34, x11, 0xffffffff);
+ let mut x37: u32 = 0;
+ let mut x38: fiat_p384_u1 = 0;
+ let (x37, x38) = fiat_p384_subborrowx_u32(x36, x13, 0xffffffff);
+ let mut x39: u32 = 0;
+ let mut x40: fiat_p384_u1 = 0;
+ let (x39, x40) = fiat_p384_subborrowx_u32(x38, x15, 0xffffffff);
+ let mut x41: u32 = 0;
+ let mut x42: fiat_p384_u1 = 0;
+ let (x41, x42) = fiat_p384_subborrowx_u32(x40, x17, 0xffffffff);
+ let mut x43: u32 = 0;
+ let mut x44: fiat_p384_u1 = 0;
+ let (x43, x44) = fiat_p384_subborrowx_u32(x42, x19, 0xffffffff);
+ let mut x45: u32 = 0;
+ let mut x46: fiat_p384_u1 = 0;
+ let (x45, x46) = fiat_p384_subborrowx_u32(x44, x21, 0xffffffff);
+ let mut x47: u32 = 0;
+ let mut x48: fiat_p384_u1 = 0;
+ let (x47, x48) = fiat_p384_subborrowx_u32(x46, x23, 0xffffffff);
+ let mut x49: u32 = 0;
+ let mut x50: fiat_p384_u1 = 0;
+ let (x49, x50) = fiat_p384_subborrowx_u32(x48, (x24 as u32), (0x0 as u32));
+ let mut x51: u32 = 0;
+ let (x51) = fiat_p384_cmovznz_u32(x50, x25, x1);
+ let mut x52: u32 = 0;
+ let (x52) = fiat_p384_cmovznz_u32(x50, x27, x3);
+ let mut x53: u32 = 0;
+ let (x53) = fiat_p384_cmovznz_u32(x50, x29, x5);
+ let mut x54: u32 = 0;
+ let (x54) = fiat_p384_cmovznz_u32(x50, x31, x7);
+ let mut x55: u32 = 0;
+ let (x55) = fiat_p384_cmovznz_u32(x50, x33, x9);
+ let mut x56: u32 = 0;
+ let (x56) = fiat_p384_cmovznz_u32(x50, x35, x11);
+ let mut x57: u32 = 0;
+ let (x57) = fiat_p384_cmovznz_u32(x50, x37, x13);
+ let mut x58: u32 = 0;
+ let (x58) = fiat_p384_cmovznz_u32(x50, x39, x15);
+ let mut x59: u32 = 0;
+ let (x59) = fiat_p384_cmovznz_u32(x50, x41, x17);
+ let mut x60: u32 = 0;
+ let (x60) = fiat_p384_cmovznz_u32(x50, x43, x19);
+ let mut x61: u32 = 0;
+ let (x61) = fiat_p384_cmovznz_u32(x50, x45, x21);
+ let mut x62: u32 = 0;
+ let (x62) = fiat_p384_cmovznz_u32(x50, x47, x23);
+ out1[0] = x51;
+ out1[1] = x52;
+ out1[2] = x53;
+ out1[3] = x54;
+ out1[4] = x55;
+ out1[5] = x56;
+ out1[6] = x57;
+ out1[7] = x58;
+ out1[8] = x59;
+ out1[9] = x60;
+ out1[10] = x61;
+ out1[11] = x62;
+ out1
+}
+#[doc = " The function fiat_p384_sub subtracts two field elements in the Montgomery domain."]
+#[doc = ""]
+#[doc = " Preconditions:"]
+#[doc = " 0 ≤ eval arg1 < m"]
+#[doc = " 0 ≤ eval arg2 < m"]
+#[doc = " Postconditions:"]
+#[doc = " eval (from_montgomery out1) mod m = (eval (from_montgomery arg1) - eval (from_montgomery arg2)) mod m"]
+#[doc = " 0 ≤ eval out1 < m"]
+#[doc = ""]
+#[inline]
+pub const fn fiat_p384_sub(
+ arg1: &fiat_p384_montgomery_domain_field_element,
+ arg2: &fiat_p384_montgomery_domain_field_element,
+) -> fiat_p384_montgomery_domain_field_element {
+ let mut out1: fiat_p384_montgomery_domain_field_element = [0; 12];
+ let mut x1: u32 = 0;
+ let mut x2: fiat_p384_u1 = 0;
+ let (x1, x2) = fiat_p384_subborrowx_u32(0x0, (arg1[0]), (arg2[0]));
+ let mut x3: u32 = 0;
+ let mut x4: fiat_p384_u1 = 0;
+ let (x3, x4) = fiat_p384_subborrowx_u32(x2, (arg1[1]), (arg2[1]));
+ let mut x5: u32 = 0;
+ let mut x6: fiat_p384_u1 = 0;
+ let (x5, x6) = fiat_p384_subborrowx_u32(x4, (arg1[2]), (arg2[2]));
+ let mut x7: u32 = 0;
+ let mut x8: fiat_p384_u1 = 0;
+ let (x7, x8) = fiat_p384_subborrowx_u32(x6, (arg1[3]), (arg2[3]));
+ let mut x9: u32 = 0;
+ let mut x10: fiat_p384_u1 = 0;
+ let (x9, x10) = fiat_p384_subborrowx_u32(x8, (arg1[4]), (arg2[4]));
+ let mut x11: u32 = 0;
+ let mut x12: fiat_p384_u1 = 0;
+ let (x11, x12) = fiat_p384_subborrowx_u32(x10, (arg1[5]), (arg2[5]));
+ let mut x13: u32 = 0;
+ let mut x14: fiat_p384_u1 = 0;
+ let (x13, x14) = fiat_p384_subborrowx_u32(x12, (arg1[6]), (arg2[6]));
+ let mut x15: u32 = 0;
+ let mut x16: fiat_p384_u1 = 0;
+ let (x15, x16) = fiat_p384_subborrowx_u32(x14, (arg1[7]), (arg2[7]));
+ let mut x17: u32 = 0;
+ let mut x18: fiat_p384_u1 = 0;
+ let (x17, x18) = fiat_p384_subborrowx_u32(x16, (arg1[8]), (arg2[8]));
+ let mut x19: u32 = 0;
+ let mut x20: fiat_p384_u1 = 0;
+ let (x19, x20) = fiat_p384_subborrowx_u32(x18, (arg1[9]), (arg2[9]));
+ let mut x21: u32 = 0;
+ let mut x22: fiat_p384_u1 = 0;
+ let (x21, x22) = fiat_p384_subborrowx_u32(x20, (arg1[10]), (arg2[10]));
+ let mut x23: u32 = 0;
+ let mut x24: fiat_p384_u1 = 0;
+ let (x23, x24) = fiat_p384_subborrowx_u32(x22, (arg1[11]), (arg2[11]));
+ let mut x25: u32 = 0;
+ let (x25) = fiat_p384_cmovznz_u32(x24, (0x0 as u32), 0xffffffff);
+ let mut x26: u32 = 0;
+ let mut x27: fiat_p384_u1 = 0;
+ let (x26, x27) = fiat_p384_addcarryx_u32(0x0, x1, x25);
+ let mut x28: u32 = 0;
+ let mut x29: fiat_p384_u1 = 0;
+ let (x28, x29) = fiat_p384_addcarryx_u32(x27, x3, (0x0 as u32));
+ let mut x30: u32 = 0;
+ let mut x31: fiat_p384_u1 = 0;
+ let (x30, x31) = fiat_p384_addcarryx_u32(x29, x5, (0x0 as u32));
+ let mut x32: u32 = 0;
+ let mut x33: fiat_p384_u1 = 0;
+ let (x32, x33) = fiat_p384_addcarryx_u32(x31, x7, x25);
+ let mut x34: u32 = 0;
+ let mut x35: fiat_p384_u1 = 0;
+ let (x34, x35) = fiat_p384_addcarryx_u32(x33, x9, (x25 & 0xfffffffe));
+ let mut x36: u32 = 0;
+ let mut x37: fiat_p384_u1 = 0;
+ let (x36, x37) = fiat_p384_addcarryx_u32(x35, x11, x25);
+ let mut x38: u32 = 0;
+ let mut x39: fiat_p384_u1 = 0;
+ let (x38, x39) = fiat_p384_addcarryx_u32(x37, x13, x25);
+ let mut x40: u32 = 0;
+ let mut x41: fiat_p384_u1 = 0;
+ let (x40, x41) = fiat_p384_addcarryx_u32(x39, x15, x25);
+ let mut x42: u32 = 0;
+ let mut x43: fiat_p384_u1 = 0;
+ let (x42, x43) = fiat_p384_addcarryx_u32(x41, x17, x25);
+ let mut x44: u32 = 0;
+ let mut x45: fiat_p384_u1 = 0;
+ let (x44, x45) = fiat_p384_addcarryx_u32(x43, x19, x25);
+ let mut x46: u32 = 0;
+ let mut x47: fiat_p384_u1 = 0;
+ let (x46, x47) = fiat_p384_addcarryx_u32(x45, x21, x25);
+ let mut x48: u32 = 0;
+ let mut x49: fiat_p384_u1 = 0;
+ let (x48, x49) = fiat_p384_addcarryx_u32(x47, x23, x25);
+ out1[0] = x26;
+ out1[1] = x28;
+ out1[2] = x30;
+ out1[3] = x32;
+ out1[4] = x34;
+ out1[5] = x36;
+ out1[6] = x38;
+ out1[7] = x40;
+ out1[8] = x42;
+ out1[9] = x44;
+ out1[10] = x46;
+ out1[11] = x48;
+ out1
+}
+#[doc = " The function fiat_p384_opp negates a field element in the Montgomery domain."]
+#[doc = ""]
+#[doc = " Preconditions:"]
+#[doc = " 0 ≤ eval arg1 < m"]
+#[doc = " Postconditions:"]
+#[doc = " eval (from_montgomery out1) mod m = -eval (from_montgomery arg1) mod m"]
+#[doc = " 0 ≤ eval out1 < m"]
+#[doc = ""]
+#[inline]
+pub const fn fiat_p384_opp(
+ arg1: &fiat_p384_montgomery_domain_field_element,
+) -> fiat_p384_montgomery_domain_field_element {
+ let mut out1: fiat_p384_montgomery_domain_field_element = [0; 12];
+ let mut x1: u32 = 0;
+ let mut x2: fiat_p384_u1 = 0;
+ let (x1, x2) = fiat_p384_subborrowx_u32(0x0, (0x0 as u32), (arg1[0]));
+ let mut x3: u32 = 0;
+ let mut x4: fiat_p384_u1 = 0;
+ let (x3, x4) = fiat_p384_subborrowx_u32(x2, (0x0 as u32), (arg1[1]));
+ let mut x5: u32 = 0;
+ let mut x6: fiat_p384_u1 = 0;
+ let (x5, x6) = fiat_p384_subborrowx_u32(x4, (0x0 as u32), (arg1[2]));
+ let mut x7: u32 = 0;
+ let mut x8: fiat_p384_u1 = 0;
+ let (x7, x8) = fiat_p384_subborrowx_u32(x6, (0x0 as u32), (arg1[3]));
+ let mut x9: u32 = 0;
+ let mut x10: fiat_p384_u1 = 0;
+ let (x9, x10) = fiat_p384_subborrowx_u32(x8, (0x0 as u32), (arg1[4]));
+ let mut x11: u32 = 0;
+ let mut x12: fiat_p384_u1 = 0;
+ let (x11, x12) = fiat_p384_subborrowx_u32(x10, (0x0 as u32), (arg1[5]));
+ let mut x13: u32 = 0;
+ let mut x14: fiat_p384_u1 = 0;
+ let (x13, x14) = fiat_p384_subborrowx_u32(x12, (0x0 as u32), (arg1[6]));
+ let mut x15: u32 = 0;
+ let mut x16: fiat_p384_u1 = 0;
+ let (x15, x16) = fiat_p384_subborrowx_u32(x14, (0x0 as u32), (arg1[7]));
+ let mut x17: u32 = 0;
+ let mut x18: fiat_p384_u1 = 0;
+ let (x17, x18) = fiat_p384_subborrowx_u32(x16, (0x0 as u32), (arg1[8]));
+ let mut x19: u32 = 0;
+ let mut x20: fiat_p384_u1 = 0;
+ let (x19, x20) = fiat_p384_subborrowx_u32(x18, (0x0 as u32), (arg1[9]));
+ let mut x21: u32 = 0;
+ let mut x22: fiat_p384_u1 = 0;
+ let (x21, x22) = fiat_p384_subborrowx_u32(x20, (0x0 as u32), (arg1[10]));
+ let mut x23: u32 = 0;
+ let mut x24: fiat_p384_u1 = 0;
+ let (x23, x24) = fiat_p384_subborrowx_u32(x22, (0x0 as u32), (arg1[11]));
+ let mut x25: u32 = 0;
+ let (x25) = fiat_p384_cmovznz_u32(x24, (0x0 as u32), 0xffffffff);
+ let mut x26: u32 = 0;
+ let mut x27: fiat_p384_u1 = 0;
+ let (x26, x27) = fiat_p384_addcarryx_u32(0x0, x1, x25);
+ let mut x28: u32 = 0;
+ let mut x29: fiat_p384_u1 = 0;
+ let (x28, x29) = fiat_p384_addcarryx_u32(x27, x3, (0x0 as u32));
+ let mut x30: u32 = 0;
+ let mut x31: fiat_p384_u1 = 0;
+ let (x30, x31) = fiat_p384_addcarryx_u32(x29, x5, (0x0 as u32));
+ let mut x32: u32 = 0;
+ let mut x33: fiat_p384_u1 = 0;
+ let (x32, x33) = fiat_p384_addcarryx_u32(x31, x7, x25);
+ let mut x34: u32 = 0;
+ let mut x35: fiat_p384_u1 = 0;
+ let (x34, x35) = fiat_p384_addcarryx_u32(x33, x9, (x25 & 0xfffffffe));
+ let mut x36: u32 = 0;
+ let mut x37: fiat_p384_u1 = 0;
+ let (x36, x37) = fiat_p384_addcarryx_u32(x35, x11, x25);
+ let mut x38: u32 = 0;
+ let mut x39: fiat_p384_u1 = 0;
+ let (x38, x39) = fiat_p384_addcarryx_u32(x37, x13, x25);
+ let mut x40: u32 = 0;
+ let mut x41: fiat_p384_u1 = 0;
+ let (x40, x41) = fiat_p384_addcarryx_u32(x39, x15, x25);
+ let mut x42: u32 = 0;
+ let mut x43: fiat_p384_u1 = 0;
+ let (x42, x43) = fiat_p384_addcarryx_u32(x41, x17, x25);
+ let mut x44: u32 = 0;
+ let mut x45: fiat_p384_u1 = 0;
+ let (x44, x45) = fiat_p384_addcarryx_u32(x43, x19, x25);
+ let mut x46: u32 = 0;
+ let mut x47: fiat_p384_u1 = 0;
+ let (x46, x47) = fiat_p384_addcarryx_u32(x45, x21, x25);
+ let mut x48: u32 = 0;
+ let mut x49: fiat_p384_u1 = 0;
+ let (x48, x49) = fiat_p384_addcarryx_u32(x47, x23, x25);
+ out1[0] = x26;
+ out1[1] = x28;
+ out1[2] = x30;
+ out1[3] = x32;
+ out1[4] = x34;
+ out1[5] = x36;
+ out1[6] = x38;
+ out1[7] = x40;
+ out1[8] = x42;
+ out1[9] = x44;
+ out1[10] = x46;
+ out1[11] = x48;
+ out1
+}
+#[doc = " The function fiat_p384_from_montgomery translates a field element out of the Montgomery domain."]
+#[doc = ""]
+#[doc = " Preconditions:"]
+#[doc = " 0 ≤ eval arg1 < m"]
+#[doc = " Postconditions:"]
+#[doc = " eval out1 mod m = (eval arg1 * ((2^32)⁻¹ mod m)^12) mod m"]
+#[doc = " 0 ≤ eval out1 < m"]
+#[doc = ""]
+#[inline]
+pub const fn fiat_p384_from_montgomery(
+ arg1: &fiat_p384_montgomery_domain_field_element,
+) -> fiat_p384_non_montgomery_domain_field_element {
+ let mut out1: fiat_p384_non_montgomery_domain_field_element = [0; 12];
+ let x1: u32 = (arg1[0]);
+ let mut x2: u32 = 0;
+ let mut x3: u32 = 0;
+ let (x2, x3) = fiat_p384_mulx_u32(x1, 0xffffffff);
+ let mut x4: u32 = 0;
+ let mut x5: u32 = 0;
+ let (x4, x5) = fiat_p384_mulx_u32(x1, 0xffffffff);
+ let mut x6: u32 = 0;
+ let mut x7: u32 = 0;
+ let (x6, x7) = fiat_p384_mulx_u32(x1, 0xffffffff);
+ let mut x8: u32 = 0;
+ let mut x9: u32 = 0;
+ let (x8, x9) = fiat_p384_mulx_u32(x1, 0xffffffff);
+ let mut x10: u32 = 0;
+ let mut x11: u32 = 0;
+ let (x10, x11) = fiat_p384_mulx_u32(x1, 0xffffffff);
+ let mut x12: u32 = 0;
+ let mut x13: u32 = 0;
+ let (x12, x13) = fiat_p384_mulx_u32(x1, 0xffffffff);
+ let mut x14: u32 = 0;
+ let mut x15: u32 = 0;
+ let (x14, x15) = fiat_p384_mulx_u32(x1, 0xffffffff);
+ let mut x16: u32 = 0;
+ let mut x17: u32 = 0;
+ let (x16, x17) = fiat_p384_mulx_u32(x1, 0xfffffffe);
+ let mut x18: u32 = 0;
+ let mut x19: u32 = 0;
+ let (x18, x19) = fiat_p384_mulx_u32(x1, 0xffffffff);
+ let mut x20: u32 = 0;
+ let mut x21: u32 = 0;
+ let (x20, x21) = fiat_p384_mulx_u32(x1, 0xffffffff);
+ let mut x22: u32 = 0;
+ let mut x23: fiat_p384_u1 = 0;
+ let (x22, x23) = fiat_p384_addcarryx_u32(0x0, x19, x16);
+ let mut x24: u32 = 0;
+ let mut x25: fiat_p384_u1 = 0;
+ let (x24, x25) = fiat_p384_addcarryx_u32(x23, x17, x14);
+ let mut x26: u32 = 0;
+ let mut x27: fiat_p384_u1 = 0;
+ let (x26, x27) = fiat_p384_addcarryx_u32(x25, x15, x12);
+ let mut x28: u32 = 0;
+ let mut x29: fiat_p384_u1 = 0;
+ let (x28, x29) = fiat_p384_addcarryx_u32(x27, x13, x10);
+ let mut x30: u32 = 0;
+ let mut x31: fiat_p384_u1 = 0;
+ let (x30, x31) = fiat_p384_addcarryx_u32(x29, x11, x8);
+ let mut x32: u32 = 0;
+ let mut x33: fiat_p384_u1 = 0;
+ let (x32, x33) = fiat_p384_addcarryx_u32(x31, x9, x6);
+ let mut x34: u32 = 0;
+ let mut x35: fiat_p384_u1 = 0;
+ let (x34, x35) = fiat_p384_addcarryx_u32(x33, x7, x4);
+ let mut x36: u32 = 0;
+ let mut x37: fiat_p384_u1 = 0;
+ let (x36, x37) = fiat_p384_addcarryx_u32(x35, x5, x2);
+ let mut x38: u32 = 0;
+ let mut x39: fiat_p384_u1 = 0;
+ let (x38, x39) = fiat_p384_addcarryx_u32(0x0, x1, x20);
+ let mut x40: u32 = 0;
+ let mut x41: fiat_p384_u1 = 0;
+ let (x40, x41) = fiat_p384_addcarryx_u32(0x0, ((x39 as u32) + x21), (arg1[1]));
+ let mut x42: u32 = 0;
+ let mut x43: u32 = 0;
+ let (x42, x43) = fiat_p384_mulx_u32(x40, 0xffffffff);
+ let mut x44: u32 = 0;
+ let mut x45: u32 = 0;
+ let (x44, x45) = fiat_p384_mulx_u32(x40, 0xffffffff);
+ let mut x46: u32 = 0;
+ let mut x47: u32 = 0;
+ let (x46, x47) = fiat_p384_mulx_u32(x40, 0xffffffff);
+ let mut x48: u32 = 0;
+ let mut x49: u32 = 0;
+ let (x48, x49) = fiat_p384_mulx_u32(x40, 0xffffffff);
+ let mut x50: u32 = 0;
+ let mut x51: u32 = 0;
+ let (x50, x51) = fiat_p384_mulx_u32(x40, 0xffffffff);
+ let mut x52: u32 = 0;
+ let mut x53: u32 = 0;
+ let (x52, x53) = fiat_p384_mulx_u32(x40, 0xffffffff);
+ let mut x54: u32 = 0;
+ let mut x55: u32 = 0;
+ let (x54, x55) = fiat_p384_mulx_u32(x40, 0xffffffff);
+ let mut x56: u32 = 0;
+ let mut x57: u32 = 0;
+ let (x56, x57) = fiat_p384_mulx_u32(x40, 0xfffffffe);
+ let mut x58: u32 = 0;
+ let mut x59: u32 = 0;
+ let (x58, x59) = fiat_p384_mulx_u32(x40, 0xffffffff);
+ let mut x60: u32 = 0;
+ let mut x61: u32 = 0;
+ let (x60, x61) = fiat_p384_mulx_u32(x40, 0xffffffff);
+ let mut x62: u32 = 0;
+ let mut x63: fiat_p384_u1 = 0;
+ let (x62, x63) = fiat_p384_addcarryx_u32(0x0, x59, x56);
+ let mut x64: u32 = 0;
+ let mut x65: fiat_p384_u1 = 0;
+ let (x64, x65) = fiat_p384_addcarryx_u32(x63, x57, x54);
+ let mut x66: u32 = 0;
+ let mut x67: fiat_p384_u1 = 0;
+ let (x66, x67) = fiat_p384_addcarryx_u32(x65, x55, x52);
+ let mut x68: u32 = 0;
+ let mut x69: fiat_p384_u1 = 0;
+ let (x68, x69) = fiat_p384_addcarryx_u32(x67, x53, x50);
+ let mut x70: u32 = 0;
+ let mut x71: fiat_p384_u1 = 0;
+ let (x70, x71) = fiat_p384_addcarryx_u32(x69, x51, x48);
+ let mut x72: u32 = 0;
+ let mut x73: fiat_p384_u1 = 0;
+ let (x72, x73) = fiat_p384_addcarryx_u32(x71, x49, x46);
+ let mut x74: u32 = 0;
+ let mut x75: fiat_p384_u1 = 0;
+ let (x74, x75) = fiat_p384_addcarryx_u32(x73, x47, x44);
+ let mut x76: u32 = 0;
+ let mut x77: fiat_p384_u1 = 0;
+ let (x76, x77) = fiat_p384_addcarryx_u32(x75, x45, x42);
+ let mut x78: u32 = 0;
+ let mut x79: fiat_p384_u1 = 0;
+ let (x78, x79) = fiat_p384_addcarryx_u32(0x0, x40, x60);
+ let mut x80: u32 = 0;
+ let mut x81: fiat_p384_u1 = 0;
+ let (x80, x81) = fiat_p384_addcarryx_u32(x79, (x41 as u32), x61);
+ let mut x82: u32 = 0;
+ let mut x83: fiat_p384_u1 = 0;
+ let (x82, x83) = fiat_p384_addcarryx_u32(x81, x18, (0x0 as u32));
+ let mut x84: u32 = 0;
+ let mut x85: fiat_p384_u1 = 0;
+ let (x84, x85) = fiat_p384_addcarryx_u32(x83, x22, x58);
+ let mut x86: u32 = 0;
+ let mut x87: fiat_p384_u1 = 0;
+ let (x86, x87) = fiat_p384_addcarryx_u32(x85, x24, x62);
+ let mut x88: u32 = 0;
+ let mut x89: fiat_p384_u1 = 0;
+ let (x88, x89) = fiat_p384_addcarryx_u32(x87, x26, x64);
+ let mut x90: u32 = 0;
+ let mut x91: fiat_p384_u1 = 0;
+ let (x90, x91) = fiat_p384_addcarryx_u32(x89, x28, x66);
+ let mut x92: u32 = 0;
+ let mut x93: fiat_p384_u1 = 0;
+ let (x92, x93) = fiat_p384_addcarryx_u32(x91, x30, x68);
+ let mut x94: u32 = 0;
+ let mut x95: fiat_p384_u1 = 0;
+ let (x94, x95) = fiat_p384_addcarryx_u32(x93, x32, x70);
+ let mut x96: u32 = 0;
+ let mut x97: fiat_p384_u1 = 0;
+ let (x96, x97) = fiat_p384_addcarryx_u32(x95, x34, x72);
+ let mut x98: u32 = 0;
+ let mut x99: fiat_p384_u1 = 0;
+ let (x98, x99) = fiat_p384_addcarryx_u32(x97, x36, x74);
+ let mut x100: u32 = 0;
+ let mut x101: fiat_p384_u1 = 0;
+ let (x100, x101) = fiat_p384_addcarryx_u32(x99, ((x37 as u32) + x3), x76);
+ let mut x102: u32 = 0;
+ let mut x103: fiat_p384_u1 = 0;
+ let (x102, x103) = fiat_p384_addcarryx_u32(x101, (0x0 as u32), ((x77 as u32) + x43));
+ let mut x104: u32 = 0;
+ let mut x105: fiat_p384_u1 = 0;
+ let (x104, x105) = fiat_p384_addcarryx_u32(0x0, x80, (arg1[2]));
+ let mut x106: u32 = 0;
+ let mut x107: fiat_p384_u1 = 0;
+ let (x106, x107) = fiat_p384_addcarryx_u32(x105, x82, (0x0 as u32));
+ let mut x108: u32 = 0;
+ let mut x109: fiat_p384_u1 = 0;
+ let (x108, x109) = fiat_p384_addcarryx_u32(x107, x84, (0x0 as u32));
+ let mut x110: u32 = 0;
+ let mut x111: fiat_p384_u1 = 0;
+ let (x110, x111) = fiat_p384_addcarryx_u32(x109, x86, (0x0 as u32));
+ let mut x112: u32 = 0;
+ let mut x113: fiat_p384_u1 = 0;
+ let (x112, x113) = fiat_p384_addcarryx_u32(x111, x88, (0x0 as u32));
+ let mut x114: u32 = 0;
+ let mut x115: fiat_p384_u1 = 0;
+ let (x114, x115) = fiat_p384_addcarryx_u32(x113, x90, (0x0 as u32));
+ let mut x116: u32 = 0;
+ let mut x117: fiat_p384_u1 = 0;
+ let (x116, x117) = fiat_p384_addcarryx_u32(x115, x92, (0x0 as u32));
+ let mut x118: u32 = 0;
+ let mut x119: fiat_p384_u1 = 0;
+ let (x118, x119) = fiat_p384_addcarryx_u32(x117, x94, (0x0 as u32));
+ let mut x120: u32 = 0;
+ let mut x121: fiat_p384_u1 = 0;
+ let (x120, x121) = fiat_p384_addcarryx_u32(x119, x96, (0x0 as u32));
+ let mut x122: u32 = 0;
+ let mut x123: fiat_p384_u1 = 0;
+ let (x122, x123) = fiat_p384_addcarryx_u32(x121, x98, (0x0 as u32));
+ let mut x124: u32 = 0;
+ let mut x125: fiat_p384_u1 = 0;
+ let (x124, x125) = fiat_p384_addcarryx_u32(x123, x100, (0x0 as u32));
+ let mut x126: u32 = 0;
+ let mut x127: fiat_p384_u1 = 0;
+ let (x126, x127) = fiat_p384_addcarryx_u32(x125, x102, (0x0 as u32));
+ let mut x128: u32 = 0;
+ let mut x129: u32 = 0;
+ let (x128, x129) = fiat_p384_mulx_u32(x104, 0xffffffff);
+ let mut x130: u32 = 0;
+ let mut x131: u32 = 0;
+ let (x130, x131) = fiat_p384_mulx_u32(x104, 0xffffffff);
+ let mut x132: u32 = 0;
+ let mut x133: u32 = 0;
+ let (x132, x133) = fiat_p384_mulx_u32(x104, 0xffffffff);
+ let mut x134: u32 = 0;
+ let mut x135: u32 = 0;
+ let (x134, x135) = fiat_p384_mulx_u32(x104, 0xffffffff);
+ let mut x136: u32 = 0;
+ let mut x137: u32 = 0;
+ let (x136, x137) = fiat_p384_mulx_u32(x104, 0xffffffff);
+ let mut x138: u32 = 0;
+ let mut x139: u32 = 0;
+ let (x138, x139) = fiat_p384_mulx_u32(x104, 0xffffffff);
+ let mut x140: u32 = 0;
+ let mut x141: u32 = 0;
+ let (x140, x141) = fiat_p384_mulx_u32(x104, 0xffffffff);
+ let mut x142: u32 = 0;
+ let mut x143: u32 = 0;
+ let (x142, x143) = fiat_p384_mulx_u32(x104, 0xfffffffe);
+ let mut x144: u32 = 0;
+ let mut x145: u32 = 0;
+ let (x144, x145) = fiat_p384_mulx_u32(x104, 0xffffffff);
+ let mut x146: u32 = 0;
+ let mut x147: u32 = 0;
+ let (x146, x147) = fiat_p384_mulx_u32(x104, 0xffffffff);
+ let mut x148: u32 = 0;
+ let mut x149: fiat_p384_u1 = 0;
+ let (x148, x149) = fiat_p384_addcarryx_u32(0x0, x145, x142);
+ let mut x150: u32 = 0;
+ let mut x151: fiat_p384_u1 = 0;
+ let (x150, x151) = fiat_p384_addcarryx_u32(x149, x143, x140);
+ let mut x152: u32 = 0;
+ let mut x153: fiat_p384_u1 = 0;
+ let (x152, x153) = fiat_p384_addcarryx_u32(x151, x141, x138);
+ let mut x154: u32 = 0;
+ let mut x155: fiat_p384_u1 = 0;
+ let (x154, x155) = fiat_p384_addcarryx_u32(x153, x139, x136);
+ let mut x156: u32 = 0;
+ let mut x157: fiat_p384_u1 = 0;
+ let (x156, x157) = fiat_p384_addcarryx_u32(x155, x137, x134);
+ let mut x158: u32 = 0;
+ let mut x159: fiat_p384_u1 = 0;
+ let (x158, x159) = fiat_p384_addcarryx_u32(x157, x135, x132);
+ let mut x160: u32 = 0;
+ let mut x161: fiat_p384_u1 = 0;
+ let (x160, x161) = fiat_p384_addcarryx_u32(x159, x133, x130);
+ let mut x162: u32 = 0;
+ let mut x163: fiat_p384_u1 = 0;
+ let (x162, x163) = fiat_p384_addcarryx_u32(x161, x131, x128);
+ let mut x164: u32 = 0;
+ let mut x165: fiat_p384_u1 = 0;
+ let (x164, x165) = fiat_p384_addcarryx_u32(0x0, x104, x146);
+ let mut x166: u32 = 0;
+ let mut x167: fiat_p384_u1 = 0;
+ let (x166, x167) = fiat_p384_addcarryx_u32(x165, x106, x147);
+ let mut x168: u32 = 0;
+ let mut x169: fiat_p384_u1 = 0;
+ let (x168, x169) = fiat_p384_addcarryx_u32(x167, x108, (0x0 as u32));
+ let mut x170: u32 = 0;
+ let mut x171: fiat_p384_u1 = 0;
+ let (x170, x171) = fiat_p384_addcarryx_u32(x169, x110, x144);
+ let mut x172: u32 = 0;
+ let mut x173: fiat_p384_u1 = 0;
+ let (x172, x173) = fiat_p384_addcarryx_u32(x171, x112, x148);
+ let mut x174: u32 = 0;
+ let mut x175: fiat_p384_u1 = 0;
+ let (x174, x175) = fiat_p384_addcarryx_u32(x173, x114, x150);
+ let mut x176: u32 = 0;
+ let mut x177: fiat_p384_u1 = 0;
+ let (x176, x177) = fiat_p384_addcarryx_u32(x175, x116, x152);
+ let mut x178: u32 = 0;
+ let mut x179: fiat_p384_u1 = 0;
+ let (x178, x179) = fiat_p384_addcarryx_u32(x177, x118, x154);
+ let mut x180: u32 = 0;
+ let mut x181: fiat_p384_u1 = 0;
+ let (x180, x181) = fiat_p384_addcarryx_u32(x179, x120, x156);
+ let mut x182: u32 = 0;
+ let mut x183: fiat_p384_u1 = 0;
+ let (x182, x183) = fiat_p384_addcarryx_u32(x181, x122, x158);
+ let mut x184: u32 = 0;
+ let mut x185: fiat_p384_u1 = 0;
+ let (x184, x185) = fiat_p384_addcarryx_u32(x183, x124, x160);
+ let mut x186: u32 = 0;
+ let mut x187: fiat_p384_u1 = 0;
+ let (x186, x187) = fiat_p384_addcarryx_u32(x185, x126, x162);
+ let mut x188: u32 = 0;
+ let mut x189: fiat_p384_u1 = 0;
+ let (x188, x189) = fiat_p384_addcarryx_u32(
+ x187,
+ ((x127 as u32) + (x103 as u32)),
+ ((x163 as u32) + x129),
+ );
+ let mut x190: u32 = 0;
+ let mut x191: fiat_p384_u1 = 0;
+ let (x190, x191) = fiat_p384_addcarryx_u32(0x0, x166, (arg1[3]));
+ let mut x192: u32 = 0;
+ let mut x193: fiat_p384_u1 = 0;
+ let (x192, x193) = fiat_p384_addcarryx_u32(x191, x168, (0x0 as u32));
+ let mut x194: u32 = 0;
+ let mut x195: fiat_p384_u1 = 0;
+ let (x194, x195) = fiat_p384_addcarryx_u32(x193, x170, (0x0 as u32));
+ let mut x196: u32 = 0;
+ let mut x197: fiat_p384_u1 = 0;
+ let (x196, x197) = fiat_p384_addcarryx_u32(x195, x172, (0x0 as u32));
+ let mut x198: u32 = 0;
+ let mut x199: fiat_p384_u1 = 0;
+ let (x198, x199) = fiat_p384_addcarryx_u32(x197, x174, (0x0 as u32));
+ let mut x200: u32 = 0;
+ let mut x201: fiat_p384_u1 = 0;
+ let (x200, x201) = fiat_p384_addcarryx_u32(x199, x176, (0x0 as u32));
+ let mut x202: u32 = 0;
+ let mut x203: fiat_p384_u1 = 0;
+ let (x202, x203) = fiat_p384_addcarryx_u32(x201, x178, (0x0 as u32));
+ let mut x204: u32 = 0;
+ let mut x205: fiat_p384_u1 = 0;
+ let (x204, x205) = fiat_p384_addcarryx_u32(x203, x180, (0x0 as u32));
+ let mut x206: u32 = 0;
+ let mut x207: fiat_p384_u1 = 0;
+ let (x206, x207) = fiat_p384_addcarryx_u32(x205, x182, (0x0 as u32));
+ let mut x208: u32 = 0;
+ let mut x209: fiat_p384_u1 = 0;
+ let (x208, x209) = fiat_p384_addcarryx_u32(x207, x184, (0x0 as u32));
+ let mut x210: u32 = 0;
+ let mut x211: fiat_p384_u1 = 0;
+ let (x210, x211) = fiat_p384_addcarryx_u32(x209, x186, (0x0 as u32));
+ let mut x212: u32 = 0;
+ let mut x213: fiat_p384_u1 = 0;
+ let (x212, x213) = fiat_p384_addcarryx_u32(x211, x188, (0x0 as u32));
+ let mut x214: u32 = 0;
+ let mut x215: u32 = 0;
+ let (x214, x215) = fiat_p384_mulx_u32(x190, 0xffffffff);
+ let mut x216: u32 = 0;
+ let mut x217: u32 = 0;
+ let (x216, x217) = fiat_p384_mulx_u32(x190, 0xffffffff);
+ let mut x218: u32 = 0;
+ let mut x219: u32 = 0;
+ let (x218, x219) = fiat_p384_mulx_u32(x190, 0xffffffff);
+ let mut x220: u32 = 0;
+ let mut x221: u32 = 0;
+ let (x220, x221) = fiat_p384_mulx_u32(x190, 0xffffffff);
+ let mut x222: u32 = 0;
+ let mut x223: u32 = 0;
+ let (x222, x223) = fiat_p384_mulx_u32(x190, 0xffffffff);
+ let mut x224: u32 = 0;
+ let mut x225: u32 = 0;
+ let (x224, x225) = fiat_p384_mulx_u32(x190, 0xffffffff);
+ let mut x226: u32 = 0;
+ let mut x227: u32 = 0;
+ let (x226, x227) = fiat_p384_mulx_u32(x190, 0xffffffff);
+ let mut x228: u32 = 0;
+ let mut x229: u32 = 0;
+ let (x228, x229) = fiat_p384_mulx_u32(x190, 0xfffffffe);
+ let mut x230: u32 = 0;
+ let mut x231: u32 = 0;
+ let (x230, x231) = fiat_p384_mulx_u32(x190, 0xffffffff);
+ let mut x232: u32 = 0;
+ let mut x233: u32 = 0;
+ let (x232, x233) = fiat_p384_mulx_u32(x190, 0xffffffff);
+ let mut x234: u32 = 0;
+ let mut x235: fiat_p384_u1 = 0;
+ let (x234, x235) = fiat_p384_addcarryx_u32(0x0, x231, x228);
+ let mut x236: u32 = 0;
+ let mut x237: fiat_p384_u1 = 0;
+ let (x236, x237) = fiat_p384_addcarryx_u32(x235, x229, x226);
+ let mut x238: u32 = 0;
+ let mut x239: fiat_p384_u1 = 0;
+ let (x238, x239) = fiat_p384_addcarryx_u32(x237, x227, x224);
+ let mut x240: u32 = 0;
+ let mut x241: fiat_p384_u1 = 0;
+ let (x240, x241) = fiat_p384_addcarryx_u32(x239, x225, x222);
+ let mut x242: u32 = 0;
+ let mut x243: fiat_p384_u1 = 0;
+ let (x242, x243) = fiat_p384_addcarryx_u32(x241, x223, x220);
+ let mut x244: u32 = 0;
+ let mut x245: fiat_p384_u1 = 0;
+ let (x244, x245) = fiat_p384_addcarryx_u32(x243, x221, x218);
+ let mut x246: u32 = 0;
+ let mut x247: fiat_p384_u1 = 0;
+ let (x246, x247) = fiat_p384_addcarryx_u32(x245, x219, x216);
+ let mut x248: u32 = 0;
+ let mut x249: fiat_p384_u1 = 0;
+ let (x248, x249) = fiat_p384_addcarryx_u32(x247, x217, x214);
+ let mut x250: u32 = 0;
+ let mut x251: fiat_p384_u1 = 0;
+ let (x250, x251) = fiat_p384_addcarryx_u32(0x0, x190, x232);
+ let mut x252: u32 = 0;
+ let mut x253: fiat_p384_u1 = 0;
+ let (x252, x253) = fiat_p384_addcarryx_u32(x251, x192, x233);
+ let mut x254: u32 = 0;
+ let mut x255: fiat_p384_u1 = 0;
+ let (x254, x255) = fiat_p384_addcarryx_u32(x253, x194, (0x0 as u32));
+ let mut x256: u32 = 0;
+ let mut x257: fiat_p384_u1 = 0;
+ let (x256, x257) = fiat_p384_addcarryx_u32(x255, x196, x230);
+ let mut x258: u32 = 0;
+ let mut x259: fiat_p384_u1 = 0;
+ let (x258, x259) = fiat_p384_addcarryx_u32(x257, x198, x234);
+ let mut x260: u32 = 0;
+ let mut x261: fiat_p384_u1 = 0;
+ let (x260, x261) = fiat_p384_addcarryx_u32(x259, x200, x236);
+ let mut x262: u32 = 0;
+ let mut x263: fiat_p384_u1 = 0;
+ let (x262, x263) = fiat_p384_addcarryx_u32(x261, x202, x238);
+ let mut x264: u32 = 0;
+ let mut x265: fiat_p384_u1 = 0;
+ let (x264, x265) = fiat_p384_addcarryx_u32(x263, x204, x240);
+ let mut x266: u32 = 0;
+ let mut x267: fiat_p384_u1 = 0;
+ let (x266, x267) = fiat_p384_addcarryx_u32(x265, x206, x242);
+ let mut x268: u32 = 0;
+ let mut x269: fiat_p384_u1 = 0;
+ let (x268, x269) = fiat_p384_addcarryx_u32(x267, x208, x244);
+ let mut x270: u32 = 0;
+ let mut x271: fiat_p384_u1 = 0;
+ let (x270, x271) = fiat_p384_addcarryx_u32(x269, x210, x246);
+ let mut x272: u32 = 0;
+ let mut x273: fiat_p384_u1 = 0;
+ let (x272, x273) = fiat_p384_addcarryx_u32(x271, x212, x248);
+ let mut x274: u32 = 0;
+ let mut x275: fiat_p384_u1 = 0;
+ let (x274, x275) = fiat_p384_addcarryx_u32(
+ x273,
+ ((x213 as u32) + (x189 as u32)),
+ ((x249 as u32) + x215),
+ );
+ let mut x276: u32 = 0;
+ let mut x277: fiat_p384_u1 = 0;
+ let (x276, x277) = fiat_p384_addcarryx_u32(0x0, x252, (arg1[4]));
+ let mut x278: u32 = 0;
+ let mut x279: fiat_p384_u1 = 0;
+ let (x278, x279) = fiat_p384_addcarryx_u32(x277, x254, (0x0 as u32));
+ let mut x280: u32 = 0;
+ let mut x281: fiat_p384_u1 = 0;
+ let (x280, x281) = fiat_p384_addcarryx_u32(x279, x256, (0x0 as u32));
+ let mut x282: u32 = 0;
+ let mut x283: fiat_p384_u1 = 0;
+ let (x282, x283) = fiat_p384_addcarryx_u32(x281, x258, (0x0 as u32));
+ let mut x284: u32 = 0;
+ let mut x285: fiat_p384_u1 = 0;
+ let (x284, x285) = fiat_p384_addcarryx_u32(x283, x260, (0x0 as u32));
+ let mut x286: u32 = 0;
+ let mut x287: fiat_p384_u1 = 0;
+ let (x286, x287) = fiat_p384_addcarryx_u32(x285, x262, (0x0 as u32));
+ let mut x288: u32 = 0;
+ let mut x289: fiat_p384_u1 = 0;
+ let (x288, x289) = fiat_p384_addcarryx_u32(x287, x264, (0x0 as u32));
+ let mut x290: u32 = 0;
+ let mut x291: fiat_p384_u1 = 0;
+ let (x290, x291) = fiat_p384_addcarryx_u32(x289, x266, (0x0 as u32));
+ let mut x292: u32 = 0;
+ let mut x293: fiat_p384_u1 = 0;
+ let (x292, x293) = fiat_p384_addcarryx_u32(x291, x268, (0x0 as u32));
+ let mut x294: u32 = 0;
+ let mut x295: fiat_p384_u1 = 0;
+ let (x294, x295) = fiat_p384_addcarryx_u32(x293, x270, (0x0 as u32));
+ let mut x296: u32 = 0;
+ let mut x297: fiat_p384_u1 = 0;
+ let (x296, x297) = fiat_p384_addcarryx_u32(x295, x272, (0x0 as u32));
+ let mut x298: u32 = 0;
+ let mut x299: fiat_p384_u1 = 0;
+ let (x298, x299) = fiat_p384_addcarryx_u32(x297, x274, (0x0 as u32));
+ let mut x300: u32 = 0;
+ let mut x301: u32 = 0;
+ let (x300, x301) = fiat_p384_mulx_u32(x276, 0xffffffff);
+ let mut x302: u32 = 0;
+ let mut x303: u32 = 0;
+ let (x302, x303) = fiat_p384_mulx_u32(x276, 0xffffffff);
+ let mut x304: u32 = 0;
+ let mut x305: u32 = 0;
+ let (x304, x305) = fiat_p384_mulx_u32(x276, 0xffffffff);
+ let mut x306: u32 = 0;
+ let mut x307: u32 = 0;
+ let (x306, x307) = fiat_p384_mulx_u32(x276, 0xffffffff);
+ let mut x308: u32 = 0;
+ let mut x309: u32 = 0;
+ let (x308, x309) = fiat_p384_mulx_u32(x276, 0xffffffff);
+ let mut x310: u32 = 0;
+ let mut x311: u32 = 0;
+ let (x310, x311) = fiat_p384_mulx_u32(x276, 0xffffffff);
+ let mut x312: u32 = 0;
+ let mut x313: u32 = 0;
+ let (x312, x313) = fiat_p384_mulx_u32(x276, 0xffffffff);
+ let mut x314: u32 = 0;
+ let mut x315: u32 = 0;
+ let (x314, x315) = fiat_p384_mulx_u32(x276, 0xfffffffe);
+ let mut x316: u32 = 0;
+ let mut x317: u32 = 0;
+ let (x316, x317) = fiat_p384_mulx_u32(x276, 0xffffffff);
+ let mut x318: u32 = 0;
+ let mut x319: u32 = 0;
+ let (x318, x319) = fiat_p384_mulx_u32(x276, 0xffffffff);
+ let mut x320: u32 = 0;
+ let mut x321: fiat_p384_u1 = 0;
+ let (x320, x321) = fiat_p384_addcarryx_u32(0x0, x317, x314);
+ let mut x322: u32 = 0;
+ let mut x323: fiat_p384_u1 = 0;
+ let (x322, x323) = fiat_p384_addcarryx_u32(x321, x315, x312);
+ let mut x324: u32 = 0;
+ let mut x325: fiat_p384_u1 = 0;
+ let (x324, x325) = fiat_p384_addcarryx_u32(x323, x313, x310);
+ let mut x326: u32 = 0;
+ let mut x327: fiat_p384_u1 = 0;
+ let (x326, x327) = fiat_p384_addcarryx_u32(x325, x311, x308);
+ let mut x328: u32 = 0;
+ let mut x329: fiat_p384_u1 = 0;
+ let (x328, x329) = fiat_p384_addcarryx_u32(x327, x309, x306);
+ let mut x330: u32 = 0;
+ let mut x331: fiat_p384_u1 = 0;
+ let (x330, x331) = fiat_p384_addcarryx_u32(x329, x307, x304);
+ let mut x332: u32 = 0;
+ let mut x333: fiat_p384_u1 = 0;
+ let (x332, x333) = fiat_p384_addcarryx_u32(x331, x305, x302);
+ let mut x334: u32 = 0;
+ let mut x335: fiat_p384_u1 = 0;
+ let (x334, x335) = fiat_p384_addcarryx_u32(x333, x303, x300);
+ let mut x336: u32 = 0;
+ let mut x337: fiat_p384_u1 = 0;
+ let (x336, x337) = fiat_p384_addcarryx_u32(0x0, x276, x318);
+ let mut x338: u32 = 0;
+ let mut x339: fiat_p384_u1 = 0;
+ let (x338, x339) = fiat_p384_addcarryx_u32(x337, x278, x319);
+ let mut x340: u32 = 0;
+ let mut x341: fiat_p384_u1 = 0;
+ let (x340, x341) = fiat_p384_addcarryx_u32(x339, x280, (0x0 as u32));
+ let mut x342: u32 = 0;
+ let mut x343: fiat_p384_u1 = 0;
+ let (x342, x343) = fiat_p384_addcarryx_u32(x341, x282, x316);
+ let mut x344: u32 = 0;
+ let mut x345: fiat_p384_u1 = 0;
+ let (x344, x345) = fiat_p384_addcarryx_u32(x343, x284, x320);
+ let mut x346: u32 = 0;
+ let mut x347: fiat_p384_u1 = 0;
+ let (x346, x347) = fiat_p384_addcarryx_u32(x345, x286, x322);
+ let mut x348: u32 = 0;
+ let mut x349: fiat_p384_u1 = 0;
+ let (x348, x349) = fiat_p384_addcarryx_u32(x347, x288, x324);
+ let mut x350: u32 = 0;
+ let mut x351: fiat_p384_u1 = 0;
+ let (x350, x351) = fiat_p384_addcarryx_u32(x349, x290, x326);
+ let mut x352: u32 = 0;
+ let mut x353: fiat_p384_u1 = 0;
+ let (x352, x353) = fiat_p384_addcarryx_u32(x351, x292, x328);
+ let mut x354: u32 = 0;
+ let mut x355: fiat_p384_u1 = 0;
+ let (x354, x355) = fiat_p384_addcarryx_u32(x353, x294, x330);
+ let mut x356: u32 = 0;
+ let mut x357: fiat_p384_u1 = 0;
+ let (x356, x357) = fiat_p384_addcarryx_u32(x355, x296, x332);
+ let mut x358: u32 = 0;
+ let mut x359: fiat_p384_u1 = 0;
+ let (x358, x359) = fiat_p384_addcarryx_u32(x357, x298, x334);
+ let mut x360: u32 = 0;
+ let mut x361: fiat_p384_u1 = 0;
+ let (x360, x361) = fiat_p384_addcarryx_u32(
+ x359,
+ ((x299 as u32) + (x275 as u32)),
+ ((x335 as u32) + x301),
+ );
+ let mut x362: u32 = 0;
+ let mut x363: fiat_p384_u1 = 0;
+ let (x362, x363) = fiat_p384_addcarryx_u32(0x0, x338, (arg1[5]));
+ let mut x364: u32 = 0;
+ let mut x365: fiat_p384_u1 = 0;
+ let (x364, x365) = fiat_p384_addcarryx_u32(x363, x340, (0x0 as u32));
+ let mut x366: u32 = 0;
+ let mut x367: fiat_p384_u1 = 0;
+ let (x366, x367) = fiat_p384_addcarryx_u32(x365, x342, (0x0 as u32));
+ let mut x368: u32 = 0;
+ let mut x369: fiat_p384_u1 = 0;
+ let (x368, x369) = fiat_p384_addcarryx_u32(x367, x344, (0x0 as u32));
+ let mut x370: u32 = 0;
+ let mut x371: fiat_p384_u1 = 0;
+ let (x370, x371) = fiat_p384_addcarryx_u32(x369, x346, (0x0 as u32));
+ let mut x372: u32 = 0;
+ let mut x373: fiat_p384_u1 = 0;
+ let (x372, x373) = fiat_p384_addcarryx_u32(x371, x348, (0x0 as u32));
+ let mut x374: u32 = 0;
+ let mut x375: fiat_p384_u1 = 0;
+ let (x374, x375) = fiat_p384_addcarryx_u32(x373, x350, (0x0 as u32));
+ let mut x376: u32 = 0;
+ let mut x377: fiat_p384_u1 = 0;
+ let (x376, x377) = fiat_p384_addcarryx_u32(x375, x352, (0x0 as u32));
+ let mut x378: u32 = 0;
+ let mut x379: fiat_p384_u1 = 0;
+ let (x378, x379) = fiat_p384_addcarryx_u32(x377, x354, (0x0 as u32));
+ let mut x380: u32 = 0;
+ let mut x381: fiat_p384_u1 = 0;
+ let (x380, x381) = fiat_p384_addcarryx_u32(x379, x356, (0x0 as u32));
+ let mut x382: u32 = 0;
+ let mut x383: fiat_p384_u1 = 0;
+ let (x382, x383) = fiat_p384_addcarryx_u32(x381, x358, (0x0 as u32));
+ let mut x384: u32 = 0;
+ let mut x385: fiat_p384_u1 = 0;
+ let (x384, x385) = fiat_p384_addcarryx_u32(x383, x360, (0x0 as u32));
+ let mut x386: u32 = 0;
+ let mut x387: u32 = 0;
+ let (x386, x387) = fiat_p384_mulx_u32(x362, 0xffffffff);
+ let mut x388: u32 = 0;
+ let mut x389: u32 = 0;
+ let (x388, x389) = fiat_p384_mulx_u32(x362, 0xffffffff);
+ let mut x390: u32 = 0;
+ let mut x391: u32 = 0;
+ let (x390, x391) = fiat_p384_mulx_u32(x362, 0xffffffff);
+ let mut x392: u32 = 0;
+ let mut x393: u32 = 0;
+ let (x392, x393) = fiat_p384_mulx_u32(x362, 0xffffffff);
+ let mut x394: u32 = 0;
+ let mut x395: u32 = 0;
+ let (x394, x395) = fiat_p384_mulx_u32(x362, 0xffffffff);
+ let mut x396: u32 = 0;
+ let mut x397: u32 = 0;
+ let (x396, x397) = fiat_p384_mulx_u32(x362, 0xffffffff);
+ let mut x398: u32 = 0;
+ let mut x399: u32 = 0;
+ let (x398, x399) = fiat_p384_mulx_u32(x362, 0xffffffff);
+ let mut x400: u32 = 0;
+ let mut x401: u32 = 0;
+ let (x400, x401) = fiat_p384_mulx_u32(x362, 0xfffffffe);
+ let mut x402: u32 = 0;
+ let mut x403: u32 = 0;
+ let (x402, x403) = fiat_p384_mulx_u32(x362, 0xffffffff);
+ let mut x404: u32 = 0;
+ let mut x405: u32 = 0;
+ let (x404, x405) = fiat_p384_mulx_u32(x362, 0xffffffff);
+ let mut x406: u32 = 0;
+ let mut x407: fiat_p384_u1 = 0;
+ let (x406, x407) = fiat_p384_addcarryx_u32(0x0, x403, x400);
+ let mut x408: u32 = 0;
+ let mut x409: fiat_p384_u1 = 0;
+ let (x408, x409) = fiat_p384_addcarryx_u32(x407, x401, x398);
+ let mut x410: u32 = 0;
+ let mut x411: fiat_p384_u1 = 0;
+ let (x410, x411) = fiat_p384_addcarryx_u32(x409, x399, x396);
+ let mut x412: u32 = 0;
+ let mut x413: fiat_p384_u1 = 0;
+ let (x412, x413) = fiat_p384_addcarryx_u32(x411, x397, x394);
+ let mut x414: u32 = 0;
+ let mut x415: fiat_p384_u1 = 0;
+ let (x414, x415) = fiat_p384_addcarryx_u32(x413, x395, x392);
+ let mut x416: u32 = 0;
+ let mut x417: fiat_p384_u1 = 0;
+ let (x416, x417) = fiat_p384_addcarryx_u32(x415, x393, x390);
+ let mut x418: u32 = 0;
+ let mut x419: fiat_p384_u1 = 0;
+ let (x418, x419) = fiat_p384_addcarryx_u32(x417, x391, x388);
+ let mut x420: u32 = 0;
+ let mut x421: fiat_p384_u1 = 0;
+ let (x420, x421) = fiat_p384_addcarryx_u32(x419, x389, x386);
+ let mut x422: u32 = 0;
+ let mut x423: fiat_p384_u1 = 0;
+ let (x422, x423) = fiat_p384_addcarryx_u32(0x0, x362, x404);
+ let mut x424: u32 = 0;
+ let mut x425: fiat_p384_u1 = 0;
+ let (x424, x425) = fiat_p384_addcarryx_u32(x423, x364, x405);
+ let mut x426: u32 = 0;
+ let mut x427: fiat_p384_u1 = 0;
+ let (x426, x427) = fiat_p384_addcarryx_u32(x425, x366, (0x0 as u32));
+ let mut x428: u32 = 0;
+ let mut x429: fiat_p384_u1 = 0;
+ let (x428, x429) = fiat_p384_addcarryx_u32(x427, x368, x402);
+ let mut x430: u32 = 0;
+ let mut x431: fiat_p384_u1 = 0;
+ let (x430, x431) = fiat_p384_addcarryx_u32(x429, x370, x406);
+ let mut x432: u32 = 0;
+ let mut x433: fiat_p384_u1 = 0;
+ let (x432, x433) = fiat_p384_addcarryx_u32(x431, x372, x408);
+ let mut x434: u32 = 0;
+ let mut x435: fiat_p384_u1 = 0;
+ let (x434, x435) = fiat_p384_addcarryx_u32(x433, x374, x410);
+ let mut x436: u32 = 0;
+ let mut x437: fiat_p384_u1 = 0;
+ let (x436, x437) = fiat_p384_addcarryx_u32(x435, x376, x412);
+ let mut x438: u32 = 0;
+ let mut x439: fiat_p384_u1 = 0;
+ let (x438, x439) = fiat_p384_addcarryx_u32(x437, x378, x414);
+ let mut x440: u32 = 0;
+ let mut x441: fiat_p384_u1 = 0;
+ let (x440, x441) = fiat_p384_addcarryx_u32(x439, x380, x416);
+ let mut x442: u32 = 0;
+ let mut x443: fiat_p384_u1 = 0;
+ let (x442, x443) = fiat_p384_addcarryx_u32(x441, x382, x418);
+ let mut x444: u32 = 0;
+ let mut x445: fiat_p384_u1 = 0;
+ let (x444, x445) = fiat_p384_addcarryx_u32(x443, x384, x420);
+ let mut x446: u32 = 0;
+ let mut x447: fiat_p384_u1 = 0;
+ let (x446, x447) = fiat_p384_addcarryx_u32(
+ x445,
+ ((x385 as u32) + (x361 as u32)),
+ ((x421 as u32) + x387),
+ );
+ let mut x448: u32 = 0;
+ let mut x449: fiat_p384_u1 = 0;
+ let (x448, x449) = fiat_p384_addcarryx_u32(0x0, x424, (arg1[6]));
+ let mut x450: u32 = 0;
+ let mut x451: fiat_p384_u1 = 0;
+ let (x450, x451) = fiat_p384_addcarryx_u32(x449, x426, (0x0 as u32));
+ let mut x452: u32 = 0;
+ let mut x453: fiat_p384_u1 = 0;
+ let (x452, x453) = fiat_p384_addcarryx_u32(x451, x428, (0x0 as u32));
+ let mut x454: u32 = 0;
+ let mut x455: fiat_p384_u1 = 0;
+ let (x454, x455) = fiat_p384_addcarryx_u32(x453, x430, (0x0 as u32));
+ let mut x456: u32 = 0;
+ let mut x457: fiat_p384_u1 = 0;
+ let (x456, x457) = fiat_p384_addcarryx_u32(x455, x432, (0x0 as u32));
+ let mut x458: u32 = 0;
+ let mut x459: fiat_p384_u1 = 0;
+ let (x458, x459) = fiat_p384_addcarryx_u32(x457, x434, (0x0 as u32));
+ let mut x460: u32 = 0;
+ let mut x461: fiat_p384_u1 = 0;
+ let (x460, x461) = fiat_p384_addcarryx_u32(x459, x436, (0x0 as u32));
+ let mut x462: u32 = 0;
+ let mut x463: fiat_p384_u1 = 0;
+ let (x462, x463) = fiat_p384_addcarryx_u32(x461, x438, (0x0 as u32));
+ let mut x464: u32 = 0;
+ let mut x465: fiat_p384_u1 = 0;
+ let (x464, x465) = fiat_p384_addcarryx_u32(x463, x440, (0x0 as u32));
+ let mut x466: u32 = 0;
+ let mut x467: fiat_p384_u1 = 0;
+ let (x466, x467) = fiat_p384_addcarryx_u32(x465, x442, (0x0 as u32));
+ let mut x468: u32 = 0;
+ let mut x469: fiat_p384_u1 = 0;
+ let (x468, x469) = fiat_p384_addcarryx_u32(x467, x444, (0x0 as u32));
+ let mut x470: u32 = 0;
+ let mut x471: fiat_p384_u1 = 0;
+ let (x470, x471) = fiat_p384_addcarryx_u32(x469, x446, (0x0 as u32));
+ let mut x472: u32 = 0;
+ let mut x473: u32 = 0;
+ let (x472, x473) = fiat_p384_mulx_u32(x448, 0xffffffff);
+ let mut x474: u32 = 0;
+ let mut x475: u32 = 0;
+ let (x474, x475) = fiat_p384_mulx_u32(x448, 0xffffffff);
+ let mut x476: u32 = 0;
+ let mut x477: u32 = 0;
+ let (x476, x477) = fiat_p384_mulx_u32(x448, 0xffffffff);
+ let mut x478: u32 = 0;
+ let mut x479: u32 = 0;
+ let (x478, x479) = fiat_p384_mulx_u32(x448, 0xffffffff);
+ let mut x480: u32 = 0;
+ let mut x481: u32 = 0;
+ let (x480, x481) = fiat_p384_mulx_u32(x448, 0xffffffff);
+ let mut x482: u32 = 0;
+ let mut x483: u32 = 0;
+ let (x482, x483) = fiat_p384_mulx_u32(x448, 0xffffffff);
+ let mut x484: u32 = 0;
+ let mut x485: u32 = 0;
+ let (x484, x485) = fiat_p384_mulx_u32(x448, 0xffffffff);
+ let mut x486: u32 = 0;
+ let mut x487: u32 = 0;
+ let (x486, x487) = fiat_p384_mulx_u32(x448, 0xfffffffe);
+ let mut x488: u32 = 0;
+ let mut x489: u32 = 0;
+ let (x488, x489) = fiat_p384_mulx_u32(x448, 0xffffffff);
+ let mut x490: u32 = 0;
+ let mut x491: u32 = 0;
+ let (x490, x491) = fiat_p384_mulx_u32(x448, 0xffffffff);
+ let mut x492: u32 = 0;
+ let mut x493: fiat_p384_u1 = 0;
+ let (x492, x493) = fiat_p384_addcarryx_u32(0x0, x489, x486);
+ let mut x494: u32 = 0;
+ let mut x495: fiat_p384_u1 = 0;
+ let (x494, x495) = fiat_p384_addcarryx_u32(x493, x487, x484);
+ let mut x496: u32 = 0;
+ let mut x497: fiat_p384_u1 = 0;
+ let (x496, x497) = fiat_p384_addcarryx_u32(x495, x485, x482);
+ let mut x498: u32 = 0;
+ let mut x499: fiat_p384_u1 = 0;
+ let (x498, x499) = fiat_p384_addcarryx_u32(x497, x483, x480);
+ let mut x500: u32 = 0;
+ let mut x501: fiat_p384_u1 = 0;
+ let (x500, x501) = fiat_p384_addcarryx_u32(x499, x481, x478);
+ let mut x502: u32 = 0;
+ let mut x503: fiat_p384_u1 = 0;
+ let (x502, x503) = fiat_p384_addcarryx_u32(x501, x479, x476);
+ let mut x504: u32 = 0;
+ let mut x505: fiat_p384_u1 = 0;
+ let (x504, x505) = fiat_p384_addcarryx_u32(x503, x477, x474);
+ let mut x506: u32 = 0;
+ let mut x507: fiat_p384_u1 = 0;
+ let (x506, x507) = fiat_p384_addcarryx_u32(x505, x475, x472);
+ let mut x508: u32 = 0;
+ let mut x509: fiat_p384_u1 = 0;
+ let (x508, x509) = fiat_p384_addcarryx_u32(0x0, x448, x490);
+ let mut x510: u32 = 0;
+ let mut x511: fiat_p384_u1 = 0;
+ let (x510, x511) = fiat_p384_addcarryx_u32(x509, x450, x491);
+ let mut x512: u32 = 0;
+ let mut x513: fiat_p384_u1 = 0;
+ let (x512, x513) = fiat_p384_addcarryx_u32(x511, x452, (0x0 as u32));
+ let mut x514: u32 = 0;
+ let mut x515: fiat_p384_u1 = 0;
+ let (x514, x515) = fiat_p384_addcarryx_u32(x513, x454, x488);
+ let mut x516: u32 = 0;
+ let mut x517: fiat_p384_u1 = 0;
+ let (x516, x517) = fiat_p384_addcarryx_u32(x515, x456, x492);
+ let mut x518: u32 = 0;
+ let mut x519: fiat_p384_u1 = 0;
+ let (x518, x519) = fiat_p384_addcarryx_u32(x517, x458, x494);
+ let mut x520: u32 = 0;
+ let mut x521: fiat_p384_u1 = 0;
+ let (x520, x521) = fiat_p384_addcarryx_u32(x519, x460, x496);
+ let mut x522: u32 = 0;
+ let mut x523: fiat_p384_u1 = 0;
+ let (x522, x523) = fiat_p384_addcarryx_u32(x521, x462, x498);
+ let mut x524: u32 = 0;
+ let mut x525: fiat_p384_u1 = 0;
+ let (x524, x525) = fiat_p384_addcarryx_u32(x523, x464, x500);
+ let mut x526: u32 = 0;
+ let mut x527: fiat_p384_u1 = 0;
+ let (x526, x527) = fiat_p384_addcarryx_u32(x525, x466, x502);
+ let mut x528: u32 = 0;
+ let mut x529: fiat_p384_u1 = 0;
+ let (x528, x529) = fiat_p384_addcarryx_u32(x527, x468, x504);
+ let mut x530: u32 = 0;
+ let mut x531: fiat_p384_u1 = 0;
+ let (x530, x531) = fiat_p384_addcarryx_u32(x529, x470, x506);
+ let mut x532: u32 = 0;
+ let mut x533: fiat_p384_u1 = 0;
+ let (x532, x533) = fiat_p384_addcarryx_u32(
+ x531,
+ ((x471 as u32) + (x447 as u32)),
+ ((x507 as u32) + x473),
+ );
+ let mut x534: u32 = 0;
+ let mut x535: fiat_p384_u1 = 0;
+ let (x534, x535) = fiat_p384_addcarryx_u32(0x0, x510, (arg1[7]));
+ let mut x536: u32 = 0;
+ let mut x537: fiat_p384_u1 = 0;
+ let (x536, x537) = fiat_p384_addcarryx_u32(x535, x512, (0x0 as u32));
+ let mut x538: u32 = 0;
+ let mut x539: fiat_p384_u1 = 0;
+ let (x538, x539) = fiat_p384_addcarryx_u32(x537, x514, (0x0 as u32));
+ let mut x540: u32 = 0;
+ let mut x541: fiat_p384_u1 = 0;
+ let (x540, x541) = fiat_p384_addcarryx_u32(x539, x516, (0x0 as u32));
+ let mut x542: u32 = 0;
+ let mut x543: fiat_p384_u1 = 0;
+ let (x542, x543) = fiat_p384_addcarryx_u32(x541, x518, (0x0 as u32));
+ let mut x544: u32 = 0;
+ let mut x545: fiat_p384_u1 = 0;
+ let (x544, x545) = fiat_p384_addcarryx_u32(x543, x520, (0x0 as u32));
+ let mut x546: u32 = 0;
+ let mut x547: fiat_p384_u1 = 0;
+ let (x546, x547) = fiat_p384_addcarryx_u32(x545, x522, (0x0 as u32));
+ let mut x548: u32 = 0;
+ let mut x549: fiat_p384_u1 = 0;
+ let (x548, x549) = fiat_p384_addcarryx_u32(x547, x524, (0x0 as u32));
+ let mut x550: u32 = 0;
+ let mut x551: fiat_p384_u1 = 0;
+ let (x550, x551) = fiat_p384_addcarryx_u32(x549, x526, (0x0 as u32));
+ let mut x552: u32 = 0;
+ let mut x553: fiat_p384_u1 = 0;
+ let (x552, x553) = fiat_p384_addcarryx_u32(x551, x528, (0x0 as u32));
+ let mut x554: u32 = 0;
+ let mut x555: fiat_p384_u1 = 0;
+ let (x554, x555) = fiat_p384_addcarryx_u32(x553, x530, (0x0 as u32));
+ let mut x556: u32 = 0;
+ let mut x557: fiat_p384_u1 = 0;
+ let (x556, x557) = fiat_p384_addcarryx_u32(x555, x532, (0x0 as u32));
+ let mut x558: u32 = 0;
+ let mut x559: u32 = 0;
+ let (x558, x559) = fiat_p384_mulx_u32(x534, 0xffffffff);
+ let mut x560: u32 = 0;
+ let mut x561: u32 = 0;
+ let (x560, x561) = fiat_p384_mulx_u32(x534, 0xffffffff);
+ let mut x562: u32 = 0;
+ let mut x563: u32 = 0;
+ let (x562, x563) = fiat_p384_mulx_u32(x534, 0xffffffff);
+ let mut x564: u32 = 0;
+ let mut x565: u32 = 0;
+ let (x564, x565) = fiat_p384_mulx_u32(x534, 0xffffffff);
+ let mut x566: u32 = 0;
+ let mut x567: u32 = 0;
+ let (x566, x567) = fiat_p384_mulx_u32(x534, 0xffffffff);
+ let mut x568: u32 = 0;
+ let mut x569: u32 = 0;
+ let (x568, x569) = fiat_p384_mulx_u32(x534, 0xffffffff);
+ let mut x570: u32 = 0;
+ let mut x571: u32 = 0;
+ let (x570, x571) = fiat_p384_mulx_u32(x534, 0xffffffff);
+ let mut x572: u32 = 0;
+ let mut x573: u32 = 0;
+ let (x572, x573) = fiat_p384_mulx_u32(x534, 0xfffffffe);
+ let mut x574: u32 = 0;
+ let mut x575: u32 = 0;
+ let (x574, x575) = fiat_p384_mulx_u32(x534, 0xffffffff);
+ let mut x576: u32 = 0;
+ let mut x577: u32 = 0;
+ let (x576, x577) = fiat_p384_mulx_u32(x534, 0xffffffff);
+ let mut x578: u32 = 0;
+ let mut x579: fiat_p384_u1 = 0;
+ let (x578, x579) = fiat_p384_addcarryx_u32(0x0, x575, x572);
+ let mut x580: u32 = 0;
+ let mut x581: fiat_p384_u1 = 0;
+ let (x580, x581) = fiat_p384_addcarryx_u32(x579, x573, x570);
+ let mut x582: u32 = 0;
+ let mut x583: fiat_p384_u1 = 0;
+ let (x582, x583) = fiat_p384_addcarryx_u32(x581, x571, x568);
+ let mut x584: u32 = 0;
+ let mut x585: fiat_p384_u1 = 0;
+ let (x584, x585) = fiat_p384_addcarryx_u32(x583, x569, x566);
+ let mut x586: u32 = 0;
+ let mut x587: fiat_p384_u1 = 0;
+ let (x586, x587) = fiat_p384_addcarryx_u32(x585, x567, x564);
+ let mut x588: u32 = 0;
+ let mut x589: fiat_p384_u1 = 0;
+ let (x588, x589) = fiat_p384_addcarryx_u32(x587, x565, x562);
+ let mut x590: u32 = 0;
+ let mut x591: fiat_p384_u1 = 0;
+ let (x590, x591) = fiat_p384_addcarryx_u32(x589, x563, x560);
+ let mut x592: u32 = 0;
+ let mut x593: fiat_p384_u1 = 0;
+ let (x592, x593) = fiat_p384_addcarryx_u32(x591, x561, x558);
+ let mut x594: u32 = 0;
+ let mut x595: fiat_p384_u1 = 0;
+ let (x594, x595) = fiat_p384_addcarryx_u32(0x0, x534, x576);
+ let mut x596: u32 = 0;
+ let mut x597: fiat_p384_u1 = 0;
+ let (x596, x597) = fiat_p384_addcarryx_u32(x595, x536, x577);
+ let mut x598: u32 = 0;
+ let mut x599: fiat_p384_u1 = 0;
+ let (x598, x599) = fiat_p384_addcarryx_u32(x597, x538, (0x0 as u32));
+ let mut x600: u32 = 0;
+ let mut x601: fiat_p384_u1 = 0;
+ let (x600, x601) = fiat_p384_addcarryx_u32(x599, x540, x574);
+ let mut x602: u32 = 0;
+ let mut x603: fiat_p384_u1 = 0;
+ let (x602, x603) = fiat_p384_addcarryx_u32(x601, x542, x578);
+ let mut x604: u32 = 0;
+ let mut x605: fiat_p384_u1 = 0;
+ let (x604, x605) = fiat_p384_addcarryx_u32(x603, x544, x580);
+ let mut x606: u32 = 0;
+ let mut x607: fiat_p384_u1 = 0;
+ let (x606, x607) = fiat_p384_addcarryx_u32(x605, x546, x582);
+ let mut x608: u32 = 0;
+ let mut x609: fiat_p384_u1 = 0;
+ let (x608, x609) = fiat_p384_addcarryx_u32(x607, x548, x584);
+ let mut x610: u32 = 0;
+ let mut x611: fiat_p384_u1 = 0;
+ let (x610, x611) = fiat_p384_addcarryx_u32(x609, x550, x586);
+ let mut x612: u32 = 0;
+ let mut x613: fiat_p384_u1 = 0;
+ let (x612, x613) = fiat_p384_addcarryx_u32(x611, x552, x588);
+ let mut x614: u32 = 0;
+ let mut x615: fiat_p384_u1 = 0;
+ let (x614, x615) = fiat_p384_addcarryx_u32(x613, x554, x590);
+ let mut x616: u32 = 0;
+ let mut x617: fiat_p384_u1 = 0;
+ let (x616, x617) = fiat_p384_addcarryx_u32(x615, x556, x592);
+ let mut x618: u32 = 0;
+ let mut x619: fiat_p384_u1 = 0;
+ let (x618, x619) = fiat_p384_addcarryx_u32(
+ x617,
+ ((x557 as u32) + (x533 as u32)),
+ ((x593 as u32) + x559),
+ );
+ let mut x620: u32 = 0;
+ let mut x621: fiat_p384_u1 = 0;
+ let (x620, x621) = fiat_p384_addcarryx_u32(0x0, x596, (arg1[8]));
+ let mut x622: u32 = 0;
+ let mut x623: fiat_p384_u1 = 0;
+ let (x622, x623) = fiat_p384_addcarryx_u32(x621, x598, (0x0 as u32));
+ let mut x624: u32 = 0;
+ let mut x625: fiat_p384_u1 = 0;
+ let (x624, x625) = fiat_p384_addcarryx_u32(x623, x600, (0x0 as u32));
+ let mut x626: u32 = 0;
+ let mut x627: fiat_p384_u1 = 0;
+ let (x626, x627) = fiat_p384_addcarryx_u32(x625, x602, (0x0 as u32));
+ let mut x628: u32 = 0;
+ let mut x629: fiat_p384_u1 = 0;
+ let (x628, x629) = fiat_p384_addcarryx_u32(x627, x604, (0x0 as u32));
+ let mut x630: u32 = 0;
+ let mut x631: fiat_p384_u1 = 0;
+ let (x630, x631) = fiat_p384_addcarryx_u32(x629, x606, (0x0 as u32));
+ let mut x632: u32 = 0;
+ let mut x633: fiat_p384_u1 = 0;
+ let (x632, x633) = fiat_p384_addcarryx_u32(x631, x608, (0x0 as u32));
+ let mut x634: u32 = 0;
+ let mut x635: fiat_p384_u1 = 0;
+ let (x634, x635) = fiat_p384_addcarryx_u32(x633, x610, (0x0 as u32));
+ let mut x636: u32 = 0;
+ let mut x637: fiat_p384_u1 = 0;
+ let (x636, x637) = fiat_p384_addcarryx_u32(x635, x612, (0x0 as u32));
+ let mut x638: u32 = 0;
+ let mut x639: fiat_p384_u1 = 0;
+ let (x638, x639) = fiat_p384_addcarryx_u32(x637, x614, (0x0 as u32));
+ let mut x640: u32 = 0;
+ let mut x641: fiat_p384_u1 = 0;
+ let (x640, x641) = fiat_p384_addcarryx_u32(x639, x616, (0x0 as u32));
+ let mut x642: u32 = 0;
+ let mut x643: fiat_p384_u1 = 0;
+ let (x642, x643) = fiat_p384_addcarryx_u32(x641, x618, (0x0 as u32));
+ let mut x644: u32 = 0;
+ let mut x645: u32 = 0;
+ let (x644, x645) = fiat_p384_mulx_u32(x620, 0xffffffff);
+ let mut x646: u32 = 0;
+ let mut x647: u32 = 0;
+ let (x646, x647) = fiat_p384_mulx_u32(x620, 0xffffffff);
+ let mut x648: u32 = 0;
+ let mut x649: u32 = 0;
+ let (x648, x649) = fiat_p384_mulx_u32(x620, 0xffffffff);
+ let mut x650: u32 = 0;
+ let mut x651: u32 = 0;
+ let (x650, x651) = fiat_p384_mulx_u32(x620, 0xffffffff);
+ let mut x652: u32 = 0;
+ let mut x653: u32 = 0;
+ let (x652, x653) = fiat_p384_mulx_u32(x620, 0xffffffff);
+ let mut x654: u32 = 0;
+ let mut x655: u32 = 0;
+ let (x654, x655) = fiat_p384_mulx_u32(x620, 0xffffffff);
+ let mut x656: u32 = 0;
+ let mut x657: u32 = 0;
+ let (x656, x657) = fiat_p384_mulx_u32(x620, 0xffffffff);
+ let mut x658: u32 = 0;
+ let mut x659: u32 = 0;
+ let (x658, x659) = fiat_p384_mulx_u32(x620, 0xfffffffe);
+ let mut x660: u32 = 0;
+ let mut x661: u32 = 0;
+ let (x660, x661) = fiat_p384_mulx_u32(x620, 0xffffffff);
+ let mut x662: u32 = 0;
+ let mut x663: u32 = 0;
+ let (x662, x663) = fiat_p384_mulx_u32(x620, 0xffffffff);
+ let mut x664: u32 = 0;
+ let mut x665: fiat_p384_u1 = 0;
+ let (x664, x665) = fiat_p384_addcarryx_u32(0x0, x661, x658);
+ let mut x666: u32 = 0;
+ let mut x667: fiat_p384_u1 = 0;
+ let (x666, x667) = fiat_p384_addcarryx_u32(x665, x659, x656);
+ let mut x668: u32 = 0;
+ let mut x669: fiat_p384_u1 = 0;
+ let (x668, x669) = fiat_p384_addcarryx_u32(x667, x657, x654);
+ let mut x670: u32 = 0;
+ let mut x671: fiat_p384_u1 = 0;
+ let (x670, x671) = fiat_p384_addcarryx_u32(x669, x655, x652);
+ let mut x672: u32 = 0;
+ let mut x673: fiat_p384_u1 = 0;
+ let (x672, x673) = fiat_p384_addcarryx_u32(x671, x653, x650);
+ let mut x674: u32 = 0;
+ let mut x675: fiat_p384_u1 = 0;
+ let (x674, x675) = fiat_p384_addcarryx_u32(x673, x651, x648);
+ let mut x676: u32 = 0;
+ let mut x677: fiat_p384_u1 = 0;
+ let (x676, x677) = fiat_p384_addcarryx_u32(x675, x649, x646);
+ let mut x678: u32 = 0;
+ let mut x679: fiat_p384_u1 = 0;
+ let (x678, x679) = fiat_p384_addcarryx_u32(x677, x647, x644);
+ let mut x680: u32 = 0;
+ let mut x681: fiat_p384_u1 = 0;
+ let (x680, x681) = fiat_p384_addcarryx_u32(0x0, x620, x662);
+ let mut x682: u32 = 0;
+ let mut x683: fiat_p384_u1 = 0;
+ let (x682, x683) = fiat_p384_addcarryx_u32(x681, x622, x663);
+ let mut x684: u32 = 0;
+ let mut x685: fiat_p384_u1 = 0;
+ let (x684, x685) = fiat_p384_addcarryx_u32(x683, x624, (0x0 as u32));
+ let mut x686: u32 = 0;
+ let mut x687: fiat_p384_u1 = 0;
+ let (x686, x687) = fiat_p384_addcarryx_u32(x685, x626, x660);
+ let mut x688: u32 = 0;
+ let mut x689: fiat_p384_u1 = 0;
+ let (x688, x689) = fiat_p384_addcarryx_u32(x687, x628, x664);
+ let mut x690: u32 = 0;
+ let mut x691: fiat_p384_u1 = 0;
+ let (x690, x691) = fiat_p384_addcarryx_u32(x689, x630, x666);
+ let mut x692: u32 = 0;
+ let mut x693: fiat_p384_u1 = 0;
+ let (x692, x693) = fiat_p384_addcarryx_u32(x691, x632, x668);
+ let mut x694: u32 = 0;
+ let mut x695: fiat_p384_u1 = 0;
+ let (x694, x695) = fiat_p384_addcarryx_u32(x693, x634, x670);
+ let mut x696: u32 = 0;
+ let mut x697: fiat_p384_u1 = 0;
+ let (x696, x697) = fiat_p384_addcarryx_u32(x695, x636, x672);
+ let mut x698: u32 = 0;
+ let mut x699: fiat_p384_u1 = 0;
+ let (x698, x699) = fiat_p384_addcarryx_u32(x697, x638, x674);
+ let mut x700: u32 = 0;
+ let mut x701: fiat_p384_u1 = 0;
+ let (x700, x701) = fiat_p384_addcarryx_u32(x699, x640, x676);
+ let mut x702: u32 = 0;
+ let mut x703: fiat_p384_u1 = 0;
+ let (x702, x703) = fiat_p384_addcarryx_u32(x701, x642, x678);
+ let mut x704: u32 = 0;
+ let mut x705: fiat_p384_u1 = 0;
+ let (x704, x705) = fiat_p384_addcarryx_u32(
+ x703,
+ ((x643 as u32) + (x619 as u32)),
+ ((x679 as u32) + x645),
+ );
+ let mut x706: u32 = 0;
+ let mut x707: fiat_p384_u1 = 0;
+ let (x706, x707) = fiat_p384_addcarryx_u32(0x0, x682, (arg1[9]));
+ let mut x708: u32 = 0;
+ let mut x709: fiat_p384_u1 = 0;
+ let (x708, x709) = fiat_p384_addcarryx_u32(x707, x684, (0x0 as u32));
+ let mut x710: u32 = 0;
+ let mut x711: fiat_p384_u1 = 0;
+ let (x710, x711) = fiat_p384_addcarryx_u32(x709, x686, (0x0 as u32));
+ let mut x712: u32 = 0;
+ let mut x713: fiat_p384_u1 = 0;
+ let (x712, x713) = fiat_p384_addcarryx_u32(x711, x688, (0x0 as u32));
+ let mut x714: u32 = 0;
+ let mut x715: fiat_p384_u1 = 0;
+ let (x714, x715) = fiat_p384_addcarryx_u32(x713, x690, (0x0 as u32));
+ let mut x716: u32 = 0;
+ let mut x717: fiat_p384_u1 = 0;
+ let (x716, x717) = fiat_p384_addcarryx_u32(x715, x692, (0x0 as u32));
+ let mut x718: u32 = 0;
+ let mut x719: fiat_p384_u1 = 0;
+ let (x718, x719) = fiat_p384_addcarryx_u32(x717, x694, (0x0 as u32));
+ let mut x720: u32 = 0;
+ let mut x721: fiat_p384_u1 = 0;
+ let (x720, x721) = fiat_p384_addcarryx_u32(x719, x696, (0x0 as u32));
+ let mut x722: u32 = 0;
+ let mut x723: fiat_p384_u1 = 0;
+ let (x722, x723) = fiat_p384_addcarryx_u32(x721, x698, (0x0 as u32));
+ let mut x724: u32 = 0;
+ let mut x725: fiat_p384_u1 = 0;
+ let (x724, x725) = fiat_p384_addcarryx_u32(x723, x700, (0x0 as u32));
+ let mut x726: u32 = 0;
+ let mut x727: fiat_p384_u1 = 0;
+ let (x726, x727) = fiat_p384_addcarryx_u32(x725, x702, (0x0 as u32));
+ let mut x728: u32 = 0;
+ let mut x729: fiat_p384_u1 = 0;
+ let (x728, x729) = fiat_p384_addcarryx_u32(x727, x704, (0x0 as u32));
+ let mut x730: u32 = 0;
+ let mut x731: u32 = 0;
+ let (x730, x731) = fiat_p384_mulx_u32(x706, 0xffffffff);
+ let mut x732: u32 = 0;
+ let mut x733: u32 = 0;
+ let (x732, x733) = fiat_p384_mulx_u32(x706, 0xffffffff);
+ let mut x734: u32 = 0;
+ let mut x735: u32 = 0;
+ let (x734, x735) = fiat_p384_mulx_u32(x706, 0xffffffff);
+ let mut x736: u32 = 0;
+ let mut x737: u32 = 0;
+ let (x736, x737) = fiat_p384_mulx_u32(x706, 0xffffffff);
+ let mut x738: u32 = 0;
+ let mut x739: u32 = 0;
+ let (x738, x739) = fiat_p384_mulx_u32(x706, 0xffffffff);
+ let mut x740: u32 = 0;
+ let mut x741: u32 = 0;
+ let (x740, x741) = fiat_p384_mulx_u32(x706, 0xffffffff);
+ let mut x742: u32 = 0;
+ let mut x743: u32 = 0;
+ let (x742, x743) = fiat_p384_mulx_u32(x706, 0xffffffff);
+ let mut x744: u32 = 0;
+ let mut x745: u32 = 0;
+ let (x744, x745) = fiat_p384_mulx_u32(x706, 0xfffffffe);
+ let mut x746: u32 = 0;
+ let mut x747: u32 = 0;
+ let (x746, x747) = fiat_p384_mulx_u32(x706, 0xffffffff);
+ let mut x748: u32 = 0;
+ let mut x749: u32 = 0;
+ let (x748, x749) = fiat_p384_mulx_u32(x706, 0xffffffff);
+ let mut x750: u32 = 0;
+ let mut x751: fiat_p384_u1 = 0;
+ let (x750, x751) = fiat_p384_addcarryx_u32(0x0, x747, x744);
+ let mut x752: u32 = 0;
+ let mut x753: fiat_p384_u1 = 0;
+ let (x752, x753) = fiat_p384_addcarryx_u32(x751, x745, x742);
+ let mut x754: u32 = 0;
+ let mut x755: fiat_p384_u1 = 0;
+ let (x754, x755) = fiat_p384_addcarryx_u32(x753, x743, x740);
+ let mut x756: u32 = 0;
+ let mut x757: fiat_p384_u1 = 0;
+ let (x756, x757) = fiat_p384_addcarryx_u32(x755, x741, x738);
+ let mut x758: u32 = 0;
+ let mut x759: fiat_p384_u1 = 0;
+ let (x758, x759) = fiat_p384_addcarryx_u32(x757, x739, x736);
+ let mut x760: u32 = 0;
+ let mut x761: fiat_p384_u1 = 0;
+ let (x760, x761) = fiat_p384_addcarryx_u32(x759, x737, x734);
+ let mut x762: u32 = 0;
+ let mut x763: fiat_p384_u1 = 0;
+ let (x762, x763) = fiat_p384_addcarryx_u32(x761, x735, x732);
+ let mut x764: u32 = 0;
+ let mut x765: fiat_p384_u1 = 0;
+ let (x764, x765) = fiat_p384_addcarryx_u32(x763, x733, x730);
+ let mut x766: u32 = 0;
+ let mut x767: fiat_p384_u1 = 0;
+ let (x766, x767) = fiat_p384_addcarryx_u32(0x0, x706, x748);
+ let mut x768: u32 = 0;
+ let mut x769: fiat_p384_u1 = 0;
+ let (x768, x769) = fiat_p384_addcarryx_u32(x767, x708, x749);
+ let mut x770: u32 = 0;
+ let mut x771: fiat_p384_u1 = 0;
+ let (x770, x771) = fiat_p384_addcarryx_u32(x769, x710, (0x0 as u32));
+ let mut x772: u32 = 0;
+ let mut x773: fiat_p384_u1 = 0;
+ let (x772, x773) = fiat_p384_addcarryx_u32(x771, x712, x746);
+ let mut x774: u32 = 0;
+ let mut x775: fiat_p384_u1 = 0;
+ let (x774, x775) = fiat_p384_addcarryx_u32(x773, x714, x750);
+ let mut x776: u32 = 0;
+ let mut x777: fiat_p384_u1 = 0;
+ let (x776, x777) = fiat_p384_addcarryx_u32(x775, x716, x752);
+ let mut x778: u32 = 0;
+ let mut x779: fiat_p384_u1 = 0;
+ let (x778, x779) = fiat_p384_addcarryx_u32(x777, x718, x754);
+ let mut x780: u32 = 0;
+ let mut x781: fiat_p384_u1 = 0;
+ let (x780, x781) = fiat_p384_addcarryx_u32(x779, x720, x756);
+ let mut x782: u32 = 0;
+ let mut x783: fiat_p384_u1 = 0;
+ let (x782, x783) = fiat_p384_addcarryx_u32(x781, x722, x758);
+ let mut x784: u32 = 0;
+ let mut x785: fiat_p384_u1 = 0;
+ let (x784, x785) = fiat_p384_addcarryx_u32(x783, x724, x760);
+ let mut x786: u32 = 0;
+ let mut x787: fiat_p384_u1 = 0;
+ let (x786, x787) = fiat_p384_addcarryx_u32(x785, x726, x762);
+ let mut x788: u32 = 0;
+ let mut x789: fiat_p384_u1 = 0;
+ let (x788, x789) = fiat_p384_addcarryx_u32(x787, x728, x764);
+ let mut x790: u32 = 0;
+ let mut x791: fiat_p384_u1 = 0;
+ let (x790, x791) = fiat_p384_addcarryx_u32(
+ x789,
+ ((x729 as u32) + (x705 as u32)),
+ ((x765 as u32) + x731),
+ );
+ let mut x792: u32 = 0;
+ let mut x793: fiat_p384_u1 = 0;
+ let (x792, x793) = fiat_p384_addcarryx_u32(0x0, x768, (arg1[10]));
+ let mut x794: u32 = 0;
+ let mut x795: fiat_p384_u1 = 0;
+ let (x794, x795) = fiat_p384_addcarryx_u32(x793, x770, (0x0 as u32));
+ let mut x796: u32 = 0;
+ let mut x797: fiat_p384_u1 = 0;
+ let (x796, x797) = fiat_p384_addcarryx_u32(x795, x772, (0x0 as u32));
+ let mut x798: u32 = 0;
+ let mut x799: fiat_p384_u1 = 0;
+ let (x798, x799) = fiat_p384_addcarryx_u32(x797, x774, (0x0 as u32));
+ let mut x800: u32 = 0;
+ let mut x801: fiat_p384_u1 = 0;
+ let (x800, x801) = fiat_p384_addcarryx_u32(x799, x776, (0x0 as u32));
+ let mut x802: u32 = 0;
+ let mut x803: fiat_p384_u1 = 0;
+ let (x802, x803) = fiat_p384_addcarryx_u32(x801, x778, (0x0 as u32));
+ let mut x804: u32 = 0;
+ let mut x805: fiat_p384_u1 = 0;
+ let (x804, x805) = fiat_p384_addcarryx_u32(x803, x780, (0x0 as u32));
+ let mut x806: u32 = 0;
+ let mut x807: fiat_p384_u1 = 0;
+ let (x806, x807) = fiat_p384_addcarryx_u32(x805, x782, (0x0 as u32));
+ let mut x808: u32 = 0;
+ let mut x809: fiat_p384_u1 = 0;
+ let (x808, x809) = fiat_p384_addcarryx_u32(x807, x784, (0x0 as u32));
+ let mut x810: u32 = 0;
+ let mut x811: fiat_p384_u1 = 0;
+ let (x810, x811) = fiat_p384_addcarryx_u32(x809, x786, (0x0 as u32));
+ let mut x812: u32 = 0;
+ let mut x813: fiat_p384_u1 = 0;
+ let (x812, x813) = fiat_p384_addcarryx_u32(x811, x788, (0x0 as u32));
+ let mut x814: u32 = 0;
+ let mut x815: fiat_p384_u1 = 0;
+ let (x814, x815) = fiat_p384_addcarryx_u32(x813, x790, (0x0 as u32));
+ let mut x816: u32 = 0;
+ let mut x817: u32 = 0;
+ let (x816, x817) = fiat_p384_mulx_u32(x792, 0xffffffff);
+ let mut x818: u32 = 0;
+ let mut x819: u32 = 0;
+ let (x818, x819) = fiat_p384_mulx_u32(x792, 0xffffffff);
+ let mut x820: u32 = 0;
+ let mut x821: u32 = 0;
+ let (x820, x821) = fiat_p384_mulx_u32(x792, 0xffffffff);
+ let mut x822: u32 = 0;
+ let mut x823: u32 = 0;
+ let (x822, x823) = fiat_p384_mulx_u32(x792, 0xffffffff);
+ let mut x824: u32 = 0;
+ let mut x825: u32 = 0;
+ let (x824, x825) = fiat_p384_mulx_u32(x792, 0xffffffff);
+ let mut x826: u32 = 0;
+ let mut x827: u32 = 0;
+ let (x826, x827) = fiat_p384_mulx_u32(x792, 0xffffffff);
+ let mut x828: u32 = 0;
+ let mut x829: u32 = 0;
+ let (x828, x829) = fiat_p384_mulx_u32(x792, 0xffffffff);
+ let mut x830: u32 = 0;
+ let mut x831: u32 = 0;
+ let (x830, x831) = fiat_p384_mulx_u32(x792, 0xfffffffe);
+ let mut x832: u32 = 0;
+ let mut x833: u32 = 0;
+ let (x832, x833) = fiat_p384_mulx_u32(x792, 0xffffffff);
+ let mut x834: u32 = 0;
+ let mut x835: u32 = 0;
+ let (x834, x835) = fiat_p384_mulx_u32(x792, 0xffffffff);
+ let mut x836: u32 = 0;
+ let mut x837: fiat_p384_u1 = 0;
+ let (x836, x837) = fiat_p384_addcarryx_u32(0x0, x833, x830);
+ let mut x838: u32 = 0;
+ let mut x839: fiat_p384_u1 = 0;
+ let (x838, x839) = fiat_p384_addcarryx_u32(x837, x831, x828);
+ let mut x840: u32 = 0;
+ let mut x841: fiat_p384_u1 = 0;
+ let (x840, x841) = fiat_p384_addcarryx_u32(x839, x829, x826);
+ let mut x842: u32 = 0;
+ let mut x843: fiat_p384_u1 = 0;
+ let (x842, x843) = fiat_p384_addcarryx_u32(x841, x827, x824);
+ let mut x844: u32 = 0;
+ let mut x845: fiat_p384_u1 = 0;
+ let (x844, x845) = fiat_p384_addcarryx_u32(x843, x825, x822);
+ let mut x846: u32 = 0;
+ let mut x847: fiat_p384_u1 = 0;
+ let (x846, x847) = fiat_p384_addcarryx_u32(x845, x823, x820);
+ let mut x848: u32 = 0;
+ let mut x849: fiat_p384_u1 = 0;
+ let (x848, x849) = fiat_p384_addcarryx_u32(x847, x821, x818);
+ let mut x850: u32 = 0;
+ let mut x851: fiat_p384_u1 = 0;
+ let (x850, x851) = fiat_p384_addcarryx_u32(x849, x819, x816);
+ let mut x852: u32 = 0;
+ let mut x853: fiat_p384_u1 = 0;
+ let (x852, x853) = fiat_p384_addcarryx_u32(0x0, x792, x834);
+ let mut x854: u32 = 0;
+ let mut x855: fiat_p384_u1 = 0;
+ let (x854, x855) = fiat_p384_addcarryx_u32(x853, x794, x835);
+ let mut x856: u32 = 0;
+ let mut x857: fiat_p384_u1 = 0;
+ let (x856, x857) = fiat_p384_addcarryx_u32(x855, x796, (0x0 as u32));
+ let mut x858: u32 = 0;
+ let mut x859: fiat_p384_u1 = 0;
+ let (x858, x859) = fiat_p384_addcarryx_u32(x857, x798, x832);
+ let mut x860: u32 = 0;
+ let mut x861: fiat_p384_u1 = 0;
+ let (x860, x861) = fiat_p384_addcarryx_u32(x859, x800, x836);
+ let mut x862: u32 = 0;
+ let mut x863: fiat_p384_u1 = 0;
+ let (x862, x863) = fiat_p384_addcarryx_u32(x861, x802, x838);
+ let mut x864: u32 = 0;
+ let mut x865: fiat_p384_u1 = 0;
+ let (x864, x865) = fiat_p384_addcarryx_u32(x863, x804, x840);
+ let mut x866: u32 = 0;
+ let mut x867: fiat_p384_u1 = 0;
+ let (x866, x867) = fiat_p384_addcarryx_u32(x865, x806, x842);
+ let mut x868: u32 = 0;
+ let mut x869: fiat_p384_u1 = 0;
+ let (x868, x869) = fiat_p384_addcarryx_u32(x867, x808, x844);
+ let mut x870: u32 = 0;
+ let mut x871: fiat_p384_u1 = 0;
+ let (x870, x871) = fiat_p384_addcarryx_u32(x869, x810, x846);
+ let mut x872: u32 = 0;
+ let mut x873: fiat_p384_u1 = 0;
+ let (x872, x873) = fiat_p384_addcarryx_u32(x871, x812, x848);
+ let mut x874: u32 = 0;
+ let mut x875: fiat_p384_u1 = 0;
+ let (x874, x875) = fiat_p384_addcarryx_u32(x873, x814, x850);
+ let mut x876: u32 = 0;
+ let mut x877: fiat_p384_u1 = 0;
+ let (x876, x877) = fiat_p384_addcarryx_u32(
+ x875,
+ ((x815 as u32) + (x791 as u32)),
+ ((x851 as u32) + x817),
+ );
+ let mut x878: u32 = 0;
+ let mut x879: fiat_p384_u1 = 0;
+ let (x878, x879) = fiat_p384_addcarryx_u32(0x0, x854, (arg1[11]));
+ let mut x880: u32 = 0;
+ let mut x881: fiat_p384_u1 = 0;
+ let (x880, x881) = fiat_p384_addcarryx_u32(x879, x856, (0x0 as u32));
+ let mut x882: u32 = 0;
+ let mut x883: fiat_p384_u1 = 0;
+ let (x882, x883) = fiat_p384_addcarryx_u32(x881, x858, (0x0 as u32));
+ let mut x884: u32 = 0;
+ let mut x885: fiat_p384_u1 = 0;
+ let (x884, x885) = fiat_p384_addcarryx_u32(x883, x860, (0x0 as u32));
+ let mut x886: u32 = 0;
+ let mut x887: fiat_p384_u1 = 0;
+ let (x886, x887) = fiat_p384_addcarryx_u32(x885, x862, (0x0 as u32));
+ let mut x888: u32 = 0;
+ let mut x889: fiat_p384_u1 = 0;
+ let (x888, x889) = fiat_p384_addcarryx_u32(x887, x864, (0x0 as u32));
+ let mut x890: u32 = 0;
+ let mut x891: fiat_p384_u1 = 0;
+ let (x890, x891) = fiat_p384_addcarryx_u32(x889, x866, (0x0 as u32));
+ let mut x892: u32 = 0;
+ let mut x893: fiat_p384_u1 = 0;
+ let (x892, x893) = fiat_p384_addcarryx_u32(x891, x868, (0x0 as u32));
+ let mut x894: u32 = 0;
+ let mut x895: fiat_p384_u1 = 0;
+ let (x894, x895) = fiat_p384_addcarryx_u32(x893, x870, (0x0 as u32));
+ let mut x896: u32 = 0;
+ let mut x897: fiat_p384_u1 = 0;
+ let (x896, x897) = fiat_p384_addcarryx_u32(x895, x872, (0x0 as u32));
+ let mut x898: u32 = 0;
+ let mut x899: fiat_p384_u1 = 0;
+ let (x898, x899) = fiat_p384_addcarryx_u32(x897, x874, (0x0 as u32));
+ let mut x900: u32 = 0;
+ let mut x901: fiat_p384_u1 = 0;
+ let (x900, x901) = fiat_p384_addcarryx_u32(x899, x876, (0x0 as u32));
+ let mut x902: u32 = 0;
+ let mut x903: u32 = 0;
+ let (x902, x903) = fiat_p384_mulx_u32(x878, 0xffffffff);
+ let mut x904: u32 = 0;
+ let mut x905: u32 = 0;
+ let (x904, x905) = fiat_p384_mulx_u32(x878, 0xffffffff);
+ let mut x906: u32 = 0;
+ let mut x907: u32 = 0;
+ let (x906, x907) = fiat_p384_mulx_u32(x878, 0xffffffff);
+ let mut x908: u32 = 0;
+ let mut x909: u32 = 0;
+ let (x908, x909) = fiat_p384_mulx_u32(x878, 0xffffffff);
+ let mut x910: u32 = 0;
+ let mut x911: u32 = 0;
+ let (x910, x911) = fiat_p384_mulx_u32(x878, 0xffffffff);
+ let mut x912: u32 = 0;
+ let mut x913: u32 = 0;
+ let (x912, x913) = fiat_p384_mulx_u32(x878, 0xffffffff);
+ let mut x914: u32 = 0;
+ let mut x915: u32 = 0;
+ let (x914, x915) = fiat_p384_mulx_u32(x878, 0xffffffff);
+ let mut x916: u32 = 0;
+ let mut x917: u32 = 0;
+ let (x916, x917) = fiat_p384_mulx_u32(x878, 0xfffffffe);
+ let mut x918: u32 = 0;
+ let mut x919: u32 = 0;
+ let (x918, x919) = fiat_p384_mulx_u32(x878, 0xffffffff);
+ let mut x920: u32 = 0;
+ let mut x921: u32 = 0;
+ let (x920, x921) = fiat_p384_mulx_u32(x878, 0xffffffff);
+ let mut x922: u32 = 0;
+ let mut x923: fiat_p384_u1 = 0;
+ let (x922, x923) = fiat_p384_addcarryx_u32(0x0, x919, x916);
+ let mut x924: u32 = 0;
+ let mut x925: fiat_p384_u1 = 0;
+ let (x924, x925) = fiat_p384_addcarryx_u32(x923, x917, x914);
+ let mut x926: u32 = 0;
+ let mut x927: fiat_p384_u1 = 0;
+ let (x926, x927) = fiat_p384_addcarryx_u32(x925, x915, x912);
+ let mut x928: u32 = 0;
+ let mut x929: fiat_p384_u1 = 0;
+ let (x928, x929) = fiat_p384_addcarryx_u32(x927, x913, x910);
+ let mut x930: u32 = 0;
+ let mut x931: fiat_p384_u1 = 0;
+ let (x930, x931) = fiat_p384_addcarryx_u32(x929, x911, x908);
+ let mut x932: u32 = 0;
+ let mut x933: fiat_p384_u1 = 0;
+ let (x932, x933) = fiat_p384_addcarryx_u32(x931, x909, x906);
+ let mut x934: u32 = 0;
+ let mut x935: fiat_p384_u1 = 0;
+ let (x934, x935) = fiat_p384_addcarryx_u32(x933, x907, x904);
+ let mut x936: u32 = 0;
+ let mut x937: fiat_p384_u1 = 0;
+ let (x936, x937) = fiat_p384_addcarryx_u32(x935, x905, x902);
+ let mut x938: u32 = 0;
+ let mut x939: fiat_p384_u1 = 0;
+ let (x938, x939) = fiat_p384_addcarryx_u32(0x0, x878, x920);
+ let mut x940: u32 = 0;
+ let mut x941: fiat_p384_u1 = 0;
+ let (x940, x941) = fiat_p384_addcarryx_u32(x939, x880, x921);
+ let mut x942: u32 = 0;
+ let mut x943: fiat_p384_u1 = 0;
+ let (x942, x943) = fiat_p384_addcarryx_u32(x941, x882, (0x0 as u32));
+ let mut x944: u32 = 0;
+ let mut x945: fiat_p384_u1 = 0;
+ let (x944, x945) = fiat_p384_addcarryx_u32(x943, x884, x918);
+ let mut x946: u32 = 0;
+ let mut x947: fiat_p384_u1 = 0;
+ let (x946, x947) = fiat_p384_addcarryx_u32(x945, x886, x922);
+ let mut x948: u32 = 0;
+ let mut x949: fiat_p384_u1 = 0;
+ let (x948, x949) = fiat_p384_addcarryx_u32(x947, x888, x924);
+ let mut x950: u32 = 0;
+ let mut x951: fiat_p384_u1 = 0;
+ let (x950, x951) = fiat_p384_addcarryx_u32(x949, x890, x926);
+ let mut x952: u32 = 0;
+ let mut x953: fiat_p384_u1 = 0;
+ let (x952, x953) = fiat_p384_addcarryx_u32(x951, x892, x928);
+ let mut x954: u32 = 0;
+ let mut x955: fiat_p384_u1 = 0;
+ let (x954, x955) = fiat_p384_addcarryx_u32(x953, x894, x930);
+ let mut x956: u32 = 0;
+ let mut x957: fiat_p384_u1 = 0;
+ let (x956, x957) = fiat_p384_addcarryx_u32(x955, x896, x932);
+ let mut x958: u32 = 0;
+ let mut x959: fiat_p384_u1 = 0;
+ let (x958, x959) = fiat_p384_addcarryx_u32(x957, x898, x934);
+ let mut x960: u32 = 0;
+ let mut x961: fiat_p384_u1 = 0;
+ let (x960, x961) = fiat_p384_addcarryx_u32(x959, x900, x936);
+ let mut x962: u32 = 0;
+ let mut x963: fiat_p384_u1 = 0;
+ let (x962, x963) = fiat_p384_addcarryx_u32(
+ x961,
+ ((x901 as u32) + (x877 as u32)),
+ ((x937 as u32) + x903),
+ );
+ let mut x964: u32 = 0;
+ let mut x965: fiat_p384_u1 = 0;
+ let (x964, x965) = fiat_p384_subborrowx_u32(0x0, x940, 0xffffffff);
+ let mut x966: u32 = 0;
+ let mut x967: fiat_p384_u1 = 0;
+ let (x966, x967) = fiat_p384_subborrowx_u32(x965, x942, (0x0 as u32));
+ let mut x968: u32 = 0;
+ let mut x969: fiat_p384_u1 = 0;
+ let (x968, x969) = fiat_p384_subborrowx_u32(x967, x944, (0x0 as u32));
+ let mut x970: u32 = 0;
+ let mut x971: fiat_p384_u1 = 0;
+ let (x970, x971) = fiat_p384_subborrowx_u32(x969, x946, 0xffffffff);
+ let mut x972: u32 = 0;
+ let mut x973: fiat_p384_u1 = 0;
+ let (x972, x973) = fiat_p384_subborrowx_u32(x971, x948, 0xfffffffe);
+ let mut x974: u32 = 0;
+ let mut x975: fiat_p384_u1 = 0;
+ let (x974, x975) = fiat_p384_subborrowx_u32(x973, x950, 0xffffffff);
+ let mut x976: u32 = 0;
+ let mut x977: fiat_p384_u1 = 0;
+ let (x976, x977) = fiat_p384_subborrowx_u32(x975, x952, 0xffffffff);
+ let mut x978: u32 = 0;
+ let mut x979: fiat_p384_u1 = 0;
+ let (x978, x979) = fiat_p384_subborrowx_u32(x977, x954, 0xffffffff);
+ let mut x980: u32 = 0;
+ let mut x981: fiat_p384_u1 = 0;
+ let (x980, x981) = fiat_p384_subborrowx_u32(x979, x956, 0xffffffff);
+ let mut x982: u32 = 0;
+ let mut x983: fiat_p384_u1 = 0;
+ let (x982, x983) = fiat_p384_subborrowx_u32(x981, x958, 0xffffffff);
+ let mut x984: u32 = 0;
+ let mut x985: fiat_p384_u1 = 0;
+ let (x984, x985) = fiat_p384_subborrowx_u32(x983, x960, 0xffffffff);
+ let mut x986: u32 = 0;
+ let mut x987: fiat_p384_u1 = 0;
+ let (x986, x987) = fiat_p384_subborrowx_u32(x985, x962, 0xffffffff);
+ let mut x988: u32 = 0;
+ let mut x989: fiat_p384_u1 = 0;
+ let (x988, x989) = fiat_p384_subborrowx_u32(x987, (x963 as u32), (0x0 as u32));
+ let mut x990: u32 = 0;
+ let (x990) = fiat_p384_cmovznz_u32(x989, x964, x940);
+ let mut x991: u32 = 0;
+ let (x991) = fiat_p384_cmovznz_u32(x989, x966, x942);
+ let mut x992: u32 = 0;
+ let (x992) = fiat_p384_cmovznz_u32(x989, x968, x944);
+ let mut x993: u32 = 0;
+ let (x993) = fiat_p384_cmovznz_u32(x989, x970, x946);
+ let mut x994: u32 = 0;
+ let (x994) = fiat_p384_cmovznz_u32(x989, x972, x948);
+ let mut x995: u32 = 0;
+ let (x995) = fiat_p384_cmovznz_u32(x989, x974, x950);
+ let mut x996: u32 = 0;
+ let (x996) = fiat_p384_cmovznz_u32(x989, x976, x952);
+ let mut x997: u32 = 0;
+ let (x997) = fiat_p384_cmovznz_u32(x989, x978, x954);
+ let mut x998: u32 = 0;
+ let (x998) = fiat_p384_cmovznz_u32(x989, x980, x956);
+ let mut x999: u32 = 0;
+ let (x999) = fiat_p384_cmovznz_u32(x989, x982, x958);
+ let mut x1000: u32 = 0;
+ let (x1000) = fiat_p384_cmovznz_u32(x989, x984, x960);
+ let mut x1001: u32 = 0;
+ let (x1001) = fiat_p384_cmovznz_u32(x989, x986, x962);
+ out1[0] = x990;
+ out1[1] = x991;
+ out1[2] = x992;
+ out1[3] = x993;
+ out1[4] = x994;
+ out1[5] = x995;
+ out1[6] = x996;
+ out1[7] = x997;
+ out1[8] = x998;
+ out1[9] = x999;
+ out1[10] = x1000;
+ out1[11] = x1001;
+ out1
+}
+#[doc = " The function fiat_p384_to_montgomery translates a field element into the Montgomery domain."]
+#[doc = ""]
+#[doc = " Preconditions:"]
+#[doc = " 0 ≤ eval arg1 < m"]
+#[doc = " Postconditions:"]
+#[doc = " eval (from_montgomery out1) mod m = eval arg1 mod m"]
+#[doc = " 0 ≤ eval out1 < m"]
+#[doc = ""]
+#[inline]
+pub const fn fiat_p384_to_montgomery(
+ arg1: &fiat_p384_non_montgomery_domain_field_element,
+) -> fiat_p384_montgomery_domain_field_element {
+ let mut out1: fiat_p384_montgomery_domain_field_element = [0; 12];
+ let x1: u32 = (arg1[1]);
+ let x2: u32 = (arg1[2]);
+ let x3: u32 = (arg1[3]);
+ let x4: u32 = (arg1[4]);
+ let x5: u32 = (arg1[5]);
+ let x6: u32 = (arg1[6]);
+ let x7: u32 = (arg1[7]);
+ let x8: u32 = (arg1[8]);
+ let x9: u32 = (arg1[9]);
+ let x10: u32 = (arg1[10]);
+ let x11: u32 = (arg1[11]);
+ let x12: u32 = (arg1[0]);
+ let mut x13: u32 = 0;
+ let mut x14: u32 = 0;
+ let (x13, x14) = fiat_p384_mulx_u32(x12, 0x2);
+ let mut x15: u32 = 0;
+ let mut x16: u32 = 0;
+ let (x15, x16) = fiat_p384_mulx_u32(x12, 0xfffffffe);
+ let mut x17: u32 = 0;
+ let mut x18: u32 = 0;
+ let (x17, x18) = fiat_p384_mulx_u32(x12, 0x2);
+ let mut x19: u32 = 0;
+ let mut x20: u32 = 0;
+ let (x19, x20) = fiat_p384_mulx_u32(x12, 0xfffffffe);
+ let mut x21: u32 = 0;
+ let mut x22: fiat_p384_u1 = 0;
+ let (x21, x22) = fiat_p384_addcarryx_u32(0x0, ((x14 as fiat_p384_u1) as u32), x12);
+ let mut x23: u32 = 0;
+ let mut x24: u32 = 0;
+ let (x23, x24) = fiat_p384_mulx_u32(x12, 0xffffffff);
+ let mut x25: u32 = 0;
+ let mut x26: u32 = 0;
+ let (x25, x26) = fiat_p384_mulx_u32(x12, 0xffffffff);
+ let mut x27: u32 = 0;
+ let mut x28: u32 = 0;
+ let (x27, x28) = fiat_p384_mulx_u32(x12, 0xffffffff);
+ let mut x29: u32 = 0;
+ let mut x30: u32 = 0;
+ let (x29, x30) = fiat_p384_mulx_u32(x12, 0xffffffff);
+ let mut x31: u32 = 0;
+ let mut x32: u32 = 0;
+ let (x31, x32) = fiat_p384_mulx_u32(x12, 0xffffffff);
+ let mut x33: u32 = 0;
+ let mut x34: u32 = 0;
+ let (x33, x34) = fiat_p384_mulx_u32(x12, 0xffffffff);
+ let mut x35: u32 = 0;
+ let mut x36: u32 = 0;
+ let (x35, x36) = fiat_p384_mulx_u32(x12, 0xffffffff);
+ let mut x37: u32 = 0;
+ let mut x38: u32 = 0;
+ let (x37, x38) = fiat_p384_mulx_u32(x12, 0xfffffffe);
+ let mut x39: u32 = 0;
+ let mut x40: u32 = 0;
+ let (x39, x40) = fiat_p384_mulx_u32(x12, 0xffffffff);
+ let mut x41: u32 = 0;
+ let mut x42: u32 = 0;
+ let (x41, x42) = fiat_p384_mulx_u32(x12, 0xffffffff);
+ let mut x43: u32 = 0;
+ let mut x44: fiat_p384_u1 = 0;
+ let (x43, x44) = fiat_p384_addcarryx_u32(0x0, x40, x37);
+ let mut x45: u32 = 0;
+ let mut x46: fiat_p384_u1 = 0;
+ let (x45, x46) = fiat_p384_addcarryx_u32(x44, x38, x35);
+ let mut x47: u32 = 0;
+ let mut x48: fiat_p384_u1 = 0;
+ let (x47, x48) = fiat_p384_addcarryx_u32(x46, x36, x33);
+ let mut x49: u32 = 0;
+ let mut x50: fiat_p384_u1 = 0;
+ let (x49, x50) = fiat_p384_addcarryx_u32(x48, x34, x31);
+ let mut x51: u32 = 0;
+ let mut x52: fiat_p384_u1 = 0;
+ let (x51, x52) = fiat_p384_addcarryx_u32(x50, x32, x29);
+ let mut x53: u32 = 0;
+ let mut x54: fiat_p384_u1 = 0;
+ let (x53, x54) = fiat_p384_addcarryx_u32(x52, x30, x27);
+ let mut x55: u32 = 0;
+ let mut x56: fiat_p384_u1 = 0;
+ let (x55, x56) = fiat_p384_addcarryx_u32(x54, x28, x25);
+ let mut x57: u32 = 0;
+ let mut x58: fiat_p384_u1 = 0;
+ let (x57, x58) = fiat_p384_addcarryx_u32(x56, x26, x23);
+ let mut x59: u32 = 0;
+ let mut x60: fiat_p384_u1 = 0;
+ let (x59, x60) = fiat_p384_addcarryx_u32(0x0, x12, x41);
+ let mut x61: u32 = 0;
+ let mut x62: fiat_p384_u1 = 0;
+ let (x61, x62) = fiat_p384_addcarryx_u32(x60, x19, x42);
+ let mut x63: u32 = 0;
+ let mut x64: fiat_p384_u1 = 0;
+ let (x63, x64) = fiat_p384_addcarryx_u32(0x0, x17, x39);
+ let mut x65: u32 = 0;
+ let mut x66: fiat_p384_u1 = 0;
+ let (x65, x66) = fiat_p384_addcarryx_u32(x64, ((x18 as fiat_p384_u1) as u32), x43);
+ let mut x67: u32 = 0;
+ let mut x68: fiat_p384_u1 = 0;
+ let (x67, x68) = fiat_p384_addcarryx_u32(x66, x15, x45);
+ let mut x69: u32 = 0;
+ let mut x70: fiat_p384_u1 = 0;
+ let (x69, x70) = fiat_p384_addcarryx_u32(x68, x16, x47);
+ let mut x71: u32 = 0;
+ let mut x72: fiat_p384_u1 = 0;
+ let (x71, x72) = fiat_p384_addcarryx_u32(x70, x13, x49);
+ let mut x73: u32 = 0;
+ let mut x74: fiat_p384_u1 = 0;
+ let (x73, x74) = fiat_p384_addcarryx_u32(x72, x21, x51);
+ let mut x75: u32 = 0;
+ let mut x76: fiat_p384_u1 = 0;
+ let (x75, x76) = fiat_p384_addcarryx_u32(x74, (x22 as u32), x53);
+ let mut x77: u32 = 0;
+ let mut x78: fiat_p384_u1 = 0;
+ let (x77, x78) = fiat_p384_addcarryx_u32(x76, (0x0 as u32), x55);
+ let mut x79: u32 = 0;
+ let mut x80: fiat_p384_u1 = 0;
+ let (x79, x80) = fiat_p384_addcarryx_u32(x78, (0x0 as u32), x57);
+ let mut x81: u32 = 0;
+ let mut x82: fiat_p384_u1 = 0;
+ let (x81, x82) = fiat_p384_addcarryx_u32(x80, (0x0 as u32), ((x58 as u32) + x24));
+ let mut x83: u32 = 0;
+ let mut x84: u32 = 0;
+ let (x83, x84) = fiat_p384_mulx_u32(x1, 0x2);
+ let mut x85: u32 = 0;
+ let mut x86: u32 = 0;
+ let (x85, x86) = fiat_p384_mulx_u32(x1, 0xfffffffe);
+ let mut x87: u32 = 0;
+ let mut x88: u32 = 0;
+ let (x87, x88) = fiat_p384_mulx_u32(x1, 0x2);
+ let mut x89: u32 = 0;
+ let mut x90: u32 = 0;
+ let (x89, x90) = fiat_p384_mulx_u32(x1, 0xfffffffe);
+ let mut x91: u32 = 0;
+ let mut x92: fiat_p384_u1 = 0;
+ let (x91, x92) = fiat_p384_addcarryx_u32(0x0, ((x84 as fiat_p384_u1) as u32), x1);
+ let mut x93: u32 = 0;
+ let mut x94: fiat_p384_u1 = 0;
+ let (x93, x94) = fiat_p384_addcarryx_u32(0x0, x61, x1);
+ let mut x95: u32 = 0;
+ let mut x96: fiat_p384_u1 = 0;
+ let (x95, x96) = fiat_p384_addcarryx_u32(x94, ((x62 as u32) + x20), x89);
+ let mut x97: u32 = 0;
+ let mut x98: fiat_p384_u1 = 0;
+ let (x97, x98) = fiat_p384_addcarryx_u32(x96, x63, x90);
+ let mut x99: u32 = 0;
+ let mut x100: fiat_p384_u1 = 0;
+ let (x99, x100) = fiat_p384_addcarryx_u32(x98, x65, x87);
+ let mut x101: u32 = 0;
+ let mut x102: fiat_p384_u1 = 0;
+ let (x101, x102) = fiat_p384_addcarryx_u32(x100, x67, ((x88 as fiat_p384_u1) as u32));
+ let mut x103: u32 = 0;
+ let mut x104: fiat_p384_u1 = 0;
+ let (x103, x104) = fiat_p384_addcarryx_u32(x102, x69, x85);
+ let mut x105: u32 = 0;
+ let mut x106: fiat_p384_u1 = 0;
+ let (x105, x106) = fiat_p384_addcarryx_u32(x104, x71, x86);
+ let mut x107: u32 = 0;
+ let mut x108: fiat_p384_u1 = 0;
+ let (x107, x108) = fiat_p384_addcarryx_u32(x106, x73, x83);
+ let mut x109: u32 = 0;
+ let mut x110: fiat_p384_u1 = 0;
+ let (x109, x110) = fiat_p384_addcarryx_u32(x108, x75, x91);
+ let mut x111: u32 = 0;
+ let mut x112: fiat_p384_u1 = 0;
+ let (x111, x112) = fiat_p384_addcarryx_u32(x110, x77, (x92 as u32));
+ let mut x113: u32 = 0;
+ let mut x114: fiat_p384_u1 = 0;
+ let (x113, x114) = fiat_p384_addcarryx_u32(x112, x79, (0x0 as u32));
+ let mut x115: u32 = 0;
+ let mut x116: fiat_p384_u1 = 0;
+ let (x115, x116) = fiat_p384_addcarryx_u32(x114, x81, (0x0 as u32));
+ let mut x117: u32 = 0;
+ let mut x118: u32 = 0;
+ let (x117, x118) = fiat_p384_mulx_u32(x93, 0xffffffff);
+ let mut x119: u32 = 0;
+ let mut x120: u32 = 0;
+ let (x119, x120) = fiat_p384_mulx_u32(x93, 0xffffffff);
+ let mut x121: u32 = 0;
+ let mut x122: u32 = 0;
+ let (x121, x122) = fiat_p384_mulx_u32(x93, 0xffffffff);
+ let mut x123: u32 = 0;
+ let mut x124: u32 = 0;
+ let (x123, x124) = fiat_p384_mulx_u32(x93, 0xffffffff);
+ let mut x125: u32 = 0;
+ let mut x126: u32 = 0;
+ let (x125, x126) = fiat_p384_mulx_u32(x93, 0xffffffff);
+ let mut x127: u32 = 0;
+ let mut x128: u32 = 0;
+ let (x127, x128) = fiat_p384_mulx_u32(x93, 0xffffffff);
+ let mut x129: u32 = 0;
+ let mut x130: u32 = 0;
+ let (x129, x130) = fiat_p384_mulx_u32(x93, 0xffffffff);
+ let mut x131: u32 = 0;
+ let mut x132: u32 = 0;
+ let (x131, x132) = fiat_p384_mulx_u32(x93, 0xfffffffe);
+ let mut x133: u32 = 0;
+ let mut x134: u32 = 0;
+ let (x133, x134) = fiat_p384_mulx_u32(x93, 0xffffffff);
+ let mut x135: u32 = 0;
+ let mut x136: u32 = 0;
+ let (x135, x136) = fiat_p384_mulx_u32(x93, 0xffffffff);
+ let mut x137: u32 = 0;
+ let mut x138: fiat_p384_u1 = 0;
+ let (x137, x138) = fiat_p384_addcarryx_u32(0x0, x134, x131);
+ let mut x139: u32 = 0;
+ let mut x140: fiat_p384_u1 = 0;
+ let (x139, x140) = fiat_p384_addcarryx_u32(x138, x132, x129);
+ let mut x141: u32 = 0;
+ let mut x142: fiat_p384_u1 = 0;
+ let (x141, x142) = fiat_p384_addcarryx_u32(x140, x130, x127);
+ let mut x143: u32 = 0;
+ let mut x144: fiat_p384_u1 = 0;
+ let (x143, x144) = fiat_p384_addcarryx_u32(x142, x128, x125);
+ let mut x145: u32 = 0;
+ let mut x146: fiat_p384_u1 = 0;
+ let (x145, x146) = fiat_p384_addcarryx_u32(x144, x126, x123);
+ let mut x147: u32 = 0;
+ let mut x148: fiat_p384_u1 = 0;
+ let (x147, x148) = fiat_p384_addcarryx_u32(x146, x124, x121);
+ let mut x149: u32 = 0;
+ let mut x150: fiat_p384_u1 = 0;
+ let (x149, x150) = fiat_p384_addcarryx_u32(x148, x122, x119);
+ let mut x151: u32 = 0;
+ let mut x152: fiat_p384_u1 = 0;
+ let (x151, x152) = fiat_p384_addcarryx_u32(x150, x120, x117);
+ let mut x153: u32 = 0;
+ let mut x154: fiat_p384_u1 = 0;
+ let (x153, x154) = fiat_p384_addcarryx_u32(0x0, x93, x135);
+ let mut x155: u32 = 0;
+ let mut x156: fiat_p384_u1 = 0;
+ let (x155, x156) = fiat_p384_addcarryx_u32(x154, x95, x136);
+ let mut x157: u32 = 0;
+ let mut x158: fiat_p384_u1 = 0;
+ let (x157, x158) = fiat_p384_addcarryx_u32(x156, x97, (0x0 as u32));
+ let mut x159: u32 = 0;
+ let mut x160: fiat_p384_u1 = 0;
+ let (x159, x160) = fiat_p384_addcarryx_u32(x158, x99, x133);
+ let mut x161: u32 = 0;
+ let mut x162: fiat_p384_u1 = 0;
+ let (x161, x162) = fiat_p384_addcarryx_u32(x160, x101, x137);
+ let mut x163: u32 = 0;
+ let mut x164: fiat_p384_u1 = 0;
+ let (x163, x164) = fiat_p384_addcarryx_u32(x162, x103, x139);
+ let mut x165: u32 = 0;
+ let mut x166: fiat_p384_u1 = 0;
+ let (x165, x166) = fiat_p384_addcarryx_u32(x164, x105, x141);
+ let mut x167: u32 = 0;
+ let mut x168: fiat_p384_u1 = 0;
+ let (x167, x168) = fiat_p384_addcarryx_u32(x166, x107, x143);
+ let mut x169: u32 = 0;
+ let mut x170: fiat_p384_u1 = 0;
+ let (x169, x170) = fiat_p384_addcarryx_u32(x168, x109, x145);
+ let mut x171: u32 = 0;
+ let mut x172: fiat_p384_u1 = 0;
+ let (x171, x172) = fiat_p384_addcarryx_u32(x170, x111, x147);
+ let mut x173: u32 = 0;
+ let mut x174: fiat_p384_u1 = 0;
+ let (x173, x174) = fiat_p384_addcarryx_u32(x172, x113, x149);
+ let mut x175: u32 = 0;
+ let mut x176: fiat_p384_u1 = 0;
+ let (x175, x176) = fiat_p384_addcarryx_u32(x174, x115, x151);
+ let mut x177: u32 = 0;
+ let mut x178: fiat_p384_u1 = 0;
+ let (x177, x178) =
+ fiat_p384_addcarryx_u32(x176, ((x116 as u32) + (x82 as u32)), ((x152 as u32) + x118));
+ let mut x179: u32 = 0;
+ let mut x180: u32 = 0;
+ let (x179, x180) = fiat_p384_mulx_u32(x2, 0x2);
+ let mut x181: u32 = 0;
+ let mut x182: u32 = 0;
+ let (x181, x182) = fiat_p384_mulx_u32(x2, 0xfffffffe);
+ let mut x183: u32 = 0;
+ let mut x184: u32 = 0;
+ let (x183, x184) = fiat_p384_mulx_u32(x2, 0x2);
+ let mut x185: u32 = 0;
+ let mut x186: u32 = 0;
+ let (x185, x186) = fiat_p384_mulx_u32(x2, 0xfffffffe);
+ let mut x187: u32 = 0;
+ let mut x188: fiat_p384_u1 = 0;
+ let (x187, x188) = fiat_p384_addcarryx_u32(0x0, ((x180 as fiat_p384_u1) as u32), x2);
+ let mut x189: u32 = 0;
+ let mut x190: fiat_p384_u1 = 0;
+ let (x189, x190) = fiat_p384_addcarryx_u32(0x0, x155, x2);
+ let mut x191: u32 = 0;
+ let mut x192: fiat_p384_u1 = 0;
+ let (x191, x192) = fiat_p384_addcarryx_u32(x190, x157, x185);
+ let mut x193: u32 = 0;
+ let mut x194: fiat_p384_u1 = 0;
+ let (x193, x194) = fiat_p384_addcarryx_u32(x192, x159, x186);
+ let mut x195: u32 = 0;
+ let mut x196: fiat_p384_u1 = 0;
+ let (x195, x196) = fiat_p384_addcarryx_u32(x194, x161, x183);
+ let mut x197: u32 = 0;
+ let mut x198: fiat_p384_u1 = 0;
+ let (x197, x198) = fiat_p384_addcarryx_u32(x196, x163, ((x184 as fiat_p384_u1) as u32));
+ let mut x199: u32 = 0;
+ let mut x200: fiat_p384_u1 = 0;
+ let (x199, x200) = fiat_p384_addcarryx_u32(x198, x165, x181);
+ let mut x201: u32 = 0;
+ let mut x202: fiat_p384_u1 = 0;
+ let (x201, x202) = fiat_p384_addcarryx_u32(x200, x167, x182);
+ let mut x203: u32 = 0;
+ let mut x204: fiat_p384_u1 = 0;
+ let (x203, x204) = fiat_p384_addcarryx_u32(x202, x169, x179);
+ let mut x205: u32 = 0;
+ let mut x206: fiat_p384_u1 = 0;
+ let (x205, x206) = fiat_p384_addcarryx_u32(x204, x171, x187);
+ let mut x207: u32 = 0;
+ let mut x208: fiat_p384_u1 = 0;
+ let (x207, x208) = fiat_p384_addcarryx_u32(x206, x173, (x188 as u32));
+ let mut x209: u32 = 0;
+ let mut x210: fiat_p384_u1 = 0;
+ let (x209, x210) = fiat_p384_addcarryx_u32(x208, x175, (0x0 as u32));
+ let mut x211: u32 = 0;
+ let mut x212: fiat_p384_u1 = 0;
+ let (x211, x212) = fiat_p384_addcarryx_u32(x210, x177, (0x0 as u32));
+ let mut x213: u32 = 0;
+ let mut x214: u32 = 0;
+ let (x213, x214) = fiat_p384_mulx_u32(x189, 0xffffffff);
+ let mut x215: u32 = 0;
+ let mut x216: u32 = 0;
+ let (x215, x216) = fiat_p384_mulx_u32(x189, 0xffffffff);
+ let mut x217: u32 = 0;
+ let mut x218: u32 = 0;
+ let (x217, x218) = fiat_p384_mulx_u32(x189, 0xffffffff);
+ let mut x219: u32 = 0;
+ let mut x220: u32 = 0;
+ let (x219, x220) = fiat_p384_mulx_u32(x189, 0xffffffff);
+ let mut x221: u32 = 0;
+ let mut x222: u32 = 0;
+ let (x221, x222) = fiat_p384_mulx_u32(x189, 0xffffffff);
+ let mut x223: u32 = 0;
+ let mut x224: u32 = 0;
+ let (x223, x224) = fiat_p384_mulx_u32(x189, 0xffffffff);
+ let mut x225: u32 = 0;
+ let mut x226: u32 = 0;
+ let (x225, x226) = fiat_p384_mulx_u32(x189, 0xffffffff);
+ let mut x227: u32 = 0;
+ let mut x228: u32 = 0;
+ let (x227, x228) = fiat_p384_mulx_u32(x189, 0xfffffffe);
+ let mut x229: u32 = 0;
+ let mut x230: u32 = 0;
+ let (x229, x230) = fiat_p384_mulx_u32(x189, 0xffffffff);
+ let mut x231: u32 = 0;
+ let mut x232: u32 = 0;
+ let (x231, x232) = fiat_p384_mulx_u32(x189, 0xffffffff);
+ let mut x233: u32 = 0;
+ let mut x234: fiat_p384_u1 = 0;
+ let (x233, x234) = fiat_p384_addcarryx_u32(0x0, x230, x227);
+ let mut x235: u32 = 0;
+ let mut x236: fiat_p384_u1 = 0;
+ let (x235, x236) = fiat_p384_addcarryx_u32(x234, x228, x225);
+ let mut x237: u32 = 0;
+ let mut x238: fiat_p384_u1 = 0;
+ let (x237, x238) = fiat_p384_addcarryx_u32(x236, x226, x223);
+ let mut x239: u32 = 0;
+ let mut x240: fiat_p384_u1 = 0;
+ let (x239, x240) = fiat_p384_addcarryx_u32(x238, x224, x221);
+ let mut x241: u32 = 0;
+ let mut x242: fiat_p384_u1 = 0;
+ let (x241, x242) = fiat_p384_addcarryx_u32(x240, x222, x219);
+ let mut x243: u32 = 0;
+ let mut x244: fiat_p384_u1 = 0;
+ let (x243, x244) = fiat_p384_addcarryx_u32(x242, x220, x217);
+ let mut x245: u32 = 0;
+ let mut x246: fiat_p384_u1 = 0;
+ let (x245, x246) = fiat_p384_addcarryx_u32(x244, x218, x215);
+ let mut x247: u32 = 0;
+ let mut x248: fiat_p384_u1 = 0;
+ let (x247, x248) = fiat_p384_addcarryx_u32(x246, x216, x213);
+ let mut x249: u32 = 0;
+ let mut x250: fiat_p384_u1 = 0;
+ let (x249, x250) = fiat_p384_addcarryx_u32(0x0, x189, x231);
+ let mut x251: u32 = 0;
+ let mut x252: fiat_p384_u1 = 0;
+ let (x251, x252) = fiat_p384_addcarryx_u32(x250, x191, x232);
+ let mut x253: u32 = 0;
+ let mut x254: fiat_p384_u1 = 0;
+ let (x253, x254) = fiat_p384_addcarryx_u32(x252, x193, (0x0 as u32));
+ let mut x255: u32 = 0;
+ let mut x256: fiat_p384_u1 = 0;
+ let (x255, x256) = fiat_p384_addcarryx_u32(x254, x195, x229);
+ let mut x257: u32 = 0;
+ let mut x258: fiat_p384_u1 = 0;
+ let (x257, x258) = fiat_p384_addcarryx_u32(x256, x197, x233);
+ let mut x259: u32 = 0;
+ let mut x260: fiat_p384_u1 = 0;
+ let (x259, x260) = fiat_p384_addcarryx_u32(x258, x199, x235);
+ let mut x261: u32 = 0;
+ let mut x262: fiat_p384_u1 = 0;
+ let (x261, x262) = fiat_p384_addcarryx_u32(x260, x201, x237);
+ let mut x263: u32 = 0;
+ let mut x264: fiat_p384_u1 = 0;
+ let (x263, x264) = fiat_p384_addcarryx_u32(x262, x203, x239);
+ let mut x265: u32 = 0;
+ let mut x266: fiat_p384_u1 = 0;
+ let (x265, x266) = fiat_p384_addcarryx_u32(x264, x205, x241);
+ let mut x267: u32 = 0;
+ let mut x268: fiat_p384_u1 = 0;
+ let (x267, x268) = fiat_p384_addcarryx_u32(x266, x207, x243);
+ let mut x269: u32 = 0;
+ let mut x270: fiat_p384_u1 = 0;
+ let (x269, x270) = fiat_p384_addcarryx_u32(x268, x209, x245);
+ let mut x271: u32 = 0;
+ let mut x272: fiat_p384_u1 = 0;
+ let (x271, x272) = fiat_p384_addcarryx_u32(x270, x211, x247);
+ let mut x273: u32 = 0;
+ let mut x274: fiat_p384_u1 = 0;
+ let (x273, x274) = fiat_p384_addcarryx_u32(
+ x272,
+ ((x212 as u32) + (x178 as u32)),
+ ((x248 as u32) + x214),
+ );
+ let mut x275: u32 = 0;
+ let mut x276: u32 = 0;
+ let (x275, x276) = fiat_p384_mulx_u32(x3, 0x2);
+ let mut x277: u32 = 0;
+ let mut x278: u32 = 0;
+ let (x277, x278) = fiat_p384_mulx_u32(x3, 0xfffffffe);
+ let mut x279: u32 = 0;
+ let mut x280: u32 = 0;
+ let (x279, x280) = fiat_p384_mulx_u32(x3, 0x2);
+ let mut x281: u32 = 0;
+ let mut x282: u32 = 0;
+ let (x281, x282) = fiat_p384_mulx_u32(x3, 0xfffffffe);
+ let mut x283: u32 = 0;
+ let mut x284: fiat_p384_u1 = 0;
+ let (x283, x284) = fiat_p384_addcarryx_u32(0x0, ((x276 as fiat_p384_u1) as u32), x3);
+ let mut x285: u32 = 0;
+ let mut x286: fiat_p384_u1 = 0;
+ let (x285, x286) = fiat_p384_addcarryx_u32(0x0, x251, x3);
+ let mut x287: u32 = 0;
+ let mut x288: fiat_p384_u1 = 0;
+ let (x287, x288) = fiat_p384_addcarryx_u32(x286, x253, x281);
+ let mut x289: u32 = 0;
+ let mut x290: fiat_p384_u1 = 0;
+ let (x289, x290) = fiat_p384_addcarryx_u32(x288, x255, x282);
+ let mut x291: u32 = 0;
+ let mut x292: fiat_p384_u1 = 0;
+ let (x291, x292) = fiat_p384_addcarryx_u32(x290, x257, x279);
+ let mut x293: u32 = 0;
+ let mut x294: fiat_p384_u1 = 0;
+ let (x293, x294) = fiat_p384_addcarryx_u32(x292, x259, ((x280 as fiat_p384_u1) as u32));
+ let mut x295: u32 = 0;
+ let mut x296: fiat_p384_u1 = 0;
+ let (x295, x296) = fiat_p384_addcarryx_u32(x294, x261, x277);
+ let mut x297: u32 = 0;
+ let mut x298: fiat_p384_u1 = 0;
+ let (x297, x298) = fiat_p384_addcarryx_u32(x296, x263, x278);
+ let mut x299: u32 = 0;
+ let mut x300: fiat_p384_u1 = 0;
+ let (x299, x300) = fiat_p384_addcarryx_u32(x298, x265, x275);
+ let mut x301: u32 = 0;
+ let mut x302: fiat_p384_u1 = 0;
+ let (x301, x302) = fiat_p384_addcarryx_u32(x300, x267, x283);
+ let mut x303: u32 = 0;
+ let mut x304: fiat_p384_u1 = 0;
+ let (x303, x304) = fiat_p384_addcarryx_u32(x302, x269, (x284 as u32));
+ let mut x305: u32 = 0;
+ let mut x306: fiat_p384_u1 = 0;
+ let (x305, x306) = fiat_p384_addcarryx_u32(x304, x271, (0x0 as u32));
+ let mut x307: u32 = 0;
+ let mut x308: fiat_p384_u1 = 0;
+ let (x307, x308) = fiat_p384_addcarryx_u32(x306, x273, (0x0 as u32));
+ let mut x309: u32 = 0;
+ let mut x310: u32 = 0;
+ let (x309, x310) = fiat_p384_mulx_u32(x285, 0xffffffff);
+ let mut x311: u32 = 0;
+ let mut x312: u32 = 0;
+ let (x311, x312) = fiat_p384_mulx_u32(x285, 0xffffffff);
+ let mut x313: u32 = 0;
+ let mut x314: u32 = 0;
+ let (x313, x314) = fiat_p384_mulx_u32(x285, 0xffffffff);
+ let mut x315: u32 = 0;
+ let mut x316: u32 = 0;
+ let (x315, x316) = fiat_p384_mulx_u32(x285, 0xffffffff);
+ let mut x317: u32 = 0;
+ let mut x318: u32 = 0;
+ let (x317, x318) = fiat_p384_mulx_u32(x285, 0xffffffff);
+ let mut x319: u32 = 0;
+ let mut x320: u32 = 0;
+ let (x319, x320) = fiat_p384_mulx_u32(x285, 0xffffffff);
+ let mut x321: u32 = 0;
+ let mut x322: u32 = 0;
+ let (x321, x322) = fiat_p384_mulx_u32(x285, 0xffffffff);
+ let mut x323: u32 = 0;
+ let mut x324: u32 = 0;
+ let (x323, x324) = fiat_p384_mulx_u32(x285, 0xfffffffe);
+ let mut x325: u32 = 0;
+ let mut x326: u32 = 0;
+ let (x325, x326) = fiat_p384_mulx_u32(x285, 0xffffffff);
+ let mut x327: u32 = 0;
+ let mut x328: u32 = 0;
+ let (x327, x328) = fiat_p384_mulx_u32(x285, 0xffffffff);
+ let mut x329: u32 = 0;
+ let mut x330: fiat_p384_u1 = 0;
+ let (x329, x330) = fiat_p384_addcarryx_u32(0x0, x326, x323);
+ let mut x331: u32 = 0;
+ let mut x332: fiat_p384_u1 = 0;
+ let (x331, x332) = fiat_p384_addcarryx_u32(x330, x324, x321);
+ let mut x333: u32 = 0;
+ let mut x334: fiat_p384_u1 = 0;
+ let (x333, x334) = fiat_p384_addcarryx_u32(x332, x322, x319);
+ let mut x335: u32 = 0;
+ let mut x336: fiat_p384_u1 = 0;
+ let (x335, x336) = fiat_p384_addcarryx_u32(x334, x320, x317);
+ let mut x337: u32 = 0;
+ let mut x338: fiat_p384_u1 = 0;
+ let (x337, x338) = fiat_p384_addcarryx_u32(x336, x318, x315);
+ let mut x339: u32 = 0;
+ let mut x340: fiat_p384_u1 = 0;
+ let (x339, x340) = fiat_p384_addcarryx_u32(x338, x316, x313);
+ let mut x341: u32 = 0;
+ let mut x342: fiat_p384_u1 = 0;
+ let (x341, x342) = fiat_p384_addcarryx_u32(x340, x314, x311);
+ let mut x343: u32 = 0;
+ let mut x344: fiat_p384_u1 = 0;
+ let (x343, x344) = fiat_p384_addcarryx_u32(x342, x312, x309);
+ let mut x345: u32 = 0;
+ let mut x346: fiat_p384_u1 = 0;
+ let (x345, x346) = fiat_p384_addcarryx_u32(0x0, x285, x327);
+ let mut x347: u32 = 0;
+ let mut x348: fiat_p384_u1 = 0;
+ let (x347, x348) = fiat_p384_addcarryx_u32(x346, x287, x328);
+ let mut x349: u32 = 0;
+ let mut x350: fiat_p384_u1 = 0;
+ let (x349, x350) = fiat_p384_addcarryx_u32(x348, x289, (0x0 as u32));
+ let mut x351: u32 = 0;
+ let mut x352: fiat_p384_u1 = 0;
+ let (x351, x352) = fiat_p384_addcarryx_u32(x350, x291, x325);
+ let mut x353: u32 = 0;
+ let mut x354: fiat_p384_u1 = 0;
+ let (x353, x354) = fiat_p384_addcarryx_u32(x352, x293, x329);
+ let mut x355: u32 = 0;
+ let mut x356: fiat_p384_u1 = 0;
+ let (x355, x356) = fiat_p384_addcarryx_u32(x354, x295, x331);
+ let mut x357: u32 = 0;
+ let mut x358: fiat_p384_u1 = 0;
+ let (x357, x358) = fiat_p384_addcarryx_u32(x356, x297, x333);
+ let mut x359: u32 = 0;
+ let mut x360: fiat_p384_u1 = 0;
+ let (x359, x360) = fiat_p384_addcarryx_u32(x358, x299, x335);
+ let mut x361: u32 = 0;
+ let mut x362: fiat_p384_u1 = 0;
+ let (x361, x362) = fiat_p384_addcarryx_u32(x360, x301, x337);
+ let mut x363: u32 = 0;
+ let mut x364: fiat_p384_u1 = 0;
+ let (x363, x364) = fiat_p384_addcarryx_u32(x362, x303, x339);
+ let mut x365: u32 = 0;
+ let mut x366: fiat_p384_u1 = 0;
+ let (x365, x366) = fiat_p384_addcarryx_u32(x364, x305, x341);
+ let mut x367: u32 = 0;
+ let mut x368: fiat_p384_u1 = 0;
+ let (x367, x368) = fiat_p384_addcarryx_u32(x366, x307, x343);
+ let mut x369: u32 = 0;
+ let mut x370: fiat_p384_u1 = 0;
+ let (x369, x370) = fiat_p384_addcarryx_u32(
+ x368,
+ ((x308 as u32) + (x274 as u32)),
+ ((x344 as u32) + x310),
+ );
+ let mut x371: u32 = 0;
+ let mut x372: u32 = 0;
+ let (x371, x372) = fiat_p384_mulx_u32(x4, 0x2);
+ let mut x373: u32 = 0;
+ let mut x374: u32 = 0;
+ let (x373, x374) = fiat_p384_mulx_u32(x4, 0xfffffffe);
+ let mut x375: u32 = 0;
+ let mut x376: u32 = 0;
+ let (x375, x376) = fiat_p384_mulx_u32(x4, 0x2);
+ let mut x377: u32 = 0;
+ let mut x378: u32 = 0;
+ let (x377, x378) = fiat_p384_mulx_u32(x4, 0xfffffffe);
+ let mut x379: u32 = 0;
+ let mut x380: fiat_p384_u1 = 0;
+ let (x379, x380) = fiat_p384_addcarryx_u32(0x0, ((x372 as fiat_p384_u1) as u32), x4);
+ let mut x381: u32 = 0;
+ let mut x382: fiat_p384_u1 = 0;
+ let (x381, x382) = fiat_p384_addcarryx_u32(0x0, x347, x4);
+ let mut x383: u32 = 0;
+ let mut x384: fiat_p384_u1 = 0;
+ let (x383, x384) = fiat_p384_addcarryx_u32(x382, x349, x377);
+ let mut x385: u32 = 0;
+ let mut x386: fiat_p384_u1 = 0;
+ let (x385, x386) = fiat_p384_addcarryx_u32(x384, x351, x378);
+ let mut x387: u32 = 0;
+ let mut x388: fiat_p384_u1 = 0;
+ let (x387, x388) = fiat_p384_addcarryx_u32(x386, x353, x375);
+ let mut x389: u32 = 0;
+ let mut x390: fiat_p384_u1 = 0;
+ let (x389, x390) = fiat_p384_addcarryx_u32(x388, x355, ((x376 as fiat_p384_u1) as u32));
+ let mut x391: u32 = 0;
+ let mut x392: fiat_p384_u1 = 0;
+ let (x391, x392) = fiat_p384_addcarryx_u32(x390, x357, x373);
+ let mut x393: u32 = 0;
+ let mut x394: fiat_p384_u1 = 0;
+ let (x393, x394) = fiat_p384_addcarryx_u32(x392, x359, x374);
+ let mut x395: u32 = 0;
+ let mut x396: fiat_p384_u1 = 0;
+ let (x395, x396) = fiat_p384_addcarryx_u32(x394, x361, x371);
+ let mut x397: u32 = 0;
+ let mut x398: fiat_p384_u1 = 0;
+ let (x397, x398) = fiat_p384_addcarryx_u32(x396, x363, x379);
+ let mut x399: u32 = 0;
+ let mut x400: fiat_p384_u1 = 0;
+ let (x399, x400) = fiat_p384_addcarryx_u32(x398, x365, (x380 as u32));
+ let mut x401: u32 = 0;
+ let mut x402: fiat_p384_u1 = 0;
+ let (x401, x402) = fiat_p384_addcarryx_u32(x400, x367, (0x0 as u32));
+ let mut x403: u32 = 0;
+ let mut x404: fiat_p384_u1 = 0;
+ let (x403, x404) = fiat_p384_addcarryx_u32(x402, x369, (0x0 as u32));
+ let mut x405: u32 = 0;
+ let mut x406: u32 = 0;
+ let (x405, x406) = fiat_p384_mulx_u32(x381, 0xffffffff);
+ let mut x407: u32 = 0;
+ let mut x408: u32 = 0;
+ let (x407, x408) = fiat_p384_mulx_u32(x381, 0xffffffff);
+ let mut x409: u32 = 0;
+ let mut x410: u32 = 0;
+ let (x409, x410) = fiat_p384_mulx_u32(x381, 0xffffffff);
+ let mut x411: u32 = 0;
+ let mut x412: u32 = 0;
+ let (x411, x412) = fiat_p384_mulx_u32(x381, 0xffffffff);
+ let mut x413: u32 = 0;
+ let mut x414: u32 = 0;
+ let (x413, x414) = fiat_p384_mulx_u32(x381, 0xffffffff);
+ let mut x415: u32 = 0;
+ let mut x416: u32 = 0;
+ let (x415, x416) = fiat_p384_mulx_u32(x381, 0xffffffff);
+ let mut x417: u32 = 0;
+ let mut x418: u32 = 0;
+ let (x417, x418) = fiat_p384_mulx_u32(x381, 0xffffffff);
+ let mut x419: u32 = 0;
+ let mut x420: u32 = 0;
+ let (x419, x420) = fiat_p384_mulx_u32(x381, 0xfffffffe);
+ let mut x421: u32 = 0;
+ let mut x422: u32 = 0;
+ let (x421, x422) = fiat_p384_mulx_u32(x381, 0xffffffff);
+ let mut x423: u32 = 0;
+ let mut x424: u32 = 0;
+ let (x423, x424) = fiat_p384_mulx_u32(x381, 0xffffffff);
+ let mut x425: u32 = 0;
+ let mut x426: fiat_p384_u1 = 0;
+ let (x425, x426) = fiat_p384_addcarryx_u32(0x0, x422, x419);
+ let mut x427: u32 = 0;
+ let mut x428: fiat_p384_u1 = 0;
+ let (x427, x428) = fiat_p384_addcarryx_u32(x426, x420, x417);
+ let mut x429: u32 = 0;
+ let mut x430: fiat_p384_u1 = 0;
+ let (x429, x430) = fiat_p384_addcarryx_u32(x428, x418, x415);
+ let mut x431: u32 = 0;
+ let mut x432: fiat_p384_u1 = 0;
+ let (x431, x432) = fiat_p384_addcarryx_u32(x430, x416, x413);
+ let mut x433: u32 = 0;
+ let mut x434: fiat_p384_u1 = 0;
+ let (x433, x434) = fiat_p384_addcarryx_u32(x432, x414, x411);
+ let mut x435: u32 = 0;
+ let mut x436: fiat_p384_u1 = 0;
+ let (x435, x436) = fiat_p384_addcarryx_u32(x434, x412, x409);
+ let mut x437: u32 = 0;
+ let mut x438: fiat_p384_u1 = 0;
+ let (x437, x438) = fiat_p384_addcarryx_u32(x436, x410, x407);
+ let mut x439: u32 = 0;
+ let mut x440: fiat_p384_u1 = 0;
+ let (x439, x440) = fiat_p384_addcarryx_u32(x438, x408, x405);
+ let mut x441: u32 = 0;
+ let mut x442: fiat_p384_u1 = 0;
+ let (x441, x442) = fiat_p384_addcarryx_u32(0x0, x381, x423);
+ let mut x443: u32 = 0;
+ let mut x444: fiat_p384_u1 = 0;
+ let (x443, x444) = fiat_p384_addcarryx_u32(x442, x383, x424);
+ let mut x445: u32 = 0;
+ let mut x446: fiat_p384_u1 = 0;
+ let (x445, x446) = fiat_p384_addcarryx_u32(x444, x385, (0x0 as u32));
+ let mut x447: u32 = 0;
+ let mut x448: fiat_p384_u1 = 0;
+ let (x447, x448) = fiat_p384_addcarryx_u32(x446, x387, x421);
+ let mut x449: u32 = 0;
+ let mut x450: fiat_p384_u1 = 0;
+ let (x449, x450) = fiat_p384_addcarryx_u32(x448, x389, x425);
+ let mut x451: u32 = 0;
+ let mut x452: fiat_p384_u1 = 0;
+ let (x451, x452) = fiat_p384_addcarryx_u32(x450, x391, x427);
+ let mut x453: u32 = 0;
+ let mut x454: fiat_p384_u1 = 0;
+ let (x453, x454) = fiat_p384_addcarryx_u32(x452, x393, x429);
+ let mut x455: u32 = 0;
+ let mut x456: fiat_p384_u1 = 0;
+ let (x455, x456) = fiat_p384_addcarryx_u32(x454, x395, x431);
+ let mut x457: u32 = 0;
+ let mut x458: fiat_p384_u1 = 0;
+ let (x457, x458) = fiat_p384_addcarryx_u32(x456, x397, x433);
+ let mut x459: u32 = 0;
+ let mut x460: fiat_p384_u1 = 0;
+ let (x459, x460) = fiat_p384_addcarryx_u32(x458, x399, x435);
+ let mut x461: u32 = 0;
+ let mut x462: fiat_p384_u1 = 0;
+ let (x461, x462) = fiat_p384_addcarryx_u32(x460, x401, x437);
+ let mut x463: u32 = 0;
+ let mut x464: fiat_p384_u1 = 0;
+ let (x463, x464) = fiat_p384_addcarryx_u32(x462, x403, x439);
+ let mut x465: u32 = 0;
+ let mut x466: fiat_p384_u1 = 0;
+ let (x465, x466) = fiat_p384_addcarryx_u32(
+ x464,
+ ((x404 as u32) + (x370 as u32)),
+ ((x440 as u32) + x406),
+ );
+ let mut x467: u32 = 0;
+ let mut x468: u32 = 0;
+ let (x467, x468) = fiat_p384_mulx_u32(x5, 0x2);
+ let mut x469: u32 = 0;
+ let mut x470: u32 = 0;
+ let (x469, x470) = fiat_p384_mulx_u32(x5, 0xfffffffe);
+ let mut x471: u32 = 0;
+ let mut x472: u32 = 0;
+ let (x471, x472) = fiat_p384_mulx_u32(x5, 0x2);
+ let mut x473: u32 = 0;
+ let mut x474: u32 = 0;
+ let (x473, x474) = fiat_p384_mulx_u32(x5, 0xfffffffe);
+ let mut x475: u32 = 0;
+ let mut x476: fiat_p384_u1 = 0;
+ let (x475, x476) = fiat_p384_addcarryx_u32(0x0, ((x468 as fiat_p384_u1) as u32), x5);
+ let mut x477: u32 = 0;
+ let mut x478: fiat_p384_u1 = 0;
+ let (x477, x478) = fiat_p384_addcarryx_u32(0x0, x443, x5);
+ let mut x479: u32 = 0;
+ let mut x480: fiat_p384_u1 = 0;
+ let (x479, x480) = fiat_p384_addcarryx_u32(x478, x445, x473);
+ let mut x481: u32 = 0;
+ let mut x482: fiat_p384_u1 = 0;
+ let (x481, x482) = fiat_p384_addcarryx_u32(x480, x447, x474);
+ let mut x483: u32 = 0;
+ let mut x484: fiat_p384_u1 = 0;
+ let (x483, x484) = fiat_p384_addcarryx_u32(x482, x449, x471);
+ let mut x485: u32 = 0;
+ let mut x486: fiat_p384_u1 = 0;
+ let (x485, x486) = fiat_p384_addcarryx_u32(x484, x451, ((x472 as fiat_p384_u1) as u32));
+ let mut x487: u32 = 0;
+ let mut x488: fiat_p384_u1 = 0;
+ let (x487, x488) = fiat_p384_addcarryx_u32(x486, x453, x469);
+ let mut x489: u32 = 0;
+ let mut x490: fiat_p384_u1 = 0;
+ let (x489, x490) = fiat_p384_addcarryx_u32(x488, x455, x470);
+ let mut x491: u32 = 0;
+ let mut x492: fiat_p384_u1 = 0;
+ let (x491, x492) = fiat_p384_addcarryx_u32(x490, x457, x467);
+ let mut x493: u32 = 0;
+ let mut x494: fiat_p384_u1 = 0;
+ let (x493, x494) = fiat_p384_addcarryx_u32(x492, x459, x475);
+ let mut x495: u32 = 0;
+ let mut x496: fiat_p384_u1 = 0;
+ let (x495, x496) = fiat_p384_addcarryx_u32(x494, x461, (x476 as u32));
+ let mut x497: u32 = 0;
+ let mut x498: fiat_p384_u1 = 0;
+ let (x497, x498) = fiat_p384_addcarryx_u32(x496, x463, (0x0 as u32));
+ let mut x499: u32 = 0;
+ let mut x500: fiat_p384_u1 = 0;
+ let (x499, x500) = fiat_p384_addcarryx_u32(x498, x465, (0x0 as u32));
+ let mut x501: u32 = 0;
+ let mut x502: u32 = 0;
+ let (x501, x502) = fiat_p384_mulx_u32(x477, 0xffffffff);
+ let mut x503: u32 = 0;
+ let mut x504: u32 = 0;
+ let (x503, x504) = fiat_p384_mulx_u32(x477, 0xffffffff);
+ let mut x505: u32 = 0;
+ let mut x506: u32 = 0;
+ let (x505, x506) = fiat_p384_mulx_u32(x477, 0xffffffff);
+ let mut x507: u32 = 0;
+ let mut x508: u32 = 0;
+ let (x507, x508) = fiat_p384_mulx_u32(x477, 0xffffffff);
+ let mut x509: u32 = 0;
+ let mut x510: u32 = 0;
+ let (x509, x510) = fiat_p384_mulx_u32(x477, 0xffffffff);
+ let mut x511: u32 = 0;
+ let mut x512: u32 = 0;
+ let (x511, x512) = fiat_p384_mulx_u32(x477, 0xffffffff);
+ let mut x513: u32 = 0;
+ let mut x514: u32 = 0;
+ let (x513, x514) = fiat_p384_mulx_u32(x477, 0xffffffff);
+ let mut x515: u32 = 0;
+ let mut x516: u32 = 0;
+ let (x515, x516) = fiat_p384_mulx_u32(x477, 0xfffffffe);
+ let mut x517: u32 = 0;
+ let mut x518: u32 = 0;
+ let (x517, x518) = fiat_p384_mulx_u32(x477, 0xffffffff);
+ let mut x519: u32 = 0;
+ let mut x520: u32 = 0;
+ let (x519, x520) = fiat_p384_mulx_u32(x477, 0xffffffff);
+ let mut x521: u32 = 0;
+ let mut x522: fiat_p384_u1 = 0;
+ let (x521, x522) = fiat_p384_addcarryx_u32(0x0, x518, x515);
+ let mut x523: u32 = 0;
+ let mut x524: fiat_p384_u1 = 0;
+ let (x523, x524) = fiat_p384_addcarryx_u32(x522, x516, x513);
+ let mut x525: u32 = 0;
+ let mut x526: fiat_p384_u1 = 0;
+ let (x525, x526) = fiat_p384_addcarryx_u32(x524, x514, x511);
+ let mut x527: u32 = 0;
+ let mut x528: fiat_p384_u1 = 0;
+ let (x527, x528) = fiat_p384_addcarryx_u32(x526, x512, x509);
+ let mut x529: u32 = 0;
+ let mut x530: fiat_p384_u1 = 0;
+ let (x529, x530) = fiat_p384_addcarryx_u32(x528, x510, x507);
+ let mut x531: u32 = 0;
+ let mut x532: fiat_p384_u1 = 0;
+ let (x531, x532) = fiat_p384_addcarryx_u32(x530, x508, x505);
+ let mut x533: u32 = 0;
+ let mut x534: fiat_p384_u1 = 0;
+ let (x533, x534) = fiat_p384_addcarryx_u32(x532, x506, x503);
+ let mut x535: u32 = 0;
+ let mut x536: fiat_p384_u1 = 0;
+ let (x535, x536) = fiat_p384_addcarryx_u32(x534, x504, x501);
+ let mut x537: u32 = 0;
+ let mut x538: fiat_p384_u1 = 0;
+ let (x537, x538) = fiat_p384_addcarryx_u32(0x0, x477, x519);
+ let mut x539: u32 = 0;
+ let mut x540: fiat_p384_u1 = 0;
+ let (x539, x540) = fiat_p384_addcarryx_u32(x538, x479, x520);
+ let mut x541: u32 = 0;
+ let mut x542: fiat_p384_u1 = 0;
+ let (x541, x542) = fiat_p384_addcarryx_u32(x540, x481, (0x0 as u32));
+ let mut x543: u32 = 0;
+ let mut x544: fiat_p384_u1 = 0;
+ let (x543, x544) = fiat_p384_addcarryx_u32(x542, x483, x517);
+ let mut x545: u32 = 0;
+ let mut x546: fiat_p384_u1 = 0;
+ let (x545, x546) = fiat_p384_addcarryx_u32(x544, x485, x521);
+ let mut x547: u32 = 0;
+ let mut x548: fiat_p384_u1 = 0;
+ let (x547, x548) = fiat_p384_addcarryx_u32(x546, x487, x523);
+ let mut x549: u32 = 0;
+ let mut x550: fiat_p384_u1 = 0;
+ let (x549, x550) = fiat_p384_addcarryx_u32(x548, x489, x525);
+ let mut x551: u32 = 0;
+ let mut x552: fiat_p384_u1 = 0;
+ let (x551, x552) = fiat_p384_addcarryx_u32(x550, x491, x527);
+ let mut x553: u32 = 0;
+ let mut x554: fiat_p384_u1 = 0;
+ let (x553, x554) = fiat_p384_addcarryx_u32(x552, x493, x529);
+ let mut x555: u32 = 0;
+ let mut x556: fiat_p384_u1 = 0;
+ let (x555, x556) = fiat_p384_addcarryx_u32(x554, x495, x531);
+ let mut x557: u32 = 0;
+ let mut x558: fiat_p384_u1 = 0;
+ let (x557, x558) = fiat_p384_addcarryx_u32(x556, x497, x533);
+ let mut x559: u32 = 0;
+ let mut x560: fiat_p384_u1 = 0;
+ let (x559, x560) = fiat_p384_addcarryx_u32(x558, x499, x535);
+ let mut x561: u32 = 0;
+ let mut x562: fiat_p384_u1 = 0;
+ let (x561, x562) = fiat_p384_addcarryx_u32(
+ x560,
+ ((x500 as u32) + (x466 as u32)),
+ ((x536 as u32) + x502),
+ );
+ let mut x563: u32 = 0;
+ let mut x564: u32 = 0;
+ let (x563, x564) = fiat_p384_mulx_u32(x6, 0x2);
+ let mut x565: u32 = 0;
+ let mut x566: u32 = 0;
+ let (x565, x566) = fiat_p384_mulx_u32(x6, 0xfffffffe);
+ let mut x567: u32 = 0;
+ let mut x568: u32 = 0;
+ let (x567, x568) = fiat_p384_mulx_u32(x6, 0x2);
+ let mut x569: u32 = 0;
+ let mut x570: u32 = 0;
+ let (x569, x570) = fiat_p384_mulx_u32(x6, 0xfffffffe);
+ let mut x571: u32 = 0;
+ let mut x572: fiat_p384_u1 = 0;
+ let (x571, x572) = fiat_p384_addcarryx_u32(0x0, ((x564 as fiat_p384_u1) as u32), x6);
+ let mut x573: u32 = 0;
+ let mut x574: fiat_p384_u1 = 0;
+ let (x573, x574) = fiat_p384_addcarryx_u32(0x0, x539, x6);
+ let mut x575: u32 = 0;
+ let mut x576: fiat_p384_u1 = 0;
+ let (x575, x576) = fiat_p384_addcarryx_u32(x574, x541, x569);
+ let mut x577: u32 = 0;
+ let mut x578: fiat_p384_u1 = 0;
+ let (x577, x578) = fiat_p384_addcarryx_u32(x576, x543, x570);
+ let mut x579: u32 = 0;
+ let mut x580: fiat_p384_u1 = 0;
+ let (x579, x580) = fiat_p384_addcarryx_u32(x578, x545, x567);
+ let mut x581: u32 = 0;
+ let mut x582: fiat_p384_u1 = 0;
+ let (x581, x582) = fiat_p384_addcarryx_u32(x580, x547, ((x568 as fiat_p384_u1) as u32));
+ let mut x583: u32 = 0;
+ let mut x584: fiat_p384_u1 = 0;
+ let (x583, x584) = fiat_p384_addcarryx_u32(x582, x549, x565);
+ let mut x585: u32 = 0;
+ let mut x586: fiat_p384_u1 = 0;
+ let (x585, x586) = fiat_p384_addcarryx_u32(x584, x551, x566);
+ let mut x587: u32 = 0;
+ let mut x588: fiat_p384_u1 = 0;
+ let (x587, x588) = fiat_p384_addcarryx_u32(x586, x553, x563);
+ let mut x589: u32 = 0;
+ let mut x590: fiat_p384_u1 = 0;
+ let (x589, x590) = fiat_p384_addcarryx_u32(x588, x555, x571);
+ let mut x591: u32 = 0;
+ let mut x592: fiat_p384_u1 = 0;
+ let (x591, x592) = fiat_p384_addcarryx_u32(x590, x557, (x572 as u32));
+ let mut x593: u32 = 0;
+ let mut x594: fiat_p384_u1 = 0;
+ let (x593, x594) = fiat_p384_addcarryx_u32(x592, x559, (0x0 as u32));
+ let mut x595: u32 = 0;
+ let mut x596: fiat_p384_u1 = 0;
+ let (x595, x596) = fiat_p384_addcarryx_u32(x594, x561, (0x0 as u32));
+ let mut x597: u32 = 0;
+ let mut x598: u32 = 0;
+ let (x597, x598) = fiat_p384_mulx_u32(x573, 0xffffffff);
+ let mut x599: u32 = 0;
+ let mut x600: u32 = 0;
+ let (x599, x600) = fiat_p384_mulx_u32(x573, 0xffffffff);
+ let mut x601: u32 = 0;
+ let mut x602: u32 = 0;
+ let (x601, x602) = fiat_p384_mulx_u32(x573, 0xffffffff);
+ let mut x603: u32 = 0;
+ let mut x604: u32 = 0;
+ let (x603, x604) = fiat_p384_mulx_u32(x573, 0xffffffff);
+ let mut x605: u32 = 0;
+ let mut x606: u32 = 0;
+ let (x605, x606) = fiat_p384_mulx_u32(x573, 0xffffffff);
+ let mut x607: u32 = 0;
+ let mut x608: u32 = 0;
+ let (x607, x608) = fiat_p384_mulx_u32(x573, 0xffffffff);
+ let mut x609: u32 = 0;
+ let mut x610: u32 = 0;
+ let (x609, x610) = fiat_p384_mulx_u32(x573, 0xffffffff);
+ let mut x611: u32 = 0;
+ let mut x612: u32 = 0;
+ let (x611, x612) = fiat_p384_mulx_u32(x573, 0xfffffffe);
+ let mut x613: u32 = 0;
+ let mut x614: u32 = 0;
+ let (x613, x614) = fiat_p384_mulx_u32(x573, 0xffffffff);
+ let mut x615: u32 = 0;
+ let mut x616: u32 = 0;
+ let (x615, x616) = fiat_p384_mulx_u32(x573, 0xffffffff);
+ let mut x617: u32 = 0;
+ let mut x618: fiat_p384_u1 = 0;
+ let (x617, x618) = fiat_p384_addcarryx_u32(0x0, x614, x611);
+ let mut x619: u32 = 0;
+ let mut x620: fiat_p384_u1 = 0;
+ let (x619, x620) = fiat_p384_addcarryx_u32(x618, x612, x609);
+ let mut x621: u32 = 0;
+ let mut x622: fiat_p384_u1 = 0;
+ let (x621, x622) = fiat_p384_addcarryx_u32(x620, x610, x607);
+ let mut x623: u32 = 0;
+ let mut x624: fiat_p384_u1 = 0;
+ let (x623, x624) = fiat_p384_addcarryx_u32(x622, x608, x605);
+ let mut x625: u32 = 0;
+ let mut x626: fiat_p384_u1 = 0;
+ let (x625, x626) = fiat_p384_addcarryx_u32(x624, x606, x603);
+ let mut x627: u32 = 0;
+ let mut x628: fiat_p384_u1 = 0;
+ let (x627, x628) = fiat_p384_addcarryx_u32(x626, x604, x601);
+ let mut x629: u32 = 0;
+ let mut x630: fiat_p384_u1 = 0;
+ let (x629, x630) = fiat_p384_addcarryx_u32(x628, x602, x599);
+ let mut x631: u32 = 0;
+ let mut x632: fiat_p384_u1 = 0;
+ let (x631, x632) = fiat_p384_addcarryx_u32(x630, x600, x597);
+ let mut x633: u32 = 0;
+ let mut x634: fiat_p384_u1 = 0;
+ let (x633, x634) = fiat_p384_addcarryx_u32(0x0, x573, x615);
+ let mut x635: u32 = 0;
+ let mut x636: fiat_p384_u1 = 0;
+ let (x635, x636) = fiat_p384_addcarryx_u32(x634, x575, x616);
+ let mut x637: u32 = 0;
+ let mut x638: fiat_p384_u1 = 0;
+ let (x637, x638) = fiat_p384_addcarryx_u32(x636, x577, (0x0 as u32));
+ let mut x639: u32 = 0;
+ let mut x640: fiat_p384_u1 = 0;
+ let (x639, x640) = fiat_p384_addcarryx_u32(x638, x579, x613);
+ let mut x641: u32 = 0;
+ let mut x642: fiat_p384_u1 = 0;
+ let (x641, x642) = fiat_p384_addcarryx_u32(x640, x581, x617);
+ let mut x643: u32 = 0;
+ let mut x644: fiat_p384_u1 = 0;
+ let (x643, x644) = fiat_p384_addcarryx_u32(x642, x583, x619);
+ let mut x645: u32 = 0;
+ let mut x646: fiat_p384_u1 = 0;
+ let (x645, x646) = fiat_p384_addcarryx_u32(x644, x585, x621);
+ let mut x647: u32 = 0;
+ let mut x648: fiat_p384_u1 = 0;
+ let (x647, x648) = fiat_p384_addcarryx_u32(x646, x587, x623);
+ let mut x649: u32 = 0;
+ let mut x650: fiat_p384_u1 = 0;
+ let (x649, x650) = fiat_p384_addcarryx_u32(x648, x589, x625);
+ let mut x651: u32 = 0;
+ let mut x652: fiat_p384_u1 = 0;
+ let (x651, x652) = fiat_p384_addcarryx_u32(x650, x591, x627);
+ let mut x653: u32 = 0;
+ let mut x654: fiat_p384_u1 = 0;
+ let (x653, x654) = fiat_p384_addcarryx_u32(x652, x593, x629);
+ let mut x655: u32 = 0;
+ let mut x656: fiat_p384_u1 = 0;
+ let (x655, x656) = fiat_p384_addcarryx_u32(x654, x595, x631);
+ let mut x657: u32 = 0;
+ let mut x658: fiat_p384_u1 = 0;
+ let (x657, x658) = fiat_p384_addcarryx_u32(
+ x656,
+ ((x596 as u32) + (x562 as u32)),
+ ((x632 as u32) + x598),
+ );
+ let mut x659: u32 = 0;
+ let mut x660: u32 = 0;
+ let (x659, x660) = fiat_p384_mulx_u32(x7, 0x2);
+ let mut x661: u32 = 0;
+ let mut x662: u32 = 0;
+ let (x661, x662) = fiat_p384_mulx_u32(x7, 0xfffffffe);
+ let mut x663: u32 = 0;
+ let mut x664: u32 = 0;
+ let (x663, x664) = fiat_p384_mulx_u32(x7, 0x2);
+ let mut x665: u32 = 0;
+ let mut x666: u32 = 0;
+ let (x665, x666) = fiat_p384_mulx_u32(x7, 0xfffffffe);
+ let mut x667: u32 = 0;
+ let mut x668: fiat_p384_u1 = 0;
+ let (x667, x668) = fiat_p384_addcarryx_u32(0x0, ((x660 as fiat_p384_u1) as u32), x7);
+ let mut x669: u32 = 0;
+ let mut x670: fiat_p384_u1 = 0;
+ let (x669, x670) = fiat_p384_addcarryx_u32(0x0, x635, x7);
+ let mut x671: u32 = 0;
+ let mut x672: fiat_p384_u1 = 0;
+ let (x671, x672) = fiat_p384_addcarryx_u32(x670, x637, x665);
+ let mut x673: u32 = 0;
+ let mut x674: fiat_p384_u1 = 0;
+ let (x673, x674) = fiat_p384_addcarryx_u32(x672, x639, x666);
+ let mut x675: u32 = 0;
+ let mut x676: fiat_p384_u1 = 0;
+ let (x675, x676) = fiat_p384_addcarryx_u32(x674, x641, x663);
+ let mut x677: u32 = 0;
+ let mut x678: fiat_p384_u1 = 0;
+ let (x677, x678) = fiat_p384_addcarryx_u32(x676, x643, ((x664 as fiat_p384_u1) as u32));
+ let mut x679: u32 = 0;
+ let mut x680: fiat_p384_u1 = 0;
+ let (x679, x680) = fiat_p384_addcarryx_u32(x678, x645, x661);
+ let mut x681: u32 = 0;
+ let mut x682: fiat_p384_u1 = 0;
+ let (x681, x682) = fiat_p384_addcarryx_u32(x680, x647, x662);
+ let mut x683: u32 = 0;
+ let mut x684: fiat_p384_u1 = 0;
+ let (x683, x684) = fiat_p384_addcarryx_u32(x682, x649, x659);
+ let mut x685: u32 = 0;
+ let mut x686: fiat_p384_u1 = 0;
+ let (x685, x686) = fiat_p384_addcarryx_u32(x684, x651, x667);
+ let mut x687: u32 = 0;
+ let mut x688: fiat_p384_u1 = 0;
+ let (x687, x688) = fiat_p384_addcarryx_u32(x686, x653, (x668 as u32));
+ let mut x689: u32 = 0;
+ let mut x690: fiat_p384_u1 = 0;
+ let (x689, x690) = fiat_p384_addcarryx_u32(x688, x655, (0x0 as u32));
+ let mut x691: u32 = 0;
+ let mut x692: fiat_p384_u1 = 0;
+ let (x691, x692) = fiat_p384_addcarryx_u32(x690, x657, (0x0 as u32));
+ let mut x693: u32 = 0;
+ let mut x694: u32 = 0;
+ let (x693, x694) = fiat_p384_mulx_u32(x669, 0xffffffff);
+ let mut x695: u32 = 0;
+ let mut x696: u32 = 0;
+ let (x695, x696) = fiat_p384_mulx_u32(x669, 0xffffffff);
+ let mut x697: u32 = 0;
+ let mut x698: u32 = 0;
+ let (x697, x698) = fiat_p384_mulx_u32(x669, 0xffffffff);
+ let mut x699: u32 = 0;
+ let mut x700: u32 = 0;
+ let (x699, x700) = fiat_p384_mulx_u32(x669, 0xffffffff);
+ let mut x701: u32 = 0;
+ let mut x702: u32 = 0;
+ let (x701, x702) = fiat_p384_mulx_u32(x669, 0xffffffff);
+ let mut x703: u32 = 0;
+ let mut x704: u32 = 0;
+ let (x703, x704) = fiat_p384_mulx_u32(x669, 0xffffffff);
+ let mut x705: u32 = 0;
+ let mut x706: u32 = 0;
+ let (x705, x706) = fiat_p384_mulx_u32(x669, 0xffffffff);
+ let mut x707: u32 = 0;
+ let mut x708: u32 = 0;
+ let (x707, x708) = fiat_p384_mulx_u32(x669, 0xfffffffe);
+ let mut x709: u32 = 0;
+ let mut x710: u32 = 0;
+ let (x709, x710) = fiat_p384_mulx_u32(x669, 0xffffffff);
+ let mut x711: u32 = 0;
+ let mut x712: u32 = 0;
+ let (x711, x712) = fiat_p384_mulx_u32(x669, 0xffffffff);
+ let mut x713: u32 = 0;
+ let mut x714: fiat_p384_u1 = 0;
+ let (x713, x714) = fiat_p384_addcarryx_u32(0x0, x710, x707);
+ let mut x715: u32 = 0;
+ let mut x716: fiat_p384_u1 = 0;
+ let (x715, x716) = fiat_p384_addcarryx_u32(x714, x708, x705);
+ let mut x717: u32 = 0;
+ let mut x718: fiat_p384_u1 = 0;
+ let (x717, x718) = fiat_p384_addcarryx_u32(x716, x706, x703);
+ let mut x719: u32 = 0;
+ let mut x720: fiat_p384_u1 = 0;
+ let (x719, x720) = fiat_p384_addcarryx_u32(x718, x704, x701);
+ let mut x721: u32 = 0;
+ let mut x722: fiat_p384_u1 = 0;
+ let (x721, x722) = fiat_p384_addcarryx_u32(x720, x702, x699);
+ let mut x723: u32 = 0;
+ let mut x724: fiat_p384_u1 = 0;
+ let (x723, x724) = fiat_p384_addcarryx_u32(x722, x700, x697);
+ let mut x725: u32 = 0;
+ let mut x726: fiat_p384_u1 = 0;
+ let (x725, x726) = fiat_p384_addcarryx_u32(x724, x698, x695);
+ let mut x727: u32 = 0;
+ let mut x728: fiat_p384_u1 = 0;
+ let (x727, x728) = fiat_p384_addcarryx_u32(x726, x696, x693);
+ let mut x729: u32 = 0;
+ let mut x730: fiat_p384_u1 = 0;
+ let (x729, x730) = fiat_p384_addcarryx_u32(0x0, x669, x711);
+ let mut x731: u32 = 0;
+ let mut x732: fiat_p384_u1 = 0;
+ let (x731, x732) = fiat_p384_addcarryx_u32(x730, x671, x712);
+ let mut x733: u32 = 0;
+ let mut x734: fiat_p384_u1 = 0;
+ let (x733, x734) = fiat_p384_addcarryx_u32(x732, x673, (0x0 as u32));
+ let mut x735: u32 = 0;
+ let mut x736: fiat_p384_u1 = 0;
+ let (x735, x736) = fiat_p384_addcarryx_u32(x734, x675, x709);
+ let mut x737: u32 = 0;
+ let mut x738: fiat_p384_u1 = 0;
+ let (x737, x738) = fiat_p384_addcarryx_u32(x736, x677, x713);
+ let mut x739: u32 = 0;
+ let mut x740: fiat_p384_u1 = 0;
+ let (x739, x740) = fiat_p384_addcarryx_u32(x738, x679, x715);
+ let mut x741: u32 = 0;
+ let mut x742: fiat_p384_u1 = 0;
+ let (x741, x742) = fiat_p384_addcarryx_u32(x740, x681, x717);
+ let mut x743: u32 = 0;
+ let mut x744: fiat_p384_u1 = 0;
+ let (x743, x744) = fiat_p384_addcarryx_u32(x742, x683, x719);
+ let mut x745: u32 = 0;
+ let mut x746: fiat_p384_u1 = 0;
+ let (x745, x746) = fiat_p384_addcarryx_u32(x744, x685, x721);
+ let mut x747: u32 = 0;
+ let mut x748: fiat_p384_u1 = 0;
+ let (x747, x748) = fiat_p384_addcarryx_u32(x746, x687, x723);
+ let mut x749: u32 = 0;
+ let mut x750: fiat_p384_u1 = 0;
+ let (x749, x750) = fiat_p384_addcarryx_u32(x748, x689, x725);
+ let mut x751: u32 = 0;
+ let mut x752: fiat_p384_u1 = 0;
+ let (x751, x752) = fiat_p384_addcarryx_u32(x750, x691, x727);
+ let mut x753: u32 = 0;
+ let mut x754: fiat_p384_u1 = 0;
+ let (x753, x754) = fiat_p384_addcarryx_u32(
+ x752,
+ ((x692 as u32) + (x658 as u32)),
+ ((x728 as u32) + x694),
+ );
+ let mut x755: u32 = 0;
+ let mut x756: u32 = 0;
+ let (x755, x756) = fiat_p384_mulx_u32(x8, 0x2);
+ let mut x757: u32 = 0;
+ let mut x758: u32 = 0;
+ let (x757, x758) = fiat_p384_mulx_u32(x8, 0xfffffffe);
+ let mut x759: u32 = 0;
+ let mut x760: u32 = 0;
+ let (x759, x760) = fiat_p384_mulx_u32(x8, 0x2);
+ let mut x761: u32 = 0;
+ let mut x762: u32 = 0;
+ let (x761, x762) = fiat_p384_mulx_u32(x8, 0xfffffffe);
+ let mut x763: u32 = 0;
+ let mut x764: fiat_p384_u1 = 0;
+ let (x763, x764) = fiat_p384_addcarryx_u32(0x0, ((x756 as fiat_p384_u1) as u32), x8);
+ let mut x765: u32 = 0;
+ let mut x766: fiat_p384_u1 = 0;
+ let (x765, x766) = fiat_p384_addcarryx_u32(0x0, x731, x8);
+ let mut x767: u32 = 0;
+ let mut x768: fiat_p384_u1 = 0;
+ let (x767, x768) = fiat_p384_addcarryx_u32(x766, x733, x761);
+ let mut x769: u32 = 0;
+ let mut x770: fiat_p384_u1 = 0;
+ let (x769, x770) = fiat_p384_addcarryx_u32(x768, x735, x762);
+ let mut x771: u32 = 0;
+ let mut x772: fiat_p384_u1 = 0;
+ let (x771, x772) = fiat_p384_addcarryx_u32(x770, x737, x759);
+ let mut x773: u32 = 0;
+ let mut x774: fiat_p384_u1 = 0;
+ let (x773, x774) = fiat_p384_addcarryx_u32(x772, x739, ((x760 as fiat_p384_u1) as u32));
+ let mut x775: u32 = 0;
+ let mut x776: fiat_p384_u1 = 0;
+ let (x775, x776) = fiat_p384_addcarryx_u32(x774, x741, x757);
+ let mut x777: u32 = 0;
+ let mut x778: fiat_p384_u1 = 0;
+ let (x777, x778) = fiat_p384_addcarryx_u32(x776, x743, x758);
+ let mut x779: u32 = 0;
+ let mut x780: fiat_p384_u1 = 0;
+ let (x779, x780) = fiat_p384_addcarryx_u32(x778, x745, x755);
+ let mut x781: u32 = 0;
+ let mut x782: fiat_p384_u1 = 0;
+ let (x781, x782) = fiat_p384_addcarryx_u32(x780, x747, x763);
+ let mut x783: u32 = 0;
+ let mut x784: fiat_p384_u1 = 0;
+ let (x783, x784) = fiat_p384_addcarryx_u32(x782, x749, (x764 as u32));
+ let mut x785: u32 = 0;
+ let mut x786: fiat_p384_u1 = 0;
+ let (x785, x786) = fiat_p384_addcarryx_u32(x784, x751, (0x0 as u32));
+ let mut x787: u32 = 0;
+ let mut x788: fiat_p384_u1 = 0;
+ let (x787, x788) = fiat_p384_addcarryx_u32(x786, x753, (0x0 as u32));
+ let mut x789: u32 = 0;
+ let mut x790: u32 = 0;
+ let (x789, x790) = fiat_p384_mulx_u32(x765, 0xffffffff);
+ let mut x791: u32 = 0;
+ let mut x792: u32 = 0;
+ let (x791, x792) = fiat_p384_mulx_u32(x765, 0xffffffff);
+ let mut x793: u32 = 0;
+ let mut x794: u32 = 0;
+ let (x793, x794) = fiat_p384_mulx_u32(x765, 0xffffffff);
+ let mut x795: u32 = 0;
+ let mut x796: u32 = 0;
+ let (x795, x796) = fiat_p384_mulx_u32(x765, 0xffffffff);
+ let mut x797: u32 = 0;
+ let mut x798: u32 = 0;
+ let (x797, x798) = fiat_p384_mulx_u32(x765, 0xffffffff);
+ let mut x799: u32 = 0;
+ let mut x800: u32 = 0;
+ let (x799, x800) = fiat_p384_mulx_u32(x765, 0xffffffff);
+ let mut x801: u32 = 0;
+ let mut x802: u32 = 0;
+ let (x801, x802) = fiat_p384_mulx_u32(x765, 0xffffffff);
+ let mut x803: u32 = 0;
+ let mut x804: u32 = 0;
+ let (x803, x804) = fiat_p384_mulx_u32(x765, 0xfffffffe);
+ let mut x805: u32 = 0;
+ let mut x806: u32 = 0;
+ let (x805, x806) = fiat_p384_mulx_u32(x765, 0xffffffff);
+ let mut x807: u32 = 0;
+ let mut x808: u32 = 0;
+ let (x807, x808) = fiat_p384_mulx_u32(x765, 0xffffffff);
+ let mut x809: u32 = 0;
+ let mut x810: fiat_p384_u1 = 0;
+ let (x809, x810) = fiat_p384_addcarryx_u32(0x0, x806, x803);
+ let mut x811: u32 = 0;
+ let mut x812: fiat_p384_u1 = 0;
+ let (x811, x812) = fiat_p384_addcarryx_u32(x810, x804, x801);
+ let mut x813: u32 = 0;
+ let mut x814: fiat_p384_u1 = 0;
+ let (x813, x814) = fiat_p384_addcarryx_u32(x812, x802, x799);
+ let mut x815: u32 = 0;
+ let mut x816: fiat_p384_u1 = 0;
+ let (x815, x816) = fiat_p384_addcarryx_u32(x814, x800, x797);
+ let mut x817: u32 = 0;
+ let mut x818: fiat_p384_u1 = 0;
+ let (x817, x818) = fiat_p384_addcarryx_u32(x816, x798, x795);
+ let mut x819: u32 = 0;
+ let mut x820: fiat_p384_u1 = 0;
+ let (x819, x820) = fiat_p384_addcarryx_u32(x818, x796, x793);
+ let mut x821: u32 = 0;
+ let mut x822: fiat_p384_u1 = 0;
+ let (x821, x822) = fiat_p384_addcarryx_u32(x820, x794, x791);
+ let mut x823: u32 = 0;
+ let mut x824: fiat_p384_u1 = 0;
+ let (x823, x824) = fiat_p384_addcarryx_u32(x822, x792, x789);
+ let mut x825: u32 = 0;
+ let mut x826: fiat_p384_u1 = 0;
+ let (x825, x826) = fiat_p384_addcarryx_u32(0x0, x765, x807);
+ let mut x827: u32 = 0;
+ let mut x828: fiat_p384_u1 = 0;
+ let (x827, x828) = fiat_p384_addcarryx_u32(x826, x767, x808);
+ let mut x829: u32 = 0;
+ let mut x830: fiat_p384_u1 = 0;
+ let (x829, x830) = fiat_p384_addcarryx_u32(x828, x769, (0x0 as u32));
+ let mut x831: u32 = 0;
+ let mut x832: fiat_p384_u1 = 0;
+ let (x831, x832) = fiat_p384_addcarryx_u32(x830, x771, x805);
+ let mut x833: u32 = 0;
+ let mut x834: fiat_p384_u1 = 0;
+ let (x833, x834) = fiat_p384_addcarryx_u32(x832, x773, x809);
+ let mut x835: u32 = 0;
+ let mut x836: fiat_p384_u1 = 0;
+ let (x835, x836) = fiat_p384_addcarryx_u32(x834, x775, x811);
+ let mut x837: u32 = 0;
+ let mut x838: fiat_p384_u1 = 0;
+ let (x837, x838) = fiat_p384_addcarryx_u32(x836, x777, x813);
+ let mut x839: u32 = 0;
+ let mut x840: fiat_p384_u1 = 0;
+ let (x839, x840) = fiat_p384_addcarryx_u32(x838, x779, x815);
+ let mut x841: u32 = 0;
+ let mut x842: fiat_p384_u1 = 0;
+ let (x841, x842) = fiat_p384_addcarryx_u32(x840, x781, x817);
+ let mut x843: u32 = 0;
+ let mut x844: fiat_p384_u1 = 0;
+ let (x843, x844) = fiat_p384_addcarryx_u32(x842, x783, x819);
+ let mut x845: u32 = 0;
+ let mut x846: fiat_p384_u1 = 0;
+ let (x845, x846) = fiat_p384_addcarryx_u32(x844, x785, x821);
+ let mut x847: u32 = 0;
+ let mut x848: fiat_p384_u1 = 0;
+ let (x847, x848) = fiat_p384_addcarryx_u32(x846, x787, x823);
+ let mut x849: u32 = 0;
+ let mut x850: fiat_p384_u1 = 0;
+ let (x849, x850) = fiat_p384_addcarryx_u32(
+ x848,
+ ((x788 as u32) + (x754 as u32)),
+ ((x824 as u32) + x790),
+ );
+ let mut x851: u32 = 0;
+ let mut x852: u32 = 0;
+ let (x851, x852) = fiat_p384_mulx_u32(x9, 0x2);
+ let mut x853: u32 = 0;
+ let mut x854: u32 = 0;
+ let (x853, x854) = fiat_p384_mulx_u32(x9, 0xfffffffe);
+ let mut x855: u32 = 0;
+ let mut x856: u32 = 0;
+ let (x855, x856) = fiat_p384_mulx_u32(x9, 0x2);
+ let mut x857: u32 = 0;
+ let mut x858: u32 = 0;
+ let (x857, x858) = fiat_p384_mulx_u32(x9, 0xfffffffe);
+ let mut x859: u32 = 0;
+ let mut x860: fiat_p384_u1 = 0;
+ let (x859, x860) = fiat_p384_addcarryx_u32(0x0, ((x852 as fiat_p384_u1) as u32), x9);
+ let mut x861: u32 = 0;
+ let mut x862: fiat_p384_u1 = 0;
+ let (x861, x862) = fiat_p384_addcarryx_u32(0x0, x827, x9);
+ let mut x863: u32 = 0;
+ let mut x864: fiat_p384_u1 = 0;
+ let (x863, x864) = fiat_p384_addcarryx_u32(x862, x829, x857);
+ let mut x865: u32 = 0;
+ let mut x866: fiat_p384_u1 = 0;
+ let (x865, x866) = fiat_p384_addcarryx_u32(x864, x831, x858);
+ let mut x867: u32 = 0;
+ let mut x868: fiat_p384_u1 = 0;
+ let (x867, x868) = fiat_p384_addcarryx_u32(x866, x833, x855);
+ let mut x869: u32 = 0;
+ let mut x870: fiat_p384_u1 = 0;
+ let (x869, x870) = fiat_p384_addcarryx_u32(x868, x835, ((x856 as fiat_p384_u1) as u32));
+ let mut x871: u32 = 0;
+ let mut x872: fiat_p384_u1 = 0;
+ let (x871, x872) = fiat_p384_addcarryx_u32(x870, x837, x853);
+ let mut x873: u32 = 0;
+ let mut x874: fiat_p384_u1 = 0;
+ let (x873, x874) = fiat_p384_addcarryx_u32(x872, x839, x854);
+ let mut x875: u32 = 0;
+ let mut x876: fiat_p384_u1 = 0;
+ let (x875, x876) = fiat_p384_addcarryx_u32(x874, x841, x851);
+ let mut x877: u32 = 0;
+ let mut x878: fiat_p384_u1 = 0;
+ let (x877, x878) = fiat_p384_addcarryx_u32(x876, x843, x859);
+ let mut x879: u32 = 0;
+ let mut x880: fiat_p384_u1 = 0;
+ let (x879, x880) = fiat_p384_addcarryx_u32(x878, x845, (x860 as u32));
+ let mut x881: u32 = 0;
+ let mut x882: fiat_p384_u1 = 0;
+ let (x881, x882) = fiat_p384_addcarryx_u32(x880, x847, (0x0 as u32));
+ let mut x883: u32 = 0;
+ let mut x884: fiat_p384_u1 = 0;
+ let (x883, x884) = fiat_p384_addcarryx_u32(x882, x849, (0x0 as u32));
+ let mut x885: u32 = 0;
+ let mut x886: u32 = 0;
+ let (x885, x886) = fiat_p384_mulx_u32(x861, 0xffffffff);
+ let mut x887: u32 = 0;
+ let mut x888: u32 = 0;
+ let (x887, x888) = fiat_p384_mulx_u32(x861, 0xffffffff);
+ let mut x889: u32 = 0;
+ let mut x890: u32 = 0;
+ let (x889, x890) = fiat_p384_mulx_u32(x861, 0xffffffff);
+ let mut x891: u32 = 0;
+ let mut x892: u32 = 0;
+ let (x891, x892) = fiat_p384_mulx_u32(x861, 0xffffffff);
+ let mut x893: u32 = 0;
+ let mut x894: u32 = 0;
+ let (x893, x894) = fiat_p384_mulx_u32(x861, 0xffffffff);
+ let mut x895: u32 = 0;
+ let mut x896: u32 = 0;
+ let (x895, x896) = fiat_p384_mulx_u32(x861, 0xffffffff);
+ let mut x897: u32 = 0;
+ let mut x898: u32 = 0;
+ let (x897, x898) = fiat_p384_mulx_u32(x861, 0xffffffff);
+ let mut x899: u32 = 0;
+ let mut x900: u32 = 0;
+ let (x899, x900) = fiat_p384_mulx_u32(x861, 0xfffffffe);
+ let mut x901: u32 = 0;
+ let mut x902: u32 = 0;
+ let (x901, x902) = fiat_p384_mulx_u32(x861, 0xffffffff);
+ let mut x903: u32 = 0;
+ let mut x904: u32 = 0;
+ let (x903, x904) = fiat_p384_mulx_u32(x861, 0xffffffff);
+ let mut x905: u32 = 0;
+ let mut x906: fiat_p384_u1 = 0;
+ let (x905, x906) = fiat_p384_addcarryx_u32(0x0, x902, x899);
+ let mut x907: u32 = 0;
+ let mut x908: fiat_p384_u1 = 0;
+ let (x907, x908) = fiat_p384_addcarryx_u32(x906, x900, x897);
+ let mut x909: u32 = 0;
+ let mut x910: fiat_p384_u1 = 0;
+ let (x909, x910) = fiat_p384_addcarryx_u32(x908, x898, x895);
+ let mut x911: u32 = 0;
+ let mut x912: fiat_p384_u1 = 0;
+ let (x911, x912) = fiat_p384_addcarryx_u32(x910, x896, x893);
+ let mut x913: u32 = 0;
+ let mut x914: fiat_p384_u1 = 0;
+ let (x913, x914) = fiat_p384_addcarryx_u32(x912, x894, x891);
+ let mut x915: u32 = 0;
+ let mut x916: fiat_p384_u1 = 0;
+ let (x915, x916) = fiat_p384_addcarryx_u32(x914, x892, x889);
+ let mut x917: u32 = 0;
+ let mut x918: fiat_p384_u1 = 0;
+ let (x917, x918) = fiat_p384_addcarryx_u32(x916, x890, x887);
+ let mut x919: u32 = 0;
+ let mut x920: fiat_p384_u1 = 0;
+ let (x919, x920) = fiat_p384_addcarryx_u32(x918, x888, x885);
+ let mut x921: u32 = 0;
+ let mut x922: fiat_p384_u1 = 0;
+ let (x921, x922) = fiat_p384_addcarryx_u32(0x0, x861, x903);
+ let mut x923: u32 = 0;
+ let mut x924: fiat_p384_u1 = 0;
+ let (x923, x924) = fiat_p384_addcarryx_u32(x922, x863, x904);
+ let mut x925: u32 = 0;
+ let mut x926: fiat_p384_u1 = 0;
+ let (x925, x926) = fiat_p384_addcarryx_u32(x924, x865, (0x0 as u32));
+ let mut x927: u32 = 0;
+ let mut x928: fiat_p384_u1 = 0;
+ let (x927, x928) = fiat_p384_addcarryx_u32(x926, x867, x901);
+ let mut x929: u32 = 0;
+ let mut x930: fiat_p384_u1 = 0;
+ let (x929, x930) = fiat_p384_addcarryx_u32(x928, x869, x905);
+ let mut x931: u32 = 0;
+ let mut x932: fiat_p384_u1 = 0;
+ let (x931, x932) = fiat_p384_addcarryx_u32(x930, x871, x907);
+ let mut x933: u32 = 0;
+ let mut x934: fiat_p384_u1 = 0;
+ let (x933, x934) = fiat_p384_addcarryx_u32(x932, x873, x909);
+ let mut x935: u32 = 0;
+ let mut x936: fiat_p384_u1 = 0;
+ let (x935, x936) = fiat_p384_addcarryx_u32(x934, x875, x911);
+ let mut x937: u32 = 0;
+ let mut x938: fiat_p384_u1 = 0;
+ let (x937, x938) = fiat_p384_addcarryx_u32(x936, x877, x913);
+ let mut x939: u32 = 0;
+ let mut x940: fiat_p384_u1 = 0;
+ let (x939, x940) = fiat_p384_addcarryx_u32(x938, x879, x915);
+ let mut x941: u32 = 0;
+ let mut x942: fiat_p384_u1 = 0;
+ let (x941, x942) = fiat_p384_addcarryx_u32(x940, x881, x917);
+ let mut x943: u32 = 0;
+ let mut x944: fiat_p384_u1 = 0;
+ let (x943, x944) = fiat_p384_addcarryx_u32(x942, x883, x919);
+ let mut x945: u32 = 0;
+ let mut x946: fiat_p384_u1 = 0;
+ let (x945, x946) = fiat_p384_addcarryx_u32(
+ x944,
+ ((x884 as u32) + (x850 as u32)),
+ ((x920 as u32) + x886),
+ );
+ let mut x947: u32 = 0;
+ let mut x948: u32 = 0;
+ let (x947, x948) = fiat_p384_mulx_u32(x10, 0x2);
+ let mut x949: u32 = 0;
+ let mut x950: u32 = 0;
+ let (x949, x950) = fiat_p384_mulx_u32(x10, 0xfffffffe);
+ let mut x951: u32 = 0;
+ let mut x952: u32 = 0;
+ let (x951, x952) = fiat_p384_mulx_u32(x10, 0x2);
+ let mut x953: u32 = 0;
+ let mut x954: u32 = 0;
+ let (x953, x954) = fiat_p384_mulx_u32(x10, 0xfffffffe);
+ let mut x955: u32 = 0;
+ let mut x956: fiat_p384_u1 = 0;
+ let (x955, x956) = fiat_p384_addcarryx_u32(0x0, ((x948 as fiat_p384_u1) as u32), x10);
+ let mut x957: u32 = 0;
+ let mut x958: fiat_p384_u1 = 0;
+ let (x957, x958) = fiat_p384_addcarryx_u32(0x0, x923, x10);
+ let mut x959: u32 = 0;
+ let mut x960: fiat_p384_u1 = 0;
+ let (x959, x960) = fiat_p384_addcarryx_u32(x958, x925, x953);
+ let mut x961: u32 = 0;
+ let mut x962: fiat_p384_u1 = 0;
+ let (x961, x962) = fiat_p384_addcarryx_u32(x960, x927, x954);
+ let mut x963: u32 = 0;
+ let mut x964: fiat_p384_u1 = 0;
+ let (x963, x964) = fiat_p384_addcarryx_u32(x962, x929, x951);
+ let mut x965: u32 = 0;
+ let mut x966: fiat_p384_u1 = 0;
+ let (x965, x966) = fiat_p384_addcarryx_u32(x964, x931, ((x952 as fiat_p384_u1) as u32));
+ let mut x967: u32 = 0;
+ let mut x968: fiat_p384_u1 = 0;
+ let (x967, x968) = fiat_p384_addcarryx_u32(x966, x933, x949);
+ let mut x969: u32 = 0;
+ let mut x970: fiat_p384_u1 = 0;
+ let (x969, x970) = fiat_p384_addcarryx_u32(x968, x935, x950);
+ let mut x971: u32 = 0;
+ let mut x972: fiat_p384_u1 = 0;
+ let (x971, x972) = fiat_p384_addcarryx_u32(x970, x937, x947);
+ let mut x973: u32 = 0;
+ let mut x974: fiat_p384_u1 = 0;
+ let (x973, x974) = fiat_p384_addcarryx_u32(x972, x939, x955);
+ let mut x975: u32 = 0;
+ let mut x976: fiat_p384_u1 = 0;
+ let (x975, x976) = fiat_p384_addcarryx_u32(x974, x941, (x956 as u32));
+ let mut x977: u32 = 0;
+ let mut x978: fiat_p384_u1 = 0;
+ let (x977, x978) = fiat_p384_addcarryx_u32(x976, x943, (0x0 as u32));
+ let mut x979: u32 = 0;
+ let mut x980: fiat_p384_u1 = 0;
+ let (x979, x980) = fiat_p384_addcarryx_u32(x978, x945, (0x0 as u32));
+ let mut x981: u32 = 0;
+ let mut x982: u32 = 0;
+ let (x981, x982) = fiat_p384_mulx_u32(x957, 0xffffffff);
+ let mut x983: u32 = 0;
+ let mut x984: u32 = 0;
+ let (x983, x984) = fiat_p384_mulx_u32(x957, 0xffffffff);
+ let mut x985: u32 = 0;
+ let mut x986: u32 = 0;
+ let (x985, x986) = fiat_p384_mulx_u32(x957, 0xffffffff);
+ let mut x987: u32 = 0;
+ let mut x988: u32 = 0;
+ let (x987, x988) = fiat_p384_mulx_u32(x957, 0xffffffff);
+ let mut x989: u32 = 0;
+ let mut x990: u32 = 0;
+ let (x989, x990) = fiat_p384_mulx_u32(x957, 0xffffffff);
+ let mut x991: u32 = 0;
+ let mut x992: u32 = 0;
+ let (x991, x992) = fiat_p384_mulx_u32(x957, 0xffffffff);
+ let mut x993: u32 = 0;
+ let mut x994: u32 = 0;
+ let (x993, x994) = fiat_p384_mulx_u32(x957, 0xffffffff);
+ let mut x995: u32 = 0;
+ let mut x996: u32 = 0;
+ let (x995, x996) = fiat_p384_mulx_u32(x957, 0xfffffffe);
+ let mut x997: u32 = 0;
+ let mut x998: u32 = 0;
+ let (x997, x998) = fiat_p384_mulx_u32(x957, 0xffffffff);
+ let mut x999: u32 = 0;
+ let mut x1000: u32 = 0;
+ let (x999, x1000) = fiat_p384_mulx_u32(x957, 0xffffffff);
+ let mut x1001: u32 = 0;
+ let mut x1002: fiat_p384_u1 = 0;
+ let (x1001, x1002) = fiat_p384_addcarryx_u32(0x0, x998, x995);
+ let mut x1003: u32 = 0;
+ let mut x1004: fiat_p384_u1 = 0;
+ let (x1003, x1004) = fiat_p384_addcarryx_u32(x1002, x996, x993);
+ let mut x1005: u32 = 0;
+ let mut x1006: fiat_p384_u1 = 0;
+ let (x1005, x1006) = fiat_p384_addcarryx_u32(x1004, x994, x991);
+ let mut x1007: u32 = 0;
+ let mut x1008: fiat_p384_u1 = 0;
+ let (x1007, x1008) = fiat_p384_addcarryx_u32(x1006, x992, x989);
+ let mut x1009: u32 = 0;
+ let mut x1010: fiat_p384_u1 = 0;
+ let (x1009, x1010) = fiat_p384_addcarryx_u32(x1008, x990, x987);
+ let mut x1011: u32 = 0;
+ let mut x1012: fiat_p384_u1 = 0;
+ let (x1011, x1012) = fiat_p384_addcarryx_u32(x1010, x988, x985);
+ let mut x1013: u32 = 0;
+ let mut x1014: fiat_p384_u1 = 0;
+ let (x1013, x1014) = fiat_p384_addcarryx_u32(x1012, x986, x983);
+ let mut x1015: u32 = 0;
+ let mut x1016: fiat_p384_u1 = 0;
+ let (x1015, x1016) = fiat_p384_addcarryx_u32(x1014, x984, x981);
+ let mut x1017: u32 = 0;
+ let mut x1018: fiat_p384_u1 = 0;
+ let (x1017, x1018) = fiat_p384_addcarryx_u32(0x0, x957, x999);
+ let mut x1019: u32 = 0;
+ let mut x1020: fiat_p384_u1 = 0;
+ let (x1019, x1020) = fiat_p384_addcarryx_u32(x1018, x959, x1000);
+ let mut x1021: u32 = 0;
+ let mut x1022: fiat_p384_u1 = 0;
+ let (x1021, x1022) = fiat_p384_addcarryx_u32(x1020, x961, (0x0 as u32));
+ let mut x1023: u32 = 0;
+ let mut x1024: fiat_p384_u1 = 0;
+ let (x1023, x1024) = fiat_p384_addcarryx_u32(x1022, x963, x997);
+ let mut x1025: u32 = 0;
+ let mut x1026: fiat_p384_u1 = 0;
+ let (x1025, x1026) = fiat_p384_addcarryx_u32(x1024, x965, x1001);
+ let mut x1027: u32 = 0;
+ let mut x1028: fiat_p384_u1 = 0;
+ let (x1027, x1028) = fiat_p384_addcarryx_u32(x1026, x967, x1003);
+ let mut x1029: u32 = 0;
+ let mut x1030: fiat_p384_u1 = 0;
+ let (x1029, x1030) = fiat_p384_addcarryx_u32(x1028, x969, x1005);
+ let mut x1031: u32 = 0;
+ let mut x1032: fiat_p384_u1 = 0;
+ let (x1031, x1032) = fiat_p384_addcarryx_u32(x1030, x971, x1007);
+ let mut x1033: u32 = 0;
+ let mut x1034: fiat_p384_u1 = 0;
+ let (x1033, x1034) = fiat_p384_addcarryx_u32(x1032, x973, x1009);
+ let mut x1035: u32 = 0;
+ let mut x1036: fiat_p384_u1 = 0;
+ let (x1035, x1036) = fiat_p384_addcarryx_u32(x1034, x975, x1011);
+ let mut x1037: u32 = 0;
+ let mut x1038: fiat_p384_u1 = 0;
+ let (x1037, x1038) = fiat_p384_addcarryx_u32(x1036, x977, x1013);
+ let mut x1039: u32 = 0;
+ let mut x1040: fiat_p384_u1 = 0;
+ let (x1039, x1040) = fiat_p384_addcarryx_u32(x1038, x979, x1015);
+ let mut x1041: u32 = 0;
+ let mut x1042: fiat_p384_u1 = 0;
+ let (x1041, x1042) = fiat_p384_addcarryx_u32(
+ x1040,
+ ((x980 as u32) + (x946 as u32)),
+ ((x1016 as u32) + x982),
+ );
+ let mut x1043: u32 = 0;
+ let mut x1044: u32 = 0;
+ let (x1043, x1044) = fiat_p384_mulx_u32(x11, 0x2);
+ let mut x1045: u32 = 0;
+ let mut x1046: u32 = 0;
+ let (x1045, x1046) = fiat_p384_mulx_u32(x11, 0xfffffffe);
+ let mut x1047: u32 = 0;
+ let mut x1048: u32 = 0;
+ let (x1047, x1048) = fiat_p384_mulx_u32(x11, 0x2);
+ let mut x1049: u32 = 0;
+ let mut x1050: u32 = 0;
+ let (x1049, x1050) = fiat_p384_mulx_u32(x11, 0xfffffffe);
+ let mut x1051: u32 = 0;
+ let mut x1052: fiat_p384_u1 = 0;
+ let (x1051, x1052) = fiat_p384_addcarryx_u32(0x0, ((x1044 as fiat_p384_u1) as u32), x11);
+ let mut x1053: u32 = 0;
+ let mut x1054: fiat_p384_u1 = 0;
+ let (x1053, x1054) = fiat_p384_addcarryx_u32(0x0, x1019, x11);
+ let mut x1055: u32 = 0;
+ let mut x1056: fiat_p384_u1 = 0;
+ let (x1055, x1056) = fiat_p384_addcarryx_u32(x1054, x1021, x1049);
+ let mut x1057: u32 = 0;
+ let mut x1058: fiat_p384_u1 = 0;
+ let (x1057, x1058) = fiat_p384_addcarryx_u32(x1056, x1023, x1050);
+ let mut x1059: u32 = 0;
+ let mut x1060: fiat_p384_u1 = 0;
+ let (x1059, x1060) = fiat_p384_addcarryx_u32(x1058, x1025, x1047);
+ let mut x1061: u32 = 0;
+ let mut x1062: fiat_p384_u1 = 0;
+ let (x1061, x1062) = fiat_p384_addcarryx_u32(x1060, x1027, ((x1048 as fiat_p384_u1) as u32));
+ let mut x1063: u32 = 0;
+ let mut x1064: fiat_p384_u1 = 0;
+ let (x1063, x1064) = fiat_p384_addcarryx_u32(x1062, x1029, x1045);
+ let mut x1065: u32 = 0;
+ let mut x1066: fiat_p384_u1 = 0;
+ let (x1065, x1066) = fiat_p384_addcarryx_u32(x1064, x1031, x1046);
+ let mut x1067: u32 = 0;
+ let mut x1068: fiat_p384_u1 = 0;
+ let (x1067, x1068) = fiat_p384_addcarryx_u32(x1066, x1033, x1043);
+ let mut x1069: u32 = 0;
+ let mut x1070: fiat_p384_u1 = 0;
+ let (x1069, x1070) = fiat_p384_addcarryx_u32(x1068, x1035, x1051);
+ let mut x1071: u32 = 0;
+ let mut x1072: fiat_p384_u1 = 0;
+ let (x1071, x1072) = fiat_p384_addcarryx_u32(x1070, x1037, (x1052 as u32));
+ let mut x1073: u32 = 0;
+ let mut x1074: fiat_p384_u1 = 0;
+ let (x1073, x1074) = fiat_p384_addcarryx_u32(x1072, x1039, (0x0 as u32));
+ let mut x1075: u32 = 0;
+ let mut x1076: fiat_p384_u1 = 0;
+ let (x1075, x1076) = fiat_p384_addcarryx_u32(x1074, x1041, (0x0 as u32));
+ let mut x1077: u32 = 0;
+ let mut x1078: u32 = 0;
+ let (x1077, x1078) = fiat_p384_mulx_u32(x1053, 0xffffffff);
+ let mut x1079: u32 = 0;
+ let mut x1080: u32 = 0;
+ let (x1079, x1080) = fiat_p384_mulx_u32(x1053, 0xffffffff);
+ let mut x1081: u32 = 0;
+ let mut x1082: u32 = 0;
+ let (x1081, x1082) = fiat_p384_mulx_u32(x1053, 0xffffffff);
+ let mut x1083: u32 = 0;
+ let mut x1084: u32 = 0;
+ let (x1083, x1084) = fiat_p384_mulx_u32(x1053, 0xffffffff);
+ let mut x1085: u32 = 0;
+ let mut x1086: u32 = 0;
+ let (x1085, x1086) = fiat_p384_mulx_u32(x1053, 0xffffffff);
+ let mut x1087: u32 = 0;
+ let mut x1088: u32 = 0;
+ let (x1087, x1088) = fiat_p384_mulx_u32(x1053, 0xffffffff);
+ let mut x1089: u32 = 0;
+ let mut x1090: u32 = 0;
+ let (x1089, x1090) = fiat_p384_mulx_u32(x1053, 0xffffffff);
+ let mut x1091: u32 = 0;
+ let mut x1092: u32 = 0;
+ let (x1091, x1092) = fiat_p384_mulx_u32(x1053, 0xfffffffe);
+ let mut x1093: u32 = 0;
+ let mut x1094: u32 = 0;
+ let (x1093, x1094) = fiat_p384_mulx_u32(x1053, 0xffffffff);
+ let mut x1095: u32 = 0;
+ let mut x1096: u32 = 0;
+ let (x1095, x1096) = fiat_p384_mulx_u32(x1053, 0xffffffff);
+ let mut x1097: u32 = 0;
+ let mut x1098: fiat_p384_u1 = 0;
+ let (x1097, x1098) = fiat_p384_addcarryx_u32(0x0, x1094, x1091);
+ let mut x1099: u32 = 0;
+ let mut x1100: fiat_p384_u1 = 0;
+ let (x1099, x1100) = fiat_p384_addcarryx_u32(x1098, x1092, x1089);
+ let mut x1101: u32 = 0;
+ let mut x1102: fiat_p384_u1 = 0;
+ let (x1101, x1102) = fiat_p384_addcarryx_u32(x1100, x1090, x1087);
+ let mut x1103: u32 = 0;
+ let mut x1104: fiat_p384_u1 = 0;
+ let (x1103, x1104) = fiat_p384_addcarryx_u32(x1102, x1088, x1085);
+ let mut x1105: u32 = 0;
+ let mut x1106: fiat_p384_u1 = 0;
+ let (x1105, x1106) = fiat_p384_addcarryx_u32(x1104, x1086, x1083);
+ let mut x1107: u32 = 0;
+ let mut x1108: fiat_p384_u1 = 0;
+ let (x1107, x1108) = fiat_p384_addcarryx_u32(x1106, x1084, x1081);
+ let mut x1109: u32 = 0;
+ let mut x1110: fiat_p384_u1 = 0;
+ let (x1109, x1110) = fiat_p384_addcarryx_u32(x1108, x1082, x1079);
+ let mut x1111: u32 = 0;
+ let mut x1112: fiat_p384_u1 = 0;
+ let (x1111, x1112) = fiat_p384_addcarryx_u32(x1110, x1080, x1077);
+ let mut x1113: u32 = 0;
+ let mut x1114: fiat_p384_u1 = 0;
+ let (x1113, x1114) = fiat_p384_addcarryx_u32(0x0, x1053, x1095);
+ let mut x1115: u32 = 0;
+ let mut x1116: fiat_p384_u1 = 0;
+ let (x1115, x1116) = fiat_p384_addcarryx_u32(x1114, x1055, x1096);
+ let mut x1117: u32 = 0;
+ let mut x1118: fiat_p384_u1 = 0;
+ let (x1117, x1118) = fiat_p384_addcarryx_u32(x1116, x1057, (0x0 as u32));
+ let mut x1119: u32 = 0;
+ let mut x1120: fiat_p384_u1 = 0;
+ let (x1119, x1120) = fiat_p384_addcarryx_u32(x1118, x1059, x1093);
+ let mut x1121: u32 = 0;
+ let mut x1122: fiat_p384_u1 = 0;
+ let (x1121, x1122) = fiat_p384_addcarryx_u32(x1120, x1061, x1097);
+ let mut x1123: u32 = 0;
+ let mut x1124: fiat_p384_u1 = 0;
+ let (x1123, x1124) = fiat_p384_addcarryx_u32(x1122, x1063, x1099);
+ let mut x1125: u32 = 0;
+ let mut x1126: fiat_p384_u1 = 0;
+ let (x1125, x1126) = fiat_p384_addcarryx_u32(x1124, x1065, x1101);
+ let mut x1127: u32 = 0;
+ let mut x1128: fiat_p384_u1 = 0;
+ let (x1127, x1128) = fiat_p384_addcarryx_u32(x1126, x1067, x1103);
+ let mut x1129: u32 = 0;
+ let mut x1130: fiat_p384_u1 = 0;
+ let (x1129, x1130) = fiat_p384_addcarryx_u32(x1128, x1069, x1105);
+ let mut x1131: u32 = 0;
+ let mut x1132: fiat_p384_u1 = 0;
+ let (x1131, x1132) = fiat_p384_addcarryx_u32(x1130, x1071, x1107);
+ let mut x1133: u32 = 0;
+ let mut x1134: fiat_p384_u1 = 0;
+ let (x1133, x1134) = fiat_p384_addcarryx_u32(x1132, x1073, x1109);
+ let mut x1135: u32 = 0;
+ let mut x1136: fiat_p384_u1 = 0;
+ let (x1135, x1136) = fiat_p384_addcarryx_u32(x1134, x1075, x1111);
+ let mut x1137: u32 = 0;
+ let mut x1138: fiat_p384_u1 = 0;
+ let (x1137, x1138) = fiat_p384_addcarryx_u32(
+ x1136,
+ ((x1076 as u32) + (x1042 as u32)),
+ ((x1112 as u32) + x1078),
+ );
+ let mut x1139: u32 = 0;
+ let mut x1140: fiat_p384_u1 = 0;
+ let (x1139, x1140) = fiat_p384_subborrowx_u32(0x0, x1115, 0xffffffff);
+ let mut x1141: u32 = 0;
+ let mut x1142: fiat_p384_u1 = 0;
+ let (x1141, x1142) = fiat_p384_subborrowx_u32(x1140, x1117, (0x0 as u32));
+ let mut x1143: u32 = 0;
+ let mut x1144: fiat_p384_u1 = 0;
+ let (x1143, x1144) = fiat_p384_subborrowx_u32(x1142, x1119, (0x0 as u32));
+ let mut x1145: u32 = 0;
+ let mut x1146: fiat_p384_u1 = 0;
+ let (x1145, x1146) = fiat_p384_subborrowx_u32(x1144, x1121, 0xffffffff);
+ let mut x1147: u32 = 0;
+ let mut x1148: fiat_p384_u1 = 0;
+ let (x1147, x1148) = fiat_p384_subborrowx_u32(x1146, x1123, 0xfffffffe);
+ let mut x1149: u32 = 0;
+ let mut x1150: fiat_p384_u1 = 0;
+ let (x1149, x1150) = fiat_p384_subborrowx_u32(x1148, x1125, 0xffffffff);
+ let mut x1151: u32 = 0;
+ let mut x1152: fiat_p384_u1 = 0;
+ let (x1151, x1152) = fiat_p384_subborrowx_u32(x1150, x1127, 0xffffffff);
+ let mut x1153: u32 = 0;
+ let mut x1154: fiat_p384_u1 = 0;
+ let (x1153, x1154) = fiat_p384_subborrowx_u32(x1152, x1129, 0xffffffff);
+ let mut x1155: u32 = 0;
+ let mut x1156: fiat_p384_u1 = 0;
+ let (x1155, x1156) = fiat_p384_subborrowx_u32(x1154, x1131, 0xffffffff);
+ let mut x1157: u32 = 0;
+ let mut x1158: fiat_p384_u1 = 0;
+ let (x1157, x1158) = fiat_p384_subborrowx_u32(x1156, x1133, 0xffffffff);
+ let mut x1159: u32 = 0;
+ let mut x1160: fiat_p384_u1 = 0;
+ let (x1159, x1160) = fiat_p384_subborrowx_u32(x1158, x1135, 0xffffffff);
+ let mut x1161: u32 = 0;
+ let mut x1162: fiat_p384_u1 = 0;
+ let (x1161, x1162) = fiat_p384_subborrowx_u32(x1160, x1137, 0xffffffff);
+ let mut x1163: u32 = 0;
+ let mut x1164: fiat_p384_u1 = 0;
+ let (x1163, x1164) = fiat_p384_subborrowx_u32(x1162, (x1138 as u32), (0x0 as u32));
+ let mut x1165: u32 = 0;
+ let (x1165) = fiat_p384_cmovznz_u32(x1164, x1139, x1115);
+ let mut x1166: u32 = 0;
+ let (x1166) = fiat_p384_cmovznz_u32(x1164, x1141, x1117);
+ let mut x1167: u32 = 0;
+ let (x1167) = fiat_p384_cmovznz_u32(x1164, x1143, x1119);
+ let mut x1168: u32 = 0;
+ let (x1168) = fiat_p384_cmovznz_u32(x1164, x1145, x1121);
+ let mut x1169: u32 = 0;
+ let (x1169) = fiat_p384_cmovznz_u32(x1164, x1147, x1123);
+ let mut x1170: u32 = 0;
+ let (x1170) = fiat_p384_cmovznz_u32(x1164, x1149, x1125);
+ let mut x1171: u32 = 0;
+ let (x1171) = fiat_p384_cmovznz_u32(x1164, x1151, x1127);
+ let mut x1172: u32 = 0;
+ let (x1172) = fiat_p384_cmovznz_u32(x1164, x1153, x1129);
+ let mut x1173: u32 = 0;
+ let (x1173) = fiat_p384_cmovznz_u32(x1164, x1155, x1131);
+ let mut x1174: u32 = 0;
+ let (x1174) = fiat_p384_cmovznz_u32(x1164, x1157, x1133);
+ let mut x1175: u32 = 0;
+ let (x1175) = fiat_p384_cmovznz_u32(x1164, x1159, x1135);
+ let mut x1176: u32 = 0;
+ let (x1176) = fiat_p384_cmovznz_u32(x1164, x1161, x1137);
+ out1[0] = x1165;
+ out1[1] = x1166;
+ out1[2] = x1167;
+ out1[3] = x1168;
+ out1[4] = x1169;
+ out1[5] = x1170;
+ out1[6] = x1171;
+ out1[7] = x1172;
+ out1[8] = x1173;
+ out1[9] = x1174;
+ out1[10] = x1175;
+ out1[11] = x1176;
+ out1
+}
+#[doc = " The function fiat_p384_nonzero outputs a single non-zero word if the input is non-zero and zero otherwise."]
+#[doc = ""]
+#[doc = " Preconditions:"]
+#[doc = " 0 ≤ eval arg1 < m"]
+#[doc = " Postconditions:"]
+#[doc = " out1 = 0 ↔ eval (from_montgomery arg1) mod m = 0"]
+#[doc = ""]
+#[doc = " Input Bounds:"]
+#[doc = " arg1: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]]"]
+#[doc = " Output Bounds:"]
+#[doc = " out1: [0x0 ~> 0xffffffff]"]
+#[inline]
+pub const fn fiat_p384_nonzero(arg1: &[u32; 12]) -> u32 {
+ let mut out1: u32 = 0;
+ let x1: u32 = ((arg1[0])
+ | ((arg1[1])
+ | ((arg1[2])
+ | ((arg1[3])
+ | ((arg1[4])
+ | ((arg1[5])
+ | ((arg1[6])
+ | ((arg1[7])
+ | ((arg1[8]) | ((arg1[9]) | ((arg1[10]) | (arg1[11]))))))))))));
+ out1 = x1;
+ out1
+}
+#[doc = " The function fiat_p384_selectznz is a multi-limb conditional select."]
+#[doc = ""]
+#[doc = " Postconditions:"]
+#[doc = " eval out1 = (if arg1 = 0 then eval arg2 else eval arg3)"]
+#[doc = ""]
+#[doc = " Input Bounds:"]
+#[doc = " arg1: [0x0 ~> 0x1]"]
+#[doc = " arg2: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]]"]
+#[doc = " arg3: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]]"]
+#[doc = " Output Bounds:"]
+#[doc = " out1: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]]"]
+#[inline]
+pub const fn fiat_p384_selectznz(
+ arg1: fiat_p384_u1,
+ arg2: &[u32; 12],
+ arg3: &[u32; 12],
+) -> [u32; 12] {
+ let mut out1: [u32; 12] = [0; 12];
+ let mut x1: u32 = 0;
+ let (x1) = fiat_p384_cmovznz_u32(arg1, (arg2[0]), (arg3[0]));
+ let mut x2: u32 = 0;
+ let (x2) = fiat_p384_cmovznz_u32(arg1, (arg2[1]), (arg3[1]));
+ let mut x3: u32 = 0;
+ let (x3) = fiat_p384_cmovznz_u32(arg1, (arg2[2]), (arg3[2]));
+ let mut x4: u32 = 0;
+ let (x4) = fiat_p384_cmovznz_u32(arg1, (arg2[3]), (arg3[3]));
+ let mut x5: u32 = 0;
+ let (x5) = fiat_p384_cmovznz_u32(arg1, (arg2[4]), (arg3[4]));
+ let mut x6: u32 = 0;
+ let (x6) = fiat_p384_cmovznz_u32(arg1, (arg2[5]), (arg3[5]));
+ let mut x7: u32 = 0;
+ let (x7) = fiat_p384_cmovznz_u32(arg1, (arg2[6]), (arg3[6]));
+ let mut x8: u32 = 0;
+ let (x8) = fiat_p384_cmovznz_u32(arg1, (arg2[7]), (arg3[7]));
+ let mut x9: u32 = 0;
+ let (x9) = fiat_p384_cmovznz_u32(arg1, (arg2[8]), (arg3[8]));
+ let mut x10: u32 = 0;
+ let (x10) = fiat_p384_cmovznz_u32(arg1, (arg2[9]), (arg3[9]));
+ let mut x11: u32 = 0;
+ let (x11) = fiat_p384_cmovznz_u32(arg1, (arg2[10]), (arg3[10]));
+ let mut x12: u32 = 0;
+ let (x12) = fiat_p384_cmovznz_u32(arg1, (arg2[11]), (arg3[11]));
+ 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;
+ out1[9] = x10;
+ out1[10] = x11;
+ out1[11] = x12;
+ out1
+}
+#[doc = " The function fiat_p384_to_bytes serializes a field element NOT in the Montgomery domain to bytes in little-endian order."]
+#[doc = ""]
+#[doc = " Preconditions:"]
+#[doc = " 0 ≤ eval arg1 < m"]
+#[doc = " Postconditions:"]
+#[doc = " out1 = map (λ x, ⌊((eval arg1 mod m) mod 2^(8 * (x + 1))) / 2^(8 * x)⌋) [0..47]"]
+#[doc = ""]
+#[doc = " Input Bounds:"]
+#[doc = " arg1: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]]"]
+#[doc = " Output Bounds:"]
+#[doc = " 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]]"]
+#[inline]
+pub const fn fiat_p384_to_bytes(arg1: &[u32; 12]) -> [u8; 48] {
+ let mut out1: [u8; 48] = [0; 48];
+ let x1: u32 = (arg1[11]);
+ let x2: u32 = (arg1[10]);
+ let x3: u32 = (arg1[9]);
+ let x4: u32 = (arg1[8]);
+ let x5: u32 = (arg1[7]);
+ let x6: u32 = (arg1[6]);
+ let x7: u32 = (arg1[5]);
+ let x8: u32 = (arg1[4]);
+ let x9: u32 = (arg1[3]);
+ let x10: u32 = (arg1[2]);
+ let x11: u32 = (arg1[1]);
+ let x12: u32 = (arg1[0]);
+ let x13: u8 = ((x12 & (0xff as u32)) as u8);
+ let x14: u32 = (x12 >> 8);
+ let x15: u8 = ((x14 & (0xff as u32)) as u8);
+ let x16: u32 = (x14 >> 8);
+ let x17: u8 = ((x16 & (0xff as u32)) as u8);
+ let x18: u8 = ((x16 >> 8) as u8);
+ let x19: u8 = ((x11 & (0xff as u32)) as u8);
+ let x20: u32 = (x11 >> 8);
+ let x21: u8 = ((x20 & (0xff as u32)) as u8);
+ let x22: u32 = (x20 >> 8);
+ let x23: u8 = ((x22 & (0xff as u32)) as u8);
+ let x24: u8 = ((x22 >> 8) as u8);
+ let x25: u8 = ((x10 & (0xff as u32)) as u8);
+ let x26: u32 = (x10 >> 8);
+ let x27: u8 = ((x26 & (0xff as u32)) as u8);
+ let x28: u32 = (x26 >> 8);
+ let x29: u8 = ((x28 & (0xff as u32)) as u8);
+ let x30: u8 = ((x28 >> 8) as u8);
+ let x31: u8 = ((x9 & (0xff as u32)) as u8);
+ let x32: u32 = (x9 >> 8);
+ let x33: u8 = ((x32 & (0xff as u32)) as u8);
+ let x34: u32 = (x32 >> 8);
+ let x35: u8 = ((x34 & (0xff as u32)) as u8);
+ let x36: u8 = ((x34 >> 8) as u8);
+ let x37: u8 = ((x8 & (0xff as u32)) as u8);
+ let x38: u32 = (x8 >> 8);
+ let x39: u8 = ((x38 & (0xff as u32)) as u8);
+ let x40: u32 = (x38 >> 8);
+ let x41: u8 = ((x40 & (0xff as u32)) as u8);
+ let x42: u8 = ((x40 >> 8) as u8);
+ let x43: u8 = ((x7 & (0xff as u32)) as u8);
+ let x44: u32 = (x7 >> 8);
+ let x45: u8 = ((x44 & (0xff as u32)) as u8);
+ let x46: u32 = (x44 >> 8);
+ let x47: u8 = ((x46 & (0xff as u32)) as u8);
+ let x48: u8 = ((x46 >> 8) as u8);
+ let x49: u8 = ((x6 & (0xff as u32)) as u8);
+ let x50: u32 = (x6 >> 8);
+ let x51: u8 = ((x50 & (0xff as u32)) as u8);
+ let x52: u32 = (x50 >> 8);
+ let x53: u8 = ((x52 & (0xff as u32)) as u8);
+ let x54: u8 = ((x52 >> 8) as u8);
+ let x55: u8 = ((x5 & (0xff as u32)) as u8);
+ let x56: u32 = (x5 >> 8);
+ let x57: u8 = ((x56 & (0xff as u32)) as u8);
+ let x58: u32 = (x56 >> 8);
+ let x59: u8 = ((x58 & (0xff as u32)) as u8);
+ let x60: u8 = ((x58 >> 8) as u8);
+ let x61: u8 = ((x4 & (0xff as u32)) as u8);
+ let x62: u32 = (x4 >> 8);
+ let x63: u8 = ((x62 & (0xff as u32)) as u8);
+ let x64: u32 = (x62 >> 8);
+ let x65: u8 = ((x64 & (0xff as u32)) as u8);
+ let x66: u8 = ((x64 >> 8) as u8);
+ let x67: u8 = ((x3 & (0xff as u32)) as u8);
+ let x68: u32 = (x3 >> 8);
+ let x69: u8 = ((x68 & (0xff as u32)) as u8);
+ let x70: u32 = (x68 >> 8);
+ let x71: u8 = ((x70 & (0xff as u32)) as u8);
+ let x72: u8 = ((x70 >> 8) as u8);
+ let x73: u8 = ((x2 & (0xff as u32)) as u8);
+ let x74: u32 = (x2 >> 8);
+ let x75: u8 = ((x74 & (0xff as u32)) as u8);
+ let x76: u32 = (x74 >> 8);
+ let x77: u8 = ((x76 & (0xff as u32)) as u8);
+ let x78: u8 = ((x76 >> 8) as u8);
+ let x79: u8 = ((x1 & (0xff as u32)) as u8);
+ let x80: u32 = (x1 >> 8);
+ let x81: u8 = ((x80 & (0xff as u32)) as u8);
+ let x82: u32 = (x80 >> 8);
+ let x83: u8 = ((x82 & (0xff as u32)) as u8);
+ let x84: u8 = ((x82 >> 8) as u8);
+ out1[0] = x13;
+ out1[1] = x15;
+ out1[2] = x17;
+ out1[3] = x18;
+ out1[4] = x19;
+ out1[5] = x21;
+ out1[6] = x23;
+ out1[7] = x24;
+ out1[8] = x25;
+ out1[9] = x27;
+ out1[10] = x29;
+ out1[11] = x30;
+ out1[12] = x31;
+ out1[13] = x33;
+ out1[14] = x35;
+ out1[15] = x36;
+ out1[16] = x37;
+ out1[17] = x39;
+ out1[18] = x41;
+ out1[19] = x42;
+ out1[20] = x43;
+ out1[21] = x45;
+ out1[22] = x47;
+ out1[23] = x48;
+ out1[24] = x49;
+ out1[25] = x51;
+ out1[26] = x53;
+ out1[27] = x54;
+ out1[28] = x55;
+ out1[29] = x57;
+ out1[30] = x59;
+ out1[31] = x60;
+ out1[32] = x61;
+ out1[33] = x63;
+ out1[34] = x65;
+ out1[35] = x66;
+ out1[36] = x67;
+ out1[37] = x69;
+ out1[38] = x71;
+ out1[39] = x72;
+ out1[40] = x73;
+ out1[41] = x75;
+ out1[42] = x77;
+ out1[43] = x78;
+ out1[44] = x79;
+ out1[45] = x81;
+ out1[46] = x83;
+ out1[47] = x84;
+ out1
+}
+#[doc = " The function fiat_p384_from_bytes deserializes a field element NOT in the Montgomery domain from bytes in little-endian order."]
+#[doc = ""]
+#[doc = " Preconditions:"]
+#[doc = " 0 ≤ bytes_eval arg1 < m"]
+#[doc = " Postconditions:"]
+#[doc = " eval out1 mod m = bytes_eval arg1 mod m"]
+#[doc = " 0 ≤ eval out1 < m"]
+#[doc = ""]
+#[doc = " Input Bounds:"]
+#[doc = " 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]]"]
+#[doc = " Output Bounds:"]
+#[doc = " out1: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]]"]
+#[inline]
+pub const fn fiat_p384_from_bytes(arg1: &[u8; 48]) -> [u32; 12] {
+ let mut out1: [u32; 12] = [0; 12];
+ let x1: u32 = (((arg1[47]) as u32) << 24);
+ let x2: u32 = (((arg1[46]) as u32) << 16);
+ let x3: u32 = (((arg1[45]) as u32) << 8);
+ let x4: u8 = (arg1[44]);
+ let x5: u32 = (((arg1[43]) as u32) << 24);
+ let x6: u32 = (((arg1[42]) as u32) << 16);
+ let x7: u32 = (((arg1[41]) as u32) << 8);
+ let x8: u8 = (arg1[40]);
+ let x9: u32 = (((arg1[39]) as u32) << 24);
+ let x10: u32 = (((arg1[38]) as u32) << 16);
+ let x11: u32 = (((arg1[37]) as u32) << 8);
+ let x12: u8 = (arg1[36]);
+ let x13: u32 = (((arg1[35]) as u32) << 24);
+ let x14: u32 = (((arg1[34]) as u32) << 16);
+ let x15: u32 = (((arg1[33]) as u32) << 8);
+ let x16: u8 = (arg1[32]);
+ let x17: u32 = (((arg1[31]) as u32) << 24);
+ let x18: u32 = (((arg1[30]) as u32) << 16);
+ let x19: u32 = (((arg1[29]) as u32) << 8);
+ let x20: u8 = (arg1[28]);
+ let x21: u32 = (((arg1[27]) as u32) << 24);
+ let x22: u32 = (((arg1[26]) as u32) << 16);
+ let x23: u32 = (((arg1[25]) as u32) << 8);
+ let x24: u8 = (arg1[24]);
+ let x25: u32 = (((arg1[23]) as u32) << 24);
+ let x26: u32 = (((arg1[22]) as u32) << 16);
+ let x27: u32 = (((arg1[21]) as u32) << 8);
+ let x28: u8 = (arg1[20]);
+ let x29: u32 = (((arg1[19]) as u32) << 24);
+ let x30: u32 = (((arg1[18]) as u32) << 16);
+ let x31: u32 = (((arg1[17]) as u32) << 8);
+ let x32: u8 = (arg1[16]);
+ let x33: u32 = (((arg1[15]) as u32) << 24);
+ let x34: u32 = (((arg1[14]) as u32) << 16);
+ let x35: u32 = (((arg1[13]) as u32) << 8);
+ let x36: u8 = (arg1[12]);
+ let x37: u32 = (((arg1[11]) as u32) << 24);
+ let x38: u32 = (((arg1[10]) as u32) << 16);
+ let x39: u32 = (((arg1[9]) as u32) << 8);
+ let x40: u8 = (arg1[8]);
+ let x41: u32 = (((arg1[7]) as u32) << 24);
+ let x42: u32 = (((arg1[6]) as u32) << 16);
+ let x43: u32 = (((arg1[5]) as u32) << 8);
+ let x44: u8 = (arg1[4]);
+ let x45: u32 = (((arg1[3]) as u32) << 24);
+ let x46: u32 = (((arg1[2]) as u32) << 16);
+ let x47: u32 = (((arg1[1]) as u32) << 8);
+ let x48: u8 = (arg1[0]);
+ let x49: u32 = (x47 + (x48 as u32));
+ let x50: u32 = (x46 + x49);
+ let x51: u32 = (x45 + x50);
+ let x52: u32 = (x43 + (x44 as u32));
+ let x53: u32 = (x42 + x52);
+ let x54: u32 = (x41 + x53);
+ let x55: u32 = (x39 + (x40 as u32));
+ let x56: u32 = (x38 + x55);
+ let x57: u32 = (x37 + x56);
+ let x58: u32 = (x35 + (x36 as u32));
+ let x59: u32 = (x34 + x58);
+ let x60: u32 = (x33 + x59);
+ let x61: u32 = (x31 + (x32 as u32));
+ let x62: u32 = (x30 + x61);
+ let x63: u32 = (x29 + x62);
+ let x64: u32 = (x27 + (x28 as u32));
+ let x65: u32 = (x26 + x64);
+ let x66: u32 = (x25 + x65);
+ let x67: u32 = (x23 + (x24 as u32));
+ let x68: u32 = (x22 + x67);
+ let x69: u32 = (x21 + x68);
+ let x70: u32 = (x19 + (x20 as u32));
+ let x71: u32 = (x18 + x70);
+ let x72: u32 = (x17 + x71);
+ let x73: u32 = (x15 + (x16 as u32));
+ let x74: u32 = (x14 + x73);
+ let x75: u32 = (x13 + x74);
+ let x76: u32 = (x11 + (x12 as u32));
+ let x77: u32 = (x10 + x76);
+ let x78: u32 = (x9 + x77);
+ let x79: u32 = (x7 + (x8 as u32));
+ let x80: u32 = (x6 + x79);
+ let x81: u32 = (x5 + x80);
+ let x82: u32 = (x3 + (x4 as u32));
+ let x83: u32 = (x2 + x82);
+ let x84: u32 = (x1 + x83);
+ out1[0] = x51;
+ out1[1] = x54;
+ out1[2] = x57;
+ out1[3] = x60;
+ out1[4] = x63;
+ out1[5] = x66;
+ out1[6] = x69;
+ out1[7] = x72;
+ out1[8] = x75;
+ out1[9] = x78;
+ out1[10] = x81;
+ out1[11] = x84;
+ out1
+}
+#[doc = " The function fiat_p384_set_one returns the field element one in the Montgomery domain."]
+#[doc = ""]
+#[doc = " Postconditions:"]
+#[doc = " eval (from_montgomery out1) mod m = 1 mod m"]
+#[doc = " 0 ≤ eval out1 < m"]
+#[doc = ""]
+#[inline]
+pub const fn fiat_p384_set_one() -> fiat_p384_montgomery_domain_field_element {
+ let mut out1: fiat_p384_montgomery_domain_field_element = [0; 12];
+ out1[0] = (0x1 as u32);
+ out1[1] = 0xffffffff;
+ out1[2] = 0xffffffff;
+ out1[3] = (0x0 as u32);
+ out1[4] = (0x1 as u32);
+ out1[5] = (0x0 as u32);
+ out1[6] = (0x0 as u32);
+ out1[7] = (0x0 as u32);
+ out1[8] = (0x0 as u32);
+ out1[9] = (0x0 as u32);
+ out1[10] = (0x0 as u32);
+ out1[11] = (0x0 as u32);
+ out1
+}
+#[doc = " The function fiat_p384_msat returns the saturated representation of the prime modulus."]
+#[doc = ""]
+#[doc = " Postconditions:"]
+#[doc = " twos_complement_eval out1 = m"]
+#[doc = " 0 ≤ eval out1 < m"]
+#[doc = ""]
+#[doc = " Output Bounds:"]
+#[doc = " out1: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]]"]
+#[inline]
+pub const fn fiat_p384_msat() -> [u32; 13] {
+ let mut out1: [u32; 13] = [0; 13];
+ out1[0] = 0xffffffff;
+ out1[1] = (0x0 as u32);
+ out1[2] = (0x0 as u32);
+ out1[3] = 0xffffffff;
+ out1[4] = 0xfffffffe;
+ out1[5] = 0xffffffff;
+ out1[6] = 0xffffffff;
+ out1[7] = 0xffffffff;
+ out1[8] = 0xffffffff;
+ out1[9] = 0xffffffff;
+ out1[10] = 0xffffffff;
+ out1[11] = 0xffffffff;
+ out1[12] = (0x0 as u32);
+ out1
+}
+#[doc = " The function fiat_p384_divstep computes a divstep."]
+#[doc = ""]
+#[doc = " Preconditions:"]
+#[doc = " 0 ≤ eval arg4 < m"]
+#[doc = " 0 ≤ eval arg5 < m"]
+#[doc = " Postconditions:"]
+#[doc = " out1 = (if 0 < arg1 ∧ (twos_complement_eval arg3) is odd then 1 - arg1 else 1 + arg1)"]
+#[doc = " twos_complement_eval out2 = (if 0 < arg1 ∧ (twos_complement_eval arg3) is odd then twos_complement_eval arg3 else twos_complement_eval arg2)"]
+#[doc = " twos_complement_eval out3 = (if 0 < arg1 ∧ (twos_complement_eval arg3) is odd then ⌊(twos_complement_eval arg3 - twos_complement_eval arg2) / 2⌋ else ⌊(twos_complement_eval arg3 + (twos_complement_eval arg3 mod 2) * twos_complement_eval arg2) / 2⌋)"]
+#[doc = " eval (from_montgomery out4) mod m = (if 0 < arg1 ∧ (twos_complement_eval arg3) is odd then (2 * eval (from_montgomery arg5)) mod m else (2 * eval (from_montgomery arg4)) mod m)"]
+#[doc = " eval (from_montgomery out5) mod m = (if 0 < arg1 ∧ (twos_complement_eval arg3) is odd then (eval (from_montgomery arg4) - eval (from_montgomery arg4)) mod m else (eval (from_montgomery arg5) + (twos_complement_eval arg3 mod 2) * eval (from_montgomery arg4)) mod m)"]
+#[doc = " 0 ≤ eval out5 < m"]
+#[doc = " 0 ≤ eval out5 < m"]
+#[doc = " 0 ≤ eval out2 < m"]
+#[doc = " 0 ≤ eval out3 < m"]
+#[doc = ""]
+#[doc = " Input Bounds:"]
+#[doc = " arg1: [0x0 ~> 0xffffffff]"]
+#[doc = " arg2: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]]"]
+#[doc = " arg3: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]]"]
+#[doc = " arg4: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]]"]
+#[doc = " arg5: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]]"]
+#[doc = " Output Bounds:"]
+#[doc = " out1: [0x0 ~> 0xffffffff]"]
+#[doc = " out2: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]]"]
+#[doc = " out3: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]]"]
+#[doc = " out4: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]]"]
+#[doc = " out5: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]]"]
+#[inline]
+pub const fn fiat_p384_divstep(
+ arg1: u32,
+ arg2: &[u32; 13],
+ arg3: &[u32; 13],
+ arg4: &[u32; 12],
+ arg5: &[u32; 12],
+) -> (u32, [u32; 13], [u32; 13], [u32; 12], [u32; 12]) {
+ let mut out1: u32 = 0;
+ let mut out2: [u32; 13] = [0; 13];
+ let mut out3: [u32; 13] = [0; 13];
+ let mut out4: [u32; 12] = [0; 12];
+ let mut out5: [u32; 12] = [0; 12];
+ let mut x1: u32 = 0;
+ let mut x2: fiat_p384_u1 = 0;
+ let (x1, x2) = fiat_p384_addcarryx_u32(0x0, (!arg1), (0x1 as u32));
+ let x3: fiat_p384_u1 =
+ (((x1 >> 31) as fiat_p384_u1) & (((arg3[0]) & (0x1 as u32)) as fiat_p384_u1));
+ let mut x4: u32 = 0;
+ let mut x5: fiat_p384_u1 = 0;
+ let (x4, x5) = fiat_p384_addcarryx_u32(0x0, (!arg1), (0x1 as u32));
+ let mut x6: u32 = 0;
+ let (x6) = fiat_p384_cmovznz_u32(x3, arg1, x4);
+ let mut x7: u32 = 0;
+ let (x7) = fiat_p384_cmovznz_u32(x3, (arg2[0]), (arg3[0]));
+ let mut x8: u32 = 0;
+ let (x8) = fiat_p384_cmovznz_u32(x3, (arg2[1]), (arg3[1]));
+ let mut x9: u32 = 0;
+ let (x9) = fiat_p384_cmovznz_u32(x3, (arg2[2]), (arg3[2]));
+ let mut x10: u32 = 0;
+ let (x10) = fiat_p384_cmovznz_u32(x3, (arg2[3]), (arg3[3]));
+ let mut x11: u32 = 0;
+ let (x11) = fiat_p384_cmovznz_u32(x3, (arg2[4]), (arg3[4]));
+ let mut x12: u32 = 0;
+ let (x12) = fiat_p384_cmovznz_u32(x3, (arg2[5]), (arg3[5]));
+ let mut x13: u32 = 0;
+ let (x13) = fiat_p384_cmovznz_u32(x3, (arg2[6]), (arg3[6]));
+ let mut x14: u32 = 0;
+ let (x14) = fiat_p384_cmovznz_u32(x3, (arg2[7]), (arg3[7]));
+ let mut x15: u32 = 0;
+ let (x15) = fiat_p384_cmovznz_u32(x3, (arg2[8]), (arg3[8]));
+ let mut x16: u32 = 0;
+ let (x16) = fiat_p384_cmovznz_u32(x3, (arg2[9]), (arg3[9]));
+ let mut x17: u32 = 0;
+ let (x17) = fiat_p384_cmovznz_u32(x3, (arg2[10]), (arg3[10]));
+ let mut x18: u32 = 0;
+ let (x18) = fiat_p384_cmovznz_u32(x3, (arg2[11]), (arg3[11]));
+ let mut x19: u32 = 0;
+ let (x19) = fiat_p384_cmovznz_u32(x3, (arg2[12]), (arg3[12]));
+ let mut x20: u32 = 0;
+ let mut x21: fiat_p384_u1 = 0;
+ let (x20, x21) = fiat_p384_addcarryx_u32(0x0, (0x1 as u32), (!(arg2[0])));
+ let mut x22: u32 = 0;
+ let mut x23: fiat_p384_u1 = 0;
+ let (x22, x23) = fiat_p384_addcarryx_u32(x21, (0x0 as u32), (!(arg2[1])));
+ let mut x24: u32 = 0;
+ let mut x25: fiat_p384_u1 = 0;
+ let (x24, x25) = fiat_p384_addcarryx_u32(x23, (0x0 as u32), (!(arg2[2])));
+ let mut x26: u32 = 0;
+ let mut x27: fiat_p384_u1 = 0;
+ let (x26, x27) = fiat_p384_addcarryx_u32(x25, (0x0 as u32), (!(arg2[3])));
+ let mut x28: u32 = 0;
+ let mut x29: fiat_p384_u1 = 0;
+ let (x28, x29) = fiat_p384_addcarryx_u32(x27, (0x0 as u32), (!(arg2[4])));
+ let mut x30: u32 = 0;
+ let mut x31: fiat_p384_u1 = 0;
+ let (x30, x31) = fiat_p384_addcarryx_u32(x29, (0x0 as u32), (!(arg2[5])));
+ let mut x32: u32 = 0;
+ let mut x33: fiat_p384_u1 = 0;
+ let (x32, x33) = fiat_p384_addcarryx_u32(x31, (0x0 as u32), (!(arg2[6])));
+ let mut x34: u32 = 0;
+ let mut x35: fiat_p384_u1 = 0;
+ let (x34, x35) = fiat_p384_addcarryx_u32(x33, (0x0 as u32), (!(arg2[7])));
+ let mut x36: u32 = 0;
+ let mut x37: fiat_p384_u1 = 0;
+ let (x36, x37) = fiat_p384_addcarryx_u32(x35, (0x0 as u32), (!(arg2[8])));
+ let mut x38: u32 = 0;
+ let mut x39: fiat_p384_u1 = 0;
+ let (x38, x39) = fiat_p384_addcarryx_u32(x37, (0x0 as u32), (!(arg2[9])));
+ let mut x40: u32 = 0;
+ let mut x41: fiat_p384_u1 = 0;
+ let (x40, x41) = fiat_p384_addcarryx_u32(x39, (0x0 as u32), (!(arg2[10])));
+ let mut x42: u32 = 0;
+ let mut x43: fiat_p384_u1 = 0;
+ let (x42, x43) = fiat_p384_addcarryx_u32(x41, (0x0 as u32), (!(arg2[11])));
+ let mut x44: u32 = 0;
+ let mut x45: fiat_p384_u1 = 0;
+ let (x44, x45) = fiat_p384_addcarryx_u32(x43, (0x0 as u32), (!(arg2[12])));
+ let mut x46: u32 = 0;
+ let (x46) = fiat_p384_cmovznz_u32(x3, (arg3[0]), x20);
+ let mut x47: u32 = 0;
+ let (x47) = fiat_p384_cmovznz_u32(x3, (arg3[1]), x22);
+ let mut x48: u32 = 0;
+ let (x48) = fiat_p384_cmovznz_u32(x3, (arg3[2]), x24);
+ let mut x49: u32 = 0;
+ let (x49) = fiat_p384_cmovznz_u32(x3, (arg3[3]), x26);
+ let mut x50: u32 = 0;
+ let (x50) = fiat_p384_cmovznz_u32(x3, (arg3[4]), x28);
+ let mut x51: u32 = 0;
+ let (x51) = fiat_p384_cmovznz_u32(x3, (arg3[5]), x30);
+ let mut x52: u32 = 0;
+ let (x52) = fiat_p384_cmovznz_u32(x3, (arg3[6]), x32);
+ let mut x53: u32 = 0;
+ let (x53) = fiat_p384_cmovznz_u32(x3, (arg3[7]), x34);
+ let mut x54: u32 = 0;
+ let (x54) = fiat_p384_cmovznz_u32(x3, (arg3[8]), x36);
+ let mut x55: u32 = 0;
+ let (x55) = fiat_p384_cmovznz_u32(x3, (arg3[9]), x38);
+ let mut x56: u32 = 0;
+ let (x56) = fiat_p384_cmovznz_u32(x3, (arg3[10]), x40);
+ let mut x57: u32 = 0;
+ let (x57) = fiat_p384_cmovznz_u32(x3, (arg3[11]), x42);
+ let mut x58: u32 = 0;
+ let (x58) = fiat_p384_cmovznz_u32(x3, (arg3[12]), x44);
+ let mut x59: u32 = 0;
+ let (x59) = fiat_p384_cmovznz_u32(x3, (arg4[0]), (arg5[0]));
+ let mut x60: u32 = 0;
+ let (x60) = fiat_p384_cmovznz_u32(x3, (arg4[1]), (arg5[1]));
+ let mut x61: u32 = 0;
+ let (x61) = fiat_p384_cmovznz_u32(x3, (arg4[2]), (arg5[2]));
+ let mut x62: u32 = 0;
+ let (x62) = fiat_p384_cmovznz_u32(x3, (arg4[3]), (arg5[3]));
+ let mut x63: u32 = 0;
+ let (x63) = fiat_p384_cmovznz_u32(x3, (arg4[4]), (arg5[4]));
+ let mut x64: u32 = 0;
+ let (x64) = fiat_p384_cmovznz_u32(x3, (arg4[5]), (arg5[5]));
+ let mut x65: u32 = 0;
+ let (x65) = fiat_p384_cmovznz_u32(x3, (arg4[6]), (arg5[6]));
+ let mut x66: u32 = 0;
+ let (x66) = fiat_p384_cmovznz_u32(x3, (arg4[7]), (arg5[7]));
+ let mut x67: u32 = 0;
+ let (x67) = fiat_p384_cmovznz_u32(x3, (arg4[8]), (arg5[8]));
+ let mut x68: u32 = 0;
+ let (x68) = fiat_p384_cmovznz_u32(x3, (arg4[9]), (arg5[9]));
+ let mut x69: u32 = 0;
+ let (x69) = fiat_p384_cmovznz_u32(x3, (arg4[10]), (arg5[10]));
+ let mut x70: u32 = 0;
+ let (x70) = fiat_p384_cmovznz_u32(x3, (arg4[11]), (arg5[11]));
+ let mut x71: u32 = 0;
+ let mut x72: fiat_p384_u1 = 0;
+ let (x71, x72) = fiat_p384_addcarryx_u32(0x0, x59, x59);
+ let mut x73: u32 = 0;
+ let mut x74: fiat_p384_u1 = 0;
+ let (x73, x74) = fiat_p384_addcarryx_u32(x72, x60, x60);
+ let mut x75: u32 = 0;
+ let mut x76: fiat_p384_u1 = 0;
+ let (x75, x76) = fiat_p384_addcarryx_u32(x74, x61, x61);
+ let mut x77: u32 = 0;
+ let mut x78: fiat_p384_u1 = 0;
+ let (x77, x78) = fiat_p384_addcarryx_u32(x76, x62, x62);
+ let mut x79: u32 = 0;
+ let mut x80: fiat_p384_u1 = 0;
+ let (x79, x80) = fiat_p384_addcarryx_u32(x78, x63, x63);
+ let mut x81: u32 = 0;
+ let mut x82: fiat_p384_u1 = 0;
+ let (x81, x82) = fiat_p384_addcarryx_u32(x80, x64, x64);
+ let mut x83: u32 = 0;
+ let mut x84: fiat_p384_u1 = 0;
+ let (x83, x84) = fiat_p384_addcarryx_u32(x82, x65, x65);
+ let mut x85: u32 = 0;
+ let mut x86: fiat_p384_u1 = 0;
+ let (x85, x86) = fiat_p384_addcarryx_u32(x84, x66, x66);
+ let mut x87: u32 = 0;
+ let mut x88: fiat_p384_u1 = 0;
+ let (x87, x88) = fiat_p384_addcarryx_u32(x86, x67, x67);
+ let mut x89: u32 = 0;
+ let mut x90: fiat_p384_u1 = 0;
+ let (x89, x90) = fiat_p384_addcarryx_u32(x88, x68, x68);
+ let mut x91: u32 = 0;
+ let mut x92: fiat_p384_u1 = 0;
+ let (x91, x92) = fiat_p384_addcarryx_u32(x90, x69, x69);
+ let mut x93: u32 = 0;
+ let mut x94: fiat_p384_u1 = 0;
+ let (x93, x94) = fiat_p384_addcarryx_u32(x92, x70, x70);
+ let mut x95: u32 = 0;
+ let mut x96: fiat_p384_u1 = 0;
+ let (x95, x96) = fiat_p384_subborrowx_u32(0x0, x71, 0xffffffff);
+ let mut x97: u32 = 0;
+ let mut x98: fiat_p384_u1 = 0;
+ let (x97, x98) = fiat_p384_subborrowx_u32(x96, x73, (0x0 as u32));
+ let mut x99: u32 = 0;
+ let mut x100: fiat_p384_u1 = 0;
+ let (x99, x100) = fiat_p384_subborrowx_u32(x98, x75, (0x0 as u32));
+ let mut x101: u32 = 0;
+ let mut x102: fiat_p384_u1 = 0;
+ let (x101, x102) = fiat_p384_subborrowx_u32(x100, x77, 0xffffffff);
+ let mut x103: u32 = 0;
+ let mut x104: fiat_p384_u1 = 0;
+ let (x103, x104) = fiat_p384_subborrowx_u32(x102, x79, 0xfffffffe);
+ let mut x105: u32 = 0;
+ let mut x106: fiat_p384_u1 = 0;
+ let (x105, x106) = fiat_p384_subborrowx_u32(x104, x81, 0xffffffff);
+ let mut x107: u32 = 0;
+ let mut x108: fiat_p384_u1 = 0;
+ let (x107, x108) = fiat_p384_subborrowx_u32(x106, x83, 0xffffffff);
+ let mut x109: u32 = 0;
+ let mut x110: fiat_p384_u1 = 0;
+ let (x109, x110) = fiat_p384_subborrowx_u32(x108, x85, 0xffffffff);
+ let mut x111: u32 = 0;
+ let mut x112: fiat_p384_u1 = 0;
+ let (x111, x112) = fiat_p384_subborrowx_u32(x110, x87, 0xffffffff);
+ let mut x113: u32 = 0;
+ let mut x114: fiat_p384_u1 = 0;
+ let (x113, x114) = fiat_p384_subborrowx_u32(x112, x89, 0xffffffff);
+ let mut x115: u32 = 0;
+ let mut x116: fiat_p384_u1 = 0;
+ let (x115, x116) = fiat_p384_subborrowx_u32(x114, x91, 0xffffffff);
+ let mut x117: u32 = 0;
+ let mut x118: fiat_p384_u1 = 0;
+ let (x117, x118) = fiat_p384_subborrowx_u32(x116, x93, 0xffffffff);
+ let mut x119: u32 = 0;
+ let mut x120: fiat_p384_u1 = 0;
+ let (x119, x120) = fiat_p384_subborrowx_u32(x118, (x94 as u32), (0x0 as u32));
+ let x121: u32 = (arg4[11]);
+ let x122: u32 = (arg4[10]);
+ let x123: u32 = (arg4[9]);
+ let x124: u32 = (arg4[8]);
+ let x125: u32 = (arg4[7]);
+ let x126: u32 = (arg4[6]);
+ let x127: u32 = (arg4[5]);
+ let x128: u32 = (arg4[4]);
+ let x129: u32 = (arg4[3]);
+ let x130: u32 = (arg4[2]);
+ let x131: u32 = (arg4[1]);
+ let x132: u32 = (arg4[0]);
+ let mut x133: u32 = 0;
+ let mut x134: fiat_p384_u1 = 0;
+ let (x133, x134) = fiat_p384_subborrowx_u32(0x0, (0x0 as u32), x132);
+ let mut x135: u32 = 0;
+ let mut x136: fiat_p384_u1 = 0;
+ let (x135, x136) = fiat_p384_subborrowx_u32(x134, (0x0 as u32), x131);
+ let mut x137: u32 = 0;
+ let mut x138: fiat_p384_u1 = 0;
+ let (x137, x138) = fiat_p384_subborrowx_u32(x136, (0x0 as u32), x130);
+ let mut x139: u32 = 0;
+ let mut x140: fiat_p384_u1 = 0;
+ let (x139, x140) = fiat_p384_subborrowx_u32(x138, (0x0 as u32), x129);
+ let mut x141: u32 = 0;
+ let mut x142: fiat_p384_u1 = 0;
+ let (x141, x142) = fiat_p384_subborrowx_u32(x140, (0x0 as u32), x128);
+ let mut x143: u32 = 0;
+ let mut x144: fiat_p384_u1 = 0;
+ let (x143, x144) = fiat_p384_subborrowx_u32(x142, (0x0 as u32), x127);
+ let mut x145: u32 = 0;
+ let mut x146: fiat_p384_u1 = 0;
+ let (x145, x146) = fiat_p384_subborrowx_u32(x144, (0x0 as u32), x126);
+ let mut x147: u32 = 0;
+ let mut x148: fiat_p384_u1 = 0;
+ let (x147, x148) = fiat_p384_subborrowx_u32(x146, (0x0 as u32), x125);
+ let mut x149: u32 = 0;
+ let mut x150: fiat_p384_u1 = 0;
+ let (x149, x150) = fiat_p384_subborrowx_u32(x148, (0x0 as u32), x124);
+ let mut x151: u32 = 0;
+ let mut x152: fiat_p384_u1 = 0;
+ let (x151, x152) = fiat_p384_subborrowx_u32(x150, (0x0 as u32), x123);
+ let mut x153: u32 = 0;
+ let mut x154: fiat_p384_u1 = 0;
+ let (x153, x154) = fiat_p384_subborrowx_u32(x152, (0x0 as u32), x122);
+ let mut x155: u32 = 0;
+ let mut x156: fiat_p384_u1 = 0;
+ let (x155, x156) = fiat_p384_subborrowx_u32(x154, (0x0 as u32), x121);
+ let mut x157: u32 = 0;
+ let (x157) = fiat_p384_cmovznz_u32(x156, (0x0 as u32), 0xffffffff);
+ let mut x158: u32 = 0;
+ let mut x159: fiat_p384_u1 = 0;
+ let (x158, x159) = fiat_p384_addcarryx_u32(0x0, x133, x157);
+ let mut x160: u32 = 0;
+ let mut x161: fiat_p384_u1 = 0;
+ let (x160, x161) = fiat_p384_addcarryx_u32(x159, x135, (0x0 as u32));
+ let mut x162: u32 = 0;
+ let mut x163: fiat_p384_u1 = 0;
+ let (x162, x163) = fiat_p384_addcarryx_u32(x161, x137, (0x0 as u32));
+ let mut x164: u32 = 0;
+ let mut x165: fiat_p384_u1 = 0;
+ let (x164, x165) = fiat_p384_addcarryx_u32(x163, x139, x157);
+ let mut x166: u32 = 0;
+ let mut x167: fiat_p384_u1 = 0;
+ let (x166, x167) = fiat_p384_addcarryx_u32(x165, x141, (x157 & 0xfffffffe));
+ let mut x168: u32 = 0;
+ let mut x169: fiat_p384_u1 = 0;
+ let (x168, x169) = fiat_p384_addcarryx_u32(x167, x143, x157);
+ let mut x170: u32 = 0;
+ let mut x171: fiat_p384_u1 = 0;
+ let (x170, x171) = fiat_p384_addcarryx_u32(x169, x145, x157);
+ let mut x172: u32 = 0;
+ let mut x173: fiat_p384_u1 = 0;
+ let (x172, x173) = fiat_p384_addcarryx_u32(x171, x147, x157);
+ let mut x174: u32 = 0;
+ let mut x175: fiat_p384_u1 = 0;
+ let (x174, x175) = fiat_p384_addcarryx_u32(x173, x149, x157);
+ let mut x176: u32 = 0;
+ let mut x177: fiat_p384_u1 = 0;
+ let (x176, x177) = fiat_p384_addcarryx_u32(x175, x151, x157);
+ let mut x178: u32 = 0;
+ let mut x179: fiat_p384_u1 = 0;
+ let (x178, x179) = fiat_p384_addcarryx_u32(x177, x153, x157);
+ let mut x180: u32 = 0;
+ let mut x181: fiat_p384_u1 = 0;
+ let (x180, x181) = fiat_p384_addcarryx_u32(x179, x155, x157);
+ let mut x182: u32 = 0;
+ let (x182) = fiat_p384_cmovznz_u32(x3, (arg5[0]), x158);
+ let mut x183: u32 = 0;
+ let (x183) = fiat_p384_cmovznz_u32(x3, (arg5[1]), x160);
+ let mut x184: u32 = 0;
+ let (x184) = fiat_p384_cmovznz_u32(x3, (arg5[2]), x162);
+ let mut x185: u32 = 0;
+ let (x185) = fiat_p384_cmovznz_u32(x3, (arg5[3]), x164);
+ let mut x186: u32 = 0;
+ let (x186) = fiat_p384_cmovznz_u32(x3, (arg5[4]), x166);
+ let mut x187: u32 = 0;
+ let (x187) = fiat_p384_cmovznz_u32(x3, (arg5[5]), x168);
+ let mut x188: u32 = 0;
+ let (x188) = fiat_p384_cmovznz_u32(x3, (arg5[6]), x170);
+ let mut x189: u32 = 0;
+ let (x189) = fiat_p384_cmovznz_u32(x3, (arg5[7]), x172);
+ let mut x190: u32 = 0;
+ let (x190) = fiat_p384_cmovznz_u32(x3, (arg5[8]), x174);
+ let mut x191: u32 = 0;
+ let (x191) = fiat_p384_cmovznz_u32(x3, (arg5[9]), x176);
+ let mut x192: u32 = 0;
+ let (x192) = fiat_p384_cmovznz_u32(x3, (arg5[10]), x178);
+ let mut x193: u32 = 0;
+ let (x193) = fiat_p384_cmovznz_u32(x3, (arg5[11]), x180);
+ let x194: fiat_p384_u1 = ((x46 & (0x1 as u32)) as fiat_p384_u1);
+ let mut x195: u32 = 0;
+ let (x195) = fiat_p384_cmovznz_u32(x194, (0x0 as u32), x7);
+ let mut x196: u32 = 0;
+ let (x196) = fiat_p384_cmovznz_u32(x194, (0x0 as u32), x8);
+ let mut x197: u32 = 0;
+ let (x197) = fiat_p384_cmovznz_u32(x194, (0x0 as u32), x9);
+ let mut x198: u32 = 0;
+ let (x198) = fiat_p384_cmovznz_u32(x194, (0x0 as u32), x10);
+ let mut x199: u32 = 0;
+ let (x199) = fiat_p384_cmovznz_u32(x194, (0x0 as u32), x11);
+ let mut x200: u32 = 0;
+ let (x200) = fiat_p384_cmovznz_u32(x194, (0x0 as u32), x12);
+ let mut x201: u32 = 0;
+ let (x201) = fiat_p384_cmovznz_u32(x194, (0x0 as u32), x13);
+ let mut x202: u32 = 0;
+ let (x202) = fiat_p384_cmovznz_u32(x194, (0x0 as u32), x14);
+ let mut x203: u32 = 0;
+ let (x203) = fiat_p384_cmovznz_u32(x194, (0x0 as u32), x15);
+ let mut x204: u32 = 0;
+ let (x204) = fiat_p384_cmovznz_u32(x194, (0x0 as u32), x16);
+ let mut x205: u32 = 0;
+ let (x205) = fiat_p384_cmovznz_u32(x194, (0x0 as u32), x17);
+ let mut x206: u32 = 0;
+ let (x206) = fiat_p384_cmovznz_u32(x194, (0x0 as u32), x18);
+ let mut x207: u32 = 0;
+ let (x207) = fiat_p384_cmovznz_u32(x194, (0x0 as u32), x19);
+ let mut x208: u32 = 0;
+ let mut x209: fiat_p384_u1 = 0;
+ let (x208, x209) = fiat_p384_addcarryx_u32(0x0, x46, x195);
+ let mut x210: u32 = 0;
+ let mut x211: fiat_p384_u1 = 0;
+ let (x210, x211) = fiat_p384_addcarryx_u32(x209, x47, x196);
+ let mut x212: u32 = 0;
+ let mut x213: fiat_p384_u1 = 0;
+ let (x212, x213) = fiat_p384_addcarryx_u32(x211, x48, x197);
+ let mut x214: u32 = 0;
+ let mut x215: fiat_p384_u1 = 0;
+ let (x214, x215) = fiat_p384_addcarryx_u32(x213, x49, x198);
+ let mut x216: u32 = 0;
+ let mut x217: fiat_p384_u1 = 0;
+ let (x216, x217) = fiat_p384_addcarryx_u32(x215, x50, x199);
+ let mut x218: u32 = 0;
+ let mut x219: fiat_p384_u1 = 0;
+ let (x218, x219) = fiat_p384_addcarryx_u32(x217, x51, x200);
+ let mut x220: u32 = 0;
+ let mut x221: fiat_p384_u1 = 0;
+ let (x220, x221) = fiat_p384_addcarryx_u32(x219, x52, x201);
+ let mut x222: u32 = 0;
+ let mut x223: fiat_p384_u1 = 0;
+ let (x222, x223) = fiat_p384_addcarryx_u32(x221, x53, x202);
+ let mut x224: u32 = 0;
+ let mut x225: fiat_p384_u1 = 0;
+ let (x224, x225) = fiat_p384_addcarryx_u32(x223, x54, x203);
+ let mut x226: u32 = 0;
+ let mut x227: fiat_p384_u1 = 0;
+ let (x226, x227) = fiat_p384_addcarryx_u32(x225, x55, x204);
+ let mut x228: u32 = 0;
+ let mut x229: fiat_p384_u1 = 0;
+ let (x228, x229) = fiat_p384_addcarryx_u32(x227, x56, x205);
+ let mut x230: u32 = 0;
+ let mut x231: fiat_p384_u1 = 0;
+ let (x230, x231) = fiat_p384_addcarryx_u32(x229, x57, x206);
+ let mut x232: u32 = 0;
+ let mut x233: fiat_p384_u1 = 0;
+ let (x232, x233) = fiat_p384_addcarryx_u32(x231, x58, x207);
+ let mut x234: u32 = 0;
+ let (x234) = fiat_p384_cmovznz_u32(x194, (0x0 as u32), x59);
+ let mut x235: u32 = 0;
+ let (x235) = fiat_p384_cmovznz_u32(x194, (0x0 as u32), x60);
+ let mut x236: u32 = 0;
+ let (x236) = fiat_p384_cmovznz_u32(x194, (0x0 as u32), x61);
+ let mut x237: u32 = 0;
+ let (x237) = fiat_p384_cmovznz_u32(x194, (0x0 as u32), x62);
+ let mut x238: u32 = 0;
+ let (x238) = fiat_p384_cmovznz_u32(x194, (0x0 as u32), x63);
+ let mut x239: u32 = 0;
+ let (x239) = fiat_p384_cmovznz_u32(x194, (0x0 as u32), x64);
+ let mut x240: u32 = 0;
+ let (x240) = fiat_p384_cmovznz_u32(x194, (0x0 as u32), x65);
+ let mut x241: u32 = 0;
+ let (x241) = fiat_p384_cmovznz_u32(x194, (0x0 as u32), x66);
+ let mut x242: u32 = 0;
+ let (x242) = fiat_p384_cmovznz_u32(x194, (0x0 as u32), x67);
+ let mut x243: u32 = 0;
+ let (x243) = fiat_p384_cmovznz_u32(x194, (0x0 as u32), x68);
+ let mut x244: u32 = 0;
+ let (x244) = fiat_p384_cmovznz_u32(x194, (0x0 as u32), x69);
+ let mut x245: u32 = 0;
+ let (x245) = fiat_p384_cmovznz_u32(x194, (0x0 as u32), x70);
+ let mut x246: u32 = 0;
+ let mut x247: fiat_p384_u1 = 0;
+ let (x246, x247) = fiat_p384_addcarryx_u32(0x0, x182, x234);
+ let mut x248: u32 = 0;
+ let mut x249: fiat_p384_u1 = 0;
+ let (x248, x249) = fiat_p384_addcarryx_u32(x247, x183, x235);
+ let mut x250: u32 = 0;
+ let mut x251: fiat_p384_u1 = 0;
+ let (x250, x251) = fiat_p384_addcarryx_u32(x249, x184, x236);
+ let mut x252: u32 = 0;
+ let mut x253: fiat_p384_u1 = 0;
+ let (x252, x253) = fiat_p384_addcarryx_u32(x251, x185, x237);
+ let mut x254: u32 = 0;
+ let mut x255: fiat_p384_u1 = 0;
+ let (x254, x255) = fiat_p384_addcarryx_u32(x253, x186, x238);
+ let mut x256: u32 = 0;
+ let mut x257: fiat_p384_u1 = 0;
+ let (x256, x257) = fiat_p384_addcarryx_u32(x255, x187, x239);
+ let mut x258: u32 = 0;
+ let mut x259: fiat_p384_u1 = 0;
+ let (x258, x259) = fiat_p384_addcarryx_u32(x257, x188, x240);
+ let mut x260: u32 = 0;
+ let mut x261: fiat_p384_u1 = 0;
+ let (x260, x261) = fiat_p384_addcarryx_u32(x259, x189, x241);
+ let mut x262: u32 = 0;
+ let mut x263: fiat_p384_u1 = 0;
+ let (x262, x263) = fiat_p384_addcarryx_u32(x261, x190, x242);
+ let mut x264: u32 = 0;
+ let mut x265: fiat_p384_u1 = 0;
+ let (x264, x265) = fiat_p384_addcarryx_u32(x263, x191, x243);
+ let mut x266: u32 = 0;
+ let mut x267: fiat_p384_u1 = 0;
+ let (x266, x267) = fiat_p384_addcarryx_u32(x265, x192, x244);
+ let mut x268: u32 = 0;
+ let mut x269: fiat_p384_u1 = 0;
+ let (x268, x269) = fiat_p384_addcarryx_u32(x267, x193, x245);
+ let mut x270: u32 = 0;
+ let mut x271: fiat_p384_u1 = 0;
+ let (x270, x271) = fiat_p384_subborrowx_u32(0x0, x246, 0xffffffff);
+ let mut x272: u32 = 0;
+ let mut x273: fiat_p384_u1 = 0;
+ let (x272, x273) = fiat_p384_subborrowx_u32(x271, x248, (0x0 as u32));
+ let mut x274: u32 = 0;
+ let mut x275: fiat_p384_u1 = 0;
+ let (x274, x275) = fiat_p384_subborrowx_u32(x273, x250, (0x0 as u32));
+ let mut x276: u32 = 0;
+ let mut x277: fiat_p384_u1 = 0;
+ let (x276, x277) = fiat_p384_subborrowx_u32(x275, x252, 0xffffffff);
+ let mut x278: u32 = 0;
+ let mut x279: fiat_p384_u1 = 0;
+ let (x278, x279) = fiat_p384_subborrowx_u32(x277, x254, 0xfffffffe);
+ let mut x280: u32 = 0;
+ let mut x281: fiat_p384_u1 = 0;
+ let (x280, x281) = fiat_p384_subborrowx_u32(x279, x256, 0xffffffff);
+ let mut x282: u32 = 0;
+ let mut x283: fiat_p384_u1 = 0;
+ let (x282, x283) = fiat_p384_subborrowx_u32(x281, x258, 0xffffffff);
+ let mut x284: u32 = 0;
+ let mut x285: fiat_p384_u1 = 0;
+ let (x284, x285) = fiat_p384_subborrowx_u32(x283, x260, 0xffffffff);
+ let mut x286: u32 = 0;
+ let mut x287: fiat_p384_u1 = 0;
+ let (x286, x287) = fiat_p384_subborrowx_u32(x285, x262, 0xffffffff);
+ let mut x288: u32 = 0;
+ let mut x289: fiat_p384_u1 = 0;
+ let (x288, x289) = fiat_p384_subborrowx_u32(x287, x264, 0xffffffff);
+ let mut x290: u32 = 0;
+ let mut x291: fiat_p384_u1 = 0;
+ let (x290, x291) = fiat_p384_subborrowx_u32(x289, x266, 0xffffffff);
+ let mut x292: u32 = 0;
+ let mut x293: fiat_p384_u1 = 0;
+ let (x292, x293) = fiat_p384_subborrowx_u32(x291, x268, 0xffffffff);
+ let mut x294: u32 = 0;
+ let mut x295: fiat_p384_u1 = 0;
+ let (x294, x295) = fiat_p384_subborrowx_u32(x293, (x269 as u32), (0x0 as u32));
+ let mut x296: u32 = 0;
+ let mut x297: fiat_p384_u1 = 0;
+ let (x296, x297) = fiat_p384_addcarryx_u32(0x0, x6, (0x1 as u32));
+ let x298: u32 = ((x208 >> 1) | ((x210 << 31) & 0xffffffff));
+ let x299: u32 = ((x210 >> 1) | ((x212 << 31) & 0xffffffff));
+ let x300: u32 = ((x212 >> 1) | ((x214 << 31) & 0xffffffff));
+ let x301: u32 = ((x214 >> 1) | ((x216 << 31) & 0xffffffff));
+ let x302: u32 = ((x216 >> 1) | ((x218 << 31) & 0xffffffff));
+ let x303: u32 = ((x218 >> 1) | ((x220 << 31) & 0xffffffff));
+ let x304: u32 = ((x220 >> 1) | ((x222 << 31) & 0xffffffff));
+ let x305: u32 = ((x222 >> 1) | ((x224 << 31) & 0xffffffff));
+ let x306: u32 = ((x224 >> 1) | ((x226 << 31) & 0xffffffff));
+ let x307: u32 = ((x226 >> 1) | ((x228 << 31) & 0xffffffff));
+ let x308: u32 = ((x228 >> 1) | ((x230 << 31) & 0xffffffff));
+ let x309: u32 = ((x230 >> 1) | ((x232 << 31) & 0xffffffff));
+ let x310: u32 = ((x232 & 0x80000000) | (x232 >> 1));
+ let mut x311: u32 = 0;
+ let (x311) = fiat_p384_cmovznz_u32(x120, x95, x71);
+ let mut x312: u32 = 0;
+ let (x312) = fiat_p384_cmovznz_u32(x120, x97, x73);
+ let mut x313: u32 = 0;
+ let (x313) = fiat_p384_cmovznz_u32(x120, x99, x75);
+ let mut x314: u32 = 0;
+ let (x314) = fiat_p384_cmovznz_u32(x120, x101, x77);
+ let mut x315: u32 = 0;
+ let (x315) = fiat_p384_cmovznz_u32(x120, x103, x79);
+ let mut x316: u32 = 0;
+ let (x316) = fiat_p384_cmovznz_u32(x120, x105, x81);
+ let mut x317: u32 = 0;
+ let (x317) = fiat_p384_cmovznz_u32(x120, x107, x83);
+ let mut x318: u32 = 0;
+ let (x318) = fiat_p384_cmovznz_u32(x120, x109, x85);
+ let mut x319: u32 = 0;
+ let (x319) = fiat_p384_cmovznz_u32(x120, x111, x87);
+ let mut x320: u32 = 0;
+ let (x320) = fiat_p384_cmovznz_u32(x120, x113, x89);
+ let mut x321: u32 = 0;
+ let (x321) = fiat_p384_cmovznz_u32(x120, x115, x91);
+ let mut x322: u32 = 0;
+ let (x322) = fiat_p384_cmovznz_u32(x120, x117, x93);
+ let mut x323: u32 = 0;
+ let (x323) = fiat_p384_cmovznz_u32(x295, x270, x246);
+ let mut x324: u32 = 0;
+ let (x324) = fiat_p384_cmovznz_u32(x295, x272, x248);
+ let mut x325: u32 = 0;
+ let (x325) = fiat_p384_cmovznz_u32(x295, x274, x250);
+ let mut x326: u32 = 0;
+ let (x326) = fiat_p384_cmovznz_u32(x295, x276, x252);
+ let mut x327: u32 = 0;
+ let (x327) = fiat_p384_cmovznz_u32(x295, x278, x254);
+ let mut x328: u32 = 0;
+ let (x328) = fiat_p384_cmovznz_u32(x295, x280, x256);
+ let mut x329: u32 = 0;
+ let (x329) = fiat_p384_cmovznz_u32(x295, x282, x258);
+ let mut x330: u32 = 0;
+ let (x330) = fiat_p384_cmovznz_u32(x295, x284, x260);
+ let mut x331: u32 = 0;
+ let (x331) = fiat_p384_cmovznz_u32(x295, x286, x262);
+ let mut x332: u32 = 0;
+ let (x332) = fiat_p384_cmovznz_u32(x295, x288, x264);
+ let mut x333: u32 = 0;
+ let (x333) = fiat_p384_cmovznz_u32(x295, x290, x266);
+ let mut x334: u32 = 0;
+ let (x334) = fiat_p384_cmovznz_u32(x295, x292, x268);
+ out1 = x296;
+ out2[0] = x7;
+ out2[1] = x8;
+ out2[2] = x9;
+ out2[3] = x10;
+ out2[4] = x11;
+ out2[5] = x12;
+ out2[6] = x13;
+ out2[7] = x14;
+ out2[8] = x15;
+ out2[9] = x16;
+ out2[10] = x17;
+ out2[11] = x18;
+ out2[12] = x19;
+ out3[0] = x298;
+ out3[1] = x299;
+ out3[2] = x300;
+ out3[3] = x301;
+ out3[4] = x302;
+ out3[5] = x303;
+ out3[6] = x304;
+ out3[7] = x305;
+ out3[8] = x306;
+ out3[9] = x307;
+ out3[10] = x308;
+ out3[11] = x309;
+ out3[12] = x310;
+ out4[0] = x311;
+ out4[1] = x312;
+ out4[2] = x313;
+ out4[3] = x314;
+ out4[4] = x315;
+ out4[5] = x316;
+ out4[6] = x317;
+ out4[7] = x318;
+ out4[8] = x319;
+ out4[9] = x320;
+ out4[10] = x321;
+ out4[11] = x322;
+ out5[0] = x323;
+ out5[1] = x324;
+ out5[2] = x325;
+ out5[3] = x326;
+ out5[4] = x327;
+ out5[5] = x328;
+ out5[6] = x329;
+ out5[7] = x330;
+ out5[8] = x331;
+ out5[9] = x332;
+ out5[10] = x333;
+ out5[11] = x334;
+ (out1, out2, out3, out4, out5)
+}
+#[doc = " The function fiat_p384_divstep_precomp returns the precomputed value for Bernstein-Yang-inversion (in montgomery form)."]
+#[doc = ""]
+#[doc = " Postconditions:"]
+#[doc = " eval (from_montgomery out1) = ⌊(m - 1) / 2⌋^(if ⌊log2 m⌋ + 1 < 46 then ⌊(49 * (⌊log2 m⌋ + 1) + 80) / 17⌋ else ⌊(49 * (⌊log2 m⌋ + 1) + 57) / 17⌋)"]
+#[doc = " 0 ≤ eval out1 < m"]
+#[doc = ""]
+#[doc = " Output Bounds:"]
+#[doc = " out1: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]]"]
+#[inline]
+pub const fn fiat_p384_divstep_precomp() -> [u32; 12] {
+ let mut out1: [u32; 12] = [0; 12];
+ out1[0] = 0xfff18fff;
+ out1[1] = 0xfff69400;
+ out1[2] = 0xffffd3ff;
+ out1[3] = 0x2b7fe;
+ out1[4] = 0xfffe97ff;
+ out1[5] = 0xfffedbff;
+ out1[6] = 0x2fff;
+ out1[7] = 0x28400;
+ out1[8] = 0x50400;
+ out1[9] = 0x60400;
+ out1[10] = 0x38000;
+ out1[11] = 0xfffc4800;
+ out1
+}
diff --git a/vendor/p384/src/arithmetic/field/p384_64.rs b/vendor/p384/src/arithmetic/field/p384_64.rs
new file mode 100644
index 000000000..3269a504b
--- /dev/null
+++ b/vendor/p384/src/arithmetic/field/p384_64.rs
@@ -0,0 +1,3661 @@
+#![doc = " fiat-crypto output postprocessed by fiat-constify: https://github.com/rustcrypto/utils"]
+#![doc = " Autogenerated: 'src/ExtractionOCaml/word_by_word_montgomery' --lang Rust --inline p384 64 '2^384 - 2^128 - 2^96 + 2^32 - 1' mul square add sub opp from_montgomery to_montgomery nonzero selectznz to_bytes from_bytes one msat divstep divstep_precomp"]
+#![doc = " curve description: p384"]
+#![doc = " machine_wordsize = 64 (from \"64\")"]
+#![doc = " requested operations: mul, square, add, sub, opp, from_montgomery, to_montgomery, nonzero, selectznz, to_bytes, from_bytes, one, msat, divstep, divstep_precomp"]
+#![doc = " m = 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff (from \"2^384 - 2^128 - 2^96 + 2^32 - 1\")"]
+#![doc = ""]
+#![doc = " NOTE: In addition to the bounds specified above each function, all"]
+#![doc = " functions synthesized for this Montgomery arithmetic require the"]
+#![doc = " input to be strictly less than the prime modulus (m), and also"]
+#![doc = " require the input to be in the unique saturated representation."]
+#![doc = " All functions also ensure that these two properties are true of"]
+#![doc = " return values."]
+#![doc = ""]
+#![doc = " Computed values:"]
+#![doc = " eval z = z[0] + (z[1] << 64) + (z[2] << 128) + (z[3] << 192) + (z[4] << 256) + (z[5] << 0x140)"]
+#![doc = " 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)"]
+#![doc = " twos_complement_eval z = let x1 := z[0] + (z[1] << 64) + (z[2] << 128) + (z[3] << 192) + (z[4] << 256) + (z[5] << 0x140) in"]
+#![doc = " if x1 & (2^384-1) < 2^383 then x1 & (2^384-1) else (x1 & (2^384-1)) - 2^384"]
+#![allow(unused_parens)]
+#![allow(non_camel_case_types)]
+#![allow(
+ dead_code,
+ rustdoc::bare_urls,
+ rustdoc::broken_intra_doc_links,
+ unused_assignments,
+ unused_mut,
+ unused_variables
+)]
+pub type fiat_p384_u1 = u8;
+pub type fiat_p384_i1 = i8;
+pub type fiat_p384_u2 = u8;
+pub type fiat_p384_i2 = i8;
+pub type fiat_p384_montgomery_domain_field_element = [u64; 6];
+pub type fiat_p384_non_montgomery_domain_field_element = [u64; 6];
+#[doc = " The function fiat_p384_addcarryx_u64 is an addition with carry."]
+#[doc = ""]
+#[doc = " Postconditions:"]
+#[doc = " out1 = (arg1 + arg2 + arg3) mod 2^64"]
+#[doc = " out2 = ⌊(arg1 + arg2 + arg3) / 2^64⌋"]
+#[doc = ""]
+#[doc = " Input Bounds:"]
+#[doc = " arg1: [0x0 ~> 0x1]"]
+#[doc = " arg2: [0x0 ~> 0xffffffffffffffff]"]
+#[doc = " arg3: [0x0 ~> 0xffffffffffffffff]"]
+#[doc = " Output Bounds:"]
+#[doc = " out1: [0x0 ~> 0xffffffffffffffff]"]
+#[doc = " out2: [0x0 ~> 0x1]"]
+#[inline]
+pub const fn fiat_p384_addcarryx_u64(
+ arg1: fiat_p384_u1,
+ arg2: u64,
+ arg3: u64,
+) -> (u64, fiat_p384_u1) {
+ let mut out1: u64 = 0;
+ let mut out2: fiat_p384_u1 = 0;
+ let x1: u128 = (((arg1 as u128) + (arg2 as u128)) + (arg3 as u128));
+ let x2: u64 = ((x1 & (0xffffffffffffffff as u128)) as u64);
+ let x3: fiat_p384_u1 = ((x1 >> 64) as fiat_p384_u1);
+ out1 = x2;
+ out2 = x3;
+ (out1, out2)
+}
+#[doc = " The function fiat_p384_subborrowx_u64 is a subtraction with borrow."]
+#[doc = ""]
+#[doc = " Postconditions:"]
+#[doc = " out1 = (-arg1 + arg2 + -arg3) mod 2^64"]
+#[doc = " out2 = -⌊(-arg1 + arg2 + -arg3) / 2^64⌋"]
+#[doc = ""]
+#[doc = " Input Bounds:"]
+#[doc = " arg1: [0x0 ~> 0x1]"]
+#[doc = " arg2: [0x0 ~> 0xffffffffffffffff]"]
+#[doc = " arg3: [0x0 ~> 0xffffffffffffffff]"]
+#[doc = " Output Bounds:"]
+#[doc = " out1: [0x0 ~> 0xffffffffffffffff]"]
+#[doc = " out2: [0x0 ~> 0x1]"]
+#[inline]
+pub const fn fiat_p384_subborrowx_u64(
+ arg1: fiat_p384_u1,
+ arg2: u64,
+ arg3: u64,
+) -> (u64, fiat_p384_u1) {
+ let mut out1: u64 = 0;
+ let mut out2: fiat_p384_u1 = 0;
+ let x1: i128 = (((arg2 as i128) - (arg1 as i128)) - (arg3 as i128));
+ let x2: fiat_p384_i1 = ((x1 >> 64) as fiat_p384_i1);
+ let x3: u64 = ((x1 & (0xffffffffffffffff as i128)) as u64);
+ out1 = x3;
+ out2 = (((0x0 as fiat_p384_i2) - (x2 as fiat_p384_i2)) as fiat_p384_u1);
+ (out1, out2)
+}
+#[doc = " The function fiat_p384_mulx_u64 is a multiplication, returning the full double-width result."]
+#[doc = ""]
+#[doc = " Postconditions:"]
+#[doc = " out1 = (arg1 * arg2) mod 2^64"]
+#[doc = " out2 = ⌊arg1 * arg2 / 2^64⌋"]
+#[doc = ""]
+#[doc = " Input Bounds:"]
+#[doc = " arg1: [0x0 ~> 0xffffffffffffffff]"]
+#[doc = " arg2: [0x0 ~> 0xffffffffffffffff]"]
+#[doc = " Output Bounds:"]
+#[doc = " out1: [0x0 ~> 0xffffffffffffffff]"]
+#[doc = " out2: [0x0 ~> 0xffffffffffffffff]"]
+#[inline]
+pub const fn fiat_p384_mulx_u64(arg1: u64, arg2: u64) -> (u64, u64) {
+ let mut out1: u64 = 0;
+ let mut out2: u64 = 0;
+ let x1: u128 = ((arg1 as u128) * (arg2 as u128));
+ let x2: u64 = ((x1 & (0xffffffffffffffff as u128)) as u64);
+ let x3: u64 = ((x1 >> 64) as u64);
+ out1 = x2;
+ out2 = x3;
+ (out1, out2)
+}
+#[doc = " The function fiat_p384_cmovznz_u64 is a single-word conditional move."]
+#[doc = ""]
+#[doc = " Postconditions:"]
+#[doc = " out1 = (if arg1 = 0 then arg2 else arg3)"]
+#[doc = ""]
+#[doc = " Input Bounds:"]
+#[doc = " arg1: [0x0 ~> 0x1]"]
+#[doc = " arg2: [0x0 ~> 0xffffffffffffffff]"]
+#[doc = " arg3: [0x0 ~> 0xffffffffffffffff]"]
+#[doc = " Output Bounds:"]
+#[doc = " out1: [0x0 ~> 0xffffffffffffffff]"]
+#[inline]
+pub const fn fiat_p384_cmovznz_u64(arg1: fiat_p384_u1, arg2: u64, arg3: u64) -> u64 {
+ let mut out1: u64 = 0;
+ let x1: fiat_p384_u1 = (!(!arg1));
+ let x2: u64 = ((((((0x0 as fiat_p384_i2) - (x1 as fiat_p384_i2)) as fiat_p384_i1) as i128)
+ & (0xffffffffffffffff as i128)) as u64);
+ let x3: u64 = ((x2 & arg3) | ((!x2) & arg2));
+ out1 = x3;
+ out1
+}
+#[doc = " The function fiat_p384_mul multiplies two field elements in the Montgomery domain."]
+#[doc = ""]
+#[doc = " Preconditions:"]
+#[doc = " 0 ≤ eval arg1 < m"]
+#[doc = " 0 ≤ eval arg2 < m"]
+#[doc = " Postconditions:"]
+#[doc = " eval (from_montgomery out1) mod m = (eval (from_montgomery arg1) * eval (from_montgomery arg2)) mod m"]
+#[doc = " 0 ≤ eval out1 < m"]
+#[doc = ""]
+#[inline]
+pub const fn fiat_p384_mul(
+ arg1: &fiat_p384_montgomery_domain_field_element,
+ arg2: &fiat_p384_montgomery_domain_field_element,
+) -> fiat_p384_montgomery_domain_field_element {
+ let mut out1: fiat_p384_montgomery_domain_field_element = [0; 6];
+ let x1: u64 = (arg1[1]);
+ let x2: u64 = (arg1[2]);
+ let x3: u64 = (arg1[3]);
+ let x4: u64 = (arg1[4]);
+ let x5: u64 = (arg1[5]);
+ let x6: u64 = (arg1[0]);
+ let mut x7: u64 = 0;
+ let mut x8: u64 = 0;
+ let (x7, x8) = fiat_p384_mulx_u64(x6, (arg2[5]));
+ let mut x9: u64 = 0;
+ let mut x10: u64 = 0;
+ let (x9, x10) = fiat_p384_mulx_u64(x6, (arg2[4]));
+ let mut x11: u64 = 0;
+ let mut x12: u64 = 0;
+ let (x11, x12) = fiat_p384_mulx_u64(x6, (arg2[3]));
+ let mut x13: u64 = 0;
+ let mut x14: u64 = 0;
+ let (x13, x14) = fiat_p384_mulx_u64(x6, (arg2[2]));
+ let mut x15: u64 = 0;
+ let mut x16: u64 = 0;
+ let (x15, x16) = fiat_p384_mulx_u64(x6, (arg2[1]));
+ let mut x17: u64 = 0;
+ let mut x18: u64 = 0;
+ let (x17, x18) = fiat_p384_mulx_u64(x6, (arg2[0]));
+ let mut x19: u64 = 0;
+ let mut x20: fiat_p384_u1 = 0;
+ let (x19, x20) = fiat_p384_addcarryx_u64(0x0, x18, x15);
+ let mut x21: u64 = 0;
+ let mut x22: fiat_p384_u1 = 0;
+ let (x21, x22) = fiat_p384_addcarryx_u64(x20, x16, x13);
+ let mut x23: u64 = 0;
+ let mut x24: fiat_p384_u1 = 0;
+ let (x23, x24) = fiat_p384_addcarryx_u64(x22, x14, x11);
+ let mut x25: u64 = 0;
+ let mut x26: fiat_p384_u1 = 0;
+ let (x25, x26) = fiat_p384_addcarryx_u64(x24, x12, x9);
+ let mut x27: u64 = 0;
+ let mut x28: fiat_p384_u1 = 0;
+ let (x27, x28) = fiat_p384_addcarryx_u64(x26, x10, x7);
+ let x29: u64 = ((x28 as u64) + x8);
+ let mut x30: u64 = 0;
+ let mut x31: u64 = 0;
+ let (x30, x31) = fiat_p384_mulx_u64(x17, 0x100000001);
+ let mut x32: u64 = 0;
+ let mut x33: u64 = 0;
+ let (x32, x33) = fiat_p384_mulx_u64(x30, 0xffffffffffffffff);
+ let mut x34: u64 = 0;
+ let mut x35: u64 = 0;
+ let (x34, x35) = fiat_p384_mulx_u64(x30, 0xffffffffffffffff);
+ let mut x36: u64 = 0;
+ let mut x37: u64 = 0;
+ let (x36, x37) = fiat_p384_mulx_u64(x30, 0xffffffffffffffff);
+ let mut x38: u64 = 0;
+ let mut x39: u64 = 0;
+ let (x38, x39) = fiat_p384_mulx_u64(x30, 0xfffffffffffffffe);
+ let mut x40: u64 = 0;
+ let mut x41: u64 = 0;
+ let (x40, x41) = fiat_p384_mulx_u64(x30, 0xffffffff00000000);
+ let mut x42: u64 = 0;
+ let mut x43: u64 = 0;
+ let (x42, x43) = fiat_p384_mulx_u64(x30, 0xffffffff);
+ let mut x44: u64 = 0;
+ let mut x45: fiat_p384_u1 = 0;
+ let (x44, x45) = fiat_p384_addcarryx_u64(0x0, x43, x40);
+ let mut x46: u64 = 0;
+ let mut x47: fiat_p384_u1 = 0;
+ let (x46, x47) = fiat_p384_addcarryx_u64(x45, x41, x38);
+ let mut x48: u64 = 0;
+ let mut x49: fiat_p384_u1 = 0;
+ let (x48, x49) = fiat_p384_addcarryx_u64(x47, x39, x36);
+ let mut x50: u64 = 0;
+ let mut x51: fiat_p384_u1 = 0;
+ let (x50, x51) = fiat_p384_addcarryx_u64(x49, x37, x34);
+ let mut x52: u64 = 0;
+ let mut x53: fiat_p384_u1 = 0;
+ let (x52, x53) = fiat_p384_addcarryx_u64(x51, x35, x32);
+ let x54: u64 = ((x53 as u64) + x33);
+ let mut x55: u64 = 0;
+ let mut x56: fiat_p384_u1 = 0;
+ let (x55, x56) = fiat_p384_addcarryx_u64(0x0, x17, x42);
+ let mut x57: u64 = 0;
+ let mut x58: fiat_p384_u1 = 0;
+ let (x57, x58) = fiat_p384_addcarryx_u64(x56, x19, x44);
+ let mut x59: u64 = 0;
+ let mut x60: fiat_p384_u1 = 0;
+ let (x59, x60) = fiat_p384_addcarryx_u64(x58, x21, x46);
+ let mut x61: u64 = 0;
+ let mut x62: fiat_p384_u1 = 0;
+ let (x61, x62) = fiat_p384_addcarryx_u64(x60, x23, x48);
+ let mut x63: u64 = 0;
+ let mut x64: fiat_p384_u1 = 0;
+ let (x63, x64) = fiat_p384_addcarryx_u64(x62, x25, x50);
+ let mut x65: u64 = 0;
+ let mut x66: fiat_p384_u1 = 0;
+ let (x65, x66) = fiat_p384_addcarryx_u64(x64, x27, x52);
+ let mut x67: u64 = 0;
+ let mut x68: fiat_p384_u1 = 0;
+ let (x67, x68) = fiat_p384_addcarryx_u64(x66, x29, x54);
+ let mut x69: u64 = 0;
+ let mut x70: u64 = 0;
+ let (x69, x70) = fiat_p384_mulx_u64(x1, (arg2[5]));
+ let mut x71: u64 = 0;
+ let mut x72: u64 = 0;
+ let (x71, x72) = fiat_p384_mulx_u64(x1, (arg2[4]));
+ let mut x73: u64 = 0;
+ let mut x74: u64 = 0;
+ let (x73, x74) = fiat_p384_mulx_u64(x1, (arg2[3]));
+ let mut x75: u64 = 0;
+ let mut x76: u64 = 0;
+ let (x75, x76) = fiat_p384_mulx_u64(x1, (arg2[2]));
+ let mut x77: u64 = 0;
+ let mut x78: u64 = 0;
+ let (x77, x78) = fiat_p384_mulx_u64(x1, (arg2[1]));
+ let mut x79: u64 = 0;
+ let mut x80: u64 = 0;
+ let (x79, x80) = fiat_p384_mulx_u64(x1, (arg2[0]));
+ let mut x81: u64 = 0;
+ let mut x82: fiat_p384_u1 = 0;
+ let (x81, x82) = fiat_p384_addcarryx_u64(0x0, x80, x77);
+ let mut x83: u64 = 0;
+ let mut x84: fiat_p384_u1 = 0;
+ let (x83, x84) = fiat_p384_addcarryx_u64(x82, x78, x75);
+ let mut x85: u64 = 0;
+ let mut x86: fiat_p384_u1 = 0;
+ let (x85, x86) = fiat_p384_addcarryx_u64(x84, x76, x73);
+ let mut x87: u64 = 0;
+ let mut x88: fiat_p384_u1 = 0;
+ let (x87, x88) = fiat_p384_addcarryx_u64(x86, x74, x71);
+ let mut x89: u64 = 0;
+ let mut x90: fiat_p384_u1 = 0;
+ let (x89, x90) = fiat_p384_addcarryx_u64(x88, x72, x69);
+ let x91: u64 = ((x90 as u64) + x70);
+ let mut x92: u64 = 0;
+ let mut x93: fiat_p384_u1 = 0;
+ let (x92, x93) = fiat_p384_addcarryx_u64(0x0, x57, x79);
+ let mut x94: u64 = 0;
+ let mut x95: fiat_p384_u1 = 0;
+ let (x94, x95) = fiat_p384_addcarryx_u64(x93, x59, x81);
+ let mut x96: u64 = 0;
+ let mut x97: fiat_p384_u1 = 0;
+ let (x96, x97) = fiat_p384_addcarryx_u64(x95, x61, x83);
+ let mut x98: u64 = 0;
+ let mut x99: fiat_p384_u1 = 0;
+ let (x98, x99) = fiat_p384_addcarryx_u64(x97, x63, x85);
+ let mut x100: u64 = 0;
+ let mut x101: fiat_p384_u1 = 0;
+ let (x100, x101) = fiat_p384_addcarryx_u64(x99, x65, x87);
+ let mut x102: u64 = 0;
+ let mut x103: fiat_p384_u1 = 0;
+ let (x102, x103) = fiat_p384_addcarryx_u64(x101, x67, x89);
+ let mut x104: u64 = 0;
+ let mut x105: fiat_p384_u1 = 0;
+ let (x104, x105) = fiat_p384_addcarryx_u64(x103, (x68 as u64), x91);
+ let mut x106: u64 = 0;
+ let mut x107: u64 = 0;
+ let (x106, x107) = fiat_p384_mulx_u64(x92, 0x100000001);
+ let mut x108: u64 = 0;
+ let mut x109: u64 = 0;
+ let (x108, x109) = fiat_p384_mulx_u64(x106, 0xffffffffffffffff);
+ let mut x110: u64 = 0;
+ let mut x111: u64 = 0;
+ let (x110, x111) = fiat_p384_mulx_u64(x106, 0xffffffffffffffff);
+ let mut x112: u64 = 0;
+ let mut x113: u64 = 0;
+ let (x112, x113) = fiat_p384_mulx_u64(x106, 0xffffffffffffffff);
+ let mut x114: u64 = 0;
+ let mut x115: u64 = 0;
+ let (x114, x115) = fiat_p384_mulx_u64(x106, 0xfffffffffffffffe);
+ let mut x116: u64 = 0;
+ let mut x117: u64 = 0;
+ let (x116, x117) = fiat_p384_mulx_u64(x106, 0xffffffff00000000);
+ let mut x118: u64 = 0;
+ let mut x119: u64 = 0;
+ let (x118, x119) = fiat_p384_mulx_u64(x106, 0xffffffff);
+ let mut x120: u64 = 0;
+ let mut x121: fiat_p384_u1 = 0;
+ let (x120, x121) = fiat_p384_addcarryx_u64(0x0, x119, x116);
+ let mut x122: u64 = 0;
+ let mut x123: fiat_p384_u1 = 0;
+ let (x122, x123) = fiat_p384_addcarryx_u64(x121, x117, x114);
+ let mut x124: u64 = 0;
+ let mut x125: fiat_p384_u1 = 0;
+ let (x124, x125) = fiat_p384_addcarryx_u64(x123, x115, x112);
+ let mut x126: u64 = 0;
+ let mut x127: fiat_p384_u1 = 0;
+ let (x126, x127) = fiat_p384_addcarryx_u64(x125, x113, x110);
+ let mut x128: u64 = 0;
+ let mut x129: fiat_p384_u1 = 0;
+ let (x128, x129) = fiat_p384_addcarryx_u64(x127, x111, x108);
+ let x130: u64 = ((x129 as u64) + x109);
+ let mut x131: u64 = 0;
+ let mut x132: fiat_p384_u1 = 0;
+ let (x131, x132) = fiat_p384_addcarryx_u64(0x0, x92, x118);
+ let mut x133: u64 = 0;
+ let mut x134: fiat_p384_u1 = 0;
+ let (x133, x134) = fiat_p384_addcarryx_u64(x132, x94, x120);
+ let mut x135: u64 = 0;
+ let mut x136: fiat_p384_u1 = 0;
+ let (x135, x136) = fiat_p384_addcarryx_u64(x134, x96, x122);
+ let mut x137: u64 = 0;
+ let mut x138: fiat_p384_u1 = 0;
+ let (x137, x138) = fiat_p384_addcarryx_u64(x136, x98, x124);
+ let mut x139: u64 = 0;
+ let mut x140: fiat_p384_u1 = 0;
+ let (x139, x140) = fiat_p384_addcarryx_u64(x138, x100, x126);
+ let mut x141: u64 = 0;
+ let mut x142: fiat_p384_u1 = 0;
+ let (x141, x142) = fiat_p384_addcarryx_u64(x140, x102, x128);
+ let mut x143: u64 = 0;
+ let mut x144: fiat_p384_u1 = 0;
+ let (x143, x144) = fiat_p384_addcarryx_u64(x142, x104, x130);
+ let x145: u64 = ((x144 as u64) + (x105 as u64));
+ let mut x146: u64 = 0;
+ let mut x147: u64 = 0;
+ let (x146, x147) = fiat_p384_mulx_u64(x2, (arg2[5]));
+ let mut x148: u64 = 0;
+ let mut x149: u64 = 0;
+ let (x148, x149) = fiat_p384_mulx_u64(x2, (arg2[4]));
+ let mut x150: u64 = 0;
+ let mut x151: u64 = 0;
+ let (x150, x151) = fiat_p384_mulx_u64(x2, (arg2[3]));
+ let mut x152: u64 = 0;
+ let mut x153: u64 = 0;
+ let (x152, x153) = fiat_p384_mulx_u64(x2, (arg2[2]));
+ let mut x154: u64 = 0;
+ let mut x155: u64 = 0;
+ let (x154, x155) = fiat_p384_mulx_u64(x2, (arg2[1]));
+ let mut x156: u64 = 0;
+ let mut x157: u64 = 0;
+ let (x156, x157) = fiat_p384_mulx_u64(x2, (arg2[0]));
+ let mut x158: u64 = 0;
+ let mut x159: fiat_p384_u1 = 0;
+ let (x158, x159) = fiat_p384_addcarryx_u64(0x0, x157, x154);
+ let mut x160: u64 = 0;
+ let mut x161: fiat_p384_u1 = 0;
+ let (x160, x161) = fiat_p384_addcarryx_u64(x159, x155, x152);
+ let mut x162: u64 = 0;
+ let mut x163: fiat_p384_u1 = 0;
+ let (x162, x163) = fiat_p384_addcarryx_u64(x161, x153, x150);
+ let mut x164: u64 = 0;
+ let mut x165: fiat_p384_u1 = 0;
+ let (x164, x165) = fiat_p384_addcarryx_u64(x163, x151, x148);
+ let mut x166: u64 = 0;
+ let mut x167: fiat_p384_u1 = 0;
+ let (x166, x167) = fiat_p384_addcarryx_u64(x165, x149, x146);
+ let x168: u64 = ((x167 as u64) + x147);
+ let mut x169: u64 = 0;
+ let mut x170: fiat_p384_u1 = 0;
+ let (x169, x170) = fiat_p384_addcarryx_u64(0x0, x133, x156);
+ let mut x171: u64 = 0;
+ let mut x172: fiat_p384_u1 = 0;
+ let (x171, x172) = fiat_p384_addcarryx_u64(x170, x135, x158);
+ let mut x173: u64 = 0;
+ let mut x174: fiat_p384_u1 = 0;
+ let (x173, x174) = fiat_p384_addcarryx_u64(x172, x137, x160);
+ let mut x175: u64 = 0;
+ let mut x176: fiat_p384_u1 = 0;
+ let (x175, x176) = fiat_p384_addcarryx_u64(x174, x139, x162);
+ let mut x177: u64 = 0;
+ let mut x178: fiat_p384_u1 = 0;
+ let (x177, x178) = fiat_p384_addcarryx_u64(x176, x141, x164);
+ let mut x179: u64 = 0;
+ let mut x180: fiat_p384_u1 = 0;
+ let (x179, x180) = fiat_p384_addcarryx_u64(x178, x143, x166);
+ let mut x181: u64 = 0;
+ let mut x182: fiat_p384_u1 = 0;
+ let (x181, x182) = fiat_p384_addcarryx_u64(x180, x145, x168);
+ let mut x183: u64 = 0;
+ let mut x184: u64 = 0;
+ let (x183, x184) = fiat_p384_mulx_u64(x169, 0x100000001);
+ let mut x185: u64 = 0;
+ let mut x186: u64 = 0;
+ let (x185, x186) = fiat_p384_mulx_u64(x183, 0xffffffffffffffff);
+ let mut x187: u64 = 0;
+ let mut x188: u64 = 0;
+ let (x187, x188) = fiat_p384_mulx_u64(x183, 0xffffffffffffffff);
+ let mut x189: u64 = 0;
+ let mut x190: u64 = 0;
+ let (x189, x190) = fiat_p384_mulx_u64(x183, 0xffffffffffffffff);
+ let mut x191: u64 = 0;
+ let mut x192: u64 = 0;
+ let (x191, x192) = fiat_p384_mulx_u64(x183, 0xfffffffffffffffe);
+ let mut x193: u64 = 0;
+ let mut x194: u64 = 0;
+ let (x193, x194) = fiat_p384_mulx_u64(x183, 0xffffffff00000000);
+ let mut x195: u64 = 0;
+ let mut x196: u64 = 0;
+ let (x195, x196) = fiat_p384_mulx_u64(x183, 0xffffffff);
+ let mut x197: u64 = 0;
+ let mut x198: fiat_p384_u1 = 0;
+ let (x197, x198) = fiat_p384_addcarryx_u64(0x0, x196, x193);
+ let mut x199: u64 = 0;
+ let mut x200: fiat_p384_u1 = 0;
+ let (x199, x200) = fiat_p384_addcarryx_u64(x198, x194, x191);
+ let mut x201: u64 = 0;
+ let mut x202: fiat_p384_u1 = 0;
+ let (x201, x202) = fiat_p384_addcarryx_u64(x200, x192, x189);
+ let mut x203: u64 = 0;
+ let mut x204: fiat_p384_u1 = 0;
+ let (x203, x204) = fiat_p384_addcarryx_u64(x202, x190, x187);
+ let mut x205: u64 = 0;
+ let mut x206: fiat_p384_u1 = 0;
+ let (x205, x206) = fiat_p384_addcarryx_u64(x204, x188, x185);
+ let x207: u64 = ((x206 as u64) + x186);
+ let mut x208: u64 = 0;
+ let mut x209: fiat_p384_u1 = 0;
+ let (x208, x209) = fiat_p384_addcarryx_u64(0x0, x169, x195);
+ let mut x210: u64 = 0;
+ let mut x211: fiat_p384_u1 = 0;
+ let (x210, x211) = fiat_p384_addcarryx_u64(x209, x171, x197);
+ let mut x212: u64 = 0;
+ let mut x213: fiat_p384_u1 = 0;
+ let (x212, x213) = fiat_p384_addcarryx_u64(x211, x173, x199);
+ let mut x214: u64 = 0;
+ let mut x215: fiat_p384_u1 = 0;
+ let (x214, x215) = fiat_p384_addcarryx_u64(x213, x175, x201);
+ let mut x216: u64 = 0;
+ let mut x217: fiat_p384_u1 = 0;
+ let (x216, x217) = fiat_p384_addcarryx_u64(x215, x177, x203);
+ let mut x218: u64 = 0;
+ let mut x219: fiat_p384_u1 = 0;
+ let (x218, x219) = fiat_p384_addcarryx_u64(x217, x179, x205);
+ let mut x220: u64 = 0;
+ let mut x221: fiat_p384_u1 = 0;
+ let (x220, x221) = fiat_p384_addcarryx_u64(x219, x181, x207);
+ let x222: u64 = ((x221 as u64) + (x182 as u64));
+ let mut x223: u64 = 0;
+ let mut x224: u64 = 0;
+ let (x223, x224) = fiat_p384_mulx_u64(x3, (arg2[5]));
+ let mut x225: u64 = 0;
+ let mut x226: u64 = 0;
+ let (x225, x226) = fiat_p384_mulx_u64(x3, (arg2[4]));
+ let mut x227: u64 = 0;
+ let mut x228: u64 = 0;
+ let (x227, x228) = fiat_p384_mulx_u64(x3, (arg2[3]));
+ let mut x229: u64 = 0;
+ let mut x230: u64 = 0;
+ let (x229, x230) = fiat_p384_mulx_u64(x3, (arg2[2]));
+ let mut x231: u64 = 0;
+ let mut x232: u64 = 0;
+ let (x231, x232) = fiat_p384_mulx_u64(x3, (arg2[1]));
+ let mut x233: u64 = 0;
+ let mut x234: u64 = 0;
+ let (x233, x234) = fiat_p384_mulx_u64(x3, (arg2[0]));
+ let mut x235: u64 = 0;
+ let mut x236: fiat_p384_u1 = 0;
+ let (x235, x236) = fiat_p384_addcarryx_u64(0x0, x234, x231);
+ let mut x237: u64 = 0;
+ let mut x238: fiat_p384_u1 = 0;
+ let (x237, x238) = fiat_p384_addcarryx_u64(x236, x232, x229);
+ let mut x239: u64 = 0;
+ let mut x240: fiat_p384_u1 = 0;
+ let (x239, x240) = fiat_p384_addcarryx_u64(x238, x230, x227);
+ let mut x241: u64 = 0;
+ let mut x242: fiat_p384_u1 = 0;
+ let (x241, x242) = fiat_p384_addcarryx_u64(x240, x228, x225);
+ let mut x243: u64 = 0;
+ let mut x244: fiat_p384_u1 = 0;
+ let (x243, x244) = fiat_p384_addcarryx_u64(x242, x226, x223);
+ let x245: u64 = ((x244 as u64) + x224);
+ let mut x246: u64 = 0;
+ let mut x247: fiat_p384_u1 = 0;
+ let (x246, x247) = fiat_p384_addcarryx_u64(0x0, x210, x233);
+ let mut x248: u64 = 0;
+ let mut x249: fiat_p384_u1 = 0;
+ let (x248, x249) = fiat_p384_addcarryx_u64(x247, x212, x235);
+ let mut x250: u64 = 0;
+ let mut x251: fiat_p384_u1 = 0;
+ let (x250, x251) = fiat_p384_addcarryx_u64(x249, x214, x237);
+ let mut x252: u64 = 0;
+ let mut x253: fiat_p384_u1 = 0;
+ let (x252, x253) = fiat_p384_addcarryx_u64(x251, x216, x239);
+ let mut x254: u64 = 0;
+ let mut x255: fiat_p384_u1 = 0;
+ let (x254, x255) = fiat_p384_addcarryx_u64(x253, x218, x241);
+ let mut x256: u64 = 0;
+ let mut x257: fiat_p384_u1 = 0;
+ let (x256, x257) = fiat_p384_addcarryx_u64(x255, x220, x243);
+ let mut x258: u64 = 0;
+ let mut x259: fiat_p384_u1 = 0;
+ let (x258, x259) = fiat_p384_addcarryx_u64(x257, x222, x245);
+ let mut x260: u64 = 0;
+ let mut x261: u64 = 0;
+ let (x260, x261) = fiat_p384_mulx_u64(x246, 0x100000001);
+ let mut x262: u64 = 0;
+ let mut x263: u64 = 0;
+ let (x262, x263) = fiat_p384_mulx_u64(x260, 0xffffffffffffffff);
+ let mut x264: u64 = 0;
+ let mut x265: u64 = 0;
+ let (x264, x265) = fiat_p384_mulx_u64(x260, 0xffffffffffffffff);
+ let mut x266: u64 = 0;
+ let mut x267: u64 = 0;
+ let (x266, x267) = fiat_p384_mulx_u64(x260, 0xffffffffffffffff);
+ let mut x268: u64 = 0;
+ let mut x269: u64 = 0;
+ let (x268, x269) = fiat_p384_mulx_u64(x260, 0xfffffffffffffffe);
+ let mut x270: u64 = 0;
+ let mut x271: u64 = 0;
+ let (x270, x271) = fiat_p384_mulx_u64(x260, 0xffffffff00000000);
+ let mut x272: u64 = 0;
+ let mut x273: u64 = 0;
+ let (x272, x273) = fiat_p384_mulx_u64(x260, 0xffffffff);
+ let mut x274: u64 = 0;
+ let mut x275: fiat_p384_u1 = 0;
+ let (x274, x275) = fiat_p384_addcarryx_u64(0x0, x273, x270);
+ let mut x276: u64 = 0;
+ let mut x277: fiat_p384_u1 = 0;
+ let (x276, x277) = fiat_p384_addcarryx_u64(x275, x271, x268);
+ let mut x278: u64 = 0;
+ let mut x279: fiat_p384_u1 = 0;
+ let (x278, x279) = fiat_p384_addcarryx_u64(x277, x269, x266);
+ let mut x280: u64 = 0;
+ let mut x281: fiat_p384_u1 = 0;
+ let (x280, x281) = fiat_p384_addcarryx_u64(x279, x267, x264);
+ let mut x282: u64 = 0;
+ let mut x283: fiat_p384_u1 = 0;
+ let (x282, x283) = fiat_p384_addcarryx_u64(x281, x265, x262);
+ let x284: u64 = ((x283 as u64) + x263);
+ let mut x285: u64 = 0;
+ let mut x286: fiat_p384_u1 = 0;
+ let (x285, x286) = fiat_p384_addcarryx_u64(0x0, x246, x272);
+ let mut x287: u64 = 0;
+ let mut x288: fiat_p384_u1 = 0;
+ let (x287, x288) = fiat_p384_addcarryx_u64(x286, x248, x274);
+ let mut x289: u64 = 0;
+ let mut x290: fiat_p384_u1 = 0;
+ let (x289, x290) = fiat_p384_addcarryx_u64(x288, x250, x276);
+ let mut x291: u64 = 0;
+ let mut x292: fiat_p384_u1 = 0;
+ let (x291, x292) = fiat_p384_addcarryx_u64(x290, x252, x278);
+ let mut x293: u64 = 0;
+ let mut x294: fiat_p384_u1 = 0;
+ let (x293, x294) = fiat_p384_addcarryx_u64(x292, x254, x280);
+ let mut x295: u64 = 0;
+ let mut x296: fiat_p384_u1 = 0;
+ let (x295, x296) = fiat_p384_addcarryx_u64(x294, x256, x282);
+ let mut x297: u64 = 0;
+ let mut x298: fiat_p384_u1 = 0;
+ let (x297, x298) = fiat_p384_addcarryx_u64(x296, x258, x284);
+ let x299: u64 = ((x298 as u64) + (x259 as u64));
+ let mut x300: u64 = 0;
+ let mut x301: u64 = 0;
+ let (x300, x301) = fiat_p384_mulx_u64(x4, (arg2[5]));
+ let mut x302: u64 = 0;
+ let mut x303: u64 = 0;
+ let (x302, x303) = fiat_p384_mulx_u64(x4, (arg2[4]));
+ let mut x304: u64 = 0;
+ let mut x305: u64 = 0;
+ let (x304, x305) = fiat_p384_mulx_u64(x4, (arg2[3]));
+ let mut x306: u64 = 0;
+ let mut x307: u64 = 0;
+ let (x306, x307) = fiat_p384_mulx_u64(x4, (arg2[2]));
+ let mut x308: u64 = 0;
+ let mut x309: u64 = 0;
+ let (x308, x309) = fiat_p384_mulx_u64(x4, (arg2[1]));
+ let mut x310: u64 = 0;
+ let mut x311: u64 = 0;
+ let (x310, x311) = fiat_p384_mulx_u64(x4, (arg2[0]));
+ let mut x312: u64 = 0;
+ let mut x313: fiat_p384_u1 = 0;
+ let (x312, x313) = fiat_p384_addcarryx_u64(0x0, x311, x308);
+ let mut x314: u64 = 0;
+ let mut x315: fiat_p384_u1 = 0;
+ let (x314, x315) = fiat_p384_addcarryx_u64(x313, x309, x306);
+ let mut x316: u64 = 0;
+ let mut x317: fiat_p384_u1 = 0;
+ let (x316, x317) = fiat_p384_addcarryx_u64(x315, x307, x304);
+ let mut x318: u64 = 0;
+ let mut x319: fiat_p384_u1 = 0;
+ let (x318, x319) = fiat_p384_addcarryx_u64(x317, x305, x302);
+ let mut x320: u64 = 0;
+ let mut x321: fiat_p384_u1 = 0;
+ let (x320, x321) = fiat_p384_addcarryx_u64(x319, x303, x300);
+ let x322: u64 = ((x321 as u64) + x301);
+ let mut x323: u64 = 0;
+ let mut x324: fiat_p384_u1 = 0;
+ let (x323, x324) = fiat_p384_addcarryx_u64(0x0, x287, x310);
+ let mut x325: u64 = 0;
+ let mut x326: fiat_p384_u1 = 0;
+ let (x325, x326) = fiat_p384_addcarryx_u64(x324, x289, x312);
+ let mut x327: u64 = 0;
+ let mut x328: fiat_p384_u1 = 0;
+ let (x327, x328) = fiat_p384_addcarryx_u64(x326, x291, x314);
+ let mut x329: u64 = 0;
+ let mut x330: fiat_p384_u1 = 0;
+ let (x329, x330) = fiat_p384_addcarryx_u64(x328, x293, x316);
+ let mut x331: u64 = 0;
+ let mut x332: fiat_p384_u1 = 0;
+ let (x331, x332) = fiat_p384_addcarryx_u64(x330, x295, x318);
+ let mut x333: u64 = 0;
+ let mut x334: fiat_p384_u1 = 0;
+ let (x333, x334) = fiat_p384_addcarryx_u64(x332, x297, x320);
+ let mut x335: u64 = 0;
+ let mut x336: fiat_p384_u1 = 0;
+ let (x335, x336) = fiat_p384_addcarryx_u64(x334, x299, x322);
+ let mut x337: u64 = 0;
+ let mut x338: u64 = 0;
+ let (x337, x338) = fiat_p384_mulx_u64(x323, 0x100000001);
+ let mut x339: u64 = 0;
+ let mut x340: u64 = 0;
+ let (x339, x340) = fiat_p384_mulx_u64(x337, 0xffffffffffffffff);
+ let mut x341: u64 = 0;
+ let mut x342: u64 = 0;
+ let (x341, x342) = fiat_p384_mulx_u64(x337, 0xffffffffffffffff);
+ let mut x343: u64 = 0;
+ let mut x344: u64 = 0;
+ let (x343, x344) = fiat_p384_mulx_u64(x337, 0xffffffffffffffff);
+ let mut x345: u64 = 0;
+ let mut x346: u64 = 0;
+ let (x345, x346) = fiat_p384_mulx_u64(x337, 0xfffffffffffffffe);
+ let mut x347: u64 = 0;
+ let mut x348: u64 = 0;
+ let (x347, x348) = fiat_p384_mulx_u64(x337, 0xffffffff00000000);
+ let mut x349: u64 = 0;
+ let mut x350: u64 = 0;
+ let (x349, x350) = fiat_p384_mulx_u64(x337, 0xffffffff);
+ let mut x351: u64 = 0;
+ let mut x352: fiat_p384_u1 = 0;
+ let (x351, x352) = fiat_p384_addcarryx_u64(0x0, x350, x347);
+ let mut x353: u64 = 0;
+ let mut x354: fiat_p384_u1 = 0;
+ let (x353, x354) = fiat_p384_addcarryx_u64(x352, x348, x345);
+ let mut x355: u64 = 0;
+ let mut x356: fiat_p384_u1 = 0;
+ let (x355, x356) = fiat_p384_addcarryx_u64(x354, x346, x343);
+ let mut x357: u64 = 0;
+ let mut x358: fiat_p384_u1 = 0;
+ let (x357, x358) = fiat_p384_addcarryx_u64(x356, x344, x341);
+ let mut x359: u64 = 0;
+ let mut x360: fiat_p384_u1 = 0;
+ let (x359, x360) = fiat_p384_addcarryx_u64(x358, x342, x339);
+ let x361: u64 = ((x360 as u64) + x340);
+ let mut x362: u64 = 0;
+ let mut x363: fiat_p384_u1 = 0;
+ let (x362, x363) = fiat_p384_addcarryx_u64(0x0, x323, x349);
+ let mut x364: u64 = 0;
+ let mut x365: fiat_p384_u1 = 0;
+ let (x364, x365) = fiat_p384_addcarryx_u64(x363, x325, x351);
+ let mut x366: u64 = 0;
+ let mut x367: fiat_p384_u1 = 0;
+ let (x366, x367) = fiat_p384_addcarryx_u64(x365, x327, x353);
+ let mut x368: u64 = 0;
+ let mut x369: fiat_p384_u1 = 0;
+ let (x368, x369) = fiat_p384_addcarryx_u64(x367, x329, x355);
+ let mut x370: u64 = 0;
+ let mut x371: fiat_p384_u1 = 0;
+ let (x370, x371) = fiat_p384_addcarryx_u64(x369, x331, x357);
+ let mut x372: u64 = 0;
+ let mut x373: fiat_p384_u1 = 0;
+ let (x372, x373) = fiat_p384_addcarryx_u64(x371, x333, x359);
+ let mut x374: u64 = 0;
+ let mut x375: fiat_p384_u1 = 0;
+ let (x374, x375) = fiat_p384_addcarryx_u64(x373, x335, x361);
+ let x376: u64 = ((x375 as u64) + (x336 as u64));
+ let mut x377: u64 = 0;
+ let mut x378: u64 = 0;
+ let (x377, x378) = fiat_p384_mulx_u64(x5, (arg2[5]));
+ let mut x379: u64 = 0;
+ let mut x380: u64 = 0;
+ let (x379, x380) = fiat_p384_mulx_u64(x5, (arg2[4]));
+ let mut x381: u64 = 0;
+ let mut x382: u64 = 0;
+ let (x381, x382) = fiat_p384_mulx_u64(x5, (arg2[3]));
+ let mut x383: u64 = 0;
+ let mut x384: u64 = 0;
+ let (x383, x384) = fiat_p384_mulx_u64(x5, (arg2[2]));
+ let mut x385: u64 = 0;
+ let mut x386: u64 = 0;
+ let (x385, x386) = fiat_p384_mulx_u64(x5, (arg2[1]));
+ let mut x387: u64 = 0;
+ let mut x388: u64 = 0;
+ let (x387, x388) = fiat_p384_mulx_u64(x5, (arg2[0]));
+ let mut x389: u64 = 0;
+ let mut x390: fiat_p384_u1 = 0;
+ let (x389, x390) = fiat_p384_addcarryx_u64(0x0, x388, x385);
+ let mut x391: u64 = 0;
+ let mut x392: fiat_p384_u1 = 0;
+ let (x391, x392) = fiat_p384_addcarryx_u64(x390, x386, x383);
+ let mut x393: u64 = 0;
+ let mut x394: fiat_p384_u1 = 0;
+ let (x393, x394) = fiat_p384_addcarryx_u64(x392, x384, x381);
+ let mut x395: u64 = 0;
+ let mut x396: fiat_p384_u1 = 0;
+ let (x395, x396) = fiat_p384_addcarryx_u64(x394, x382, x379);
+ let mut x397: u64 = 0;
+ let mut x398: fiat_p384_u1 = 0;
+ let (x397, x398) = fiat_p384_addcarryx_u64(x396, x380, x377);
+ let x399: u64 = ((x398 as u64) + x378);
+ let mut x400: u64 = 0;
+ let mut x401: fiat_p384_u1 = 0;
+ let (x400, x401) = fiat_p384_addcarryx_u64(0x0, x364, x387);
+ let mut x402: u64 = 0;
+ let mut x403: fiat_p384_u1 = 0;
+ let (x402, x403) = fiat_p384_addcarryx_u64(x401, x366, x389);
+ let mut x404: u64 = 0;
+ let mut x405: fiat_p384_u1 = 0;
+ let (x404, x405) = fiat_p384_addcarryx_u64(x403, x368, x391);
+ let mut x406: u64 = 0;
+ let mut x407: fiat_p384_u1 = 0;
+ let (x406, x407) = fiat_p384_addcarryx_u64(x405, x370, x393);
+ let mut x408: u64 = 0;
+ let mut x409: fiat_p384_u1 = 0;
+ let (x408, x409) = fiat_p384_addcarryx_u64(x407, x372, x395);
+ let mut x410: u64 = 0;
+ let mut x411: fiat_p384_u1 = 0;
+ let (x410, x411) = fiat_p384_addcarryx_u64(x409, x374, x397);
+ let mut x412: u64 = 0;
+ let mut x413: fiat_p384_u1 = 0;
+ let (x412, x413) = fiat_p384_addcarryx_u64(x411, x376, x399);
+ let mut x414: u64 = 0;
+ let mut x415: u64 = 0;
+ let (x414, x415) = fiat_p384_mulx_u64(x400, 0x100000001);
+ let mut x416: u64 = 0;
+ let mut x417: u64 = 0;
+ let (x416, x417) = fiat_p384_mulx_u64(x414, 0xffffffffffffffff);
+ let mut x418: u64 = 0;
+ let mut x419: u64 = 0;
+ let (x418, x419) = fiat_p384_mulx_u64(x414, 0xffffffffffffffff);
+ let mut x420: u64 = 0;
+ let mut x421: u64 = 0;
+ let (x420, x421) = fiat_p384_mulx_u64(x414, 0xffffffffffffffff);
+ let mut x422: u64 = 0;
+ let mut x423: u64 = 0;
+ let (x422, x423) = fiat_p384_mulx_u64(x414, 0xfffffffffffffffe);
+ let mut x424: u64 = 0;
+ let mut x425: u64 = 0;
+ let (x424, x425) = fiat_p384_mulx_u64(x414, 0xffffffff00000000);
+ let mut x426: u64 = 0;
+ let mut x427: u64 = 0;
+ let (x426, x427) = fiat_p384_mulx_u64(x414, 0xffffffff);
+ let mut x428: u64 = 0;
+ let mut x429: fiat_p384_u1 = 0;
+ let (x428, x429) = fiat_p384_addcarryx_u64(0x0, x427, x424);
+ let mut x430: u64 = 0;
+ let mut x431: fiat_p384_u1 = 0;
+ let (x430, x431) = fiat_p384_addcarryx_u64(x429, x425, x422);
+ let mut x432: u64 = 0;
+ let mut x433: fiat_p384_u1 = 0;
+ let (x432, x433) = fiat_p384_addcarryx_u64(x431, x423, x420);
+ let mut x434: u64 = 0;
+ let mut x435: fiat_p384_u1 = 0;
+ let (x434, x435) = fiat_p384_addcarryx_u64(x433, x421, x418);
+ let mut x436: u64 = 0;
+ let mut x437: fiat_p384_u1 = 0;
+ let (x436, x437) = fiat_p384_addcarryx_u64(x435, x419, x416);
+ let x438: u64 = ((x437 as u64) + x417);
+ let mut x439: u64 = 0;
+ let mut x440: fiat_p384_u1 = 0;
+ let (x439, x440) = fiat_p384_addcarryx_u64(0x0, x400, x426);
+ let mut x441: u64 = 0;
+ let mut x442: fiat_p384_u1 = 0;
+ let (x441, x442) = fiat_p384_addcarryx_u64(x440, x402, x428);
+ let mut x443: u64 = 0;
+ let mut x444: fiat_p384_u1 = 0;
+ let (x443, x444) = fiat_p384_addcarryx_u64(x442, x404, x430);
+ let mut x445: u64 = 0;
+ let mut x446: fiat_p384_u1 = 0;
+ let (x445, x446) = fiat_p384_addcarryx_u64(x444, x406, x432);
+ let mut x447: u64 = 0;
+ let mut x448: fiat_p384_u1 = 0;
+ let (x447, x448) = fiat_p384_addcarryx_u64(x446, x408, x434);
+ let mut x449: u64 = 0;
+ let mut x450: fiat_p384_u1 = 0;
+ let (x449, x450) = fiat_p384_addcarryx_u64(x448, x410, x436);
+ let mut x451: u64 = 0;
+ let mut x452: fiat_p384_u1 = 0;
+ let (x451, x452) = fiat_p384_addcarryx_u64(x450, x412, x438);
+ let x453: u64 = ((x452 as u64) + (x413 as u64));
+ let mut x454: u64 = 0;
+ let mut x455: fiat_p384_u1 = 0;
+ let (x454, x455) = fiat_p384_subborrowx_u64(0x0, x441, 0xffffffff);
+ let mut x456: u64 = 0;
+ let mut x457: fiat_p384_u1 = 0;
+ let (x456, x457) = fiat_p384_subborrowx_u64(x455, x443, 0xffffffff00000000);
+ let mut x458: u64 = 0;
+ let mut x459: fiat_p384_u1 = 0;
+ let (x458, x459) = fiat_p384_subborrowx_u64(x457, x445, 0xfffffffffffffffe);
+ let mut x460: u64 = 0;
+ let mut x461: fiat_p384_u1 = 0;
+ let (x460, x461) = fiat_p384_subborrowx_u64(x459, x447, 0xffffffffffffffff);
+ let mut x462: u64 = 0;
+ let mut x463: fiat_p384_u1 = 0;
+ let (x462, x463) = fiat_p384_subborrowx_u64(x461, x449, 0xffffffffffffffff);
+ let mut x464: u64 = 0;
+ let mut x465: fiat_p384_u1 = 0;
+ let (x464, x465) = fiat_p384_subborrowx_u64(x463, x451, 0xffffffffffffffff);
+ let mut x466: u64 = 0;
+ let mut x467: fiat_p384_u1 = 0;
+ let (x466, x467) = fiat_p384_subborrowx_u64(x465, x453, (0x0 as u64));
+ let mut x468: u64 = 0;
+ let (x468) = fiat_p384_cmovznz_u64(x467, x454, x441);
+ let mut x469: u64 = 0;
+ let (x469) = fiat_p384_cmovznz_u64(x467, x456, x443);
+ let mut x470: u64 = 0;
+ let (x470) = fiat_p384_cmovznz_u64(x467, x458, x445);
+ let mut x471: u64 = 0;
+ let (x471) = fiat_p384_cmovznz_u64(x467, x460, x447);
+ let mut x472: u64 = 0;
+ let (x472) = fiat_p384_cmovznz_u64(x467, x462, x449);
+ let mut x473: u64 = 0;
+ let (x473) = fiat_p384_cmovznz_u64(x467, x464, x451);
+ out1[0] = x468;
+ out1[1] = x469;
+ out1[2] = x470;
+ out1[3] = x471;
+ out1[4] = x472;
+ out1[5] = x473;
+ out1
+}
+#[doc = " The function fiat_p384_square squares a field element in the Montgomery domain."]
+#[doc = ""]
+#[doc = " Preconditions:"]
+#[doc = " 0 ≤ eval arg1 < m"]
+#[doc = " Postconditions:"]
+#[doc = " eval (from_montgomery out1) mod m = (eval (from_montgomery arg1) * eval (from_montgomery arg1)) mod m"]
+#[doc = " 0 ≤ eval out1 < m"]
+#[doc = ""]
+#[inline]
+pub const fn fiat_p384_square(
+ arg1: &fiat_p384_montgomery_domain_field_element,
+) -> fiat_p384_montgomery_domain_field_element {
+ let mut out1: fiat_p384_montgomery_domain_field_element = [0; 6];
+ let x1: u64 = (arg1[1]);
+ let x2: u64 = (arg1[2]);
+ let x3: u64 = (arg1[3]);
+ let x4: u64 = (arg1[4]);
+ let x5: u64 = (arg1[5]);
+ let x6: u64 = (arg1[0]);
+ let mut x7: u64 = 0;
+ let mut x8: u64 = 0;
+ let (x7, x8) = fiat_p384_mulx_u64(x6, (arg1[5]));
+ let mut x9: u64 = 0;
+ let mut x10: u64 = 0;
+ let (x9, x10) = fiat_p384_mulx_u64(x6, (arg1[4]));
+ let mut x11: u64 = 0;
+ let mut x12: u64 = 0;
+ let (x11, x12) = fiat_p384_mulx_u64(x6, (arg1[3]));
+ let mut x13: u64 = 0;
+ let mut x14: u64 = 0;
+ let (x13, x14) = fiat_p384_mulx_u64(x6, (arg1[2]));
+ let mut x15: u64 = 0;
+ let mut x16: u64 = 0;
+ let (x15, x16) = fiat_p384_mulx_u64(x6, (arg1[1]));
+ let mut x17: u64 = 0;
+ let mut x18: u64 = 0;
+ let (x17, x18) = fiat_p384_mulx_u64(x6, (arg1[0]));
+ let mut x19: u64 = 0;
+ let mut x20: fiat_p384_u1 = 0;
+ let (x19, x20) = fiat_p384_addcarryx_u64(0x0, x18, x15);
+ let mut x21: u64 = 0;
+ let mut x22: fiat_p384_u1 = 0;
+ let (x21, x22) = fiat_p384_addcarryx_u64(x20, x16, x13);
+ let mut x23: u64 = 0;
+ let mut x24: fiat_p384_u1 = 0;
+ let (x23, x24) = fiat_p384_addcarryx_u64(x22, x14, x11);
+ let mut x25: u64 = 0;
+ let mut x26: fiat_p384_u1 = 0;
+ let (x25, x26) = fiat_p384_addcarryx_u64(x24, x12, x9);
+ let mut x27: u64 = 0;
+ let mut x28: fiat_p384_u1 = 0;
+ let (x27, x28) = fiat_p384_addcarryx_u64(x26, x10, x7);
+ let x29: u64 = ((x28 as u64) + x8);
+ let mut x30: u64 = 0;
+ let mut x31: u64 = 0;
+ let (x30, x31) = fiat_p384_mulx_u64(x17, 0x100000001);
+ let mut x32: u64 = 0;
+ let mut x33: u64 = 0;
+ let (x32, x33) = fiat_p384_mulx_u64(x30, 0xffffffffffffffff);
+ let mut x34: u64 = 0;
+ let mut x35: u64 = 0;
+ let (x34, x35) = fiat_p384_mulx_u64(x30, 0xffffffffffffffff);
+ let mut x36: u64 = 0;
+ let mut x37: u64 = 0;
+ let (x36, x37) = fiat_p384_mulx_u64(x30, 0xffffffffffffffff);
+ let mut x38: u64 = 0;
+ let mut x39: u64 = 0;
+ let (x38, x39) = fiat_p384_mulx_u64(x30, 0xfffffffffffffffe);
+ let mut x40: u64 = 0;
+ let mut x41: u64 = 0;
+ let (x40, x41) = fiat_p384_mulx_u64(x30, 0xffffffff00000000);
+ let mut x42: u64 = 0;
+ let mut x43: u64 = 0;
+ let (x42, x43) = fiat_p384_mulx_u64(x30, 0xffffffff);
+ let mut x44: u64 = 0;
+ let mut x45: fiat_p384_u1 = 0;
+ let (x44, x45) = fiat_p384_addcarryx_u64(0x0, x43, x40);
+ let mut x46: u64 = 0;
+ let mut x47: fiat_p384_u1 = 0;
+ let (x46, x47) = fiat_p384_addcarryx_u64(x45, x41, x38);
+ let mut x48: u64 = 0;
+ let mut x49: fiat_p384_u1 = 0;
+ let (x48, x49) = fiat_p384_addcarryx_u64(x47, x39, x36);
+ let mut x50: u64 = 0;
+ let mut x51: fiat_p384_u1 = 0;
+ let (x50, x51) = fiat_p384_addcarryx_u64(x49, x37, x34);
+ let mut x52: u64 = 0;
+ let mut x53: fiat_p384_u1 = 0;
+ let (x52, x53) = fiat_p384_addcarryx_u64(x51, x35, x32);
+ let x54: u64 = ((x53 as u64) + x33);
+ let mut x55: u64 = 0;
+ let mut x56: fiat_p384_u1 = 0;
+ let (x55, x56) = fiat_p384_addcarryx_u64(0x0, x17, x42);
+ let mut x57: u64 = 0;
+ let mut x58: fiat_p384_u1 = 0;
+ let (x57, x58) = fiat_p384_addcarryx_u64(x56, x19, x44);
+ let mut x59: u64 = 0;
+ let mut x60: fiat_p384_u1 = 0;
+ let (x59, x60) = fiat_p384_addcarryx_u64(x58, x21, x46);
+ let mut x61: u64 = 0;
+ let mut x62: fiat_p384_u1 = 0;
+ let (x61, x62) = fiat_p384_addcarryx_u64(x60, x23, x48);
+ let mut x63: u64 = 0;
+ let mut x64: fiat_p384_u1 = 0;
+ let (x63, x64) = fiat_p384_addcarryx_u64(x62, x25, x50);
+ let mut x65: u64 = 0;
+ let mut x66: fiat_p384_u1 = 0;
+ let (x65, x66) = fiat_p384_addcarryx_u64(x64, x27, x52);
+ let mut x67: u64 = 0;
+ let mut x68: fiat_p384_u1 = 0;
+ let (x67, x68) = fiat_p384_addcarryx_u64(x66, x29, x54);
+ let mut x69: u64 = 0;
+ let mut x70: u64 = 0;
+ let (x69, x70) = fiat_p384_mulx_u64(x1, (arg1[5]));
+ let mut x71: u64 = 0;
+ let mut x72: u64 = 0;
+ let (x71, x72) = fiat_p384_mulx_u64(x1, (arg1[4]));
+ let mut x73: u64 = 0;
+ let mut x74: u64 = 0;
+ let (x73, x74) = fiat_p384_mulx_u64(x1, (arg1[3]));
+ let mut x75: u64 = 0;
+ let mut x76: u64 = 0;
+ let (x75, x76) = fiat_p384_mulx_u64(x1, (arg1[2]));
+ let mut x77: u64 = 0;
+ let mut x78: u64 = 0;
+ let (x77, x78) = fiat_p384_mulx_u64(x1, (arg1[1]));
+ let mut x79: u64 = 0;
+ let mut x80: u64 = 0;
+ let (x79, x80) = fiat_p384_mulx_u64(x1, (arg1[0]));
+ let mut x81: u64 = 0;
+ let mut x82: fiat_p384_u1 = 0;
+ let (x81, x82) = fiat_p384_addcarryx_u64(0x0, x80, x77);
+ let mut x83: u64 = 0;
+ let mut x84: fiat_p384_u1 = 0;
+ let (x83, x84) = fiat_p384_addcarryx_u64(x82, x78, x75);
+ let mut x85: u64 = 0;
+ let mut x86: fiat_p384_u1 = 0;
+ let (x85, x86) = fiat_p384_addcarryx_u64(x84, x76, x73);
+ let mut x87: u64 = 0;
+ let mut x88: fiat_p384_u1 = 0;
+ let (x87, x88) = fiat_p384_addcarryx_u64(x86, x74, x71);
+ let mut x89: u64 = 0;
+ let mut x90: fiat_p384_u1 = 0;
+ let (x89, x90) = fiat_p384_addcarryx_u64(x88, x72, x69);
+ let x91: u64 = ((x90 as u64) + x70);
+ let mut x92: u64 = 0;
+ let mut x93: fiat_p384_u1 = 0;
+ let (x92, x93) = fiat_p384_addcarryx_u64(0x0, x57, x79);
+ let mut x94: u64 = 0;
+ let mut x95: fiat_p384_u1 = 0;
+ let (x94, x95) = fiat_p384_addcarryx_u64(x93, x59, x81);
+ let mut x96: u64 = 0;
+ let mut x97: fiat_p384_u1 = 0;
+ let (x96, x97) = fiat_p384_addcarryx_u64(x95, x61, x83);
+ let mut x98: u64 = 0;
+ let mut x99: fiat_p384_u1 = 0;
+ let (x98, x99) = fiat_p384_addcarryx_u64(x97, x63, x85);
+ let mut x100: u64 = 0;
+ let mut x101: fiat_p384_u1 = 0;
+ let (x100, x101) = fiat_p384_addcarryx_u64(x99, x65, x87);
+ let mut x102: u64 = 0;
+ let mut x103: fiat_p384_u1 = 0;
+ let (x102, x103) = fiat_p384_addcarryx_u64(x101, x67, x89);
+ let mut x104: u64 = 0;
+ let mut x105: fiat_p384_u1 = 0;
+ let (x104, x105) = fiat_p384_addcarryx_u64(x103, (x68 as u64), x91);
+ let mut x106: u64 = 0;
+ let mut x107: u64 = 0;
+ let (x106, x107) = fiat_p384_mulx_u64(x92, 0x100000001);
+ let mut x108: u64 = 0;
+ let mut x109: u64 = 0;
+ let (x108, x109) = fiat_p384_mulx_u64(x106, 0xffffffffffffffff);
+ let mut x110: u64 = 0;
+ let mut x111: u64 = 0;
+ let (x110, x111) = fiat_p384_mulx_u64(x106, 0xffffffffffffffff);
+ let mut x112: u64 = 0;
+ let mut x113: u64 = 0;
+ let (x112, x113) = fiat_p384_mulx_u64(x106, 0xffffffffffffffff);
+ let mut x114: u64 = 0;
+ let mut x115: u64 = 0;
+ let (x114, x115) = fiat_p384_mulx_u64(x106, 0xfffffffffffffffe);
+ let mut x116: u64 = 0;
+ let mut x117: u64 = 0;
+ let (x116, x117) = fiat_p384_mulx_u64(x106, 0xffffffff00000000);
+ let mut x118: u64 = 0;
+ let mut x119: u64 = 0;
+ let (x118, x119) = fiat_p384_mulx_u64(x106, 0xffffffff);
+ let mut x120: u64 = 0;
+ let mut x121: fiat_p384_u1 = 0;
+ let (x120, x121) = fiat_p384_addcarryx_u64(0x0, x119, x116);
+ let mut x122: u64 = 0;
+ let mut x123: fiat_p384_u1 = 0;
+ let (x122, x123) = fiat_p384_addcarryx_u64(x121, x117, x114);
+ let mut x124: u64 = 0;
+ let mut x125: fiat_p384_u1 = 0;
+ let (x124, x125) = fiat_p384_addcarryx_u64(x123, x115, x112);
+ let mut x126: u64 = 0;
+ let mut x127: fiat_p384_u1 = 0;
+ let (x126, x127) = fiat_p384_addcarryx_u64(x125, x113, x110);
+ let mut x128: u64 = 0;
+ let mut x129: fiat_p384_u1 = 0;
+ let (x128, x129) = fiat_p384_addcarryx_u64(x127, x111, x108);
+ let x130: u64 = ((x129 as u64) + x109);
+ let mut x131: u64 = 0;
+ let mut x132: fiat_p384_u1 = 0;
+ let (x131, x132) = fiat_p384_addcarryx_u64(0x0, x92, x118);
+ let mut x133: u64 = 0;
+ let mut x134: fiat_p384_u1 = 0;
+ let (x133, x134) = fiat_p384_addcarryx_u64(x132, x94, x120);
+ let mut x135: u64 = 0;
+ let mut x136: fiat_p384_u1 = 0;
+ let (x135, x136) = fiat_p384_addcarryx_u64(x134, x96, x122);
+ let mut x137: u64 = 0;
+ let mut x138: fiat_p384_u1 = 0;
+ let (x137, x138) = fiat_p384_addcarryx_u64(x136, x98, x124);
+ let mut x139: u64 = 0;
+ let mut x140: fiat_p384_u1 = 0;
+ let (x139, x140) = fiat_p384_addcarryx_u64(x138, x100, x126);
+ let mut x141: u64 = 0;
+ let mut x142: fiat_p384_u1 = 0;
+ let (x141, x142) = fiat_p384_addcarryx_u64(x140, x102, x128);
+ let mut x143: u64 = 0;
+ let mut x144: fiat_p384_u1 = 0;
+ let (x143, x144) = fiat_p384_addcarryx_u64(x142, x104, x130);
+ let x145: u64 = ((x144 as u64) + (x105 as u64));
+ let mut x146: u64 = 0;
+ let mut x147: u64 = 0;
+ let (x146, x147) = fiat_p384_mulx_u64(x2, (arg1[5]));
+ let mut x148: u64 = 0;
+ let mut x149: u64 = 0;
+ let (x148, x149) = fiat_p384_mulx_u64(x2, (arg1[4]));
+ let mut x150: u64 = 0;
+ let mut x151: u64 = 0;
+ let (x150, x151) = fiat_p384_mulx_u64(x2, (arg1[3]));
+ let mut x152: u64 = 0;
+ let mut x153: u64 = 0;
+ let (x152, x153) = fiat_p384_mulx_u64(x2, (arg1[2]));
+ let mut x154: u64 = 0;
+ let mut x155: u64 = 0;
+ let (x154, x155) = fiat_p384_mulx_u64(x2, (arg1[1]));
+ let mut x156: u64 = 0;
+ let mut x157: u64 = 0;
+ let (x156, x157) = fiat_p384_mulx_u64(x2, (arg1[0]));
+ let mut x158: u64 = 0;
+ let mut x159: fiat_p384_u1 = 0;
+ let (x158, x159) = fiat_p384_addcarryx_u64(0x0, x157, x154);
+ let mut x160: u64 = 0;
+ let mut x161: fiat_p384_u1 = 0;
+ let (x160, x161) = fiat_p384_addcarryx_u64(x159, x155, x152);
+ let mut x162: u64 = 0;
+ let mut x163: fiat_p384_u1 = 0;
+ let (x162, x163) = fiat_p384_addcarryx_u64(x161, x153, x150);
+ let mut x164: u64 = 0;
+ let mut x165: fiat_p384_u1 = 0;
+ let (x164, x165) = fiat_p384_addcarryx_u64(x163, x151, x148);
+ let mut x166: u64 = 0;
+ let mut x167: fiat_p384_u1 = 0;
+ let (x166, x167) = fiat_p384_addcarryx_u64(x165, x149, x146);
+ let x168: u64 = ((x167 as u64) + x147);
+ let mut x169: u64 = 0;
+ let mut x170: fiat_p384_u1 = 0;
+ let (x169, x170) = fiat_p384_addcarryx_u64(0x0, x133, x156);
+ let mut x171: u64 = 0;
+ let mut x172: fiat_p384_u1 = 0;
+ let (x171, x172) = fiat_p384_addcarryx_u64(x170, x135, x158);
+ let mut x173: u64 = 0;
+ let mut x174: fiat_p384_u1 = 0;
+ let (x173, x174) = fiat_p384_addcarryx_u64(x172, x137, x160);
+ let mut x175: u64 = 0;
+ let mut x176: fiat_p384_u1 = 0;
+ let (x175, x176) = fiat_p384_addcarryx_u64(x174, x139, x162);
+ let mut x177: u64 = 0;
+ let mut x178: fiat_p384_u1 = 0;
+ let (x177, x178) = fiat_p384_addcarryx_u64(x176, x141, x164);
+ let mut x179: u64 = 0;
+ let mut x180: fiat_p384_u1 = 0;
+ let (x179, x180) = fiat_p384_addcarryx_u64(x178, x143, x166);
+ let mut x181: u64 = 0;
+ let mut x182: fiat_p384_u1 = 0;
+ let (x181, x182) = fiat_p384_addcarryx_u64(x180, x145, x168);
+ let mut x183: u64 = 0;
+ let mut x184: u64 = 0;
+ let (x183, x184) = fiat_p384_mulx_u64(x169, 0x100000001);
+ let mut x185: u64 = 0;
+ let mut x186: u64 = 0;
+ let (x185, x186) = fiat_p384_mulx_u64(x183, 0xffffffffffffffff);
+ let mut x187: u64 = 0;
+ let mut x188: u64 = 0;
+ let (x187, x188) = fiat_p384_mulx_u64(x183, 0xffffffffffffffff);
+ let mut x189: u64 = 0;
+ let mut x190: u64 = 0;
+ let (x189, x190) = fiat_p384_mulx_u64(x183, 0xffffffffffffffff);
+ let mut x191: u64 = 0;
+ let mut x192: u64 = 0;
+ let (x191, x192) = fiat_p384_mulx_u64(x183, 0xfffffffffffffffe);
+ let mut x193: u64 = 0;
+ let mut x194: u64 = 0;
+ let (x193, x194) = fiat_p384_mulx_u64(x183, 0xffffffff00000000);
+ let mut x195: u64 = 0;
+ let mut x196: u64 = 0;
+ let (x195, x196) = fiat_p384_mulx_u64(x183, 0xffffffff);
+ let mut x197: u64 = 0;
+ let mut x198: fiat_p384_u1 = 0;
+ let (x197, x198) = fiat_p384_addcarryx_u64(0x0, x196, x193);
+ let mut x199: u64 = 0;
+ let mut x200: fiat_p384_u1 = 0;
+ let (x199, x200) = fiat_p384_addcarryx_u64(x198, x194, x191);
+ let mut x201: u64 = 0;
+ let mut x202: fiat_p384_u1 = 0;
+ let (x201, x202) = fiat_p384_addcarryx_u64(x200, x192, x189);
+ let mut x203: u64 = 0;
+ let mut x204: fiat_p384_u1 = 0;
+ let (x203, x204) = fiat_p384_addcarryx_u64(x202, x190, x187);
+ let mut x205: u64 = 0;
+ let mut x206: fiat_p384_u1 = 0;
+ let (x205, x206) = fiat_p384_addcarryx_u64(x204, x188, x185);
+ let x207: u64 = ((x206 as u64) + x186);
+ let mut x208: u64 = 0;
+ let mut x209: fiat_p384_u1 = 0;
+ let (x208, x209) = fiat_p384_addcarryx_u64(0x0, x169, x195);
+ let mut x210: u64 = 0;
+ let mut x211: fiat_p384_u1 = 0;
+ let (x210, x211) = fiat_p384_addcarryx_u64(x209, x171, x197);
+ let mut x212: u64 = 0;
+ let mut x213: fiat_p384_u1 = 0;
+ let (x212, x213) = fiat_p384_addcarryx_u64(x211, x173, x199);
+ let mut x214: u64 = 0;
+ let mut x215: fiat_p384_u1 = 0;
+ let (x214, x215) = fiat_p384_addcarryx_u64(x213, x175, x201);
+ let mut x216: u64 = 0;
+ let mut x217: fiat_p384_u1 = 0;
+ let (x216, x217) = fiat_p384_addcarryx_u64(x215, x177, x203);
+ let mut x218: u64 = 0;
+ let mut x219: fiat_p384_u1 = 0;
+ let (x218, x219) = fiat_p384_addcarryx_u64(x217, x179, x205);
+ let mut x220: u64 = 0;
+ let mut x221: fiat_p384_u1 = 0;
+ let (x220, x221) = fiat_p384_addcarryx_u64(x219, x181, x207);
+ let x222: u64 = ((x221 as u64) + (x182 as u64));
+ let mut x223: u64 = 0;
+ let mut x224: u64 = 0;
+ let (x223, x224) = fiat_p384_mulx_u64(x3, (arg1[5]));
+ let mut x225: u64 = 0;
+ let mut x226: u64 = 0;
+ let (x225, x226) = fiat_p384_mulx_u64(x3, (arg1[4]));
+ let mut x227: u64 = 0;
+ let mut x228: u64 = 0;
+ let (x227, x228) = fiat_p384_mulx_u64(x3, (arg1[3]));
+ let mut x229: u64 = 0;
+ let mut x230: u64 = 0;
+ let (x229, x230) = fiat_p384_mulx_u64(x3, (arg1[2]));
+ let mut x231: u64 = 0;
+ let mut x232: u64 = 0;
+ let (x231, x232) = fiat_p384_mulx_u64(x3, (arg1[1]));
+ let mut x233: u64 = 0;
+ let mut x234: u64 = 0;
+ let (x233, x234) = fiat_p384_mulx_u64(x3, (arg1[0]));
+ let mut x235: u64 = 0;
+ let mut x236: fiat_p384_u1 = 0;
+ let (x235, x236) = fiat_p384_addcarryx_u64(0x0, x234, x231);
+ let mut x237: u64 = 0;
+ let mut x238: fiat_p384_u1 = 0;
+ let (x237, x238) = fiat_p384_addcarryx_u64(x236, x232, x229);
+ let mut x239: u64 = 0;
+ let mut x240: fiat_p384_u1 = 0;
+ let (x239, x240) = fiat_p384_addcarryx_u64(x238, x230, x227);
+ let mut x241: u64 = 0;
+ let mut x242: fiat_p384_u1 = 0;
+ let (x241, x242) = fiat_p384_addcarryx_u64(x240, x228, x225);
+ let mut x243: u64 = 0;
+ let mut x244: fiat_p384_u1 = 0;
+ let (x243, x244) = fiat_p384_addcarryx_u64(x242, x226, x223);
+ let x245: u64 = ((x244 as u64) + x224);
+ let mut x246: u64 = 0;
+ let mut x247: fiat_p384_u1 = 0;
+ let (x246, x247) = fiat_p384_addcarryx_u64(0x0, x210, x233);
+ let mut x248: u64 = 0;
+ let mut x249: fiat_p384_u1 = 0;
+ let (x248, x249) = fiat_p384_addcarryx_u64(x247, x212, x235);
+ let mut x250: u64 = 0;
+ let mut x251: fiat_p384_u1 = 0;
+ let (x250, x251) = fiat_p384_addcarryx_u64(x249, x214, x237);
+ let mut x252: u64 = 0;
+ let mut x253: fiat_p384_u1 = 0;
+ let (x252, x253) = fiat_p384_addcarryx_u64(x251, x216, x239);
+ let mut x254: u64 = 0;
+ let mut x255: fiat_p384_u1 = 0;
+ let (x254, x255) = fiat_p384_addcarryx_u64(x253, x218, x241);
+ let mut x256: u64 = 0;
+ let mut x257: fiat_p384_u1 = 0;
+ let (x256, x257) = fiat_p384_addcarryx_u64(x255, x220, x243);
+ let mut x258: u64 = 0;
+ let mut x259: fiat_p384_u1 = 0;
+ let (x258, x259) = fiat_p384_addcarryx_u64(x257, x222, x245);
+ let mut x260: u64 = 0;
+ let mut x261: u64 = 0;
+ let (x260, x261) = fiat_p384_mulx_u64(x246, 0x100000001);
+ let mut x262: u64 = 0;
+ let mut x263: u64 = 0;
+ let (x262, x263) = fiat_p384_mulx_u64(x260, 0xffffffffffffffff);
+ let mut x264: u64 = 0;
+ let mut x265: u64 = 0;
+ let (x264, x265) = fiat_p384_mulx_u64(x260, 0xffffffffffffffff);
+ let mut x266: u64 = 0;
+ let mut x267: u64 = 0;
+ let (x266, x267) = fiat_p384_mulx_u64(x260, 0xffffffffffffffff);
+ let mut x268: u64 = 0;
+ let mut x269: u64 = 0;
+ let (x268, x269) = fiat_p384_mulx_u64(x260, 0xfffffffffffffffe);
+ let mut x270: u64 = 0;
+ let mut x271: u64 = 0;
+ let (x270, x271) = fiat_p384_mulx_u64(x260, 0xffffffff00000000);
+ let mut x272: u64 = 0;
+ let mut x273: u64 = 0;
+ let (x272, x273) = fiat_p384_mulx_u64(x260, 0xffffffff);
+ let mut x274: u64 = 0;
+ let mut x275: fiat_p384_u1 = 0;
+ let (x274, x275) = fiat_p384_addcarryx_u64(0x0, x273, x270);
+ let mut x276: u64 = 0;
+ let mut x277: fiat_p384_u1 = 0;
+ let (x276, x277) = fiat_p384_addcarryx_u64(x275, x271, x268);
+ let mut x278: u64 = 0;
+ let mut x279: fiat_p384_u1 = 0;
+ let (x278, x279) = fiat_p384_addcarryx_u64(x277, x269, x266);
+ let mut x280: u64 = 0;
+ let mut x281: fiat_p384_u1 = 0;
+ let (x280, x281) = fiat_p384_addcarryx_u64(x279, x267, x264);
+ let mut x282: u64 = 0;
+ let mut x283: fiat_p384_u1 = 0;
+ let (x282, x283) = fiat_p384_addcarryx_u64(x281, x265, x262);
+ let x284: u64 = ((x283 as u64) + x263);
+ let mut x285: u64 = 0;
+ let mut x286: fiat_p384_u1 = 0;
+ let (x285, x286) = fiat_p384_addcarryx_u64(0x0, x246, x272);
+ let mut x287: u64 = 0;
+ let mut x288: fiat_p384_u1 = 0;
+ let (x287, x288) = fiat_p384_addcarryx_u64(x286, x248, x274);
+ let mut x289: u64 = 0;
+ let mut x290: fiat_p384_u1 = 0;
+ let (x289, x290) = fiat_p384_addcarryx_u64(x288, x250, x276);
+ let mut x291: u64 = 0;
+ let mut x292: fiat_p384_u1 = 0;
+ let (x291, x292) = fiat_p384_addcarryx_u64(x290, x252, x278);
+ let mut x293: u64 = 0;
+ let mut x294: fiat_p384_u1 = 0;
+ let (x293, x294) = fiat_p384_addcarryx_u64(x292, x254, x280);
+ let mut x295: u64 = 0;
+ let mut x296: fiat_p384_u1 = 0;
+ let (x295, x296) = fiat_p384_addcarryx_u64(x294, x256, x282);
+ let mut x297: u64 = 0;
+ let mut x298: fiat_p384_u1 = 0;
+ let (x297, x298) = fiat_p384_addcarryx_u64(x296, x258, x284);
+ let x299: u64 = ((x298 as u64) + (x259 as u64));
+ let mut x300: u64 = 0;
+ let mut x301: u64 = 0;
+ let (x300, x301) = fiat_p384_mulx_u64(x4, (arg1[5]));
+ let mut x302: u64 = 0;
+ let mut x303: u64 = 0;
+ let (x302, x303) = fiat_p384_mulx_u64(x4, (arg1[4]));
+ let mut x304: u64 = 0;
+ let mut x305: u64 = 0;
+ let (x304, x305) = fiat_p384_mulx_u64(x4, (arg1[3]));
+ let mut x306: u64 = 0;
+ let mut x307: u64 = 0;
+ let (x306, x307) = fiat_p384_mulx_u64(x4, (arg1[2]));
+ let mut x308: u64 = 0;
+ let mut x309: u64 = 0;
+ let (x308, x309) = fiat_p384_mulx_u64(x4, (arg1[1]));
+ let mut x310: u64 = 0;
+ let mut x311: u64 = 0;
+ let (x310, x311) = fiat_p384_mulx_u64(x4, (arg1[0]));
+ let mut x312: u64 = 0;
+ let mut x313: fiat_p384_u1 = 0;
+ let (x312, x313) = fiat_p384_addcarryx_u64(0x0, x311, x308);
+ let mut x314: u64 = 0;
+ let mut x315: fiat_p384_u1 = 0;
+ let (x314, x315) = fiat_p384_addcarryx_u64(x313, x309, x306);
+ let mut x316: u64 = 0;
+ let mut x317: fiat_p384_u1 = 0;
+ let (x316, x317) = fiat_p384_addcarryx_u64(x315, x307, x304);
+ let mut x318: u64 = 0;
+ let mut x319: fiat_p384_u1 = 0;
+ let (x318, x319) = fiat_p384_addcarryx_u64(x317, x305, x302);
+ let mut x320: u64 = 0;
+ let mut x321: fiat_p384_u1 = 0;
+ let (x320, x321) = fiat_p384_addcarryx_u64(x319, x303, x300);
+ let x322: u64 = ((x321 as u64) + x301);
+ let mut x323: u64 = 0;
+ let mut x324: fiat_p384_u1 = 0;
+ let (x323, x324) = fiat_p384_addcarryx_u64(0x0, x287, x310);
+ let mut x325: u64 = 0;
+ let mut x326: fiat_p384_u1 = 0;
+ let (x325, x326) = fiat_p384_addcarryx_u64(x324, x289, x312);
+ let mut x327: u64 = 0;
+ let mut x328: fiat_p384_u1 = 0;
+ let (x327, x328) = fiat_p384_addcarryx_u64(x326, x291, x314);
+ let mut x329: u64 = 0;
+ let mut x330: fiat_p384_u1 = 0;
+ let (x329, x330) = fiat_p384_addcarryx_u64(x328, x293, x316);
+ let mut x331: u64 = 0;
+ let mut x332: fiat_p384_u1 = 0;
+ let (x331, x332) = fiat_p384_addcarryx_u64(x330, x295, x318);
+ let mut x333: u64 = 0;
+ let mut x334: fiat_p384_u1 = 0;
+ let (x333, x334) = fiat_p384_addcarryx_u64(x332, x297, x320);
+ let mut x335: u64 = 0;
+ let mut x336: fiat_p384_u1 = 0;
+ let (x335, x336) = fiat_p384_addcarryx_u64(x334, x299, x322);
+ let mut x337: u64 = 0;
+ let mut x338: u64 = 0;
+ let (x337, x338) = fiat_p384_mulx_u64(x323, 0x100000001);
+ let mut x339: u64 = 0;
+ let mut x340: u64 = 0;
+ let (x339, x340) = fiat_p384_mulx_u64(x337, 0xffffffffffffffff);
+ let mut x341: u64 = 0;
+ let mut x342: u64 = 0;
+ let (x341, x342) = fiat_p384_mulx_u64(x337, 0xffffffffffffffff);
+ let mut x343: u64 = 0;
+ let mut x344: u64 = 0;
+ let (x343, x344) = fiat_p384_mulx_u64(x337, 0xffffffffffffffff);
+ let mut x345: u64 = 0;
+ let mut x346: u64 = 0;
+ let (x345, x346) = fiat_p384_mulx_u64(x337, 0xfffffffffffffffe);
+ let mut x347: u64 = 0;
+ let mut x348: u64 = 0;
+ let (x347, x348) = fiat_p384_mulx_u64(x337, 0xffffffff00000000);
+ let mut x349: u64 = 0;
+ let mut x350: u64 = 0;
+ let (x349, x350) = fiat_p384_mulx_u64(x337, 0xffffffff);
+ let mut x351: u64 = 0;
+ let mut x352: fiat_p384_u1 = 0;
+ let (x351, x352) = fiat_p384_addcarryx_u64(0x0, x350, x347);
+ let mut x353: u64 = 0;
+ let mut x354: fiat_p384_u1 = 0;
+ let (x353, x354) = fiat_p384_addcarryx_u64(x352, x348, x345);
+ let mut x355: u64 = 0;
+ let mut x356: fiat_p384_u1 = 0;
+ let (x355, x356) = fiat_p384_addcarryx_u64(x354, x346, x343);
+ let mut x357: u64 = 0;
+ let mut x358: fiat_p384_u1 = 0;
+ let (x357, x358) = fiat_p384_addcarryx_u64(x356, x344, x341);
+ let mut x359: u64 = 0;
+ let mut x360: fiat_p384_u1 = 0;
+ let (x359, x360) = fiat_p384_addcarryx_u64(x358, x342, x339);
+ let x361: u64 = ((x360 as u64) + x340);
+ let mut x362: u64 = 0;
+ let mut x363: fiat_p384_u1 = 0;
+ let (x362, x363) = fiat_p384_addcarryx_u64(0x0, x323, x349);
+ let mut x364: u64 = 0;
+ let mut x365: fiat_p384_u1 = 0;
+ let (x364, x365) = fiat_p384_addcarryx_u64(x363, x325, x351);
+ let mut x366: u64 = 0;
+ let mut x367: fiat_p384_u1 = 0;
+ let (x366, x367) = fiat_p384_addcarryx_u64(x365, x327, x353);
+ let mut x368: u64 = 0;
+ let mut x369: fiat_p384_u1 = 0;
+ let (x368, x369) = fiat_p384_addcarryx_u64(x367, x329, x355);
+ let mut x370: u64 = 0;
+ let mut x371: fiat_p384_u1 = 0;
+ let (x370, x371) = fiat_p384_addcarryx_u64(x369, x331, x357);
+ let mut x372: u64 = 0;
+ let mut x373: fiat_p384_u1 = 0;
+ let (x372, x373) = fiat_p384_addcarryx_u64(x371, x333, x359);
+ let mut x374: u64 = 0;
+ let mut x375: fiat_p384_u1 = 0;
+ let (x374, x375) = fiat_p384_addcarryx_u64(x373, x335, x361);
+ let x376: u64 = ((x375 as u64) + (x336 as u64));
+ let mut x377: u64 = 0;
+ let mut x378: u64 = 0;
+ let (x377, x378) = fiat_p384_mulx_u64(x5, (arg1[5]));
+ let mut x379: u64 = 0;
+ let mut x380: u64 = 0;
+ let (x379, x380) = fiat_p384_mulx_u64(x5, (arg1[4]));
+ let mut x381: u64 = 0;
+ let mut x382: u64 = 0;
+ let (x381, x382) = fiat_p384_mulx_u64(x5, (arg1[3]));
+ let mut x383: u64 = 0;
+ let mut x384: u64 = 0;
+ let (x383, x384) = fiat_p384_mulx_u64(x5, (arg1[2]));
+ let mut x385: u64 = 0;
+ let mut x386: u64 = 0;
+ let (x385, x386) = fiat_p384_mulx_u64(x5, (arg1[1]));
+ let mut x387: u64 = 0;
+ let mut x388: u64 = 0;
+ let (x387, x388) = fiat_p384_mulx_u64(x5, (arg1[0]));
+ let mut x389: u64 = 0;
+ let mut x390: fiat_p384_u1 = 0;
+ let (x389, x390) = fiat_p384_addcarryx_u64(0x0, x388, x385);
+ let mut x391: u64 = 0;
+ let mut x392: fiat_p384_u1 = 0;
+ let (x391, x392) = fiat_p384_addcarryx_u64(x390, x386, x383);
+ let mut x393: u64 = 0;
+ let mut x394: fiat_p384_u1 = 0;
+ let (x393, x394) = fiat_p384_addcarryx_u64(x392, x384, x381);
+ let mut x395: u64 = 0;
+ let mut x396: fiat_p384_u1 = 0;
+ let (x395, x396) = fiat_p384_addcarryx_u64(x394, x382, x379);
+ let mut x397: u64 = 0;
+ let mut x398: fiat_p384_u1 = 0;
+ let (x397, x398) = fiat_p384_addcarryx_u64(x396, x380, x377);
+ let x399: u64 = ((x398 as u64) + x378);
+ let mut x400: u64 = 0;
+ let mut x401: fiat_p384_u1 = 0;
+ let (x400, x401) = fiat_p384_addcarryx_u64(0x0, x364, x387);
+ let mut x402: u64 = 0;
+ let mut x403: fiat_p384_u1 = 0;
+ let (x402, x403) = fiat_p384_addcarryx_u64(x401, x366, x389);
+ let mut x404: u64 = 0;
+ let mut x405: fiat_p384_u1 = 0;
+ let (x404, x405) = fiat_p384_addcarryx_u64(x403, x368, x391);
+ let mut x406: u64 = 0;
+ let mut x407: fiat_p384_u1 = 0;
+ let (x406, x407) = fiat_p384_addcarryx_u64(x405, x370, x393);
+ let mut x408: u64 = 0;
+ let mut x409: fiat_p384_u1 = 0;
+ let (x408, x409) = fiat_p384_addcarryx_u64(x407, x372, x395);
+ let mut x410: u64 = 0;
+ let mut x411: fiat_p384_u1 = 0;
+ let (x410, x411) = fiat_p384_addcarryx_u64(x409, x374, x397);
+ let mut x412: u64 = 0;
+ let mut x413: fiat_p384_u1 = 0;
+ let (x412, x413) = fiat_p384_addcarryx_u64(x411, x376, x399);
+ let mut x414: u64 = 0;
+ let mut x415: u64 = 0;
+ let (x414, x415) = fiat_p384_mulx_u64(x400, 0x100000001);
+ let mut x416: u64 = 0;
+ let mut x417: u64 = 0;
+ let (x416, x417) = fiat_p384_mulx_u64(x414, 0xffffffffffffffff);
+ let mut x418: u64 = 0;
+ let mut x419: u64 = 0;
+ let (x418, x419) = fiat_p384_mulx_u64(x414, 0xffffffffffffffff);
+ let mut x420: u64 = 0;
+ let mut x421: u64 = 0;
+ let (x420, x421) = fiat_p384_mulx_u64(x414, 0xffffffffffffffff);
+ let mut x422: u64 = 0;
+ let mut x423: u64 = 0;
+ let (x422, x423) = fiat_p384_mulx_u64(x414, 0xfffffffffffffffe);
+ let mut x424: u64 = 0;
+ let mut x425: u64 = 0;
+ let (x424, x425) = fiat_p384_mulx_u64(x414, 0xffffffff00000000);
+ let mut x426: u64 = 0;
+ let mut x427: u64 = 0;
+ let (x426, x427) = fiat_p384_mulx_u64(x414, 0xffffffff);
+ let mut x428: u64 = 0;
+ let mut x429: fiat_p384_u1 = 0;
+ let (x428, x429) = fiat_p384_addcarryx_u64(0x0, x427, x424);
+ let mut x430: u64 = 0;
+ let mut x431: fiat_p384_u1 = 0;
+ let (x430, x431) = fiat_p384_addcarryx_u64(x429, x425, x422);
+ let mut x432: u64 = 0;
+ let mut x433: fiat_p384_u1 = 0;
+ let (x432, x433) = fiat_p384_addcarryx_u64(x431, x423, x420);
+ let mut x434: u64 = 0;
+ let mut x435: fiat_p384_u1 = 0;
+ let (x434, x435) = fiat_p384_addcarryx_u64(x433, x421, x418);
+ let mut x436: u64 = 0;
+ let mut x437: fiat_p384_u1 = 0;
+ let (x436, x437) = fiat_p384_addcarryx_u64(x435, x419, x416);
+ let x438: u64 = ((x437 as u64) + x417);
+ let mut x439: u64 = 0;
+ let mut x440: fiat_p384_u1 = 0;
+ let (x439, x440) = fiat_p384_addcarryx_u64(0x0, x400, x426);
+ let mut x441: u64 = 0;
+ let mut x442: fiat_p384_u1 = 0;
+ let (x441, x442) = fiat_p384_addcarryx_u64(x440, x402, x428);
+ let mut x443: u64 = 0;
+ let mut x444: fiat_p384_u1 = 0;
+ let (x443, x444) = fiat_p384_addcarryx_u64(x442, x404, x430);
+ let mut x445: u64 = 0;
+ let mut x446: fiat_p384_u1 = 0;
+ let (x445, x446) = fiat_p384_addcarryx_u64(x444, x406, x432);
+ let mut x447: u64 = 0;
+ let mut x448: fiat_p384_u1 = 0;
+ let (x447, x448) = fiat_p384_addcarryx_u64(x446, x408, x434);
+ let mut x449: u64 = 0;
+ let mut x450: fiat_p384_u1 = 0;
+ let (x449, x450) = fiat_p384_addcarryx_u64(x448, x410, x436);
+ let mut x451: u64 = 0;
+ let mut x452: fiat_p384_u1 = 0;
+ let (x451, x452) = fiat_p384_addcarryx_u64(x450, x412, x438);
+ let x453: u64 = ((x452 as u64) + (x413 as u64));
+ let mut x454: u64 = 0;
+ let mut x455: fiat_p384_u1 = 0;
+ let (x454, x455) = fiat_p384_subborrowx_u64(0x0, x441, 0xffffffff);
+ let mut x456: u64 = 0;
+ let mut x457: fiat_p384_u1 = 0;
+ let (x456, x457) = fiat_p384_subborrowx_u64(x455, x443, 0xffffffff00000000);
+ let mut x458: u64 = 0;
+ let mut x459: fiat_p384_u1 = 0;
+ let (x458, x459) = fiat_p384_subborrowx_u64(x457, x445, 0xfffffffffffffffe);
+ let mut x460: u64 = 0;
+ let mut x461: fiat_p384_u1 = 0;
+ let (x460, x461) = fiat_p384_subborrowx_u64(x459, x447, 0xffffffffffffffff);
+ let mut x462: u64 = 0;
+ let mut x463: fiat_p384_u1 = 0;
+ let (x462, x463) = fiat_p384_subborrowx_u64(x461, x449, 0xffffffffffffffff);
+ let mut x464: u64 = 0;
+ let mut x465: fiat_p384_u1 = 0;
+ let (x464, x465) = fiat_p384_subborrowx_u64(x463, x451, 0xffffffffffffffff);
+ let mut x466: u64 = 0;
+ let mut x467: fiat_p384_u1 = 0;
+ let (x466, x467) = fiat_p384_subborrowx_u64(x465, x453, (0x0 as u64));
+ let mut x468: u64 = 0;
+ let (x468) = fiat_p384_cmovznz_u64(x467, x454, x441);
+ let mut x469: u64 = 0;
+ let (x469) = fiat_p384_cmovznz_u64(x467, x456, x443);
+ let mut x470: u64 = 0;
+ let (x470) = fiat_p384_cmovznz_u64(x467, x458, x445);
+ let mut x471: u64 = 0;
+ let (x471) = fiat_p384_cmovznz_u64(x467, x460, x447);
+ let mut x472: u64 = 0;
+ let (x472) = fiat_p384_cmovznz_u64(x467, x462, x449);
+ let mut x473: u64 = 0;
+ let (x473) = fiat_p384_cmovznz_u64(x467, x464, x451);
+ out1[0] = x468;
+ out1[1] = x469;
+ out1[2] = x470;
+ out1[3] = x471;
+ out1[4] = x472;
+ out1[5] = x473;
+ out1
+}
+#[doc = " The function fiat_p384_add adds two field elements in the Montgomery domain."]
+#[doc = ""]
+#[doc = " Preconditions:"]
+#[doc = " 0 ≤ eval arg1 < m"]
+#[doc = " 0 ≤ eval arg2 < m"]
+#[doc = " Postconditions:"]
+#[doc = " eval (from_montgomery out1) mod m = (eval (from_montgomery arg1) + eval (from_montgomery arg2)) mod m"]
+#[doc = " 0 ≤ eval out1 < m"]
+#[doc = ""]
+#[inline]
+pub const fn fiat_p384_add(
+ arg1: &fiat_p384_montgomery_domain_field_element,
+ arg2: &fiat_p384_montgomery_domain_field_element,
+) -> fiat_p384_montgomery_domain_field_element {
+ let mut out1: fiat_p384_montgomery_domain_field_element = [0; 6];
+ let mut x1: u64 = 0;
+ let mut x2: fiat_p384_u1 = 0;
+ let (x1, x2) = fiat_p384_addcarryx_u64(0x0, (arg1[0]), (arg2[0]));
+ let mut x3: u64 = 0;
+ let mut x4: fiat_p384_u1 = 0;
+ let (x3, x4) = fiat_p384_addcarryx_u64(x2, (arg1[1]), (arg2[1]));
+ let mut x5: u64 = 0;
+ let mut x6: fiat_p384_u1 = 0;
+ let (x5, x6) = fiat_p384_addcarryx_u64(x4, (arg1[2]), (arg2[2]));
+ let mut x7: u64 = 0;
+ let mut x8: fiat_p384_u1 = 0;
+ let (x7, x8) = fiat_p384_addcarryx_u64(x6, (arg1[3]), (arg2[3]));
+ let mut x9: u64 = 0;
+ let mut x10: fiat_p384_u1 = 0;
+ let (x9, x10) = fiat_p384_addcarryx_u64(x8, (arg1[4]), (arg2[4]));
+ let mut x11: u64 = 0;
+ let mut x12: fiat_p384_u1 = 0;
+ let (x11, x12) = fiat_p384_addcarryx_u64(x10, (arg1[5]), (arg2[5]));
+ let mut x13: u64 = 0;
+ let mut x14: fiat_p384_u1 = 0;
+ let (x13, x14) = fiat_p384_subborrowx_u64(0x0, x1, 0xffffffff);
+ let mut x15: u64 = 0;
+ let mut x16: fiat_p384_u1 = 0;
+ let (x15, x16) = fiat_p384_subborrowx_u64(x14, x3, 0xffffffff00000000);
+ let mut x17: u64 = 0;
+ let mut x18: fiat_p384_u1 = 0;
+ let (x17, x18) = fiat_p384_subborrowx_u64(x16, x5, 0xfffffffffffffffe);
+ let mut x19: u64 = 0;
+ let mut x20: fiat_p384_u1 = 0;
+ let (x19, x20) = fiat_p384_subborrowx_u64(x18, x7, 0xffffffffffffffff);
+ let mut x21: u64 = 0;
+ let mut x22: fiat_p384_u1 = 0;
+ let (x21, x22) = fiat_p384_subborrowx_u64(x20, x9, 0xffffffffffffffff);
+ let mut x23: u64 = 0;
+ let mut x24: fiat_p384_u1 = 0;
+ let (x23, x24) = fiat_p384_subborrowx_u64(x22, x11, 0xffffffffffffffff);
+ let mut x25: u64 = 0;
+ let mut x26: fiat_p384_u1 = 0;
+ let (x25, x26) = fiat_p384_subborrowx_u64(x24, (x12 as u64), (0x0 as u64));
+ let mut x27: u64 = 0;
+ let (x27) = fiat_p384_cmovznz_u64(x26, x13, x1);
+ let mut x28: u64 = 0;
+ let (x28) = fiat_p384_cmovznz_u64(x26, x15, x3);
+ let mut x29: u64 = 0;
+ let (x29) = fiat_p384_cmovznz_u64(x26, x17, x5);
+ let mut x30: u64 = 0;
+ let (x30) = fiat_p384_cmovznz_u64(x26, x19, x7);
+ let mut x31: u64 = 0;
+ let (x31) = fiat_p384_cmovznz_u64(x26, x21, x9);
+ let mut x32: u64 = 0;
+ let (x32) = fiat_p384_cmovznz_u64(x26, x23, x11);
+ out1[0] = x27;
+ out1[1] = x28;
+ out1[2] = x29;
+ out1[3] = x30;
+ out1[4] = x31;
+ out1[5] = x32;
+ out1
+}
+#[doc = " The function fiat_p384_sub subtracts two field elements in the Montgomery domain."]
+#[doc = ""]
+#[doc = " Preconditions:"]
+#[doc = " 0 ≤ eval arg1 < m"]
+#[doc = " 0 ≤ eval arg2 < m"]
+#[doc = " Postconditions:"]
+#[doc = " eval (from_montgomery out1) mod m = (eval (from_montgomery arg1) - eval (from_montgomery arg2)) mod m"]
+#[doc = " 0 ≤ eval out1 < m"]
+#[doc = ""]
+#[inline]
+pub const fn fiat_p384_sub(
+ arg1: &fiat_p384_montgomery_domain_field_element,
+ arg2: &fiat_p384_montgomery_domain_field_element,
+) -> fiat_p384_montgomery_domain_field_element {
+ let mut out1: fiat_p384_montgomery_domain_field_element = [0; 6];
+ let mut x1: u64 = 0;
+ let mut x2: fiat_p384_u1 = 0;
+ let (x1, x2) = fiat_p384_subborrowx_u64(0x0, (arg1[0]), (arg2[0]));
+ let mut x3: u64 = 0;
+ let mut x4: fiat_p384_u1 = 0;
+ let (x3, x4) = fiat_p384_subborrowx_u64(x2, (arg1[1]), (arg2[1]));
+ let mut x5: u64 = 0;
+ let mut x6: fiat_p384_u1 = 0;
+ let (x5, x6) = fiat_p384_subborrowx_u64(x4, (arg1[2]), (arg2[2]));
+ let mut x7: u64 = 0;
+ let mut x8: fiat_p384_u1 = 0;
+ let (x7, x8) = fiat_p384_subborrowx_u64(x6, (arg1[3]), (arg2[3]));
+ let mut x9: u64 = 0;
+ let mut x10: fiat_p384_u1 = 0;
+ let (x9, x10) = fiat_p384_subborrowx_u64(x8, (arg1[4]), (arg2[4]));
+ let mut x11: u64 = 0;
+ let mut x12: fiat_p384_u1 = 0;
+ let (x11, x12) = fiat_p384_subborrowx_u64(x10, (arg1[5]), (arg2[5]));
+ let mut x13: u64 = 0;
+ let (x13) = fiat_p384_cmovznz_u64(x12, (0x0 as u64), 0xffffffffffffffff);
+ let mut x14: u64 = 0;
+ let mut x15: fiat_p384_u1 = 0;
+ let (x14, x15) = fiat_p384_addcarryx_u64(0x0, x1, (x13 & 0xffffffff));
+ let mut x16: u64 = 0;
+ let mut x17: fiat_p384_u1 = 0;
+ let (x16, x17) = fiat_p384_addcarryx_u64(x15, x3, (x13 & 0xffffffff00000000));
+ let mut x18: u64 = 0;
+ let mut x19: fiat_p384_u1 = 0;
+ let (x18, x19) = fiat_p384_addcarryx_u64(x17, x5, (x13 & 0xfffffffffffffffe));
+ let mut x20: u64 = 0;
+ let mut x21: fiat_p384_u1 = 0;
+ let (x20, x21) = fiat_p384_addcarryx_u64(x19, x7, x13);
+ let mut x22: u64 = 0;
+ let mut x23: fiat_p384_u1 = 0;
+ let (x22, x23) = fiat_p384_addcarryx_u64(x21, x9, x13);
+ let mut x24: u64 = 0;
+ let mut x25: fiat_p384_u1 = 0;
+ let (x24, x25) = fiat_p384_addcarryx_u64(x23, x11, x13);
+ out1[0] = x14;
+ out1[1] = x16;
+ out1[2] = x18;
+ out1[3] = x20;
+ out1[4] = x22;
+ out1[5] = x24;
+ out1
+}
+#[doc = " The function fiat_p384_opp negates a field element in the Montgomery domain."]
+#[doc = ""]
+#[doc = " Preconditions:"]
+#[doc = " 0 ≤ eval arg1 < m"]
+#[doc = " Postconditions:"]
+#[doc = " eval (from_montgomery out1) mod m = -eval (from_montgomery arg1) mod m"]
+#[doc = " 0 ≤ eval out1 < m"]
+#[doc = ""]
+#[inline]
+pub const fn fiat_p384_opp(
+ arg1: &fiat_p384_montgomery_domain_field_element,
+) -> fiat_p384_montgomery_domain_field_element {
+ let mut out1: fiat_p384_montgomery_domain_field_element = [0; 6];
+ let mut x1: u64 = 0;
+ let mut x2: fiat_p384_u1 = 0;
+ let (x1, x2) = fiat_p384_subborrowx_u64(0x0, (0x0 as u64), (arg1[0]));
+ let mut x3: u64 = 0;
+ let mut x4: fiat_p384_u1 = 0;
+ let (x3, x4) = fiat_p384_subborrowx_u64(x2, (0x0 as u64), (arg1[1]));
+ let mut x5: u64 = 0;
+ let mut x6: fiat_p384_u1 = 0;
+ let (x5, x6) = fiat_p384_subborrowx_u64(x4, (0x0 as u64), (arg1[2]));
+ let mut x7: u64 = 0;
+ let mut x8: fiat_p384_u1 = 0;
+ let (x7, x8) = fiat_p384_subborrowx_u64(x6, (0x0 as u64), (arg1[3]));
+ let mut x9: u64 = 0;
+ let mut x10: fiat_p384_u1 = 0;
+ let (x9, x10) = fiat_p384_subborrowx_u64(x8, (0x0 as u64), (arg1[4]));
+ let mut x11: u64 = 0;
+ let mut x12: fiat_p384_u1 = 0;
+ let (x11, x12) = fiat_p384_subborrowx_u64(x10, (0x0 as u64), (arg1[5]));
+ let mut x13: u64 = 0;
+ let (x13) = fiat_p384_cmovznz_u64(x12, (0x0 as u64), 0xffffffffffffffff);
+ let mut x14: u64 = 0;
+ let mut x15: fiat_p384_u1 = 0;
+ let (x14, x15) = fiat_p384_addcarryx_u64(0x0, x1, (x13 & 0xffffffff));
+ let mut x16: u64 = 0;
+ let mut x17: fiat_p384_u1 = 0;
+ let (x16, x17) = fiat_p384_addcarryx_u64(x15, x3, (x13 & 0xffffffff00000000));
+ let mut x18: u64 = 0;
+ let mut x19: fiat_p384_u1 = 0;
+ let (x18, x19) = fiat_p384_addcarryx_u64(x17, x5, (x13 & 0xfffffffffffffffe));
+ let mut x20: u64 = 0;
+ let mut x21: fiat_p384_u1 = 0;
+ let (x20, x21) = fiat_p384_addcarryx_u64(x19, x7, x13);
+ let mut x22: u64 = 0;
+ let mut x23: fiat_p384_u1 = 0;
+ let (x22, x23) = fiat_p384_addcarryx_u64(x21, x9, x13);
+ let mut x24: u64 = 0;
+ let mut x25: fiat_p384_u1 = 0;
+ let (x24, x25) = fiat_p384_addcarryx_u64(x23, x11, x13);
+ out1[0] = x14;
+ out1[1] = x16;
+ out1[2] = x18;
+ out1[3] = x20;
+ out1[4] = x22;
+ out1[5] = x24;
+ out1
+}
+#[doc = " The function fiat_p384_from_montgomery translates a field element out of the Montgomery domain."]
+#[doc = ""]
+#[doc = " Preconditions:"]
+#[doc = " 0 ≤ eval arg1 < m"]
+#[doc = " Postconditions:"]
+#[doc = " eval out1 mod m = (eval arg1 * ((2^64)⁻¹ mod m)^6) mod m"]
+#[doc = " 0 ≤ eval out1 < m"]
+#[doc = ""]
+#[inline]
+pub const fn fiat_p384_from_montgomery(
+ arg1: &fiat_p384_montgomery_domain_field_element,
+) -> fiat_p384_non_montgomery_domain_field_element {
+ let mut out1: fiat_p384_non_montgomery_domain_field_element = [0; 6];
+ let x1: u64 = (arg1[0]);
+ let mut x2: u64 = 0;
+ let mut x3: u64 = 0;
+ let (x2, x3) = fiat_p384_mulx_u64(x1, 0x100000001);
+ let mut x4: u64 = 0;
+ let mut x5: u64 = 0;
+ let (x4, x5) = fiat_p384_mulx_u64(x2, 0xffffffffffffffff);
+ let mut x6: u64 = 0;
+ let mut x7: u64 = 0;
+ let (x6, x7) = fiat_p384_mulx_u64(x2, 0xffffffffffffffff);
+ let mut x8: u64 = 0;
+ let mut x9: u64 = 0;
+ let (x8, x9) = fiat_p384_mulx_u64(x2, 0xffffffffffffffff);
+ let mut x10: u64 = 0;
+ let mut x11: u64 = 0;
+ let (x10, x11) = fiat_p384_mulx_u64(x2, 0xfffffffffffffffe);
+ let mut x12: u64 = 0;
+ let mut x13: u64 = 0;
+ let (x12, x13) = fiat_p384_mulx_u64(x2, 0xffffffff00000000);
+ let mut x14: u64 = 0;
+ let mut x15: u64 = 0;
+ let (x14, x15) = fiat_p384_mulx_u64(x2, 0xffffffff);
+ let mut x16: u64 = 0;
+ let mut x17: fiat_p384_u1 = 0;
+ let (x16, x17) = fiat_p384_addcarryx_u64(0x0, x15, x12);
+ let mut x18: u64 = 0;
+ let mut x19: fiat_p384_u1 = 0;
+ let (x18, x19) = fiat_p384_addcarryx_u64(x17, x13, x10);
+ let mut x20: u64 = 0;
+ let mut x21: fiat_p384_u1 = 0;
+ let (x20, x21) = fiat_p384_addcarryx_u64(x19, x11, x8);
+ let mut x22: u64 = 0;
+ let mut x23: fiat_p384_u1 = 0;
+ let (x22, x23) = fiat_p384_addcarryx_u64(x21, x9, x6);
+ let mut x24: u64 = 0;
+ let mut x25: fiat_p384_u1 = 0;
+ let (x24, x25) = fiat_p384_addcarryx_u64(x23, x7, x4);
+ let mut x26: u64 = 0;
+ let mut x27: fiat_p384_u1 = 0;
+ let (x26, x27) = fiat_p384_addcarryx_u64(0x0, x1, x14);
+ let mut x28: u64 = 0;
+ let mut x29: fiat_p384_u1 = 0;
+ let (x28, x29) = fiat_p384_addcarryx_u64(x27, (0x0 as u64), x16);
+ let mut x30: u64 = 0;
+ let mut x31: fiat_p384_u1 = 0;
+ let (x30, x31) = fiat_p384_addcarryx_u64(x29, (0x0 as u64), x18);
+ let mut x32: u64 = 0;
+ let mut x33: fiat_p384_u1 = 0;
+ let (x32, x33) = fiat_p384_addcarryx_u64(x31, (0x0 as u64), x20);
+ let mut x34: u64 = 0;
+ let mut x35: fiat_p384_u1 = 0;
+ let (x34, x35) = fiat_p384_addcarryx_u64(x33, (0x0 as u64), x22);
+ let mut x36: u64 = 0;
+ let mut x37: fiat_p384_u1 = 0;
+ let (x36, x37) = fiat_p384_addcarryx_u64(x35, (0x0 as u64), x24);
+ let mut x38: u64 = 0;
+ let mut x39: fiat_p384_u1 = 0;
+ let (x38, x39) = fiat_p384_addcarryx_u64(x37, (0x0 as u64), ((x25 as u64) + x5));
+ let mut x40: u64 = 0;
+ let mut x41: fiat_p384_u1 = 0;
+ let (x40, x41) = fiat_p384_addcarryx_u64(0x0, x28, (arg1[1]));
+ let mut x42: u64 = 0;
+ let mut x43: fiat_p384_u1 = 0;
+ let (x42, x43) = fiat_p384_addcarryx_u64(x41, x30, (0x0 as u64));
+ let mut x44: u64 = 0;
+ let mut x45: fiat_p384_u1 = 0;
+ let (x44, x45) = fiat_p384_addcarryx_u64(x43, x32, (0x0 as u64));
+ let mut x46: u64 = 0;
+ let mut x47: fiat_p384_u1 = 0;
+ let (x46, x47) = fiat_p384_addcarryx_u64(x45, x34, (0x0 as u64));
+ let mut x48: u64 = 0;
+ let mut x49: fiat_p384_u1 = 0;
+ let (x48, x49) = fiat_p384_addcarryx_u64(x47, x36, (0x0 as u64));
+ let mut x50: u64 = 0;
+ let mut x51: fiat_p384_u1 = 0;
+ let (x50, x51) = fiat_p384_addcarryx_u64(x49, x38, (0x0 as u64));
+ let mut x52: u64 = 0;
+ let mut x53: u64 = 0;
+ let (x52, x53) = fiat_p384_mulx_u64(x40, 0x100000001);
+ let mut x54: u64 = 0;
+ let mut x55: u64 = 0;
+ let (x54, x55) = fiat_p384_mulx_u64(x52, 0xffffffffffffffff);
+ let mut x56: u64 = 0;
+ let mut x57: u64 = 0;
+ let (x56, x57) = fiat_p384_mulx_u64(x52, 0xffffffffffffffff);
+ let mut x58: u64 = 0;
+ let mut x59: u64 = 0;
+ let (x58, x59) = fiat_p384_mulx_u64(x52, 0xffffffffffffffff);
+ let mut x60: u64 = 0;
+ let mut x61: u64 = 0;
+ let (x60, x61) = fiat_p384_mulx_u64(x52, 0xfffffffffffffffe);
+ let mut x62: u64 = 0;
+ let mut x63: u64 = 0;
+ let (x62, x63) = fiat_p384_mulx_u64(x52, 0xffffffff00000000);
+ let mut x64: u64 = 0;
+ let mut x65: u64 = 0;
+ let (x64, x65) = fiat_p384_mulx_u64(x52, 0xffffffff);
+ let mut x66: u64 = 0;
+ let mut x67: fiat_p384_u1 = 0;
+ let (x66, x67) = fiat_p384_addcarryx_u64(0x0, x65, x62);
+ let mut x68: u64 = 0;
+ let mut x69: fiat_p384_u1 = 0;
+ let (x68, x69) = fiat_p384_addcarryx_u64(x67, x63, x60);
+ let mut x70: u64 = 0;
+ let mut x71: fiat_p384_u1 = 0;
+ let (x70, x71) = fiat_p384_addcarryx_u64(x69, x61, x58);
+ let mut x72: u64 = 0;
+ let mut x73: fiat_p384_u1 = 0;
+ let (x72, x73) = fiat_p384_addcarryx_u64(x71, x59, x56);
+ let mut x74: u64 = 0;
+ let mut x75: fiat_p384_u1 = 0;
+ let (x74, x75) = fiat_p384_addcarryx_u64(x73, x57, x54);
+ let mut x76: u64 = 0;
+ let mut x77: fiat_p384_u1 = 0;
+ let (x76, x77) = fiat_p384_addcarryx_u64(0x0, x40, x64);
+ let mut x78: u64 = 0;
+ let mut x79: fiat_p384_u1 = 0;
+ let (x78, x79) = fiat_p384_addcarryx_u64(x77, x42, x66);
+ let mut x80: u64 = 0;
+ let mut x81: fiat_p384_u1 = 0;
+ let (x80, x81) = fiat_p384_addcarryx_u64(x79, x44, x68);
+ let mut x82: u64 = 0;
+ let mut x83: fiat_p384_u1 = 0;
+ let (x82, x83) = fiat_p384_addcarryx_u64(x81, x46, x70);
+ let mut x84: u64 = 0;
+ let mut x85: fiat_p384_u1 = 0;
+ let (x84, x85) = fiat_p384_addcarryx_u64(x83, x48, x72);
+ let mut x86: u64 = 0;
+ let mut x87: fiat_p384_u1 = 0;
+ let (x86, x87) = fiat_p384_addcarryx_u64(x85, x50, x74);
+ let mut x88: u64 = 0;
+ let mut x89: fiat_p384_u1 = 0;
+ let (x88, x89) =
+ fiat_p384_addcarryx_u64(x87, ((x51 as u64) + (x39 as u64)), ((x75 as u64) + x55));
+ let mut x90: u64 = 0;
+ let mut x91: fiat_p384_u1 = 0;
+ let (x90, x91) = fiat_p384_addcarryx_u64(0x0, x78, (arg1[2]));
+ let mut x92: u64 = 0;
+ let mut x93: fiat_p384_u1 = 0;
+ let (x92, x93) = fiat_p384_addcarryx_u64(x91, x80, (0x0 as u64));
+ let mut x94: u64 = 0;
+ let mut x95: fiat_p384_u1 = 0;
+ let (x94, x95) = fiat_p384_addcarryx_u64(x93, x82, (0x0 as u64));
+ let mut x96: u64 = 0;
+ let mut x97: fiat_p384_u1 = 0;
+ let (x96, x97) = fiat_p384_addcarryx_u64(x95, x84, (0x0 as u64));
+ let mut x98: u64 = 0;
+ let mut x99: fiat_p384_u1 = 0;
+ let (x98, x99) = fiat_p384_addcarryx_u64(x97, x86, (0x0 as u64));
+ let mut x100: u64 = 0;
+ let mut x101: fiat_p384_u1 = 0;
+ let (x100, x101) = fiat_p384_addcarryx_u64(x99, x88, (0x0 as u64));
+ let mut x102: u64 = 0;
+ let mut x103: u64 = 0;
+ let (x102, x103) = fiat_p384_mulx_u64(x90, 0x100000001);
+ let mut x104: u64 = 0;
+ let mut x105: u64 = 0;
+ let (x104, x105) = fiat_p384_mulx_u64(x102, 0xffffffffffffffff);
+ let mut x106: u64 = 0;
+ let mut x107: u64 = 0;
+ let (x106, x107) = fiat_p384_mulx_u64(x102, 0xffffffffffffffff);
+ let mut x108: u64 = 0;
+ let mut x109: u64 = 0;
+ let (x108, x109) = fiat_p384_mulx_u64(x102, 0xffffffffffffffff);
+ let mut x110: u64 = 0;
+ let mut x111: u64 = 0;
+ let (x110, x111) = fiat_p384_mulx_u64(x102, 0xfffffffffffffffe);
+ let mut x112: u64 = 0;
+ let mut x113: u64 = 0;
+ let (x112, x113) = fiat_p384_mulx_u64(x102, 0xffffffff00000000);
+ let mut x114: u64 = 0;
+ let mut x115: u64 = 0;
+ let (x114, x115) = fiat_p384_mulx_u64(x102, 0xffffffff);
+ let mut x116: u64 = 0;
+ let mut x117: fiat_p384_u1 = 0;
+ let (x116, x117) = fiat_p384_addcarryx_u64(0x0, x115, x112);
+ let mut x118: u64 = 0;
+ let mut x119: fiat_p384_u1 = 0;
+ let (x118, x119) = fiat_p384_addcarryx_u64(x117, x113, x110);
+ let mut x120: u64 = 0;
+ let mut x121: fiat_p384_u1 = 0;
+ let (x120, x121) = fiat_p384_addcarryx_u64(x119, x111, x108);
+ let mut x122: u64 = 0;
+ let mut x123: fiat_p384_u1 = 0;
+ let (x122, x123) = fiat_p384_addcarryx_u64(x121, x109, x106);
+ let mut x124: u64 = 0;
+ let mut x125: fiat_p384_u1 = 0;
+ let (x124, x125) = fiat_p384_addcarryx_u64(x123, x107, x104);
+ let mut x126: u64 = 0;
+ let mut x127: fiat_p384_u1 = 0;
+ let (x126, x127) = fiat_p384_addcarryx_u64(0x0, x90, x114);
+ let mut x128: u64 = 0;
+ let mut x129: fiat_p384_u1 = 0;
+ let (x128, x129) = fiat_p384_addcarryx_u64(x127, x92, x116);
+ let mut x130: u64 = 0;
+ let mut x131: fiat_p384_u1 = 0;
+ let (x130, x131) = fiat_p384_addcarryx_u64(x129, x94, x118);
+ let mut x132: u64 = 0;
+ let mut x133: fiat_p384_u1 = 0;
+ let (x132, x133) = fiat_p384_addcarryx_u64(x131, x96, x120);
+ let mut x134: u64 = 0;
+ let mut x135: fiat_p384_u1 = 0;
+ let (x134, x135) = fiat_p384_addcarryx_u64(x133, x98, x122);
+ let mut x136: u64 = 0;
+ let mut x137: fiat_p384_u1 = 0;
+ let (x136, x137) = fiat_p384_addcarryx_u64(x135, x100, x124);
+ let mut x138: u64 = 0;
+ let mut x139: fiat_p384_u1 = 0;
+ let (x138, x139) =
+ fiat_p384_addcarryx_u64(x137, ((x101 as u64) + (x89 as u64)), ((x125 as u64) + x105));
+ let mut x140: u64 = 0;
+ let mut x141: fiat_p384_u1 = 0;
+ let (x140, x141) = fiat_p384_addcarryx_u64(0x0, x128, (arg1[3]));
+ let mut x142: u64 = 0;
+ let mut x143: fiat_p384_u1 = 0;
+ let (x142, x143) = fiat_p384_addcarryx_u64(x141, x130, (0x0 as u64));
+ let mut x144: u64 = 0;
+ let mut x145: fiat_p384_u1 = 0;
+ let (x144, x145) = fiat_p384_addcarryx_u64(x143, x132, (0x0 as u64));
+ let mut x146: u64 = 0;
+ let mut x147: fiat_p384_u1 = 0;
+ let (x146, x147) = fiat_p384_addcarryx_u64(x145, x134, (0x0 as u64));
+ let mut x148: u64 = 0;
+ let mut x149: fiat_p384_u1 = 0;
+ let (x148, x149) = fiat_p384_addcarryx_u64(x147, x136, (0x0 as u64));
+ let mut x150: u64 = 0;
+ let mut x151: fiat_p384_u1 = 0;
+ let (x150, x151) = fiat_p384_addcarryx_u64(x149, x138, (0x0 as u64));
+ let mut x152: u64 = 0;
+ let mut x153: u64 = 0;
+ let (x152, x153) = fiat_p384_mulx_u64(x140, 0x100000001);
+ let mut x154: u64 = 0;
+ let mut x155: u64 = 0;
+ let (x154, x155) = fiat_p384_mulx_u64(x152, 0xffffffffffffffff);
+ let mut x156: u64 = 0;
+ let mut x157: u64 = 0;
+ let (x156, x157) = fiat_p384_mulx_u64(x152, 0xffffffffffffffff);
+ let mut x158: u64 = 0;
+ let mut x159: u64 = 0;
+ let (x158, x159) = fiat_p384_mulx_u64(x152, 0xffffffffffffffff);
+ let mut x160: u64 = 0;
+ let mut x161: u64 = 0;
+ let (x160, x161) = fiat_p384_mulx_u64(x152, 0xfffffffffffffffe);
+ let mut x162: u64 = 0;
+ let mut x163: u64 = 0;
+ let (x162, x163) = fiat_p384_mulx_u64(x152, 0xffffffff00000000);
+ let mut x164: u64 = 0;
+ let mut x165: u64 = 0;
+ let (x164, x165) = fiat_p384_mulx_u64(x152, 0xffffffff);
+ let mut x166: u64 = 0;
+ let mut x167: fiat_p384_u1 = 0;
+ let (x166, x167) = fiat_p384_addcarryx_u64(0x0, x165, x162);
+ let mut x168: u64 = 0;
+ let mut x169: fiat_p384_u1 = 0;
+ let (x168, x169) = fiat_p384_addcarryx_u64(x167, x163, x160);
+ let mut x170: u64 = 0;
+ let mut x171: fiat_p384_u1 = 0;
+ let (x170, x171) = fiat_p384_addcarryx_u64(x169, x161, x158);
+ let mut x172: u64 = 0;
+ let mut x173: fiat_p384_u1 = 0;
+ let (x172, x173) = fiat_p384_addcarryx_u64(x171, x159, x156);
+ let mut x174: u64 = 0;
+ let mut x175: fiat_p384_u1 = 0;
+ let (x174, x175) = fiat_p384_addcarryx_u64(x173, x157, x154);
+ let mut x176: u64 = 0;
+ let mut x177: fiat_p384_u1 = 0;
+ let (x176, x177) = fiat_p384_addcarryx_u64(0x0, x140, x164);
+ let mut x178: u64 = 0;
+ let mut x179: fiat_p384_u1 = 0;
+ let (x178, x179) = fiat_p384_addcarryx_u64(x177, x142, x166);
+ let mut x180: u64 = 0;
+ let mut x181: fiat_p384_u1 = 0;
+ let (x180, x181) = fiat_p384_addcarryx_u64(x179, x144, x168);
+ let mut x182: u64 = 0;
+ let mut x183: fiat_p384_u1 = 0;
+ let (x182, x183) = fiat_p384_addcarryx_u64(x181, x146, x170);
+ let mut x184: u64 = 0;
+ let mut x185: fiat_p384_u1 = 0;
+ let (x184, x185) = fiat_p384_addcarryx_u64(x183, x148, x172);
+ let mut x186: u64 = 0;
+ let mut x187: fiat_p384_u1 = 0;
+ let (x186, x187) = fiat_p384_addcarryx_u64(x185, x150, x174);
+ let mut x188: u64 = 0;
+ let mut x189: fiat_p384_u1 = 0;
+ let (x188, x189) = fiat_p384_addcarryx_u64(
+ x187,
+ ((x151 as u64) + (x139 as u64)),
+ ((x175 as u64) + x155),
+ );
+ let mut x190: u64 = 0;
+ let mut x191: fiat_p384_u1 = 0;
+ let (x190, x191) = fiat_p384_addcarryx_u64(0x0, x178, (arg1[4]));
+ let mut x192: u64 = 0;
+ let mut x193: fiat_p384_u1 = 0;
+ let (x192, x193) = fiat_p384_addcarryx_u64(x191, x180, (0x0 as u64));
+ let mut x194: u64 = 0;
+ let mut x195: fiat_p384_u1 = 0;
+ let (x194, x195) = fiat_p384_addcarryx_u64(x193, x182, (0x0 as u64));
+ let mut x196: u64 = 0;
+ let mut x197: fiat_p384_u1 = 0;
+ let (x196, x197) = fiat_p384_addcarryx_u64(x195, x184, (0x0 as u64));
+ let mut x198: u64 = 0;
+ let mut x199: fiat_p384_u1 = 0;
+ let (x198, x199) = fiat_p384_addcarryx_u64(x197, x186, (0x0 as u64));
+ let mut x200: u64 = 0;
+ let mut x201: fiat_p384_u1 = 0;
+ let (x200, x201) = fiat_p384_addcarryx_u64(x199, x188, (0x0 as u64));
+ let mut x202: u64 = 0;
+ let mut x203: u64 = 0;
+ let (x202, x203) = fiat_p384_mulx_u64(x190, 0x100000001);
+ let mut x204: u64 = 0;
+ let mut x205: u64 = 0;
+ let (x204, x205) = fiat_p384_mulx_u64(x202, 0xffffffffffffffff);
+ let mut x206: u64 = 0;
+ let mut x207: u64 = 0;
+ let (x206, x207) = fiat_p384_mulx_u64(x202, 0xffffffffffffffff);
+ let mut x208: u64 = 0;
+ let mut x209: u64 = 0;
+ let (x208, x209) = fiat_p384_mulx_u64(x202, 0xffffffffffffffff);
+ let mut x210: u64 = 0;
+ let mut x211: u64 = 0;
+ let (x210, x211) = fiat_p384_mulx_u64(x202, 0xfffffffffffffffe);
+ let mut x212: u64 = 0;
+ let mut x213: u64 = 0;
+ let (x212, x213) = fiat_p384_mulx_u64(x202, 0xffffffff00000000);
+ let mut x214: u64 = 0;
+ let mut x215: u64 = 0;
+ let (x214, x215) = fiat_p384_mulx_u64(x202, 0xffffffff);
+ let mut x216: u64 = 0;
+ let mut x217: fiat_p384_u1 = 0;
+ let (x216, x217) = fiat_p384_addcarryx_u64(0x0, x215, x212);
+ let mut x218: u64 = 0;
+ let mut x219: fiat_p384_u1 = 0;
+ let (x218, x219) = fiat_p384_addcarryx_u64(x217, x213, x210);
+ let mut x220: u64 = 0;
+ let mut x221: fiat_p384_u1 = 0;
+ let (x220, x221) = fiat_p384_addcarryx_u64(x219, x211, x208);
+ let mut x222: u64 = 0;
+ let mut x223: fiat_p384_u1 = 0;
+ let (x222, x223) = fiat_p384_addcarryx_u64(x221, x209, x206);
+ let mut x224: u64 = 0;
+ let mut x225: fiat_p384_u1 = 0;
+ let (x224, x225) = fiat_p384_addcarryx_u64(x223, x207, x204);
+ let mut x226: u64 = 0;
+ let mut x227: fiat_p384_u1 = 0;
+ let (x226, x227) = fiat_p384_addcarryx_u64(0x0, x190, x214);
+ let mut x228: u64 = 0;
+ let mut x229: fiat_p384_u1 = 0;
+ let (x228, x229) = fiat_p384_addcarryx_u64(x227, x192, x216);
+ let mut x230: u64 = 0;
+ let mut x231: fiat_p384_u1 = 0;
+ let (x230, x231) = fiat_p384_addcarryx_u64(x229, x194, x218);
+ let mut x232: u64 = 0;
+ let mut x233: fiat_p384_u1 = 0;
+ let (x232, x233) = fiat_p384_addcarryx_u64(x231, x196, x220);
+ let mut x234: u64 = 0;
+ let mut x235: fiat_p384_u1 = 0;
+ let (x234, x235) = fiat_p384_addcarryx_u64(x233, x198, x222);
+ let mut x236: u64 = 0;
+ let mut x237: fiat_p384_u1 = 0;
+ let (x236, x237) = fiat_p384_addcarryx_u64(x235, x200, x224);
+ let mut x238: u64 = 0;
+ let mut x239: fiat_p384_u1 = 0;
+ let (x238, x239) = fiat_p384_addcarryx_u64(
+ x237,
+ ((x201 as u64) + (x189 as u64)),
+ ((x225 as u64) + x205),
+ );
+ let mut x240: u64 = 0;
+ let mut x241: fiat_p384_u1 = 0;
+ let (x240, x241) = fiat_p384_addcarryx_u64(0x0, x228, (arg1[5]));
+ let mut x242: u64 = 0;
+ let mut x243: fiat_p384_u1 = 0;
+ let (x242, x243) = fiat_p384_addcarryx_u64(x241, x230, (0x0 as u64));
+ let mut x244: u64 = 0;
+ let mut x245: fiat_p384_u1 = 0;
+ let (x244, x245) = fiat_p384_addcarryx_u64(x243, x232, (0x0 as u64));
+ let mut x246: u64 = 0;
+ let mut x247: fiat_p384_u1 = 0;
+ let (x246, x247) = fiat_p384_addcarryx_u64(x245, x234, (0x0 as u64));
+ let mut x248: u64 = 0;
+ let mut x249: fiat_p384_u1 = 0;
+ let (x248, x249) = fiat_p384_addcarryx_u64(x247, x236, (0x0 as u64));
+ let mut x250: u64 = 0;
+ let mut x251: fiat_p384_u1 = 0;
+ let (x250, x251) = fiat_p384_addcarryx_u64(x249, x238, (0x0 as u64));
+ let mut x252: u64 = 0;
+ let mut x253: u64 = 0;
+ let (x252, x253) = fiat_p384_mulx_u64(x240, 0x100000001);
+ let mut x254: u64 = 0;
+ let mut x255: u64 = 0;
+ let (x254, x255) = fiat_p384_mulx_u64(x252, 0xffffffffffffffff);
+ let mut x256: u64 = 0;
+ let mut x257: u64 = 0;
+ let (x256, x257) = fiat_p384_mulx_u64(x252, 0xffffffffffffffff);
+ let mut x258: u64 = 0;
+ let mut x259: u64 = 0;
+ let (x258, x259) = fiat_p384_mulx_u64(x252, 0xffffffffffffffff);
+ let mut x260: u64 = 0;
+ let mut x261: u64 = 0;
+ let (x260, x261) = fiat_p384_mulx_u64(x252, 0xfffffffffffffffe);
+ let mut x262: u64 = 0;
+ let mut x263: u64 = 0;
+ let (x262, x263) = fiat_p384_mulx_u64(x252, 0xffffffff00000000);
+ let mut x264: u64 = 0;
+ let mut x265: u64 = 0;
+ let (x264, x265) = fiat_p384_mulx_u64(x252, 0xffffffff);
+ let mut x266: u64 = 0;
+ let mut x267: fiat_p384_u1 = 0;
+ let (x266, x267) = fiat_p384_addcarryx_u64(0x0, x265, x262);
+ let mut x268: u64 = 0;
+ let mut x269: fiat_p384_u1 = 0;
+ let (x268, x269) = fiat_p384_addcarryx_u64(x267, x263, x260);
+ let mut x270: u64 = 0;
+ let mut x271: fiat_p384_u1 = 0;
+ let (x270, x271) = fiat_p384_addcarryx_u64(x269, x261, x258);
+ let mut x272: u64 = 0;
+ let mut x273: fiat_p384_u1 = 0;
+ let (x272, x273) = fiat_p384_addcarryx_u64(x271, x259, x256);
+ let mut x274: u64 = 0;
+ let mut x275: fiat_p384_u1 = 0;
+ let (x274, x275) = fiat_p384_addcarryx_u64(x273, x257, x254);
+ let mut x276: u64 = 0;
+ let mut x277: fiat_p384_u1 = 0;
+ let (x276, x277) = fiat_p384_addcarryx_u64(0x0, x240, x264);
+ let mut x278: u64 = 0;
+ let mut x279: fiat_p384_u1 = 0;
+ let (x278, x279) = fiat_p384_addcarryx_u64(x277, x242, x266);
+ let mut x280: u64 = 0;
+ let mut x281: fiat_p384_u1 = 0;
+ let (x280, x281) = fiat_p384_addcarryx_u64(x279, x244, x268);
+ let mut x282: u64 = 0;
+ let mut x283: fiat_p384_u1 = 0;
+ let (x282, x283) = fiat_p384_addcarryx_u64(x281, x246, x270);
+ let mut x284: u64 = 0;
+ let mut x285: fiat_p384_u1 = 0;
+ let (x284, x285) = fiat_p384_addcarryx_u64(x283, x248, x272);
+ let mut x286: u64 = 0;
+ let mut x287: fiat_p384_u1 = 0;
+ let (x286, x287) = fiat_p384_addcarryx_u64(x285, x250, x274);
+ let mut x288: u64 = 0;
+ let mut x289: fiat_p384_u1 = 0;
+ let (x288, x289) = fiat_p384_addcarryx_u64(
+ x287,
+ ((x251 as u64) + (x239 as u64)),
+ ((x275 as u64) + x255),
+ );
+ let mut x290: u64 = 0;
+ let mut x291: fiat_p384_u1 = 0;
+ let (x290, x291) = fiat_p384_subborrowx_u64(0x0, x278, 0xffffffff);
+ let mut x292: u64 = 0;
+ let mut x293: fiat_p384_u1 = 0;
+ let (x292, x293) = fiat_p384_subborrowx_u64(x291, x280, 0xffffffff00000000);
+ let mut x294: u64 = 0;
+ let mut x295: fiat_p384_u1 = 0;
+ let (x294, x295) = fiat_p384_subborrowx_u64(x293, x282, 0xfffffffffffffffe);
+ let mut x296: u64 = 0;
+ let mut x297: fiat_p384_u1 = 0;
+ let (x296, x297) = fiat_p384_subborrowx_u64(x295, x284, 0xffffffffffffffff);
+ let mut x298: u64 = 0;
+ let mut x299: fiat_p384_u1 = 0;
+ let (x298, x299) = fiat_p384_subborrowx_u64(x297, x286, 0xffffffffffffffff);
+ let mut x300: u64 = 0;
+ let mut x301: fiat_p384_u1 = 0;
+ let (x300, x301) = fiat_p384_subborrowx_u64(x299, x288, 0xffffffffffffffff);
+ let mut x302: u64 = 0;
+ let mut x303: fiat_p384_u1 = 0;
+ let (x302, x303) = fiat_p384_subborrowx_u64(x301, (x289 as u64), (0x0 as u64));
+ let mut x304: u64 = 0;
+ let (x304) = fiat_p384_cmovznz_u64(x303, x290, x278);
+ let mut x305: u64 = 0;
+ let (x305) = fiat_p384_cmovznz_u64(x303, x292, x280);
+ let mut x306: u64 = 0;
+ let (x306) = fiat_p384_cmovznz_u64(x303, x294, x282);
+ let mut x307: u64 = 0;
+ let (x307) = fiat_p384_cmovznz_u64(x303, x296, x284);
+ let mut x308: u64 = 0;
+ let (x308) = fiat_p384_cmovznz_u64(x303, x298, x286);
+ let mut x309: u64 = 0;
+ let (x309) = fiat_p384_cmovznz_u64(x303, x300, x288);
+ out1[0] = x304;
+ out1[1] = x305;
+ out1[2] = x306;
+ out1[3] = x307;
+ out1[4] = x308;
+ out1[5] = x309;
+ out1
+}
+#[doc = " The function fiat_p384_to_montgomery translates a field element into the Montgomery domain."]
+#[doc = ""]
+#[doc = " Preconditions:"]
+#[doc = " 0 ≤ eval arg1 < m"]
+#[doc = " Postconditions:"]
+#[doc = " eval (from_montgomery out1) mod m = eval arg1 mod m"]
+#[doc = " 0 ≤ eval out1 < m"]
+#[doc = ""]
+#[inline]
+pub const fn fiat_p384_to_montgomery(
+ arg1: &fiat_p384_non_montgomery_domain_field_element,
+) -> fiat_p384_montgomery_domain_field_element {
+ let mut out1: fiat_p384_montgomery_domain_field_element = [0; 6];
+ let x1: u64 = (arg1[1]);
+ let x2: u64 = (arg1[2]);
+ let x3: u64 = (arg1[3]);
+ let x4: u64 = (arg1[4]);
+ let x5: u64 = (arg1[5]);
+ let x6: u64 = (arg1[0]);
+ let mut x7: u64 = 0;
+ let mut x8: u64 = 0;
+ let (x7, x8) = fiat_p384_mulx_u64(x6, 0x200000000);
+ let mut x9: u64 = 0;
+ let mut x10: u64 = 0;
+ let (x9, x10) = fiat_p384_mulx_u64(x6, 0xfffffffe00000000);
+ let mut x11: u64 = 0;
+ let mut x12: u64 = 0;
+ let (x11, x12) = fiat_p384_mulx_u64(x6, 0x200000000);
+ let mut x13: u64 = 0;
+ let mut x14: u64 = 0;
+ let (x13, x14) = fiat_p384_mulx_u64(x6, 0xfffffffe00000001);
+ let mut x15: u64 = 0;
+ let mut x16: fiat_p384_u1 = 0;
+ let (x15, x16) = fiat_p384_addcarryx_u64(0x0, x14, x11);
+ let mut x17: u64 = 0;
+ let mut x18: fiat_p384_u1 = 0;
+ let (x17, x18) = fiat_p384_addcarryx_u64(x16, x12, x9);
+ let mut x19: u64 = 0;
+ let mut x20: fiat_p384_u1 = 0;
+ let (x19, x20) = fiat_p384_addcarryx_u64(x18, x10, x7);
+ let mut x21: u64 = 0;
+ let mut x22: fiat_p384_u1 = 0;
+ let (x21, x22) = fiat_p384_addcarryx_u64(x20, x8, x6);
+ let mut x23: u64 = 0;
+ let mut x24: u64 = 0;
+ let (x23, x24) = fiat_p384_mulx_u64(x13, 0x100000001);
+ let mut x25: u64 = 0;
+ let mut x26: u64 = 0;
+ let (x25, x26) = fiat_p384_mulx_u64(x23, 0xffffffffffffffff);
+ let mut x27: u64 = 0;
+ let mut x28: u64 = 0;
+ let (x27, x28) = fiat_p384_mulx_u64(x23, 0xffffffffffffffff);
+ let mut x29: u64 = 0;
+ let mut x30: u64 = 0;
+ let (x29, x30) = fiat_p384_mulx_u64(x23, 0xffffffffffffffff);
+ let mut x31: u64 = 0;
+ let mut x32: u64 = 0;
+ let (x31, x32) = fiat_p384_mulx_u64(x23, 0xfffffffffffffffe);
+ let mut x33: u64 = 0;
+ let mut x34: u64 = 0;
+ let (x33, x34) = fiat_p384_mulx_u64(x23, 0xffffffff00000000);
+ let mut x35: u64 = 0;
+ let mut x36: u64 = 0;
+ let (x35, x36) = fiat_p384_mulx_u64(x23, 0xffffffff);
+ let mut x37: u64 = 0;
+ let mut x38: fiat_p384_u1 = 0;
+ let (x37, x38) = fiat_p384_addcarryx_u64(0x0, x36, x33);
+ let mut x39: u64 = 0;
+ let mut x40: fiat_p384_u1 = 0;
+ let (x39, x40) = fiat_p384_addcarryx_u64(x38, x34, x31);
+ let mut x41: u64 = 0;
+ let mut x42: fiat_p384_u1 = 0;
+ let (x41, x42) = fiat_p384_addcarryx_u64(x40, x32, x29);
+ let mut x43: u64 = 0;
+ let mut x44: fiat_p384_u1 = 0;
+ let (x43, x44) = fiat_p384_addcarryx_u64(x42, x30, x27);
+ let mut x45: u64 = 0;
+ let mut x46: fiat_p384_u1 = 0;
+ let (x45, x46) = fiat_p384_addcarryx_u64(x44, x28, x25);
+ let mut x47: u64 = 0;
+ let mut x48: fiat_p384_u1 = 0;
+ let (x47, x48) = fiat_p384_addcarryx_u64(0x0, x13, x35);
+ let mut x49: u64 = 0;
+ let mut x50: fiat_p384_u1 = 0;
+ let (x49, x50) = fiat_p384_addcarryx_u64(x48, x15, x37);
+ let mut x51: u64 = 0;
+ let mut x52: fiat_p384_u1 = 0;
+ let (x51, x52) = fiat_p384_addcarryx_u64(x50, x17, x39);
+ let mut x53: u64 = 0;
+ let mut x54: fiat_p384_u1 = 0;
+ let (x53, x54) = fiat_p384_addcarryx_u64(x52, x19, x41);
+ let mut x55: u64 = 0;
+ let mut x56: fiat_p384_u1 = 0;
+ let (x55, x56) = fiat_p384_addcarryx_u64(x54, x21, x43);
+ let mut x57: u64 = 0;
+ let mut x58: fiat_p384_u1 = 0;
+ let (x57, x58) = fiat_p384_addcarryx_u64(x56, (x22 as u64), x45);
+ let mut x59: u64 = 0;
+ let mut x60: fiat_p384_u1 = 0;
+ let (x59, x60) = fiat_p384_addcarryx_u64(x58, (0x0 as u64), ((x46 as u64) + x26));
+ let mut x61: u64 = 0;
+ let mut x62: u64 = 0;
+ let (x61, x62) = fiat_p384_mulx_u64(x1, 0x200000000);
+ let mut x63: u64 = 0;
+ let mut x64: u64 = 0;
+ let (x63, x64) = fiat_p384_mulx_u64(x1, 0xfffffffe00000000);
+ let mut x65: u64 = 0;
+ let mut x66: u64 = 0;
+ let (x65, x66) = fiat_p384_mulx_u64(x1, 0x200000000);
+ let mut x67: u64 = 0;
+ let mut x68: u64 = 0;
+ let (x67, x68) = fiat_p384_mulx_u64(x1, 0xfffffffe00000001);
+ let mut x69: u64 = 0;
+ let mut x70: fiat_p384_u1 = 0;
+ let (x69, x70) = fiat_p384_addcarryx_u64(0x0, x68, x65);
+ let mut x71: u64 = 0;
+ let mut x72: fiat_p384_u1 = 0;
+ let (x71, x72) = fiat_p384_addcarryx_u64(x70, x66, x63);
+ let mut x73: u64 = 0;
+ let mut x74: fiat_p384_u1 = 0;
+ let (x73, x74) = fiat_p384_addcarryx_u64(x72, x64, x61);
+ let mut x75: u64 = 0;
+ let mut x76: fiat_p384_u1 = 0;
+ let (x75, x76) = fiat_p384_addcarryx_u64(x74, x62, x1);
+ let mut x77: u64 = 0;
+ let mut x78: fiat_p384_u1 = 0;
+ let (x77, x78) = fiat_p384_addcarryx_u64(0x0, x49, x67);
+ let mut x79: u64 = 0;
+ let mut x80: fiat_p384_u1 = 0;
+ let (x79, x80) = fiat_p384_addcarryx_u64(x78, x51, x69);
+ let mut x81: u64 = 0;
+ let mut x82: fiat_p384_u1 = 0;
+ let (x81, x82) = fiat_p384_addcarryx_u64(x80, x53, x71);
+ let mut x83: u64 = 0;
+ let mut x84: fiat_p384_u1 = 0;
+ let (x83, x84) = fiat_p384_addcarryx_u64(x82, x55, x73);
+ let mut x85: u64 = 0;
+ let mut x86: fiat_p384_u1 = 0;
+ let (x85, x86) = fiat_p384_addcarryx_u64(x84, x57, x75);
+ let mut x87: u64 = 0;
+ let mut x88: fiat_p384_u1 = 0;
+ let (x87, x88) = fiat_p384_addcarryx_u64(x86, x59, (x76 as u64));
+ let mut x89: u64 = 0;
+ let mut x90: u64 = 0;
+ let (x89, x90) = fiat_p384_mulx_u64(x77, 0x100000001);
+ let mut x91: u64 = 0;
+ let mut x92: u64 = 0;
+ let (x91, x92) = fiat_p384_mulx_u64(x89, 0xffffffffffffffff);
+ let mut x93: u64 = 0;
+ let mut x94: u64 = 0;
+ let (x93, x94) = fiat_p384_mulx_u64(x89, 0xffffffffffffffff);
+ let mut x95: u64 = 0;
+ let mut x96: u64 = 0;
+ let (x95, x96) = fiat_p384_mulx_u64(x89, 0xffffffffffffffff);
+ let mut x97: u64 = 0;
+ let mut x98: u64 = 0;
+ let (x97, x98) = fiat_p384_mulx_u64(x89, 0xfffffffffffffffe);
+ let mut x99: u64 = 0;
+ let mut x100: u64 = 0;
+ let (x99, x100) = fiat_p384_mulx_u64(x89, 0xffffffff00000000);
+ let mut x101: u64 = 0;
+ let mut x102: u64 = 0;
+ let (x101, x102) = fiat_p384_mulx_u64(x89, 0xffffffff);
+ let mut x103: u64 = 0;
+ let mut x104: fiat_p384_u1 = 0;
+ let (x103, x104) = fiat_p384_addcarryx_u64(0x0, x102, x99);
+ let mut x105: u64 = 0;
+ let mut x106: fiat_p384_u1 = 0;
+ let (x105, x106) = fiat_p384_addcarryx_u64(x104, x100, x97);
+ let mut x107: u64 = 0;
+ let mut x108: fiat_p384_u1 = 0;
+ let (x107, x108) = fiat_p384_addcarryx_u64(x106, x98, x95);
+ let mut x109: u64 = 0;
+ let mut x110: fiat_p384_u1 = 0;
+ let (x109, x110) = fiat_p384_addcarryx_u64(x108, x96, x93);
+ let mut x111: u64 = 0;
+ let mut x112: fiat_p384_u1 = 0;
+ let (x111, x112) = fiat_p384_addcarryx_u64(x110, x94, x91);
+ let mut x113: u64 = 0;
+ let mut x114: fiat_p384_u1 = 0;
+ let (x113, x114) = fiat_p384_addcarryx_u64(0x0, x77, x101);
+ let mut x115: u64 = 0;
+ let mut x116: fiat_p384_u1 = 0;
+ let (x115, x116) = fiat_p384_addcarryx_u64(x114, x79, x103);
+ let mut x117: u64 = 0;
+ let mut x118: fiat_p384_u1 = 0;
+ let (x117, x118) = fiat_p384_addcarryx_u64(x116, x81, x105);
+ let mut x119: u64 = 0;
+ let mut x120: fiat_p384_u1 = 0;
+ let (x119, x120) = fiat_p384_addcarryx_u64(x118, x83, x107);
+ let mut x121: u64 = 0;
+ let mut x122: fiat_p384_u1 = 0;
+ let (x121, x122) = fiat_p384_addcarryx_u64(x120, x85, x109);
+ let mut x123: u64 = 0;
+ let mut x124: fiat_p384_u1 = 0;
+ let (x123, x124) = fiat_p384_addcarryx_u64(x122, x87, x111);
+ let mut x125: u64 = 0;
+ let mut x126: fiat_p384_u1 = 0;
+ let (x125, x126) =
+ fiat_p384_addcarryx_u64(x124, ((x88 as u64) + (x60 as u64)), ((x112 as u64) + x92));
+ let mut x127: u64 = 0;
+ let mut x128: u64 = 0;
+ let (x127, x128) = fiat_p384_mulx_u64(x2, 0x200000000);
+ let mut x129: u64 = 0;
+ let mut x130: u64 = 0;
+ let (x129, x130) = fiat_p384_mulx_u64(x2, 0xfffffffe00000000);
+ let mut x131: u64 = 0;
+ let mut x132: u64 = 0;
+ let (x131, x132) = fiat_p384_mulx_u64(x2, 0x200000000);
+ let mut x133: u64 = 0;
+ let mut x134: u64 = 0;
+ let (x133, x134) = fiat_p384_mulx_u64(x2, 0xfffffffe00000001);
+ let mut x135: u64 = 0;
+ let mut x136: fiat_p384_u1 = 0;
+ let (x135, x136) = fiat_p384_addcarryx_u64(0x0, x134, x131);
+ let mut x137: u64 = 0;
+ let mut x138: fiat_p384_u1 = 0;
+ let (x137, x138) = fiat_p384_addcarryx_u64(x136, x132, x129);
+ let mut x139: u64 = 0;
+ let mut x140: fiat_p384_u1 = 0;
+ let (x139, x140) = fiat_p384_addcarryx_u64(x138, x130, x127);
+ let mut x141: u64 = 0;
+ let mut x142: fiat_p384_u1 = 0;
+ let (x141, x142) = fiat_p384_addcarryx_u64(x140, x128, x2);
+ let mut x143: u64 = 0;
+ let mut x144: fiat_p384_u1 = 0;
+ let (x143, x144) = fiat_p384_addcarryx_u64(0x0, x115, x133);
+ let mut x145: u64 = 0;
+ let mut x146: fiat_p384_u1 = 0;
+ let (x145, x146) = fiat_p384_addcarryx_u64(x144, x117, x135);
+ let mut x147: u64 = 0;
+ let mut x148: fiat_p384_u1 = 0;
+ let (x147, x148) = fiat_p384_addcarryx_u64(x146, x119, x137);
+ let mut x149: u64 = 0;
+ let mut x150: fiat_p384_u1 = 0;
+ let (x149, x150) = fiat_p384_addcarryx_u64(x148, x121, x139);
+ let mut x151: u64 = 0;
+ let mut x152: fiat_p384_u1 = 0;
+ let (x151, x152) = fiat_p384_addcarryx_u64(x150, x123, x141);
+ let mut x153: u64 = 0;
+ let mut x154: fiat_p384_u1 = 0;
+ let (x153, x154) = fiat_p384_addcarryx_u64(x152, x125, (x142 as u64));
+ let mut x155: u64 = 0;
+ let mut x156: u64 = 0;
+ let (x155, x156) = fiat_p384_mulx_u64(x143, 0x100000001);
+ let mut x157: u64 = 0;
+ let mut x158: u64 = 0;
+ let (x157, x158) = fiat_p384_mulx_u64(x155, 0xffffffffffffffff);
+ let mut x159: u64 = 0;
+ let mut x160: u64 = 0;
+ let (x159, x160) = fiat_p384_mulx_u64(x155, 0xffffffffffffffff);
+ let mut x161: u64 = 0;
+ let mut x162: u64 = 0;
+ let (x161, x162) = fiat_p384_mulx_u64(x155, 0xffffffffffffffff);
+ let mut x163: u64 = 0;
+ let mut x164: u64 = 0;
+ let (x163, x164) = fiat_p384_mulx_u64(x155, 0xfffffffffffffffe);
+ let mut x165: u64 = 0;
+ let mut x166: u64 = 0;
+ let (x165, x166) = fiat_p384_mulx_u64(x155, 0xffffffff00000000);
+ let mut x167: u64 = 0;
+ let mut x168: u64 = 0;
+ let (x167, x168) = fiat_p384_mulx_u64(x155, 0xffffffff);
+ let mut x169: u64 = 0;
+ let mut x170: fiat_p384_u1 = 0;
+ let (x169, x170) = fiat_p384_addcarryx_u64(0x0, x168, x165);
+ let mut x171: u64 = 0;
+ let mut x172: fiat_p384_u1 = 0;
+ let (x171, x172) = fiat_p384_addcarryx_u64(x170, x166, x163);
+ let mut x173: u64 = 0;
+ let mut x174: fiat_p384_u1 = 0;
+ let (x173, x174) = fiat_p384_addcarryx_u64(x172, x164, x161);
+ let mut x175: u64 = 0;
+ let mut x176: fiat_p384_u1 = 0;
+ let (x175, x176) = fiat_p384_addcarryx_u64(x174, x162, x159);
+ let mut x177: u64 = 0;
+ let mut x178: fiat_p384_u1 = 0;
+ let (x177, x178) = fiat_p384_addcarryx_u64(x176, x160, x157);
+ let mut x179: u64 = 0;
+ let mut x180: fiat_p384_u1 = 0;
+ let (x179, x180) = fiat_p384_addcarryx_u64(0x0, x143, x167);
+ let mut x181: u64 = 0;
+ let mut x182: fiat_p384_u1 = 0;
+ let (x181, x182) = fiat_p384_addcarryx_u64(x180, x145, x169);
+ let mut x183: u64 = 0;
+ let mut x184: fiat_p384_u1 = 0;
+ let (x183, x184) = fiat_p384_addcarryx_u64(x182, x147, x171);
+ let mut x185: u64 = 0;
+ let mut x186: fiat_p384_u1 = 0;
+ let (x185, x186) = fiat_p384_addcarryx_u64(x184, x149, x173);
+ let mut x187: u64 = 0;
+ let mut x188: fiat_p384_u1 = 0;
+ let (x187, x188) = fiat_p384_addcarryx_u64(x186, x151, x175);
+ let mut x189: u64 = 0;
+ let mut x190: fiat_p384_u1 = 0;
+ let (x189, x190) = fiat_p384_addcarryx_u64(x188, x153, x177);
+ let mut x191: u64 = 0;
+ let mut x192: fiat_p384_u1 = 0;
+ let (x191, x192) = fiat_p384_addcarryx_u64(
+ x190,
+ ((x154 as u64) + (x126 as u64)),
+ ((x178 as u64) + x158),
+ );
+ let mut x193: u64 = 0;
+ let mut x194: u64 = 0;
+ let (x193, x194) = fiat_p384_mulx_u64(x3, 0x200000000);
+ let mut x195: u64 = 0;
+ let mut x196: u64 = 0;
+ let (x195, x196) = fiat_p384_mulx_u64(x3, 0xfffffffe00000000);
+ let mut x197: u64 = 0;
+ let mut x198: u64 = 0;
+ let (x197, x198) = fiat_p384_mulx_u64(x3, 0x200000000);
+ let mut x199: u64 = 0;
+ let mut x200: u64 = 0;
+ let (x199, x200) = fiat_p384_mulx_u64(x3, 0xfffffffe00000001);
+ let mut x201: u64 = 0;
+ let mut x202: fiat_p384_u1 = 0;
+ let (x201, x202) = fiat_p384_addcarryx_u64(0x0, x200, x197);
+ let mut x203: u64 = 0;
+ let mut x204: fiat_p384_u1 = 0;
+ let (x203, x204) = fiat_p384_addcarryx_u64(x202, x198, x195);
+ let mut x205: u64 = 0;
+ let mut x206: fiat_p384_u1 = 0;
+ let (x205, x206) = fiat_p384_addcarryx_u64(x204, x196, x193);
+ let mut x207: u64 = 0;
+ let mut x208: fiat_p384_u1 = 0;
+ let (x207, x208) = fiat_p384_addcarryx_u64(x206, x194, x3);
+ let mut x209: u64 = 0;
+ let mut x210: fiat_p384_u1 = 0;
+ let (x209, x210) = fiat_p384_addcarryx_u64(0x0, x181, x199);
+ let mut x211: u64 = 0;
+ let mut x212: fiat_p384_u1 = 0;
+ let (x211, x212) = fiat_p384_addcarryx_u64(x210, x183, x201);
+ let mut x213: u64 = 0;
+ let mut x214: fiat_p384_u1 = 0;
+ let (x213, x214) = fiat_p384_addcarryx_u64(x212, x185, x203);
+ let mut x215: u64 = 0;
+ let mut x216: fiat_p384_u1 = 0;
+ let (x215, x216) = fiat_p384_addcarryx_u64(x214, x187, x205);
+ let mut x217: u64 = 0;
+ let mut x218: fiat_p384_u1 = 0;
+ let (x217, x218) = fiat_p384_addcarryx_u64(x216, x189, x207);
+ let mut x219: u64 = 0;
+ let mut x220: fiat_p384_u1 = 0;
+ let (x219, x220) = fiat_p384_addcarryx_u64(x218, x191, (x208 as u64));
+ let mut x221: u64 = 0;
+ let mut x222: u64 = 0;
+ let (x221, x222) = fiat_p384_mulx_u64(x209, 0x100000001);
+ let mut x223: u64 = 0;
+ let mut x224: u64 = 0;
+ let (x223, x224) = fiat_p384_mulx_u64(x221, 0xffffffffffffffff);
+ let mut x225: u64 = 0;
+ let mut x226: u64 = 0;
+ let (x225, x226) = fiat_p384_mulx_u64(x221, 0xffffffffffffffff);
+ let mut x227: u64 = 0;
+ let mut x228: u64 = 0;
+ let (x227, x228) = fiat_p384_mulx_u64(x221, 0xffffffffffffffff);
+ let mut x229: u64 = 0;
+ let mut x230: u64 = 0;
+ let (x229, x230) = fiat_p384_mulx_u64(x221, 0xfffffffffffffffe);
+ let mut x231: u64 = 0;
+ let mut x232: u64 = 0;
+ let (x231, x232) = fiat_p384_mulx_u64(x221, 0xffffffff00000000);
+ let mut x233: u64 = 0;
+ let mut x234: u64 = 0;
+ let (x233, x234) = fiat_p384_mulx_u64(x221, 0xffffffff);
+ let mut x235: u64 = 0;
+ let mut x236: fiat_p384_u1 = 0;
+ let (x235, x236) = fiat_p384_addcarryx_u64(0x0, x234, x231);
+ let mut x237: u64 = 0;
+ let mut x238: fiat_p384_u1 = 0;
+ let (x237, x238) = fiat_p384_addcarryx_u64(x236, x232, x229);
+ let mut x239: u64 = 0;
+ let mut x240: fiat_p384_u1 = 0;
+ let (x239, x240) = fiat_p384_addcarryx_u64(x238, x230, x227);
+ let mut x241: u64 = 0;
+ let mut x242: fiat_p384_u1 = 0;
+ let (x241, x242) = fiat_p384_addcarryx_u64(x240, x228, x225);
+ let mut x243: u64 = 0;
+ let mut x244: fiat_p384_u1 = 0;
+ let (x243, x244) = fiat_p384_addcarryx_u64(x242, x226, x223);
+ let mut x245: u64 = 0;
+ let mut x246: fiat_p384_u1 = 0;
+ let (x245, x246) = fiat_p384_addcarryx_u64(0x0, x209, x233);
+ let mut x247: u64 = 0;
+ let mut x248: fiat_p384_u1 = 0;
+ let (x247, x248) = fiat_p384_addcarryx_u64(x246, x211, x235);
+ let mut x249: u64 = 0;
+ let mut x250: fiat_p384_u1 = 0;
+ let (x249, x250) = fiat_p384_addcarryx_u64(x248, x213, x237);
+ let mut x251: u64 = 0;
+ let mut x252: fiat_p384_u1 = 0;
+ let (x251, x252) = fiat_p384_addcarryx_u64(x250, x215, x239);
+ let mut x253: u64 = 0;
+ let mut x254: fiat_p384_u1 = 0;
+ let (x253, x254) = fiat_p384_addcarryx_u64(x252, x217, x241);
+ let mut x255: u64 = 0;
+ let mut x256: fiat_p384_u1 = 0;
+ let (x255, x256) = fiat_p384_addcarryx_u64(x254, x219, x243);
+ let mut x257: u64 = 0;
+ let mut x258: fiat_p384_u1 = 0;
+ let (x257, x258) = fiat_p384_addcarryx_u64(
+ x256,
+ ((x220 as u64) + (x192 as u64)),
+ ((x244 as u64) + x224),
+ );
+ let mut x259: u64 = 0;
+ let mut x260: u64 = 0;
+ let (x259, x260) = fiat_p384_mulx_u64(x4, 0x200000000);
+ let mut x261: u64 = 0;
+ let mut x262: u64 = 0;
+ let (x261, x262) = fiat_p384_mulx_u64(x4, 0xfffffffe00000000);
+ let mut x263: u64 = 0;
+ let mut x264: u64 = 0;
+ let (x263, x264) = fiat_p384_mulx_u64(x4, 0x200000000);
+ let mut x265: u64 = 0;
+ let mut x266: u64 = 0;
+ let (x265, x266) = fiat_p384_mulx_u64(x4, 0xfffffffe00000001);
+ let mut x267: u64 = 0;
+ let mut x268: fiat_p384_u1 = 0;
+ let (x267, x268) = fiat_p384_addcarryx_u64(0x0, x266, x263);
+ let mut x269: u64 = 0;
+ let mut x270: fiat_p384_u1 = 0;
+ let (x269, x270) = fiat_p384_addcarryx_u64(x268, x264, x261);
+ let mut x271: u64 = 0;
+ let mut x272: fiat_p384_u1 = 0;
+ let (x271, x272) = fiat_p384_addcarryx_u64(x270, x262, x259);
+ let mut x273: u64 = 0;
+ let mut x274: fiat_p384_u1 = 0;
+ let (x273, x274) = fiat_p384_addcarryx_u64(x272, x260, x4);
+ let mut x275: u64 = 0;
+ let mut x276: fiat_p384_u1 = 0;
+ let (x275, x276) = fiat_p384_addcarryx_u64(0x0, x247, x265);
+ let mut x277: u64 = 0;
+ let mut x278: fiat_p384_u1 = 0;
+ let (x277, x278) = fiat_p384_addcarryx_u64(x276, x249, x267);
+ let mut x279: u64 = 0;
+ let mut x280: fiat_p384_u1 = 0;
+ let (x279, x280) = fiat_p384_addcarryx_u64(x278, x251, x269);
+ let mut x281: u64 = 0;
+ let mut x282: fiat_p384_u1 = 0;
+ let (x281, x282) = fiat_p384_addcarryx_u64(x280, x253, x271);
+ let mut x283: u64 = 0;
+ let mut x284: fiat_p384_u1 = 0;
+ let (x283, x284) = fiat_p384_addcarryx_u64(x282, x255, x273);
+ let mut x285: u64 = 0;
+ let mut x286: fiat_p384_u1 = 0;
+ let (x285, x286) = fiat_p384_addcarryx_u64(x284, x257, (x274 as u64));
+ let mut x287: u64 = 0;
+ let mut x288: u64 = 0;
+ let (x287, x288) = fiat_p384_mulx_u64(x275, 0x100000001);
+ let mut x289: u64 = 0;
+ let mut x290: u64 = 0;
+ let (x289, x290) = fiat_p384_mulx_u64(x287, 0xffffffffffffffff);
+ let mut x291: u64 = 0;
+ let mut x292: u64 = 0;
+ let (x291, x292) = fiat_p384_mulx_u64(x287, 0xffffffffffffffff);
+ let mut x293: u64 = 0;
+ let mut x294: u64 = 0;
+ let (x293, x294) = fiat_p384_mulx_u64(x287, 0xffffffffffffffff);
+ let mut x295: u64 = 0;
+ let mut x296: u64 = 0;
+ let (x295, x296) = fiat_p384_mulx_u64(x287, 0xfffffffffffffffe);
+ let mut x297: u64 = 0;
+ let mut x298: u64 = 0;
+ let (x297, x298) = fiat_p384_mulx_u64(x287, 0xffffffff00000000);
+ let mut x299: u64 = 0;
+ let mut x300: u64 = 0;
+ let (x299, x300) = fiat_p384_mulx_u64(x287, 0xffffffff);
+ let mut x301: u64 = 0;
+ let mut x302: fiat_p384_u1 = 0;
+ let (x301, x302) = fiat_p384_addcarryx_u64(0x0, x300, x297);
+ let mut x303: u64 = 0;
+ let mut x304: fiat_p384_u1 = 0;
+ let (x303, x304) = fiat_p384_addcarryx_u64(x302, x298, x295);
+ let mut x305: u64 = 0;
+ let mut x306: fiat_p384_u1 = 0;
+ let (x305, x306) = fiat_p384_addcarryx_u64(x304, x296, x293);
+ let mut x307: u64 = 0;
+ let mut x308: fiat_p384_u1 = 0;
+ let (x307, x308) = fiat_p384_addcarryx_u64(x306, x294, x291);
+ let mut x309: u64 = 0;
+ let mut x310: fiat_p384_u1 = 0;
+ let (x309, x310) = fiat_p384_addcarryx_u64(x308, x292, x289);
+ let mut x311: u64 = 0;
+ let mut x312: fiat_p384_u1 = 0;
+ let (x311, x312) = fiat_p384_addcarryx_u64(0x0, x275, x299);
+ let mut x313: u64 = 0;
+ let mut x314: fiat_p384_u1 = 0;
+ let (x313, x314) = fiat_p384_addcarryx_u64(x312, x277, x301);
+ let mut x315: u64 = 0;
+ let mut x316: fiat_p384_u1 = 0;
+ let (x315, x316) = fiat_p384_addcarryx_u64(x314, x279, x303);
+ let mut x317: u64 = 0;
+ let mut x318: fiat_p384_u1 = 0;
+ let (x317, x318) = fiat_p384_addcarryx_u64(x316, x281, x305);
+ let mut x319: u64 = 0;
+ let mut x320: fiat_p384_u1 = 0;
+ let (x319, x320) = fiat_p384_addcarryx_u64(x318, x283, x307);
+ let mut x321: u64 = 0;
+ let mut x322: fiat_p384_u1 = 0;
+ let (x321, x322) = fiat_p384_addcarryx_u64(x320, x285, x309);
+ let mut x323: u64 = 0;
+ let mut x324: fiat_p384_u1 = 0;
+ let (x323, x324) = fiat_p384_addcarryx_u64(
+ x322,
+ ((x286 as u64) + (x258 as u64)),
+ ((x310 as u64) + x290),
+ );
+ let mut x325: u64 = 0;
+ let mut x326: u64 = 0;
+ let (x325, x326) = fiat_p384_mulx_u64(x5, 0x200000000);
+ let mut x327: u64 = 0;
+ let mut x328: u64 = 0;
+ let (x327, x328) = fiat_p384_mulx_u64(x5, 0xfffffffe00000000);
+ let mut x329: u64 = 0;
+ let mut x330: u64 = 0;
+ let (x329, x330) = fiat_p384_mulx_u64(x5, 0x200000000);
+ let mut x331: u64 = 0;
+ let mut x332: u64 = 0;
+ let (x331, x332) = fiat_p384_mulx_u64(x5, 0xfffffffe00000001);
+ let mut x333: u64 = 0;
+ let mut x334: fiat_p384_u1 = 0;
+ let (x333, x334) = fiat_p384_addcarryx_u64(0x0, x332, x329);
+ let mut x335: u64 = 0;
+ let mut x336: fiat_p384_u1 = 0;
+ let (x335, x336) = fiat_p384_addcarryx_u64(x334, x330, x327);
+ let mut x337: u64 = 0;
+ let mut x338: fiat_p384_u1 = 0;
+ let (x337, x338) = fiat_p384_addcarryx_u64(x336, x328, x325);
+ let mut x339: u64 = 0;
+ let mut x340: fiat_p384_u1 = 0;
+ let (x339, x340) = fiat_p384_addcarryx_u64(x338, x326, x5);
+ let mut x341: u64 = 0;
+ let mut x342: fiat_p384_u1 = 0;
+ let (x341, x342) = fiat_p384_addcarryx_u64(0x0, x313, x331);
+ let mut x343: u64 = 0;
+ let mut x344: fiat_p384_u1 = 0;
+ let (x343, x344) = fiat_p384_addcarryx_u64(x342, x315, x333);
+ let mut x345: u64 = 0;
+ let mut x346: fiat_p384_u1 = 0;
+ let (x345, x346) = fiat_p384_addcarryx_u64(x344, x317, x335);
+ let mut x347: u64 = 0;
+ let mut x348: fiat_p384_u1 = 0;
+ let (x347, x348) = fiat_p384_addcarryx_u64(x346, x319, x337);
+ let mut x349: u64 = 0;
+ let mut x350: fiat_p384_u1 = 0;
+ let (x349, x350) = fiat_p384_addcarryx_u64(x348, x321, x339);
+ let mut x351: u64 = 0;
+ let mut x352: fiat_p384_u1 = 0;
+ let (x351, x352) = fiat_p384_addcarryx_u64(x350, x323, (x340 as u64));
+ let mut x353: u64 = 0;
+ let mut x354: u64 = 0;
+ let (x353, x354) = fiat_p384_mulx_u64(x341, 0x100000001);
+ let mut x355: u64 = 0;
+ let mut x356: u64 = 0;
+ let (x355, x356) = fiat_p384_mulx_u64(x353, 0xffffffffffffffff);
+ let mut x357: u64 = 0;
+ let mut x358: u64 = 0;
+ let (x357, x358) = fiat_p384_mulx_u64(x353, 0xffffffffffffffff);
+ let mut x359: u64 = 0;
+ let mut x360: u64 = 0;
+ let (x359, x360) = fiat_p384_mulx_u64(x353, 0xffffffffffffffff);
+ let mut x361: u64 = 0;
+ let mut x362: u64 = 0;
+ let (x361, x362) = fiat_p384_mulx_u64(x353, 0xfffffffffffffffe);
+ let mut x363: u64 = 0;
+ let mut x364: u64 = 0;
+ let (x363, x364) = fiat_p384_mulx_u64(x353, 0xffffffff00000000);
+ let mut x365: u64 = 0;
+ let mut x366: u64 = 0;
+ let (x365, x366) = fiat_p384_mulx_u64(x353, 0xffffffff);
+ let mut x367: u64 = 0;
+ let mut x368: fiat_p384_u1 = 0;
+ let (x367, x368) = fiat_p384_addcarryx_u64(0x0, x366, x363);
+ let mut x369: u64 = 0;
+ let mut x370: fiat_p384_u1 = 0;
+ let (x369, x370) = fiat_p384_addcarryx_u64(x368, x364, x361);
+ let mut x371: u64 = 0;
+ let mut x372: fiat_p384_u1 = 0;
+ let (x371, x372) = fiat_p384_addcarryx_u64(x370, x362, x359);
+ let mut x373: u64 = 0;
+ let mut x374: fiat_p384_u1 = 0;
+ let (x373, x374) = fiat_p384_addcarryx_u64(x372, x360, x357);
+ let mut x375: u64 = 0;
+ let mut x376: fiat_p384_u1 = 0;
+ let (x375, x376) = fiat_p384_addcarryx_u64(x374, x358, x355);
+ let mut x377: u64 = 0;
+ let mut x378: fiat_p384_u1 = 0;
+ let (x377, x378) = fiat_p384_addcarryx_u64(0x0, x341, x365);
+ let mut x379: u64 = 0;
+ let mut x380: fiat_p384_u1 = 0;
+ let (x379, x380) = fiat_p384_addcarryx_u64(x378, x343, x367);
+ let mut x381: u64 = 0;
+ let mut x382: fiat_p384_u1 = 0;
+ let (x381, x382) = fiat_p384_addcarryx_u64(x380, x345, x369);
+ let mut x383: u64 = 0;
+ let mut x384: fiat_p384_u1 = 0;
+ let (x383, x384) = fiat_p384_addcarryx_u64(x382, x347, x371);
+ let mut x385: u64 = 0;
+ let mut x386: fiat_p384_u1 = 0;
+ let (x385, x386) = fiat_p384_addcarryx_u64(x384, x349, x373);
+ let mut x387: u64 = 0;
+ let mut x388: fiat_p384_u1 = 0;
+ let (x387, x388) = fiat_p384_addcarryx_u64(x386, x351, x375);
+ let mut x389: u64 = 0;
+ let mut x390: fiat_p384_u1 = 0;
+ let (x389, x390) = fiat_p384_addcarryx_u64(
+ x388,
+ ((x352 as u64) + (x324 as u64)),
+ ((x376 as u64) + x356),
+ );
+ let mut x391: u64 = 0;
+ let mut x392: fiat_p384_u1 = 0;
+ let (x391, x392) = fiat_p384_subborrowx_u64(0x0, x379, 0xffffffff);
+ let mut x393: u64 = 0;
+ let mut x394: fiat_p384_u1 = 0;
+ let (x393, x394) = fiat_p384_subborrowx_u64(x392, x381, 0xffffffff00000000);
+ let mut x395: u64 = 0;
+ let mut x396: fiat_p384_u1 = 0;
+ let (x395, x396) = fiat_p384_subborrowx_u64(x394, x383, 0xfffffffffffffffe);
+ let mut x397: u64 = 0;
+ let mut x398: fiat_p384_u1 = 0;
+ let (x397, x398) = fiat_p384_subborrowx_u64(x396, x385, 0xffffffffffffffff);
+ let mut x399: u64 = 0;
+ let mut x400: fiat_p384_u1 = 0;
+ let (x399, x400) = fiat_p384_subborrowx_u64(x398, x387, 0xffffffffffffffff);
+ let mut x401: u64 = 0;
+ let mut x402: fiat_p384_u1 = 0;
+ let (x401, x402) = fiat_p384_subborrowx_u64(x400, x389, 0xffffffffffffffff);
+ let mut x403: u64 = 0;
+ let mut x404: fiat_p384_u1 = 0;
+ let (x403, x404) = fiat_p384_subborrowx_u64(x402, (x390 as u64), (0x0 as u64));
+ let mut x405: u64 = 0;
+ let (x405) = fiat_p384_cmovznz_u64(x404, x391, x379);
+ let mut x406: u64 = 0;
+ let (x406) = fiat_p384_cmovznz_u64(x404, x393, x381);
+ let mut x407: u64 = 0;
+ let (x407) = fiat_p384_cmovznz_u64(x404, x395, x383);
+ let mut x408: u64 = 0;
+ let (x408) = fiat_p384_cmovznz_u64(x404, x397, x385);
+ let mut x409: u64 = 0;
+ let (x409) = fiat_p384_cmovznz_u64(x404, x399, x387);
+ let mut x410: u64 = 0;
+ let (x410) = fiat_p384_cmovznz_u64(x404, x401, x389);
+ out1[0] = x405;
+ out1[1] = x406;
+ out1[2] = x407;
+ out1[3] = x408;
+ out1[4] = x409;
+ out1[5] = x410;
+ out1
+}
+#[doc = " The function fiat_p384_nonzero outputs a single non-zero word if the input is non-zero and zero otherwise."]
+#[doc = ""]
+#[doc = " Preconditions:"]
+#[doc = " 0 ≤ eval arg1 < m"]
+#[doc = " Postconditions:"]
+#[doc = " out1 = 0 ↔ eval (from_montgomery arg1) mod m = 0"]
+#[doc = ""]
+#[doc = " Input Bounds:"]
+#[doc = " arg1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]]"]
+#[doc = " Output Bounds:"]
+#[doc = " out1: [0x0 ~> 0xffffffffffffffff]"]
+#[inline]
+pub const fn fiat_p384_nonzero(arg1: &[u64; 6]) -> u64 {
+ let mut out1: u64 = 0;
+ let x1: u64 = ((arg1[0]) | ((arg1[1]) | ((arg1[2]) | ((arg1[3]) | ((arg1[4]) | (arg1[5]))))));
+ out1 = x1;
+ out1
+}
+#[doc = " The function fiat_p384_selectznz is a multi-limb conditional select."]
+#[doc = ""]
+#[doc = " Postconditions:"]
+#[doc = " eval out1 = (if arg1 = 0 then eval arg2 else eval arg3)"]
+#[doc = ""]
+#[doc = " Input Bounds:"]
+#[doc = " arg1: [0x0 ~> 0x1]"]
+#[doc = " arg2: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]]"]
+#[doc = " arg3: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]]"]
+#[doc = " Output Bounds:"]
+#[doc = " out1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]]"]
+#[inline]
+pub const fn fiat_p384_selectznz(arg1: fiat_p384_u1, arg2: &[u64; 6], arg3: &[u64; 6]) -> [u64; 6] {
+ let mut out1: [u64; 6] = [0; 6];
+ let mut x1: u64 = 0;
+ let (x1) = fiat_p384_cmovznz_u64(arg1, (arg2[0]), (arg3[0]));
+ let mut x2: u64 = 0;
+ let (x2) = fiat_p384_cmovznz_u64(arg1, (arg2[1]), (arg3[1]));
+ let mut x3: u64 = 0;
+ let (x3) = fiat_p384_cmovznz_u64(arg1, (arg2[2]), (arg3[2]));
+ let mut x4: u64 = 0;
+ let (x4) = fiat_p384_cmovznz_u64(arg1, (arg2[3]), (arg3[3]));
+ let mut x5: u64 = 0;
+ let (x5) = fiat_p384_cmovznz_u64(arg1, (arg2[4]), (arg3[4]));
+ let mut x6: u64 = 0;
+ let (x6) = fiat_p384_cmovznz_u64(arg1, (arg2[5]), (arg3[5]));
+ out1[0] = x1;
+ out1[1] = x2;
+ out1[2] = x3;
+ out1[3] = x4;
+ out1[4] = x5;
+ out1[5] = x6;
+ out1
+}
+#[doc = " The function fiat_p384_to_bytes serializes a field element NOT in the Montgomery domain to bytes in little-endian order."]
+#[doc = ""]
+#[doc = " Preconditions:"]
+#[doc = " 0 ≤ eval arg1 < m"]
+#[doc = " Postconditions:"]
+#[doc = " out1 = map (λ x, ⌊((eval arg1 mod m) mod 2^(8 * (x + 1))) / 2^(8 * x)⌋) [0..47]"]
+#[doc = ""]
+#[doc = " Input Bounds:"]
+#[doc = " arg1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]]"]
+#[doc = " Output Bounds:"]
+#[doc = " 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]]"]
+#[inline]
+pub const fn fiat_p384_to_bytes(arg1: &[u64; 6]) -> [u8; 48] {
+ let mut out1: [u8; 48] = [0; 48];
+ let x1: u64 = (arg1[5]);
+ let x2: u64 = (arg1[4]);
+ let x3: u64 = (arg1[3]);
+ let x4: u64 = (arg1[2]);
+ let x5: u64 = (arg1[1]);
+ let x6: u64 = (arg1[0]);
+ let x7: u8 = ((x6 & (0xff as u64)) as u8);
+ let x8: u64 = (x6 >> 8);
+ let x9: u8 = ((x8 & (0xff as u64)) as u8);
+ let x10: u64 = (x8 >> 8);
+ let x11: u8 = ((x10 & (0xff as u64)) as u8);
+ let x12: u64 = (x10 >> 8);
+ let x13: u8 = ((x12 & (0xff as u64)) as u8);
+ let x14: u64 = (x12 >> 8);
+ let x15: u8 = ((x14 & (0xff as u64)) as u8);
+ let x16: u64 = (x14 >> 8);
+ let x17: u8 = ((x16 & (0xff as u64)) as u8);
+ let x18: u64 = (x16 >> 8);
+ let x19: u8 = ((x18 & (0xff as u64)) as u8);
+ let x20: u8 = ((x18 >> 8) as u8);
+ let x21: u8 = ((x5 & (0xff as u64)) as u8);
+ let x22: u64 = (x5 >> 8);
+ let x23: u8 = ((x22 & (0xff as u64)) as u8);
+ let x24: u64 = (x22 >> 8);
+ let x25: u8 = ((x24 & (0xff as u64)) as u8);
+ let x26: u64 = (x24 >> 8);
+ let x27: u8 = ((x26 & (0xff as u64)) as u8);
+ let x28: u64 = (x26 >> 8);
+ let x29: u8 = ((x28 & (0xff as u64)) as u8);
+ let x30: u64 = (x28 >> 8);
+ let x31: u8 = ((x30 & (0xff as u64)) as u8);
+ let x32: u64 = (x30 >> 8);
+ let x33: u8 = ((x32 & (0xff as u64)) as u8);
+ let x34: u8 = ((x32 >> 8) as u8);
+ let x35: u8 = ((x4 & (0xff as u64)) as u8);
+ let x36: u64 = (x4 >> 8);
+ let x37: u8 = ((x36 & (0xff as u64)) as u8);
+ let x38: u64 = (x36 >> 8);
+ let x39: u8 = ((x38 & (0xff as u64)) as u8);
+ let x40: u64 = (x38 >> 8);
+ let x41: u8 = ((x40 & (0xff as u64)) as u8);
+ let x42: u64 = (x40 >> 8);
+ let x43: u8 = ((x42 & (0xff as u64)) as u8);
+ let x44: u64 = (x42 >> 8);
+ let x45: u8 = ((x44 & (0xff as u64)) as u8);
+ let x46: u64 = (x44 >> 8);
+ let x47: u8 = ((x46 & (0xff as u64)) as u8);
+ let x48: u8 = ((x46 >> 8) as u8);
+ let x49: u8 = ((x3 & (0xff as u64)) as u8);
+ let x50: u64 = (x3 >> 8);
+ let x51: u8 = ((x50 & (0xff as u64)) as u8);
+ let x52: u64 = (x50 >> 8);
+ let x53: u8 = ((x52 & (0xff as u64)) as u8);
+ let x54: u64 = (x52 >> 8);
+ let x55: u8 = ((x54 & (0xff as u64)) as u8);
+ let x56: u64 = (x54 >> 8);
+ let x57: u8 = ((x56 & (0xff as u64)) as u8);
+ let x58: u64 = (x56 >> 8);
+ let x59: u8 = ((x58 & (0xff as u64)) as u8);
+ let x60: u64 = (x58 >> 8);
+ let x61: u8 = ((x60 & (0xff as u64)) as u8);
+ let x62: u8 = ((x60 >> 8) as u8);
+ let x63: u8 = ((x2 & (0xff as u64)) as u8);
+ let x64: u64 = (x2 >> 8);
+ let x65: u8 = ((x64 & (0xff as u64)) as u8);
+ let x66: u64 = (x64 >> 8);
+ let x67: u8 = ((x66 & (0xff as u64)) as u8);
+ let x68: u64 = (x66 >> 8);
+ let x69: u8 = ((x68 & (0xff as u64)) as u8);
+ let x70: u64 = (x68 >> 8);
+ let x71: u8 = ((x70 & (0xff as u64)) as u8);
+ let x72: u64 = (x70 >> 8);
+ let x73: u8 = ((x72 & (0xff as u64)) as u8);
+ let x74: u64 = (x72 >> 8);
+ let x75: u8 = ((x74 & (0xff as u64)) as u8);
+ let x76: u8 = ((x74 >> 8) as u8);
+ let x77: u8 = ((x1 & (0xff as u64)) as u8);
+ let x78: u64 = (x1 >> 8);
+ let x79: u8 = ((x78 & (0xff as u64)) as u8);
+ let x80: u64 = (x78 >> 8);
+ let x81: u8 = ((x80 & (0xff as u64)) as u8);
+ let x82: u64 = (x80 >> 8);
+ let x83: u8 = ((x82 & (0xff as u64)) as u8);
+ let x84: u64 = (x82 >> 8);
+ let x85: u8 = ((x84 & (0xff as u64)) as u8);
+ let x86: u64 = (x84 >> 8);
+ let x87: u8 = ((x86 & (0xff as u64)) as u8);
+ let x88: u64 = (x86 >> 8);
+ let x89: u8 = ((x88 & (0xff as u64)) as u8);
+ let x90: u8 = ((x88 >> 8) as u8);
+ out1[0] = x7;
+ out1[1] = x9;
+ out1[2] = x11;
+ out1[3] = x13;
+ out1[4] = x15;
+ out1[5] = x17;
+ out1[6] = x19;
+ out1[7] = x20;
+ out1[8] = x21;
+ out1[9] = x23;
+ out1[10] = x25;
+ out1[11] = x27;
+ out1[12] = x29;
+ out1[13] = x31;
+ out1[14] = x33;
+ out1[15] = x34;
+ out1[16] = x35;
+ out1[17] = x37;
+ out1[18] = x39;
+ out1[19] = x41;
+ out1[20] = x43;
+ out1[21] = x45;
+ out1[22] = x47;
+ out1[23] = x48;
+ out1[24] = x49;
+ out1[25] = x51;
+ out1[26] = x53;
+ out1[27] = x55;
+ out1[28] = x57;
+ out1[29] = x59;
+ out1[30] = x61;
+ out1[31] = x62;
+ out1[32] = x63;
+ out1[33] = x65;
+ out1[34] = x67;
+ out1[35] = x69;
+ out1[36] = x71;
+ out1[37] = x73;
+ out1[38] = x75;
+ out1[39] = x76;
+ out1[40] = x77;
+ out1[41] = x79;
+ out1[42] = x81;
+ out1[43] = x83;
+ out1[44] = x85;
+ out1[45] = x87;
+ out1[46] = x89;
+ out1[47] = x90;
+ out1
+}
+#[doc = " The function fiat_p384_from_bytes deserializes a field element NOT in the Montgomery domain from bytes in little-endian order."]
+#[doc = ""]
+#[doc = " Preconditions:"]
+#[doc = " 0 ≤ bytes_eval arg1 < m"]
+#[doc = " Postconditions:"]
+#[doc = " eval out1 mod m = bytes_eval arg1 mod m"]
+#[doc = " 0 ≤ eval out1 < m"]
+#[doc = ""]
+#[doc = " Input Bounds:"]
+#[doc = " 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]]"]
+#[doc = " Output Bounds:"]
+#[doc = " out1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]]"]
+#[inline]
+pub const fn fiat_p384_from_bytes(arg1: &[u8; 48]) -> [u64; 6] {
+ let mut out1: [u64; 6] = [0; 6];
+ let x1: u64 = (((arg1[47]) as u64) << 56);
+ let x2: u64 = (((arg1[46]) as u64) << 48);
+ let x3: u64 = (((arg1[45]) as u64) << 40);
+ let x4: u64 = (((arg1[44]) as u64) << 32);
+ let x5: u64 = (((arg1[43]) as u64) << 24);
+ let x6: u64 = (((arg1[42]) as u64) << 16);
+ let x7: u64 = (((arg1[41]) as u64) << 8);
+ let x8: u8 = (arg1[40]);
+ let x9: u64 = (((arg1[39]) as u64) << 56);
+ let x10: u64 = (((arg1[38]) as u64) << 48);
+ let x11: u64 = (((arg1[37]) as u64) << 40);
+ let x12: u64 = (((arg1[36]) as u64) << 32);
+ let x13: u64 = (((arg1[35]) as u64) << 24);
+ let x14: u64 = (((arg1[34]) as u64) << 16);
+ let x15: u64 = (((arg1[33]) as u64) << 8);
+ let x16: u8 = (arg1[32]);
+ let x17: u64 = (((arg1[31]) as u64) << 56);
+ let x18: u64 = (((arg1[30]) as u64) << 48);
+ let x19: u64 = (((arg1[29]) as u64) << 40);
+ let x20: u64 = (((arg1[28]) as u64) << 32);
+ let x21: u64 = (((arg1[27]) as u64) << 24);
+ let x22: u64 = (((arg1[26]) as u64) << 16);
+ let x23: u64 = (((arg1[25]) as u64) << 8);
+ let x24: u8 = (arg1[24]);
+ let x25: u64 = (((arg1[23]) as u64) << 56);
+ let x26: u64 = (((arg1[22]) as u64) << 48);
+ let x27: u64 = (((arg1[21]) as u64) << 40);
+ let x28: u64 = (((arg1[20]) as u64) << 32);
+ let x29: u64 = (((arg1[19]) as u64) << 24);
+ let x30: u64 = (((arg1[18]) as u64) << 16);
+ let x31: u64 = (((arg1[17]) as u64) << 8);
+ let x32: u8 = (arg1[16]);
+ let x33: u64 = (((arg1[15]) as u64) << 56);
+ let x34: u64 = (((arg1[14]) as u64) << 48);
+ let x35: u64 = (((arg1[13]) as u64) << 40);
+ let x36: u64 = (((arg1[12]) as u64) << 32);
+ let x37: u64 = (((arg1[11]) as u64) << 24);
+ let x38: u64 = (((arg1[10]) as u64) << 16);
+ let x39: u64 = (((arg1[9]) as u64) << 8);
+ let x40: u8 = (arg1[8]);
+ let x41: u64 = (((arg1[7]) as u64) << 56);
+ let x42: u64 = (((arg1[6]) as u64) << 48);
+ let x43: u64 = (((arg1[5]) as u64) << 40);
+ let x44: u64 = (((arg1[4]) as u64) << 32);
+ let x45: u64 = (((arg1[3]) as u64) << 24);
+ let x46: u64 = (((arg1[2]) as u64) << 16);
+ let x47: u64 = (((arg1[1]) as u64) << 8);
+ let x48: u8 = (arg1[0]);
+ let x49: u64 = (x47 + (x48 as u64));
+ let x50: u64 = (x46 + x49);
+ let x51: u64 = (x45 + x50);
+ let x52: u64 = (x44 + x51);
+ let x53: u64 = (x43 + x52);
+ let x54: u64 = (x42 + x53);
+ let x55: u64 = (x41 + x54);
+ let x56: u64 = (x39 + (x40 as u64));
+ let x57: u64 = (x38 + x56);
+ let x58: u64 = (x37 + x57);
+ let x59: u64 = (x36 + x58);
+ let x60: u64 = (x35 + x59);
+ let x61: u64 = (x34 + x60);
+ let x62: u64 = (x33 + x61);
+ let x63: u64 = (x31 + (x32 as u64));
+ let x64: u64 = (x30 + x63);
+ let x65: u64 = (x29 + x64);
+ let x66: u64 = (x28 + x65);
+ let x67: u64 = (x27 + x66);
+ let x68: u64 = (x26 + x67);
+ let x69: u64 = (x25 + x68);
+ let x70: u64 = (x23 + (x24 as u64));
+ let x71: u64 = (x22 + x70);
+ let x72: u64 = (x21 + x71);
+ let x73: u64 = (x20 + x72);
+ let x74: u64 = (x19 + x73);
+ let x75: u64 = (x18 + x74);
+ let x76: u64 = (x17 + x75);
+ let x77: u64 = (x15 + (x16 as u64));
+ let x78: u64 = (x14 + x77);
+ let x79: u64 = (x13 + x78);
+ let x80: u64 = (x12 + x79);
+ let x81: u64 = (x11 + x80);
+ let x82: u64 = (x10 + x81);
+ let x83: u64 = (x9 + x82);
+ let x84: u64 = (x7 + (x8 as u64));
+ let x85: u64 = (x6 + x84);
+ let x86: u64 = (x5 + x85);
+ let x87: u64 = (x4 + x86);
+ let x88: u64 = (x3 + x87);
+ let x89: u64 = (x2 + x88);
+ let x90: u64 = (x1 + x89);
+ out1[0] = x55;
+ out1[1] = x62;
+ out1[2] = x69;
+ out1[3] = x76;
+ out1[4] = x83;
+ out1[5] = x90;
+ out1
+}
+#[doc = " The function fiat_p384_set_one returns the field element one in the Montgomery domain."]
+#[doc = ""]
+#[doc = " Postconditions:"]
+#[doc = " eval (from_montgomery out1) mod m = 1 mod m"]
+#[doc = " 0 ≤ eval out1 < m"]
+#[doc = ""]
+#[inline]
+pub const fn fiat_p384_set_one() -> fiat_p384_montgomery_domain_field_element {
+ let mut out1: fiat_p384_montgomery_domain_field_element = [0; 6];
+ out1[0] = 0xffffffff00000001;
+ out1[1] = 0xffffffff;
+ out1[2] = (0x1 as u64);
+ out1[3] = (0x0 as u64);
+ out1[4] = (0x0 as u64);
+ out1[5] = (0x0 as u64);
+ out1
+}
+#[doc = " The function fiat_p384_msat returns the saturated representation of the prime modulus."]
+#[doc = ""]
+#[doc = " Postconditions:"]
+#[doc = " twos_complement_eval out1 = m"]
+#[doc = " 0 ≤ eval out1 < m"]
+#[doc = ""]
+#[doc = " Output Bounds:"]
+#[doc = " out1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]]"]
+#[inline]
+pub const fn fiat_p384_msat() -> [u64; 7] {
+ let mut out1: [u64; 7] = [0; 7];
+ out1[0] = 0xffffffff;
+ out1[1] = 0xffffffff00000000;
+ out1[2] = 0xfffffffffffffffe;
+ out1[3] = 0xffffffffffffffff;
+ out1[4] = 0xffffffffffffffff;
+ out1[5] = 0xffffffffffffffff;
+ out1[6] = (0x0 as u64);
+ out1
+}
+#[doc = " The function fiat_p384_divstep computes a divstep."]
+#[doc = ""]
+#[doc = " Preconditions:"]
+#[doc = " 0 ≤ eval arg4 < m"]
+#[doc = " 0 ≤ eval arg5 < m"]
+#[doc = " Postconditions:"]
+#[doc = " out1 = (if 0 < arg1 ∧ (twos_complement_eval arg3) is odd then 1 - arg1 else 1 + arg1)"]
+#[doc = " twos_complement_eval out2 = (if 0 < arg1 ∧ (twos_complement_eval arg3) is odd then twos_complement_eval arg3 else twos_complement_eval arg2)"]
+#[doc = " twos_complement_eval out3 = (if 0 < arg1 ∧ (twos_complement_eval arg3) is odd then ⌊(twos_complement_eval arg3 - twos_complement_eval arg2) / 2⌋ else ⌊(twos_complement_eval arg3 + (twos_complement_eval arg3 mod 2) * twos_complement_eval arg2) / 2⌋)"]
+#[doc = " eval (from_montgomery out4) mod m = (if 0 < arg1 ∧ (twos_complement_eval arg3) is odd then (2 * eval (from_montgomery arg5)) mod m else (2 * eval (from_montgomery arg4)) mod m)"]
+#[doc = " eval (from_montgomery out5) mod m = (if 0 < arg1 ∧ (twos_complement_eval arg3) is odd then (eval (from_montgomery arg4) - eval (from_montgomery arg4)) mod m else (eval (from_montgomery arg5) + (twos_complement_eval arg3 mod 2) * eval (from_montgomery arg4)) mod m)"]
+#[doc = " 0 ≤ eval out5 < m"]
+#[doc = " 0 ≤ eval out5 < m"]
+#[doc = " 0 ≤ eval out2 < m"]
+#[doc = " 0 ≤ eval out3 < m"]
+#[doc = ""]
+#[doc = " Input Bounds:"]
+#[doc = " arg1: [0x0 ~> 0xffffffffffffffff]"]
+#[doc = " arg2: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]]"]
+#[doc = " arg3: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]]"]
+#[doc = " arg4: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]]"]
+#[doc = " arg5: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]]"]
+#[doc = " Output Bounds:"]
+#[doc = " out1: [0x0 ~> 0xffffffffffffffff]"]
+#[doc = " out2: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]]"]
+#[doc = " out3: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]]"]
+#[doc = " out4: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]]"]
+#[doc = " out5: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]]"]
+#[inline]
+pub const fn fiat_p384_divstep(
+ arg1: u64,
+ arg2: &[u64; 7],
+ arg3: &[u64; 7],
+ arg4: &[u64; 6],
+ arg5: &[u64; 6],
+) -> (u64, [u64; 7], [u64; 7], [u64; 6], [u64; 6]) {
+ let mut out1: u64 = 0;
+ let mut out2: [u64; 7] = [0; 7];
+ let mut out3: [u64; 7] = [0; 7];
+ let mut out4: [u64; 6] = [0; 6];
+ let mut out5: [u64; 6] = [0; 6];
+ let mut x1: u64 = 0;
+ let mut x2: fiat_p384_u1 = 0;
+ let (x1, x2) = fiat_p384_addcarryx_u64(0x0, (!arg1), (0x1 as u64));
+ let x3: fiat_p384_u1 =
+ (((x1 >> 63) as fiat_p384_u1) & (((arg3[0]) & (0x1 as u64)) as fiat_p384_u1));
+ let mut x4: u64 = 0;
+ let mut x5: fiat_p384_u1 = 0;
+ let (x4, x5) = fiat_p384_addcarryx_u64(0x0, (!arg1), (0x1 as u64));
+ let mut x6: u64 = 0;
+ let (x6) = fiat_p384_cmovznz_u64(x3, arg1, x4);
+ let mut x7: u64 = 0;
+ let (x7) = fiat_p384_cmovznz_u64(x3, (arg2[0]), (arg3[0]));
+ let mut x8: u64 = 0;
+ let (x8) = fiat_p384_cmovznz_u64(x3, (arg2[1]), (arg3[1]));
+ let mut x9: u64 = 0;
+ let (x9) = fiat_p384_cmovznz_u64(x3, (arg2[2]), (arg3[2]));
+ let mut x10: u64 = 0;
+ let (x10) = fiat_p384_cmovznz_u64(x3, (arg2[3]), (arg3[3]));
+ let mut x11: u64 = 0;
+ let (x11) = fiat_p384_cmovznz_u64(x3, (arg2[4]), (arg3[4]));
+ let mut x12: u64 = 0;
+ let (x12) = fiat_p384_cmovznz_u64(x3, (arg2[5]), (arg3[5]));
+ let mut x13: u64 = 0;
+ let (x13) = fiat_p384_cmovznz_u64(x3, (arg2[6]), (arg3[6]));
+ let mut x14: u64 = 0;
+ let mut x15: fiat_p384_u1 = 0;
+ let (x14, x15) = fiat_p384_addcarryx_u64(0x0, (0x1 as u64), (!(arg2[0])));
+ let mut x16: u64 = 0;
+ let mut x17: fiat_p384_u1 = 0;
+ let (x16, x17) = fiat_p384_addcarryx_u64(x15, (0x0 as u64), (!(arg2[1])));
+ let mut x18: u64 = 0;
+ let mut x19: fiat_p384_u1 = 0;
+ let (x18, x19) = fiat_p384_addcarryx_u64(x17, (0x0 as u64), (!(arg2[2])));
+ let mut x20: u64 = 0;
+ let mut x21: fiat_p384_u1 = 0;
+ let (x20, x21) = fiat_p384_addcarryx_u64(x19, (0x0 as u64), (!(arg2[3])));
+ let mut x22: u64 = 0;
+ let mut x23: fiat_p384_u1 = 0;
+ let (x22, x23) = fiat_p384_addcarryx_u64(x21, (0x0 as u64), (!(arg2[4])));
+ let mut x24: u64 = 0;
+ let mut x25: fiat_p384_u1 = 0;
+ let (x24, x25) = fiat_p384_addcarryx_u64(x23, (0x0 as u64), (!(arg2[5])));
+ let mut x26: u64 = 0;
+ let mut x27: fiat_p384_u1 = 0;
+ let (x26, x27) = fiat_p384_addcarryx_u64(x25, (0x0 as u64), (!(arg2[6])));
+ let mut x28: u64 = 0;
+ let (x28) = fiat_p384_cmovznz_u64(x3, (arg3[0]), x14);
+ let mut x29: u64 = 0;
+ let (x29) = fiat_p384_cmovznz_u64(x3, (arg3[1]), x16);
+ let mut x30: u64 = 0;
+ let (x30) = fiat_p384_cmovznz_u64(x3, (arg3[2]), x18);
+ let mut x31: u64 = 0;
+ let (x31) = fiat_p384_cmovznz_u64(x3, (arg3[3]), x20);
+ let mut x32: u64 = 0;
+ let (x32) = fiat_p384_cmovznz_u64(x3, (arg3[4]), x22);
+ let mut x33: u64 = 0;
+ let (x33) = fiat_p384_cmovznz_u64(x3, (arg3[5]), x24);
+ let mut x34: u64 = 0;
+ let (x34) = fiat_p384_cmovznz_u64(x3, (arg3[6]), x26);
+ let mut x35: u64 = 0;
+ let (x35) = fiat_p384_cmovznz_u64(x3, (arg4[0]), (arg5[0]));
+ let mut x36: u64 = 0;
+ let (x36) = fiat_p384_cmovznz_u64(x3, (arg4[1]), (arg5[1]));
+ let mut x37: u64 = 0;
+ let (x37) = fiat_p384_cmovznz_u64(x3, (arg4[2]), (arg5[2]));
+ let mut x38: u64 = 0;
+ let (x38) = fiat_p384_cmovznz_u64(x3, (arg4[3]), (arg5[3]));
+ let mut x39: u64 = 0;
+ let (x39) = fiat_p384_cmovznz_u64(x3, (arg4[4]), (arg5[4]));
+ let mut x40: u64 = 0;
+ let (x40) = fiat_p384_cmovznz_u64(x3, (arg4[5]), (arg5[5]));
+ let mut x41: u64 = 0;
+ let mut x42: fiat_p384_u1 = 0;
+ let (x41, x42) = fiat_p384_addcarryx_u64(0x0, x35, x35);
+ let mut x43: u64 = 0;
+ let mut x44: fiat_p384_u1 = 0;
+ let (x43, x44) = fiat_p384_addcarryx_u64(x42, x36, x36);
+ let mut x45: u64 = 0;
+ let mut x46: fiat_p384_u1 = 0;
+ let (x45, x46) = fiat_p384_addcarryx_u64(x44, x37, x37);
+ let mut x47: u64 = 0;
+ let mut x48: fiat_p384_u1 = 0;
+ let (x47, x48) = fiat_p384_addcarryx_u64(x46, x38, x38);
+ let mut x49: u64 = 0;
+ let mut x50: fiat_p384_u1 = 0;
+ let (x49, x50) = fiat_p384_addcarryx_u64(x48, x39, x39);
+ let mut x51: u64 = 0;
+ let mut x52: fiat_p384_u1 = 0;
+ let (x51, x52) = fiat_p384_addcarryx_u64(x50, x40, x40);
+ let mut x53: u64 = 0;
+ let mut x54: fiat_p384_u1 = 0;
+ let (x53, x54) = fiat_p384_subborrowx_u64(0x0, x41, 0xffffffff);
+ let mut x55: u64 = 0;
+ let mut x56: fiat_p384_u1 = 0;
+ let (x55, x56) = fiat_p384_subborrowx_u64(x54, x43, 0xffffffff00000000);
+ let mut x57: u64 = 0;
+ let mut x58: fiat_p384_u1 = 0;
+ let (x57, x58) = fiat_p384_subborrowx_u64(x56, x45, 0xfffffffffffffffe);
+ let mut x59: u64 = 0;
+ let mut x60: fiat_p384_u1 = 0;
+ let (x59, x60) = fiat_p384_subborrowx_u64(x58, x47, 0xffffffffffffffff);
+ let mut x61: u64 = 0;
+ let mut x62: fiat_p384_u1 = 0;
+ let (x61, x62) = fiat_p384_subborrowx_u64(x60, x49, 0xffffffffffffffff);
+ let mut x63: u64 = 0;
+ let mut x64: fiat_p384_u1 = 0;
+ let (x63, x64) = fiat_p384_subborrowx_u64(x62, x51, 0xffffffffffffffff);
+ let mut x65: u64 = 0;
+ let mut x66: fiat_p384_u1 = 0;
+ let (x65, x66) = fiat_p384_subborrowx_u64(x64, (x52 as u64), (0x0 as u64));
+ let x67: u64 = (arg4[5]);
+ let x68: u64 = (arg4[4]);
+ let x69: u64 = (arg4[3]);
+ let x70: u64 = (arg4[2]);
+ let x71: u64 = (arg4[1]);
+ let x72: u64 = (arg4[0]);
+ let mut x73: u64 = 0;
+ let mut x74: fiat_p384_u1 = 0;
+ let (x73, x74) = fiat_p384_subborrowx_u64(0x0, (0x0 as u64), x72);
+ let mut x75: u64 = 0;
+ let mut x76: fiat_p384_u1 = 0;
+ let (x75, x76) = fiat_p384_subborrowx_u64(x74, (0x0 as u64), x71);
+ let mut x77: u64 = 0;
+ let mut x78: fiat_p384_u1 = 0;
+ let (x77, x78) = fiat_p384_subborrowx_u64(x76, (0x0 as u64), x70);
+ let mut x79: u64 = 0;
+ let mut x80: fiat_p384_u1 = 0;
+ let (x79, x80) = fiat_p384_subborrowx_u64(x78, (0x0 as u64), x69);
+ let mut x81: u64 = 0;
+ let mut x82: fiat_p384_u1 = 0;
+ let (x81, x82) = fiat_p384_subborrowx_u64(x80, (0x0 as u64), x68);
+ let mut x83: u64 = 0;
+ let mut x84: fiat_p384_u1 = 0;
+ let (x83, x84) = fiat_p384_subborrowx_u64(x82, (0x0 as u64), x67);
+ let mut x85: u64 = 0;
+ let (x85) = fiat_p384_cmovznz_u64(x84, (0x0 as u64), 0xffffffffffffffff);
+ let mut x86: u64 = 0;
+ let mut x87: fiat_p384_u1 = 0;
+ let (x86, x87) = fiat_p384_addcarryx_u64(0x0, x73, (x85 & 0xffffffff));
+ let mut x88: u64 = 0;
+ let mut x89: fiat_p384_u1 = 0;
+ let (x88, x89) = fiat_p384_addcarryx_u64(x87, x75, (x85 & 0xffffffff00000000));
+ let mut x90: u64 = 0;
+ let mut x91: fiat_p384_u1 = 0;
+ let (x90, x91) = fiat_p384_addcarryx_u64(x89, x77, (x85 & 0xfffffffffffffffe));
+ let mut x92: u64 = 0;
+ let mut x93: fiat_p384_u1 = 0;
+ let (x92, x93) = fiat_p384_addcarryx_u64(x91, x79, x85);
+ let mut x94: u64 = 0;
+ let mut x95: fiat_p384_u1 = 0;
+ let (x94, x95) = fiat_p384_addcarryx_u64(x93, x81, x85);
+ let mut x96: u64 = 0;
+ let mut x97: fiat_p384_u1 = 0;
+ let (x96, x97) = fiat_p384_addcarryx_u64(x95, x83, x85);
+ let mut x98: u64 = 0;
+ let (x98) = fiat_p384_cmovznz_u64(x3, (arg5[0]), x86);
+ let mut x99: u64 = 0;
+ let (x99) = fiat_p384_cmovznz_u64(x3, (arg5[1]), x88);
+ let mut x100: u64 = 0;
+ let (x100) = fiat_p384_cmovznz_u64(x3, (arg5[2]), x90);
+ let mut x101: u64 = 0;
+ let (x101) = fiat_p384_cmovznz_u64(x3, (arg5[3]), x92);
+ let mut x102: u64 = 0;
+ let (x102) = fiat_p384_cmovznz_u64(x3, (arg5[4]), x94);
+ let mut x103: u64 = 0;
+ let (x103) = fiat_p384_cmovznz_u64(x3, (arg5[5]), x96);
+ let x104: fiat_p384_u1 = ((x28 & (0x1 as u64)) as fiat_p384_u1);
+ let mut x105: u64 = 0;
+ let (x105) = fiat_p384_cmovznz_u64(x104, (0x0 as u64), x7);
+ let mut x106: u64 = 0;
+ let (x106) = fiat_p384_cmovznz_u64(x104, (0x0 as u64), x8);
+ let mut x107: u64 = 0;
+ let (x107) = fiat_p384_cmovznz_u64(x104, (0x0 as u64), x9);
+ let mut x108: u64 = 0;
+ let (x108) = fiat_p384_cmovznz_u64(x104, (0x0 as u64), x10);
+ let mut x109: u64 = 0;
+ let (x109) = fiat_p384_cmovznz_u64(x104, (0x0 as u64), x11);
+ let mut x110: u64 = 0;
+ let (x110) = fiat_p384_cmovznz_u64(x104, (0x0 as u64), x12);
+ let mut x111: u64 = 0;
+ let (x111) = fiat_p384_cmovznz_u64(x104, (0x0 as u64), x13);
+ let mut x112: u64 = 0;
+ let mut x113: fiat_p384_u1 = 0;
+ let (x112, x113) = fiat_p384_addcarryx_u64(0x0, x28, x105);
+ let mut x114: u64 = 0;
+ let mut x115: fiat_p384_u1 = 0;
+ let (x114, x115) = fiat_p384_addcarryx_u64(x113, x29, x106);
+ let mut x116: u64 = 0;
+ let mut x117: fiat_p384_u1 = 0;
+ let (x116, x117) = fiat_p384_addcarryx_u64(x115, x30, x107);
+ let mut x118: u64 = 0;
+ let mut x119: fiat_p384_u1 = 0;
+ let (x118, x119) = fiat_p384_addcarryx_u64(x117, x31, x108);
+ let mut x120: u64 = 0;
+ let mut x121: fiat_p384_u1 = 0;
+ let (x120, x121) = fiat_p384_addcarryx_u64(x119, x32, x109);
+ let mut x122: u64 = 0;
+ let mut x123: fiat_p384_u1 = 0;
+ let (x122, x123) = fiat_p384_addcarryx_u64(x121, x33, x110);
+ let mut x124: u64 = 0;
+ let mut x125: fiat_p384_u1 = 0;
+ let (x124, x125) = fiat_p384_addcarryx_u64(x123, x34, x111);
+ let mut x126: u64 = 0;
+ let (x126) = fiat_p384_cmovznz_u64(x104, (0x0 as u64), x35);
+ let mut x127: u64 = 0;
+ let (x127) = fiat_p384_cmovznz_u64(x104, (0x0 as u64), x36);
+ let mut x128: u64 = 0;
+ let (x128) = fiat_p384_cmovznz_u64(x104, (0x0 as u64), x37);
+ let mut x129: u64 = 0;
+ let (x129) = fiat_p384_cmovznz_u64(x104, (0x0 as u64), x38);
+ let mut x130: u64 = 0;
+ let (x130) = fiat_p384_cmovznz_u64(x104, (0x0 as u64), x39);
+ let mut x131: u64 = 0;
+ let (x131) = fiat_p384_cmovznz_u64(x104, (0x0 as u64), x40);
+ let mut x132: u64 = 0;
+ let mut x133: fiat_p384_u1 = 0;
+ let (x132, x133) = fiat_p384_addcarryx_u64(0x0, x98, x126);
+ let mut x134: u64 = 0;
+ let mut x135: fiat_p384_u1 = 0;
+ let (x134, x135) = fiat_p384_addcarryx_u64(x133, x99, x127);
+ let mut x136: u64 = 0;
+ let mut x137: fiat_p384_u1 = 0;
+ let (x136, x137) = fiat_p384_addcarryx_u64(x135, x100, x128);
+ let mut x138: u64 = 0;
+ let mut x139: fiat_p384_u1 = 0;
+ let (x138, x139) = fiat_p384_addcarryx_u64(x137, x101, x129);
+ let mut x140: u64 = 0;
+ let mut x141: fiat_p384_u1 = 0;
+ let (x140, x141) = fiat_p384_addcarryx_u64(x139, x102, x130);
+ let mut x142: u64 = 0;
+ let mut x143: fiat_p384_u1 = 0;
+ let (x142, x143) = fiat_p384_addcarryx_u64(x141, x103, x131);
+ let mut x144: u64 = 0;
+ let mut x145: fiat_p384_u1 = 0;
+ let (x144, x145) = fiat_p384_subborrowx_u64(0x0, x132, 0xffffffff);
+ let mut x146: u64 = 0;
+ let mut x147: fiat_p384_u1 = 0;
+ let (x146, x147) = fiat_p384_subborrowx_u64(x145, x134, 0xffffffff00000000);
+ let mut x148: u64 = 0;
+ let mut x149: fiat_p384_u1 = 0;
+ let (x148, x149) = fiat_p384_subborrowx_u64(x147, x136, 0xfffffffffffffffe);
+ let mut x150: u64 = 0;
+ let mut x151: fiat_p384_u1 = 0;
+ let (x150, x151) = fiat_p384_subborrowx_u64(x149, x138, 0xffffffffffffffff);
+ let mut x152: u64 = 0;
+ let mut x153: fiat_p384_u1 = 0;
+ let (x152, x153) = fiat_p384_subborrowx_u64(x151, x140, 0xffffffffffffffff);
+ let mut x154: u64 = 0;
+ let mut x155: fiat_p384_u1 = 0;
+ let (x154, x155) = fiat_p384_subborrowx_u64(x153, x142, 0xffffffffffffffff);
+ let mut x156: u64 = 0;
+ let mut x157: fiat_p384_u1 = 0;
+ let (x156, x157) = fiat_p384_subborrowx_u64(x155, (x143 as u64), (0x0 as u64));
+ let mut x158: u64 = 0;
+ let mut x159: fiat_p384_u1 = 0;
+ let (x158, x159) = fiat_p384_addcarryx_u64(0x0, x6, (0x1 as u64));
+ let x160: u64 = ((x112 >> 1) | ((x114 << 63) & 0xffffffffffffffff));
+ let x161: u64 = ((x114 >> 1) | ((x116 << 63) & 0xffffffffffffffff));
+ let x162: u64 = ((x116 >> 1) | ((x118 << 63) & 0xffffffffffffffff));
+ let x163: u64 = ((x118 >> 1) | ((x120 << 63) & 0xffffffffffffffff));
+ let x164: u64 = ((x120 >> 1) | ((x122 << 63) & 0xffffffffffffffff));
+ let x165: u64 = ((x122 >> 1) | ((x124 << 63) & 0xffffffffffffffff));
+ let x166: u64 = ((x124 & 0x8000000000000000) | (x124 >> 1));
+ let mut x167: u64 = 0;
+ let (x167) = fiat_p384_cmovznz_u64(x66, x53, x41);
+ let mut x168: u64 = 0;
+ let (x168) = fiat_p384_cmovznz_u64(x66, x55, x43);
+ let mut x169: u64 = 0;
+ let (x169) = fiat_p384_cmovznz_u64(x66, x57, x45);
+ let mut x170: u64 = 0;
+ let (x170) = fiat_p384_cmovznz_u64(x66, x59, x47);
+ let mut x171: u64 = 0;
+ let (x171) = fiat_p384_cmovznz_u64(x66, x61, x49);
+ let mut x172: u64 = 0;
+ let (x172) = fiat_p384_cmovznz_u64(x66, x63, x51);
+ let mut x173: u64 = 0;
+ let (x173) = fiat_p384_cmovznz_u64(x157, x144, x132);
+ let mut x174: u64 = 0;
+ let (x174) = fiat_p384_cmovznz_u64(x157, x146, x134);
+ let mut x175: u64 = 0;
+ let (x175) = fiat_p384_cmovznz_u64(x157, x148, x136);
+ let mut x176: u64 = 0;
+ let (x176) = fiat_p384_cmovznz_u64(x157, x150, x138);
+ let mut x177: u64 = 0;
+ let (x177) = fiat_p384_cmovznz_u64(x157, x152, x140);
+ let mut x178: u64 = 0;
+ let (x178) = fiat_p384_cmovznz_u64(x157, x154, x142);
+ out1 = x158;
+ out2[0] = x7;
+ out2[1] = x8;
+ out2[2] = x9;
+ out2[3] = x10;
+ out2[4] = x11;
+ out2[5] = x12;
+ out2[6] = x13;
+ out3[0] = x160;
+ out3[1] = x161;
+ out3[2] = x162;
+ out3[3] = x163;
+ out3[4] = x164;
+ out3[5] = x165;
+ out3[6] = x166;
+ out4[0] = x167;
+ out4[1] = x168;
+ out4[2] = x169;
+ out4[3] = x170;
+ out4[4] = x171;
+ out4[5] = x172;
+ out5[0] = x173;
+ out5[1] = x174;
+ out5[2] = x175;
+ out5[3] = x176;
+ out5[4] = x177;
+ out5[5] = x178;
+ (out1, out2, out3, out4, out5)
+}
+#[doc = " The function fiat_p384_divstep_precomp returns the precomputed value for Bernstein-Yang-inversion (in montgomery form)."]
+#[doc = ""]
+#[doc = " Postconditions:"]
+#[doc = " eval (from_montgomery out1) = ⌊(m - 1) / 2⌋^(if ⌊log2 m⌋ + 1 < 46 then ⌊(49 * (⌊log2 m⌋ + 1) + 80) / 17⌋ else ⌊(49 * (⌊log2 m⌋ + 1) + 57) / 17⌋)"]
+#[doc = " 0 ≤ eval out1 < m"]
+#[doc = ""]
+#[doc = " Output Bounds:"]
+#[doc = " out1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]]"]
+#[inline]
+pub const fn fiat_p384_divstep_precomp() -> [u64; 6] {
+ let mut out1: [u64; 6] = [0; 6];
+ out1[0] = 0xfff69400fff18fff;
+ out1[1] = 0x2b7feffffd3ff;
+ out1[2] = 0xfffedbfffffe97ff;
+ out1[3] = 0x2840000002fff;
+ out1[4] = 0x6040000050400;
+ out1[5] = 0xfffc480000038000;
+ out1
+}
diff --git a/vendor/p384/src/arithmetic/macros.rs b/vendor/p384/src/arithmetic/macros.rs
new file mode 100644
index 000000000..62789f245
--- /dev/null
+++ b/vendor/p384/src/arithmetic/macros.rs
@@ -0,0 +1,47 @@
+/// Implement field element inversion.
+macro_rules! impl_field_invert {
+ (
+ $a:expr,
+ $one:expr,
+ $word_bits:expr,
+ $nlimbs:expr,
+ $mul:ident,
+ $neg:ident,
+ $divstep_precomp:ident,
+ $divstep:ident,
+ $msat:ident,
+ $selectznz:ident,
+ ) => {{
+ const ITERATIONS: usize = (49 * $nlimbs * $word_bits + 57) / 17;
+
+ let mut d = 1;
+ let mut f = $msat();
+ let mut g = [0; $nlimbs + 1];
+ let mut v = Default::default();
+ let mut r = $one;
+ let mut i = 0;
+
+ g[..$nlimbs].copy_from_slice($a.as_ref());
+
+ while i < ITERATIONS - ITERATIONS % 2 {
+ let (out1, out2, out3, out4, out5) = $divstep(d, &f, &g, &v, &r);
+ let (out1, out2, out3, out4, out5) = $divstep(out1, &out2, &out3, &out4, &out5);
+ d = out1;
+ f = out2;
+ g = out3;
+ v = out4;
+ r = out5;
+ i += 2;
+ }
+
+ if ITERATIONS % 2 != 0 {
+ let (_out1, out2, _out3, out4, _out5) = $divstep(d, &f, &g, &v, &r);
+ v = out4;
+ f = out2;
+ }
+
+ let s = ((f[f.len() - 1] >> $word_bits - 1) & 1) as u8;
+ let v = $selectznz(s, &v, &$neg(&v));
+ $mul(&v, &$divstep_precomp())
+ }};
+}
diff --git a/vendor/p384/src/arithmetic/projective.rs b/vendor/p384/src/arithmetic/projective.rs
new file mode 100644
index 000000000..2da22232d
--- /dev/null
+++ b/vendor/p384/src/arithmetic/projective.rs
@@ -0,0 +1,673 @@
+//! Projective points
+
+#![allow(clippy::needless_range_loop, clippy::op_ref)]
+
+use core::{
+ iter::Sum,
+ ops::{Add, AddAssign, Mul, MulAssign, Neg, Sub, SubAssign},
+};
+
+use elliptic_curve::{
+ group::{
+ ff::Field,
+ prime::{PrimeCurve, PrimeCurveAffine, PrimeGroup},
+ Curve, Group, GroupEncoding,
+ },
+ ops::LinearCombination,
+ rand_core::RngCore,
+ sec1::{FromEncodedPoint, ToEncodedPoint},
+ subtle::{Choice, ConditionallySelectable, ConstantTimeEq, CtOption},
+ weierstrass,
+ zeroize::DefaultIsZeroes,
+ Error, PrimeCurveArithmetic, ProjectiveArithmetic, Result,
+};
+
+use super::{AffinePoint, FieldElement, Scalar, CURVE_EQUATION_B};
+use crate::{CompressedPoint, EncodedPoint, NistP384, PublicKey};
+
+impl ProjectiveArithmetic for NistP384 {
+ type ProjectivePoint = ProjectivePoint;
+}
+
+impl PrimeCurveArithmetic for NistP384 {
+ type CurveGroup = ProjectivePoint;
+}
+
+/// A point on the secp384r1 curve in projective coordinates.
+#[derive(Clone, Copy, Debug)]
+#[cfg_attr(docsrs, doc(cfg(feature = "arithmetic")))]
+pub struct ProjectivePoint {
+ x: FieldElement,
+ y: FieldElement,
+ z: FieldElement,
+}
+
+impl ProjectivePoint {
+ /// Base point of P-384.
+ pub const GENERATOR: Self = Self {
+ x: AffinePoint::GENERATOR.x,
+ y: AffinePoint::GENERATOR.y,
+ z: FieldElement::ONE,
+ };
+ /// Additive identity of the group: the point at infinity.
+ pub const IDENTITY: Self = Self {
+ x: FieldElement::ZERO,
+ y: FieldElement::ONE,
+ z: FieldElement::ZERO,
+ };
+
+ /// Returns the additive identity of P-384, also known as the "neutral
+ /// element" or "point at infinity".
+ #[deprecated(since = "0.10.1", note = "use `ProjectivePoint::IDENTITY` instead")]
+ pub const fn identity() -> ProjectivePoint {
+ Self::IDENTITY
+ }
+
+ /// Returns the base point of P-384.
+ #[deprecated(since = "0.10.1", note = "use `ProjectivePoint::GENERATOR` instead")]
+ pub fn generator() -> ProjectivePoint {
+ Self::GENERATOR
+ }
+
+ /// Returns the affine representation of this point, or `None` if it is the
+ /// identity.
+ pub fn to_affine(&self) -> AffinePoint {
+ self.z
+ .invert()
+ .map(|zinv| AffinePoint {
+ x: self.x * &zinv,
+ y: self.y * &zinv,
+ infinity: 0,
+ })
+ .unwrap_or(AffinePoint::IDENTITY)
+ }
+
+ /// Returns `-self`.
+ fn neg(&self) -> ProjectivePoint {
+ ProjectivePoint {
+ x: self.x,
+ y: self.y.neg(),
+ z: self.z,
+ }
+ }
+
+ /// Returns `self + other`.
+ fn add(&self, other: &ProjectivePoint) -> ProjectivePoint {
+ weierstrass::add(
+ (self.x, self.y, self.z),
+ (other.x, other.y, other.z),
+ CURVE_EQUATION_B,
+ )
+ .into()
+ }
+
+ /// Returns `self + other`.
+ fn add_mixed(&self, other: &AffinePoint) -> ProjectivePoint {
+ let ret = Self::from(weierstrass::add_mixed(
+ (self.x, self.y, self.z),
+ (other.x, other.y),
+ CURVE_EQUATION_B,
+ ));
+
+ Self::conditional_select(&ret, self, other.is_identity())
+ }
+
+ /// Doubles this point.
+ pub fn double(&self) -> ProjectivePoint {
+ weierstrass::double((self.x, self.y, self.z), CURVE_EQUATION_B).into()
+ }
+
+ /// Returns `self - other`.
+ fn sub(&self, other: &ProjectivePoint) -> ProjectivePoint {
+ self.add(&other.neg())
+ }
+
+ /// Returns `self - other`.
+ fn sub_mixed(&self, other: &AffinePoint) -> ProjectivePoint {
+ self.add_mixed(&other.neg())
+ }
+
+ /// Returns `[k] self`.
+ fn mul(&self, k: &Scalar) -> ProjectivePoint {
+ let mut pc = [ProjectivePoint::default(); 16];
+ pc[0] = ProjectivePoint::IDENTITY;
+ pc[1] = *self;
+ for i in 2..16 {
+ pc[i] = if i % 2 == 0 {
+ pc[i / 2].double()
+ } else {
+ pc[i - 1].add(self)
+ };
+ }
+ let mut q = ProjectivePoint::IDENTITY;
+ let k = k.to_le_bytes();
+ let mut pos = 384 - 4;
+ loop {
+ let slot = (k[(pos >> 3) as usize] >> (pos & 7)) & 0xf;
+ let mut t = ProjectivePoint::IDENTITY;
+ for i in 1..16 {
+ t.conditional_assign(
+ &pc[i],
+ Choice::from(((slot as usize ^ i).wrapping_sub(1) >> 8) as u8 & 1),
+ );
+ }
+ q = q.add(&t);
+ if pos == 0 {
+ break;
+ }
+ q = q.double().double().double().double();
+ pos -= 4;
+ }
+ q
+ }
+}
+
+impl Group for ProjectivePoint {
+ type Scalar = Scalar;
+
+ fn random(mut rng: impl RngCore) -> Self {
+ Self::GENERATOR * Scalar::random(&mut rng)
+ }
+
+ fn identity() -> Self {
+ Self::IDENTITY
+ }
+
+ fn generator() -> Self {
+ Self::GENERATOR
+ }
+
+ fn is_identity(&self) -> Choice {
+ self.ct_eq(&Self::IDENTITY)
+ }
+
+ #[must_use]
+ fn double(&self) -> Self {
+ ProjectivePoint::double(self)
+ }
+}
+
+impl GroupEncoding for ProjectivePoint {
+ type Repr = CompressedPoint;
+
+ fn from_bytes(bytes: &Self::Repr) -> CtOption<Self> {
+ <AffinePoint as GroupEncoding>::from_bytes(bytes).map(Into::into)
+ }
+
+ fn from_bytes_unchecked(bytes: &Self::Repr) -> CtOption<Self> {
+ // No unchecked conversion possible for compressed points
+ Self::from_bytes(bytes)
+ }
+
+ fn to_bytes(&self) -> Self::Repr {
+ self.to_affine().to_bytes()
+ }
+}
+
+impl PrimeGroup for ProjectivePoint {}
+
+impl Curve for ProjectivePoint {
+ type AffineRepr = AffinePoint;
+
+ fn to_affine(&self) -> AffinePoint {
+ ProjectivePoint::to_affine(self)
+ }
+}
+
+impl PrimeCurve for ProjectivePoint {
+ type Affine = AffinePoint;
+}
+
+impl LinearCombination for ProjectivePoint {}
+
+impl From<AffinePoint> for ProjectivePoint {
+ fn from(p: AffinePoint) -> Self {
+ let projective = ProjectivePoint {
+ x: p.x,
+ y: p.y,
+ z: FieldElement::ONE,
+ };
+ Self::conditional_select(&projective, &Self::IDENTITY, p.is_identity())
+ }
+}
+
+impl From<&AffinePoint> for ProjectivePoint {
+ fn from(p: &AffinePoint) -> Self {
+ Self::from(*p)
+ }
+}
+
+impl From<ProjectivePoint> for AffinePoint {
+ fn from(p: ProjectivePoint) -> AffinePoint {
+ p.to_affine()
+ }
+}
+
+impl From<&ProjectivePoint> for AffinePoint {
+ fn from(p: &ProjectivePoint) -> AffinePoint {
+ p.to_affine()
+ }
+}
+
+impl From<weierstrass::ProjectivePoint<FieldElement>> for ProjectivePoint {
+ #[inline]
+ fn from((x, y, z): weierstrass::ProjectivePoint<FieldElement>) -> ProjectivePoint {
+ Self { x, y, z }
+ }
+}
+
+impl FromEncodedPoint<NistP384> for ProjectivePoint {
+ fn from_encoded_point(p: &EncodedPoint) -> CtOption<Self> {
+ AffinePoint::from_encoded_point(p).map(ProjectivePoint::from)
+ }
+}
+
+impl ToEncodedPoint<NistP384> for ProjectivePoint {
+ fn to_encoded_point(&self, compress: bool) -> EncodedPoint {
+ self.to_affine().to_encoded_point(compress)
+ }
+}
+
+impl ConditionallySelectable for ProjectivePoint {
+ fn conditional_select(a: &Self, b: &Self, choice: Choice) -> Self {
+ ProjectivePoint {
+ x: FieldElement::conditional_select(&a.x, &b.x, choice),
+ y: FieldElement::conditional_select(&a.y, &b.y, choice),
+ z: FieldElement::conditional_select(&a.z, &b.z, choice),
+ }
+ }
+}
+
+impl ConstantTimeEq for ProjectivePoint {
+ fn ct_eq(&self, other: &Self) -> Choice {
+ self.to_affine().ct_eq(&other.to_affine())
+ }
+}
+
+impl DefaultIsZeroes for ProjectivePoint {}
+
+impl Eq for ProjectivePoint {}
+
+impl PartialEq for ProjectivePoint {
+ fn eq(&self, other: &Self) -> bool {
+ self.ct_eq(other).into()
+ }
+}
+
+impl Default for ProjectivePoint {
+ fn default() -> Self {
+ Self::IDENTITY
+ }
+}
+
+impl Add<ProjectivePoint> for ProjectivePoint {
+ type Output = ProjectivePoint;
+
+ fn add(self, other: ProjectivePoint) -> ProjectivePoint {
+ ProjectivePoint::add(&self, &other)
+ }
+}
+
+impl Add<&ProjectivePoint> for &ProjectivePoint {
+ type Output = ProjectivePoint;
+
+ fn add(self, other: &ProjectivePoint) -> ProjectivePoint {
+ ProjectivePoint::add(self, other)
+ }
+}
+
+impl Add<&ProjectivePoint> for ProjectivePoint {
+ type Output = ProjectivePoint;
+
+ fn add(self, other: &ProjectivePoint) -> ProjectivePoint {
+ ProjectivePoint::add(&self, other)
+ }
+}
+
+impl AddAssign<ProjectivePoint> for ProjectivePoint {
+ fn add_assign(&mut self, rhs: ProjectivePoint) {
+ *self = ProjectivePoint::add(self, &rhs);
+ }
+}
+
+impl AddAssign<&ProjectivePoint> for ProjectivePoint {
+ fn add_assign(&mut self, rhs: &ProjectivePoint) {
+ *self = ProjectivePoint::add(self, rhs);
+ }
+}
+
+impl Add<AffinePoint> for ProjectivePoint {
+ type Output = ProjectivePoint;
+
+ fn add(self, other: AffinePoint) -> ProjectivePoint {
+ ProjectivePoint::add_mixed(&self, &other)
+ }
+}
+
+impl Add<&AffinePoint> for &ProjectivePoint {
+ type Output = ProjectivePoint;
+
+ fn add(self, other: &AffinePoint) -> ProjectivePoint {
+ ProjectivePoint::add_mixed(self, other)
+ }
+}
+
+impl Add<&AffinePoint> for ProjectivePoint {
+ type Output = ProjectivePoint;
+
+ fn add(self, other: &AffinePoint) -> ProjectivePoint {
+ ProjectivePoint::add_mixed(&self, other)
+ }
+}
+
+impl AddAssign<AffinePoint> for ProjectivePoint {
+ fn add_assign(&mut self, rhs: AffinePoint) {
+ *self = ProjectivePoint::add_mixed(self, &rhs);
+ }
+}
+
+impl AddAssign<&AffinePoint> for ProjectivePoint {
+ fn add_assign(&mut self, rhs: &AffinePoint) {
+ *self = ProjectivePoint::add_mixed(self, rhs);
+ }
+}
+
+impl Sum for ProjectivePoint {
+ fn sum<I: Iterator<Item = Self>>(iter: I) -> Self {
+ iter.fold(ProjectivePoint::IDENTITY, |a, b| a + b)
+ }
+}
+
+impl<'a> Sum<&'a ProjectivePoint> for ProjectivePoint {
+ fn sum<I: Iterator<Item = &'a ProjectivePoint>>(iter: I) -> Self {
+ iter.cloned().sum()
+ }
+}
+
+impl Sub<ProjectivePoint> for ProjectivePoint {
+ type Output = ProjectivePoint;
+
+ fn sub(self, other: ProjectivePoint) -> ProjectivePoint {
+ ProjectivePoint::sub(&self, &other)
+ }
+}
+
+impl Sub<&ProjectivePoint> for &ProjectivePoint {
+ type Output = ProjectivePoint;
+
+ fn sub(self, other: &ProjectivePoint) -> ProjectivePoint {
+ ProjectivePoint::sub(self, other)
+ }
+}
+
+impl Sub<&ProjectivePoint> for ProjectivePoint {
+ type Output = ProjectivePoint;
+
+ fn sub(self, other: &ProjectivePoint) -> ProjectivePoint {
+ ProjectivePoint::sub(&self, other)
+ }
+}
+
+impl SubAssign<ProjectivePoint> for ProjectivePoint {
+ fn sub_assign(&mut self, rhs: ProjectivePoint) {
+ *self = ProjectivePoint::sub(self, &rhs);
+ }
+}
+
+impl SubAssign<&ProjectivePoint> for ProjectivePoint {
+ fn sub_assign(&mut self, rhs: &ProjectivePoint) {
+ *self = ProjectivePoint::sub(self, rhs);
+ }
+}
+
+impl Sub<AffinePoint> for ProjectivePoint {
+ type Output = ProjectivePoint;
+
+ fn sub(self, other: AffinePoint) -> ProjectivePoint {
+ ProjectivePoint::sub_mixed(&self, &other)
+ }
+}
+
+impl Sub<&AffinePoint> for &ProjectivePoint {
+ type Output = ProjectivePoint;
+
+ fn sub(self, other: &AffinePoint) -> ProjectivePoint {
+ ProjectivePoint::sub_mixed(self, other)
+ }
+}
+
+impl Sub<&AffinePoint> for ProjectivePoint {
+ type Output = ProjectivePoint;
+
+ fn sub(self, other: &AffinePoint) -> ProjectivePoint {
+ ProjectivePoint::sub_mixed(&self, other)
+ }
+}
+
+impl SubAssign<AffinePoint> for ProjectivePoint {
+ fn sub_assign(&mut self, rhs: AffinePoint) {
+ *self = ProjectivePoint::sub_mixed(self, &rhs);
+ }
+}
+
+impl SubAssign<&AffinePoint> for ProjectivePoint {
+ fn sub_assign(&mut self, rhs: &AffinePoint) {
+ *self = ProjectivePoint::sub_mixed(self, rhs);
+ }
+}
+
+impl Mul<Scalar> for ProjectivePoint {
+ type Output = ProjectivePoint;
+
+ fn mul(self, other: Scalar) -> ProjectivePoint {
+ ProjectivePoint::mul(&self, &other)
+ }
+}
+
+impl Mul<&Scalar> for &ProjectivePoint {
+ type Output = ProjectivePoint;
+
+ fn mul(self, other: &Scalar) -> ProjectivePoint {
+ ProjectivePoint::mul(self, other)
+ }
+}
+
+impl Mul<&Scalar> for ProjectivePoint {
+ type Output = ProjectivePoint;
+
+ fn mul(self, other: &Scalar) -> ProjectivePoint {
+ ProjectivePoint::mul(&self, other)
+ }
+}
+
+impl MulAssign<Scalar> for ProjectivePoint {
+ fn mul_assign(&mut self, rhs: Scalar) {
+ *self = ProjectivePoint::mul(self, &rhs);
+ }
+}
+
+impl MulAssign<&Scalar> for ProjectivePoint {
+ fn mul_assign(&mut self, rhs: &Scalar) {
+ *self = ProjectivePoint::mul(self, rhs);
+ }
+}
+
+impl Neg for ProjectivePoint {
+ type Output = ProjectivePoint;
+
+ fn neg(self) -> ProjectivePoint {
+ ProjectivePoint::neg(&self)
+ }
+}
+
+impl<'a> Neg for &'a ProjectivePoint {
+ type Output = ProjectivePoint;
+
+ fn neg(self) -> ProjectivePoint {
+ ProjectivePoint::neg(self)
+ }
+}
+
+impl From<PublicKey> for ProjectivePoint {
+ fn from(public_key: PublicKey) -> ProjectivePoint {
+ AffinePoint::from(public_key).into()
+ }
+}
+
+impl From<&PublicKey> for ProjectivePoint {
+ fn from(public_key: &PublicKey) -> ProjectivePoint {
+ AffinePoint::from(public_key).into()
+ }
+}
+
+impl TryFrom<ProjectivePoint> for PublicKey {
+ type Error = Error;
+
+ fn try_from(point: ProjectivePoint) -> Result<PublicKey> {
+ AffinePoint::from(point).try_into()
+ }
+}
+
+impl TryFrom<&ProjectivePoint> for PublicKey {
+ type Error = Error;
+
+ fn try_from(point: &ProjectivePoint) -> Result<PublicKey> {
+ AffinePoint::from(point).try_into()
+ }
+}
+
+#[cfg(test)]
+mod tests {
+ use super::{AffinePoint, ProjectivePoint, Scalar};
+ use crate::test_vectors::group::{ADD_TEST_VECTORS, MUL_TEST_VECTORS};
+ use elliptic_curve::{group::prime::PrimeCurveAffine, PrimeField};
+
+ #[test]
+ fn affine_to_projective() {
+ let basepoint_affine = AffinePoint::GENERATOR;
+ let basepoint_projective = ProjectivePoint::GENERATOR;
+
+ assert_eq!(
+ ProjectivePoint::from(basepoint_affine),
+ basepoint_projective,
+ );
+ assert_eq!(basepoint_projective.to_affine(), basepoint_affine);
+ assert!(!bool::from(basepoint_projective.to_affine().is_identity()));
+ assert!(bool::from(
+ ProjectivePoint::IDENTITY.to_affine().is_identity()
+ ));
+ }
+
+ #[test]
+ fn projective_identity_addition() {
+ let identity = ProjectivePoint::IDENTITY;
+ let generator = ProjectivePoint::GENERATOR;
+
+ assert_eq!(identity + &generator, generator);
+ assert_eq!(generator + &identity, generator);
+ }
+
+ #[test]
+ fn test_vector_repeated_add() {
+ let generator = ProjectivePoint::GENERATOR;
+ let mut p = generator;
+
+ for i in 0..ADD_TEST_VECTORS.len() {
+ let affine = p.to_affine();
+
+ let (expected_x, expected_y) = ADD_TEST_VECTORS[i];
+ assert_eq!(affine.x.to_sec1(), expected_x.into());
+ assert_eq!(affine.y.to_sec1(), expected_y.into());
+
+ p += &generator;
+ }
+ }
+
+ #[test]
+ fn test_vector_repeated_add_mixed() {
+ let generator = AffinePoint::GENERATOR;
+ let mut p = ProjectivePoint::GENERATOR;
+
+ for i in 0..ADD_TEST_VECTORS.len() {
+ let affine = p.to_affine();
+
+ let (expected_x, expected_y) = ADD_TEST_VECTORS[i];
+ assert_eq!(affine.x.to_sec1(), expected_x.into());
+ assert_eq!(affine.y.to_sec1(), expected_y.into());
+
+ p += &generator;
+ }
+ }
+
+ #[test]
+ fn test_vector_add_mixed_identity() {
+ let generator = ProjectivePoint::GENERATOR;
+ let p0 = generator + ProjectivePoint::IDENTITY;
+ let p1 = generator + AffinePoint::IDENTITY;
+ assert_eq!(p0, p1);
+ }
+
+ #[test]
+ fn test_vector_double_generator() {
+ let generator = ProjectivePoint::GENERATOR;
+ let mut p = generator;
+
+ for i in 0..2 {
+ let affine = p.to_affine();
+
+ let (expected_x, expected_y) = ADD_TEST_VECTORS[i];
+ assert_eq!(affine.x.to_sec1(), expected_x.into());
+ assert_eq!(affine.y.to_sec1(), expected_y.into());
+
+ p = p.double();
+ }
+ }
+
+ #[test]
+ fn projective_add_vs_double() {
+ let generator = ProjectivePoint::GENERATOR;
+ assert_eq!(generator + &generator, generator.double());
+ }
+
+ #[test]
+ fn projective_add_and_sub() {
+ let basepoint_affine = AffinePoint::GENERATOR;
+ let basepoint_projective = ProjectivePoint::GENERATOR;
+
+ assert_eq!(
+ (basepoint_projective + &basepoint_projective) - &basepoint_projective,
+ basepoint_projective
+ );
+ assert_eq!(
+ (basepoint_projective + &basepoint_affine) - &basepoint_affine,
+ basepoint_projective
+ );
+ }
+
+ #[test]
+ fn projective_double_and_sub() {
+ let generator = ProjectivePoint::GENERATOR;
+ assert_eq!(generator.double() - &generator, generator);
+ }
+
+ #[test]
+ fn test_vector_scalar_mult() {
+ let generator = ProjectivePoint::GENERATOR;
+
+ for (k, coords) in ADD_TEST_VECTORS
+ .iter()
+ .enumerate()
+ .map(|(k, coords)| (Scalar::from(k as u64 + 1), *coords))
+ .chain(
+ MUL_TEST_VECTORS
+ .iter()
+ .cloned()
+ .map(|(k, x, y)| (Scalar::from_repr(k.into()).unwrap(), (x, y))),
+ )
+ {
+ let res = (generator * &k).to_affine();
+ assert_eq!(res.x.to_sec1(), coords.0.into());
+ assert_eq!(res.y.to_sec1(), coords.1.into());
+ }
+ }
+}
diff --git a/vendor/p384/src/arithmetic/scalar.rs b/vendor/p384/src/arithmetic/scalar.rs
new file mode 100644
index 000000000..db7994e20
--- /dev/null
+++ b/vendor/p384/src/arithmetic/scalar.rs
@@ -0,0 +1,370 @@
+//! secp384r1 scalar field elements.
+
+#![allow(clippy::unusual_byte_groupings)]
+
+#[cfg_attr(target_pointer_width = "32", path = "scalar/p384_scalar_32.rs")]
+#[cfg_attr(target_pointer_width = "64", path = "scalar/p384_scalar_64.rs")]
+#[allow(
+ clippy::identity_op,
+ clippy::too_many_arguments,
+ clippy::unnecessary_cast
+)]
+mod scalar_impl;
+
+use self::scalar_impl::*;
+use crate::{FieldBytes, NistP384, SecretKey, U384};
+use core::ops::{AddAssign, MulAssign, Neg, SubAssign};
+use elliptic_curve::{
+ bigint::{self, Encoding, Limb},
+ ff::PrimeField,
+ ops::Reduce,
+ subtle::{Choice, ConditionallySelectable, ConstantTimeEq, ConstantTimeGreater, CtOption},
+ Curve as _, Error, IsHigh, Result, ScalarArithmetic, ScalarCore,
+};
+
+#[cfg(feature = "bits")]
+use {crate::ScalarBits, elliptic_curve::group::ff::PrimeFieldBits};
+
+#[cfg(feature = "serde")]
+use serdect::serde::{de, ser, Deserialize, Serialize};
+
+#[cfg(doc)]
+use core::ops::{Add, Mul, Sub};
+
+impl ScalarArithmetic for NistP384 {
+ type Scalar = Scalar;
+}
+
+/// Scalars are elements in the finite field modulo `n`.
+///
+/// # Trait impls
+///
+/// Much of the important functionality of scalars is provided by traits from
+/// the [`ff`](https://docs.rs/ff/) crate, which is re-exported as
+/// `p384::elliptic_curve::ff`:
+///
+/// - [`Field`](https://docs.rs/ff/latest/ff/trait.Field.html) -
+/// represents elements of finite fields and provides:
+/// - [`Field::random`](https://docs.rs/ff/latest/ff/trait.Field.html#tymethod.random) -
+/// generate a random scalar
+/// - `double`, `square`, and `invert` operations
+/// - Bounds for [`Add`], [`Sub`], [`Mul`], and [`Neg`] (as well as `*Assign` equivalents)
+/// - Bounds for [`ConditionallySelectable`] from the `subtle` crate
+/// - [`PrimeField`](https://docs.rs/ff/latest/ff/trait.PrimeField.html) -
+/// represents elements of prime fields and provides:
+/// - `from_repr`/`to_repr` for converting field elements from/to big integers.
+/// - `multiplicative_generator` and `root_of_unity` constants.
+/// - [`PrimeFieldBits`](https://docs.rs/ff/latest/ff/trait.PrimeFieldBits.html) -
+/// operations over field elements represented as bits (requires `bits` feature)
+///
+/// Please see the documentation for the relevant traits for more information.
+///
+/// # `serde` support
+///
+/// When the `serde` feature of this crate is enabled, the `Serialize` and
+/// `Deserialize` traits are impl'd for this type.
+///
+/// The serialization is a fixed-width big endian encoding. When used with
+/// textual formats, the binary data is encoded as hexadecimal.
+#[derive(Clone, Copy, Debug)]
+#[cfg_attr(docsrs, doc(cfg(feature = "arithmetic")))]
+pub struct Scalar(U384);
+
+elliptic_curve::impl_field_element!(
+ Scalar,
+ FieldBytes,
+ U384,
+ NistP384::ORDER,
+ fiat_p384_scalar_montgomery_domain_field_element,
+ fiat_p384_scalar_from_montgomery,
+ fiat_p384_scalar_to_montgomery,
+ fiat_p384_scalar_add,
+ fiat_p384_scalar_sub,
+ fiat_p384_scalar_mul,
+ fiat_p384_scalar_opp,
+ fiat_p384_scalar_square
+);
+
+impl Scalar {
+ /// `2^s` root of unity.
+ pub const ROOT_OF_UNITY: Self = Self::from_be_hex("ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52972");
+
+ /// Compute [`Scalar`] inversion: `1 / self`.
+ pub fn invert(&self) -> CtOption<Self> {
+ let ret = impl_field_invert!(
+ self.to_canonical().to_words(),
+ Self::ONE.0.to_words(),
+ Limb::BIT_SIZE,
+ bigint::nlimbs!(U384::BIT_SIZE),
+ fiat_p384_scalar_mul,
+ fiat_p384_scalar_opp,
+ fiat_p384_scalar_divstep_precomp,
+ fiat_p384_scalar_divstep,
+ fiat_p384_scalar_msat,
+ fiat_p384_scalar_selectznz,
+ );
+ CtOption::new(Self(ret.into()), !self.is_zero())
+ }
+
+ /// Compute modular square root.
+ pub fn sqrt(&self) -> CtOption<Self> {
+ // p mod 4 = 3 -> compute sqrt(x) using x^((p+1)/4) =
+ // x^9850501549098619803069760025035903451269934817616361666986726319906914849778315892349739077038073728388608413485661
+ let t1 = *self;
+ let t10 = t1.square();
+ let t11 = *self * t10;
+ let t101 = t10 * t11;
+ let t111 = t10 * t101;
+ let t1001 = t10 * t111;
+ let t1011 = t10 * t1001;
+ let t1101 = t10 * t1011;
+ let t1111 = t10 * t1101;
+ let t11110 = t1111.square();
+ let t11111 = t1 * t11110;
+ let t1111100 = t11111.sqn(2);
+ let t11111000 = t1111100.square();
+ let i14 = t11111000.square();
+ let i20 = i14.sqn(5) * i14;
+ let i31 = i20.sqn(10) * i20;
+ let i58 = (i31.sqn(4) * t11111000).sqn(21) * i31;
+ let i110 = (i58.sqn(3) * t1111100).sqn(47) * i58;
+ let x194 = i110.sqn(95) * i110 * t1111;
+ let i225 = ((x194.sqn(6) * t111).sqn(3) * t11).sqn(7);
+ let i235 = ((t1101 * i225).sqn(6) * t1101).square() * t1;
+ let i258 = ((i235.sqn(11) * t11111).sqn(2) * t1).sqn(8);
+ let i269 = ((t1101 * i258).sqn(2) * t11).sqn(6) * t1011;
+ let i286 = ((i269.sqn(4) * t111).sqn(6) * t11111).sqn(5);
+ let i308 = ((t1011 * i286).sqn(10) * t1101).sqn(9) * t1101;
+ let i323 = ((i308.sqn(4) * t1011).sqn(6) * t1001).sqn(3);
+ let i340 = ((t1 * i323).sqn(7) * t1011).sqn(7) * t101;
+ let i357 = ((i340.sqn(5) * t111).sqn(5) * t1111).sqn(5);
+ let i369 = ((t1011 * i357).sqn(4) * t1011).sqn(5) * t111;
+ let i387 = ((i369.sqn(3) * t11).sqn(7) * t11).sqn(6);
+ let i397 = ((t1011 * i387).sqn(4) * t101).sqn(3) * t11;
+ let i413 = ((i397.sqn(4) * t11).sqn(4) * t11).sqn(6);
+ let i427 = ((t101 * i413).sqn(5) * t101).sqn(6) * t1011;
+ let x = i427.sqn(3) * t101;
+ CtOption::new(x, x.square().ct_eq(&t1))
+ }
+
+ fn sqn(&self, n: usize) -> Self {
+ let mut x = *self;
+ for _ in 0..n {
+ x = x.square();
+ }
+ x
+ }
+
+ /// Returns the SEC1 encoding of this scalar.
+ ///
+ /// Required for running test vectors.
+ #[cfg(test)]
+ pub fn to_bytes(&self) -> FieldBytes {
+ self.to_be_bytes()
+ }
+}
+
+impl IsHigh for Scalar {
+ fn is_high(&self) -> Choice {
+ const MODULUS_SHR1: U384 = NistP384::ORDER.shr_vartime(1);
+ self.to_canonical().ct_gt(&MODULUS_SHR1)
+ }
+}
+
+impl PrimeField for Scalar {
+ type Repr = FieldBytes;
+
+ const CAPACITY: u32 = 383;
+ const NUM_BITS: u32 = 384;
+ const S: u32 = 1;
+
+ fn from_repr(bytes: FieldBytes) -> CtOption<Self> {
+ Self::from_be_bytes(bytes)
+ }
+
+ fn to_repr(&self) -> FieldBytes {
+ self.to_be_bytes()
+ }
+
+ fn is_odd(&self) -> Choice {
+ self.is_odd()
+ }
+
+ fn multiplicative_generator() -> Self {
+ 2u64.into()
+ }
+
+ fn root_of_unity() -> Self {
+ Self::ROOT_OF_UNITY
+ }
+}
+
+#[cfg(feature = "bits")]
+#[cfg_attr(docsrs, doc(cfg(feature = "bits")))]
+impl PrimeFieldBits for Scalar {
+ type ReprBits = fiat_p384_scalar_montgomery_domain_field_element;
+
+ fn to_le_bits(&self) -> ScalarBits {
+ self.to_canonical().to_words().into()
+ }
+
+ fn char_le_bits() -> ScalarBits {
+ NistP384::ORDER.to_words().into()
+ }
+}
+
+impl Reduce<U384> for Scalar {
+ fn from_uint_reduced(w: U384) -> Self {
+ let (r, underflow) = w.sbb(&NistP384::ORDER, Limb::ZERO);
+ let underflow = Choice::from((underflow.0 >> (Limb::BIT_SIZE - 1)) as u8);
+ Self::from_uint_unchecked(U384::conditional_select(&w, &r, !underflow))
+ }
+}
+
+impl From<u64> for Scalar {
+ fn from(n: u64) -> Scalar {
+ Self::from_uint_unchecked(U384::from(n))
+ }
+}
+
+impl From<ScalarCore<NistP384>> for Scalar {
+ fn from(w: ScalarCore<NistP384>) -> Self {
+ Scalar::from(&w)
+ }
+}
+
+impl From<&ScalarCore<NistP384>> for Scalar {
+ fn from(w: &ScalarCore<NistP384>) -> Scalar {
+ Scalar::from_uint_unchecked(*w.as_uint())
+ }
+}
+
+impl From<Scalar> for ScalarCore<NistP384> {
+ fn from(scalar: Scalar) -> ScalarCore<NistP384> {
+ ScalarCore::from(&scalar)
+ }
+}
+
+impl From<&Scalar> for ScalarCore<NistP384> {
+ fn from(scalar: &Scalar) -> ScalarCore<NistP384> {
+ ScalarCore::new(scalar.into()).unwrap()
+ }
+}
+
+impl From<Scalar> for FieldBytes {
+ fn from(scalar: Scalar) -> Self {
+ scalar.to_repr()
+ }
+}
+
+impl From<&Scalar> for FieldBytes {
+ fn from(scalar: &Scalar) -> Self {
+ scalar.to_repr()
+ }
+}
+
+impl From<Scalar> for U384 {
+ fn from(scalar: Scalar) -> U384 {
+ U384::from(&scalar)
+ }
+}
+
+impl From<&Scalar> for U384 {
+ fn from(scalar: &Scalar) -> U384 {
+ scalar.to_canonical()
+ }
+}
+
+impl From<&SecretKey> for Scalar {
+ fn from(secret_key: &SecretKey) -> Scalar {
+ *secret_key.to_nonzero_scalar()
+ }
+}
+
+impl TryFrom<U384> for Scalar {
+ type Error = Error;
+
+ fn try_from(w: U384) -> Result<Self> {
+ Option::from(Self::from_uint(w)).ok_or(Error)
+ }
+}
+
+#[cfg(feature = "serde")]
+#[cfg_attr(docsrs, doc(cfg(feature = "serde")))]
+impl Serialize for Scalar {
+ fn serialize<S>(&self, serializer: S) -> core::result::Result<S::Ok, S::Error>
+ where
+ S: ser::Serializer,
+ {
+ ScalarCore::from(self).serialize(serializer)
+ }
+}
+
+#[cfg(feature = "serde")]
+#[cfg_attr(docsrs, doc(cfg(feature = "serde")))]
+impl<'de> Deserialize<'de> for Scalar {
+ fn deserialize<D>(deserializer: D) -> core::result::Result<Self, D::Error>
+ where
+ D: de::Deserializer<'de>,
+ {
+ Ok(ScalarCore::deserialize(deserializer)?.into())
+ }
+}
+
+#[cfg(test)]
+mod tests {
+ use super::Scalar;
+ use crate::FieldBytes;
+ use elliptic_curve::ff::{Field, PrimeField};
+
+ #[test]
+ fn from_to_bytes_roundtrip() {
+ let k: u64 = 42;
+ let mut bytes = FieldBytes::default();
+ bytes[40..].copy_from_slice(k.to_le_bytes().as_ref());
+
+ let scalar = Scalar::from_repr(bytes).unwrap();
+ assert_eq!(bytes, scalar.to_be_bytes());
+ }
+
+ /// Basic tests that multiplication works.
+ #[test]
+ fn multiply() {
+ let one = Scalar::one();
+ let two = one + one;
+ let three = two + one;
+ let six = three + three;
+ assert_eq!(six, two * three);
+
+ let minus_two = -two;
+ let minus_three = -three;
+ assert_eq!(two, -minus_two);
+
+ assert_eq!(minus_three * minus_two, minus_two * minus_three);
+ assert_eq!(six, minus_two * minus_three);
+ }
+
+ /// Basic tests that scalar inversion works.
+ #[test]
+ fn invert() {
+ let one = Scalar::one();
+ let three = one + one + one;
+ let inv_three = three.invert().unwrap();
+ assert_eq!(three * inv_three, one);
+
+ let minus_three = -three;
+ let inv_minus_three = minus_three.invert().unwrap();
+ assert_eq!(inv_minus_three, -inv_three);
+ assert_eq!(three * inv_minus_three, -one);
+ }
+
+ /// Basic tests that sqrt works.
+ #[test]
+ fn sqrt() {
+ for &n in &[1u64, 4, 9, 16, 25, 36, 49, 64] {
+ let scalar = Scalar::from(n);
+ let sqrt = scalar.sqrt().unwrap();
+ assert_eq!(sqrt.square(), scalar);
+ }
+ }
+}
diff --git a/vendor/p384/src/arithmetic/scalar/p384_scalar_32.rs b/vendor/p384/src/arithmetic/scalar/p384_scalar_32.rs
new file mode 100644
index 000000000..dcf55aa95
--- /dev/null
+++ b/vendor/p384/src/arithmetic/scalar/p384_scalar_32.rs
@@ -0,0 +1,11535 @@
+#![doc = " fiat-crypto output postprocessed by fiat-constify: https://github.com/rustcrypto/utils"]
+#![doc = " Autogenerated: 'src/ExtractionOCaml/word_by_word_montgomery' --lang Rust --inline p384_scalar 32 '2^384 - 1388124618062372383947042015309946732620727252194336364173' mul square add sub opp from_montgomery to_montgomery nonzero selectznz to_bytes from_bytes one msat divstep divstep_precomp"]
+#![doc = " curve description: p384_scalar"]
+#![doc = " machine_wordsize = 32 (from \"32\")"]
+#![doc = " requested operations: mul, square, add, sub, opp, from_montgomery, to_montgomery, nonzero, selectznz, to_bytes, from_bytes, one, msat, divstep, divstep_precomp"]
+#![doc = " m = 0xffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52973 (from \"2^384 - 1388124618062372383947042015309946732620727252194336364173\")"]
+#![doc = ""]
+#![doc = " NOTE: In addition to the bounds specified above each function, all"]
+#![doc = " functions synthesized for this Montgomery arithmetic require the"]
+#![doc = " input to be strictly less than the prime modulus (m), and also"]
+#![doc = " require the input to be in the unique saturated representation."]
+#![doc = " All functions also ensure that these two properties are true of"]
+#![doc = " return values."]
+#![doc = ""]
+#![doc = " Computed values:"]
+#![doc = " eval z = z[0] + (z[1] << 32) + (z[2] << 64) + (z[3] << 96) + (z[4] << 128) + (z[5] << 160) + (z[6] << 192) + (z[7] << 224) + (z[8] << 256) + (z[9] << 0x120) + (z[10] << 0x140) + (z[11] << 0x160)"]
+#![doc = " 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)"]
+#![doc = " twos_complement_eval z = let x1 := z[0] + (z[1] << 32) + (z[2] << 64) + (z[3] << 96) + (z[4] << 128) + (z[5] << 160) + (z[6] << 192) + (z[7] << 224) + (z[8] << 256) + (z[9] << 0x120) + (z[10] << 0x140) + (z[11] << 0x160) in"]
+#![doc = " if x1 & (2^384-1) < 2^383 then x1 & (2^384-1) else (x1 & (2^384-1)) - 2^384"]
+#![allow(unused_parens)]
+#![allow(non_camel_case_types)]
+#![allow(
+ dead_code,
+ rustdoc::bare_urls,
+ rustdoc::broken_intra_doc_links,
+ unused_assignments,
+ unused_mut,
+ unused_variables
+)]
+pub type fiat_p384_scalar_u1 = u8;
+pub type fiat_p384_scalar_i1 = i8;
+pub type fiat_p384_scalar_u2 = u8;
+pub type fiat_p384_scalar_i2 = i8;
+pub type fiat_p384_scalar_montgomery_domain_field_element = [u32; 12];
+pub type fiat_p384_scalar_non_montgomery_domain_field_element = [u32; 12];
+#[doc = " The function fiat_p384_scalar_addcarryx_u32 is an addition with carry."]
+#[doc = ""]
+#[doc = " Postconditions:"]
+#[doc = " out1 = (arg1 + arg2 + arg3) mod 2^32"]
+#[doc = " out2 = ⌊(arg1 + arg2 + arg3) / 2^32⌋"]
+#[doc = ""]
+#[doc = " Input Bounds:"]
+#[doc = " arg1: [0x0 ~> 0x1]"]
+#[doc = " arg2: [0x0 ~> 0xffffffff]"]
+#[doc = " arg3: [0x0 ~> 0xffffffff]"]
+#[doc = " Output Bounds:"]
+#[doc = " out1: [0x0 ~> 0xffffffff]"]
+#[doc = " out2: [0x0 ~> 0x1]"]
+#[inline]
+pub const fn fiat_p384_scalar_addcarryx_u32(
+ arg1: fiat_p384_scalar_u1,
+ arg2: u32,
+ arg3: u32,
+) -> (u32, fiat_p384_scalar_u1) {
+ let mut out1: u32 = 0;
+ let mut out2: fiat_p384_scalar_u1 = 0;
+ let x1: u64 = (((arg1 as u64) + (arg2 as u64)) + (arg3 as u64));
+ let x2: u32 = ((x1 & (0xffffffff as u64)) as u32);
+ let x3: fiat_p384_scalar_u1 = ((x1 >> 32) as fiat_p384_scalar_u1);
+ out1 = x2;
+ out2 = x3;
+ (out1, out2)
+}
+#[doc = " The function fiat_p384_scalar_subborrowx_u32 is a subtraction with borrow."]
+#[doc = ""]
+#[doc = " Postconditions:"]
+#[doc = " out1 = (-arg1 + arg2 + -arg3) mod 2^32"]
+#[doc = " out2 = -⌊(-arg1 + arg2 + -arg3) / 2^32⌋"]
+#[doc = ""]
+#[doc = " Input Bounds:"]
+#[doc = " arg1: [0x0 ~> 0x1]"]
+#[doc = " arg2: [0x0 ~> 0xffffffff]"]
+#[doc = " arg3: [0x0 ~> 0xffffffff]"]
+#[doc = " Output Bounds:"]
+#[doc = " out1: [0x0 ~> 0xffffffff]"]
+#[doc = " out2: [0x0 ~> 0x1]"]
+#[inline]
+pub const fn fiat_p384_scalar_subborrowx_u32(
+ arg1: fiat_p384_scalar_u1,
+ arg2: u32,
+ arg3: u32,
+) -> (u32, fiat_p384_scalar_u1) {
+ let mut out1: u32 = 0;
+ let mut out2: fiat_p384_scalar_u1 = 0;
+ let x1: i64 = (((arg2 as i64) - (arg1 as i64)) - (arg3 as i64));
+ let x2: fiat_p384_scalar_i1 = ((x1 >> 32) as fiat_p384_scalar_i1);
+ let x3: u32 = ((x1 & (0xffffffff as i64)) as u32);
+ out1 = x3;
+ out2 = (((0x0 as fiat_p384_scalar_i2) - (x2 as fiat_p384_scalar_i2)) as fiat_p384_scalar_u1);
+ (out1, out2)
+}
+#[doc = " The function fiat_p384_scalar_mulx_u32 is a multiplication, returning the full double-width result."]
+#[doc = ""]
+#[doc = " Postconditions:"]
+#[doc = " out1 = (arg1 * arg2) mod 2^32"]
+#[doc = " out2 = ⌊arg1 * arg2 / 2^32⌋"]
+#[doc = ""]
+#[doc = " Input Bounds:"]
+#[doc = " arg1: [0x0 ~> 0xffffffff]"]
+#[doc = " arg2: [0x0 ~> 0xffffffff]"]
+#[doc = " Output Bounds:"]
+#[doc = " out1: [0x0 ~> 0xffffffff]"]
+#[doc = " out2: [0x0 ~> 0xffffffff]"]
+#[inline]
+pub const fn fiat_p384_scalar_mulx_u32(arg1: u32, arg2: u32) -> (u32, u32) {
+ let mut out1: u32 = 0;
+ let mut out2: u32 = 0;
+ let x1: u64 = ((arg1 as u64) * (arg2 as u64));
+ let x2: u32 = ((x1 & (0xffffffff as u64)) as u32);
+ let x3: u32 = ((x1 >> 32) as u32);
+ out1 = x2;
+ out2 = x3;
+ (out1, out2)
+}
+#[doc = " The function fiat_p384_scalar_cmovznz_u32 is a single-word conditional move."]
+#[doc = ""]
+#[doc = " Postconditions:"]
+#[doc = " out1 = (if arg1 = 0 then arg2 else arg3)"]
+#[doc = ""]
+#[doc = " Input Bounds:"]
+#[doc = " arg1: [0x0 ~> 0x1]"]
+#[doc = " arg2: [0x0 ~> 0xffffffff]"]
+#[doc = " arg3: [0x0 ~> 0xffffffff]"]
+#[doc = " Output Bounds:"]
+#[doc = " out1: [0x0 ~> 0xffffffff]"]
+#[inline]
+pub const fn fiat_p384_scalar_cmovznz_u32(arg1: fiat_p384_scalar_u1, arg2: u32, arg3: u32) -> u32 {
+ let mut out1: u32 = 0;
+ let x1: fiat_p384_scalar_u1 = (!(!arg1));
+ let x2: u32 = ((((((0x0 as fiat_p384_scalar_i2) - (x1 as fiat_p384_scalar_i2))
+ as fiat_p384_scalar_i1) as i64)
+ & (0xffffffff as i64)) as u32);
+ let x3: u32 = ((x2 & arg3) | ((!x2) & arg2));
+ out1 = x3;
+ out1
+}
+#[doc = " The function fiat_p384_scalar_mul multiplies two field elements in the Montgomery domain."]
+#[doc = ""]
+#[doc = " Preconditions:"]
+#[doc = " 0 ≤ eval arg1 < m"]
+#[doc = " 0 ≤ eval arg2 < m"]
+#[doc = " Postconditions:"]
+#[doc = " eval (from_montgomery out1) mod m = (eval (from_montgomery arg1) * eval (from_montgomery arg2)) mod m"]
+#[doc = " 0 ≤ eval out1 < m"]
+#[doc = ""]
+#[inline]
+pub const fn fiat_p384_scalar_mul(
+ arg1: &fiat_p384_scalar_montgomery_domain_field_element,
+ arg2: &fiat_p384_scalar_montgomery_domain_field_element,
+) -> fiat_p384_scalar_montgomery_domain_field_element {
+ let mut out1: fiat_p384_scalar_montgomery_domain_field_element = [0; 12];
+ let x1: u32 = (arg1[1]);
+ let x2: u32 = (arg1[2]);
+ let x3: u32 = (arg1[3]);
+ let x4: u32 = (arg1[4]);
+ let x5: u32 = (arg1[5]);
+ let x6: u32 = (arg1[6]);
+ let x7: u32 = (arg1[7]);
+ let x8: u32 = (arg1[8]);
+ let x9: u32 = (arg1[9]);
+ let x10: u32 = (arg1[10]);
+ let x11: u32 = (arg1[11]);
+ let x12: u32 = (arg1[0]);
+ let mut x13: u32 = 0;
+ let mut x14: u32 = 0;
+ let (x13, x14) = fiat_p384_scalar_mulx_u32(x12, (arg2[11]));
+ let mut x15: u32 = 0;
+ let mut x16: u32 = 0;
+ let (x15, x16) = fiat_p384_scalar_mulx_u32(x12, (arg2[10]));
+ let mut x17: u32 = 0;
+ let mut x18: u32 = 0;
+ let (x17, x18) = fiat_p384_scalar_mulx_u32(x12, (arg2[9]));
+ let mut x19: u32 = 0;
+ let mut x20: u32 = 0;
+ let (x19, x20) = fiat_p384_scalar_mulx_u32(x12, (arg2[8]));
+ let mut x21: u32 = 0;
+ let mut x22: u32 = 0;
+ let (x21, x22) = fiat_p384_scalar_mulx_u32(x12, (arg2[7]));
+ let mut x23: u32 = 0;
+ let mut x24: u32 = 0;
+ let (x23, x24) = fiat_p384_scalar_mulx_u32(x12, (arg2[6]));
+ let mut x25: u32 = 0;
+ let mut x26: u32 = 0;
+ let (x25, x26) = fiat_p384_scalar_mulx_u32(x12, (arg2[5]));
+ let mut x27: u32 = 0;
+ let mut x28: u32 = 0;
+ let (x27, x28) = fiat_p384_scalar_mulx_u32(x12, (arg2[4]));
+ let mut x29: u32 = 0;
+ let mut x30: u32 = 0;
+ let (x29, x30) = fiat_p384_scalar_mulx_u32(x12, (arg2[3]));
+ let mut x31: u32 = 0;
+ let mut x32: u32 = 0;
+ let (x31, x32) = fiat_p384_scalar_mulx_u32(x12, (arg2[2]));
+ let mut x33: u32 = 0;
+ let mut x34: u32 = 0;
+ let (x33, x34) = fiat_p384_scalar_mulx_u32(x12, (arg2[1]));
+ let mut x35: u32 = 0;
+ let mut x36: u32 = 0;
+ let (x35, x36) = fiat_p384_scalar_mulx_u32(x12, (arg2[0]));
+ let mut x37: u32 = 0;
+ let mut x38: fiat_p384_scalar_u1 = 0;
+ let (x37, x38) = fiat_p384_scalar_addcarryx_u32(0x0, x36, x33);
+ let mut x39: u32 = 0;
+ let mut x40: fiat_p384_scalar_u1 = 0;
+ let (x39, x40) = fiat_p384_scalar_addcarryx_u32(x38, x34, x31);
+ let mut x41: u32 = 0;
+ let mut x42: fiat_p384_scalar_u1 = 0;
+ let (x41, x42) = fiat_p384_scalar_addcarryx_u32(x40, x32, x29);
+ let mut x43: u32 = 0;
+ let mut x44: fiat_p384_scalar_u1 = 0;
+ let (x43, x44) = fiat_p384_scalar_addcarryx_u32(x42, x30, x27);
+ let mut x45: u32 = 0;
+ let mut x46: fiat_p384_scalar_u1 = 0;
+ let (x45, x46) = fiat_p384_scalar_addcarryx_u32(x44, x28, x25);
+ let mut x47: u32 = 0;
+ let mut x48: fiat_p384_scalar_u1 = 0;
+ let (x47, x48) = fiat_p384_scalar_addcarryx_u32(x46, x26, x23);
+ let mut x49: u32 = 0;
+ let mut x50: fiat_p384_scalar_u1 = 0;
+ let (x49, x50) = fiat_p384_scalar_addcarryx_u32(x48, x24, x21);
+ let mut x51: u32 = 0;
+ let mut x52: fiat_p384_scalar_u1 = 0;
+ let (x51, x52) = fiat_p384_scalar_addcarryx_u32(x50, x22, x19);
+ let mut x53: u32 = 0;
+ let mut x54: fiat_p384_scalar_u1 = 0;
+ let (x53, x54) = fiat_p384_scalar_addcarryx_u32(x52, x20, x17);
+ let mut x55: u32 = 0;
+ let mut x56: fiat_p384_scalar_u1 = 0;
+ let (x55, x56) = fiat_p384_scalar_addcarryx_u32(x54, x18, x15);
+ let mut x57: u32 = 0;
+ let mut x58: fiat_p384_scalar_u1 = 0;
+ let (x57, x58) = fiat_p384_scalar_addcarryx_u32(x56, x16, x13);
+ let x59: u32 = ((x58 as u32) + x14);
+ let mut x60: u32 = 0;
+ let mut x61: u32 = 0;
+ let (x60, x61) = fiat_p384_scalar_mulx_u32(x35, 0xe88fdc45);
+ let mut x62: u32 = 0;
+ let mut x63: u32 = 0;
+ let (x62, x63) = fiat_p384_scalar_mulx_u32(x60, 0xffffffff);
+ let mut x64: u32 = 0;
+ let mut x65: u32 = 0;
+ let (x64, x65) = fiat_p384_scalar_mulx_u32(x60, 0xffffffff);
+ let mut x66: u32 = 0;
+ let mut x67: u32 = 0;
+ let (x66, x67) = fiat_p384_scalar_mulx_u32(x60, 0xffffffff);
+ let mut x68: u32 = 0;
+ let mut x69: u32 = 0;
+ let (x68, x69) = fiat_p384_scalar_mulx_u32(x60, 0xffffffff);
+ let mut x70: u32 = 0;
+ let mut x71: u32 = 0;
+ let (x70, x71) = fiat_p384_scalar_mulx_u32(x60, 0xffffffff);
+ let mut x72: u32 = 0;
+ let mut x73: u32 = 0;
+ let (x72, x73) = fiat_p384_scalar_mulx_u32(x60, 0xffffffff);
+ let mut x74: u32 = 0;
+ let mut x75: u32 = 0;
+ let (x74, x75) = fiat_p384_scalar_mulx_u32(x60, 0xc7634d81);
+ let mut x76: u32 = 0;
+ let mut x77: u32 = 0;
+ let (x76, x77) = fiat_p384_scalar_mulx_u32(x60, 0xf4372ddf);
+ let mut x78: u32 = 0;
+ let mut x79: u32 = 0;
+ let (x78, x79) = fiat_p384_scalar_mulx_u32(x60, 0x581a0db2);
+ let mut x80: u32 = 0;
+ let mut x81: u32 = 0;
+ let (x80, x81) = fiat_p384_scalar_mulx_u32(x60, 0x48b0a77a);
+ let mut x82: u32 = 0;
+ let mut x83: u32 = 0;
+ let (x82, x83) = fiat_p384_scalar_mulx_u32(x60, 0xecec196a);
+ let mut x84: u32 = 0;
+ let mut x85: u32 = 0;
+ let (x84, x85) = fiat_p384_scalar_mulx_u32(x60, 0xccc52973);
+ let mut x86: u32 = 0;
+ let mut x87: fiat_p384_scalar_u1 = 0;
+ let (x86, x87) = fiat_p384_scalar_addcarryx_u32(0x0, x85, x82);
+ let mut x88: u32 = 0;
+ let mut x89: fiat_p384_scalar_u1 = 0;
+ let (x88, x89) = fiat_p384_scalar_addcarryx_u32(x87, x83, x80);
+ let mut x90: u32 = 0;
+ let mut x91: fiat_p384_scalar_u1 = 0;
+ let (x90, x91) = fiat_p384_scalar_addcarryx_u32(x89, x81, x78);
+ let mut x92: u32 = 0;
+ let mut x93: fiat_p384_scalar_u1 = 0;
+ let (x92, x93) = fiat_p384_scalar_addcarryx_u32(x91, x79, x76);
+ let mut x94: u32 = 0;
+ let mut x95: fiat_p384_scalar_u1 = 0;
+ let (x94, x95) = fiat_p384_scalar_addcarryx_u32(x93, x77, x74);
+ let mut x96: u32 = 0;
+ let mut x97: fiat_p384_scalar_u1 = 0;
+ let (x96, x97) = fiat_p384_scalar_addcarryx_u32(x95, x75, x72);
+ let mut x98: u32 = 0;
+ let mut x99: fiat_p384_scalar_u1 = 0;
+ let (x98, x99) = fiat_p384_scalar_addcarryx_u32(x97, x73, x70);
+ let mut x100: u32 = 0;
+ let mut x101: fiat_p384_scalar_u1 = 0;
+ let (x100, x101) = fiat_p384_scalar_addcarryx_u32(x99, x71, x68);
+ let mut x102: u32 = 0;
+ let mut x103: fiat_p384_scalar_u1 = 0;
+ let (x102, x103) = fiat_p384_scalar_addcarryx_u32(x101, x69, x66);
+ let mut x104: u32 = 0;
+ let mut x105: fiat_p384_scalar_u1 = 0;
+ let (x104, x105) = fiat_p384_scalar_addcarryx_u32(x103, x67, x64);
+ let mut x106: u32 = 0;
+ let mut x107: fiat_p384_scalar_u1 = 0;
+ let (x106, x107) = fiat_p384_scalar_addcarryx_u32(x105, x65, x62);
+ let x108: u32 = ((x107 as u32) + x63);
+ let mut x109: u32 = 0;
+ let mut x110: fiat_p384_scalar_u1 = 0;
+ let (x109, x110) = fiat_p384_scalar_addcarryx_u32(0x0, x35, x84);
+ let mut x111: u32 = 0;
+ let mut x112: fiat_p384_scalar_u1 = 0;
+ let (x111, x112) = fiat_p384_scalar_addcarryx_u32(x110, x37, x86);
+ let mut x113: u32 = 0;
+ let mut x114: fiat_p384_scalar_u1 = 0;
+ let (x113, x114) = fiat_p384_scalar_addcarryx_u32(x112, x39, x88);
+ let mut x115: u32 = 0;
+ let mut x116: fiat_p384_scalar_u1 = 0;
+ let (x115, x116) = fiat_p384_scalar_addcarryx_u32(x114, x41, x90);
+ let mut x117: u32 = 0;
+ let mut x118: fiat_p384_scalar_u1 = 0;
+ let (x117, x118) = fiat_p384_scalar_addcarryx_u32(x116, x43, x92);
+ let mut x119: u32 = 0;
+ let mut x120: fiat_p384_scalar_u1 = 0;
+ let (x119, x120) = fiat_p384_scalar_addcarryx_u32(x118, x45, x94);
+ let mut x121: u32 = 0;
+ let mut x122: fiat_p384_scalar_u1 = 0;
+ let (x121, x122) = fiat_p384_scalar_addcarryx_u32(x120, x47, x96);
+ let mut x123: u32 = 0;
+ let mut x124: fiat_p384_scalar_u1 = 0;
+ let (x123, x124) = fiat_p384_scalar_addcarryx_u32(x122, x49, x98);
+ let mut x125: u32 = 0;
+ let mut x126: fiat_p384_scalar_u1 = 0;
+ let (x125, x126) = fiat_p384_scalar_addcarryx_u32(x124, x51, x100);
+ let mut x127: u32 = 0;
+ let mut x128: fiat_p384_scalar_u1 = 0;
+ let (x127, x128) = fiat_p384_scalar_addcarryx_u32(x126, x53, x102);
+ let mut x129: u32 = 0;
+ let mut x130: fiat_p384_scalar_u1 = 0;
+ let (x129, x130) = fiat_p384_scalar_addcarryx_u32(x128, x55, x104);
+ let mut x131: u32 = 0;
+ let mut x132: fiat_p384_scalar_u1 = 0;
+ let (x131, x132) = fiat_p384_scalar_addcarryx_u32(x130, x57, x106);
+ let mut x133: u32 = 0;
+ let mut x134: fiat_p384_scalar_u1 = 0;
+ let (x133, x134) = fiat_p384_scalar_addcarryx_u32(x132, x59, x108);
+ let mut x135: u32 = 0;
+ let mut x136: u32 = 0;
+ let (x135, x136) = fiat_p384_scalar_mulx_u32(x1, (arg2[11]));
+ let mut x137: u32 = 0;
+ let mut x138: u32 = 0;
+ let (x137, x138) = fiat_p384_scalar_mulx_u32(x1, (arg2[10]));
+ let mut x139: u32 = 0;
+ let mut x140: u32 = 0;
+ let (x139, x140) = fiat_p384_scalar_mulx_u32(x1, (arg2[9]));
+ let mut x141: u32 = 0;
+ let mut x142: u32 = 0;
+ let (x141, x142) = fiat_p384_scalar_mulx_u32(x1, (arg2[8]));
+ let mut x143: u32 = 0;
+ let mut x144: u32 = 0;
+ let (x143, x144) = fiat_p384_scalar_mulx_u32(x1, (arg2[7]));
+ let mut x145: u32 = 0;
+ let mut x146: u32 = 0;
+ let (x145, x146) = fiat_p384_scalar_mulx_u32(x1, (arg2[6]));
+ let mut x147: u32 = 0;
+ let mut x148: u32 = 0;
+ let (x147, x148) = fiat_p384_scalar_mulx_u32(x1, (arg2[5]));
+ let mut x149: u32 = 0;
+ let mut x150: u32 = 0;
+ let (x149, x150) = fiat_p384_scalar_mulx_u32(x1, (arg2[4]));
+ let mut x151: u32 = 0;
+ let mut x152: u32 = 0;
+ let (x151, x152) = fiat_p384_scalar_mulx_u32(x1, (arg2[3]));
+ let mut x153: u32 = 0;
+ let mut x154: u32 = 0;
+ let (x153, x154) = fiat_p384_scalar_mulx_u32(x1, (arg2[2]));
+ let mut x155: u32 = 0;
+ let mut x156: u32 = 0;
+ let (x155, x156) = fiat_p384_scalar_mulx_u32(x1, (arg2[1]));
+ let mut x157: u32 = 0;
+ let mut x158: u32 = 0;
+ let (x157, x158) = fiat_p384_scalar_mulx_u32(x1, (arg2[0]));
+ let mut x159: u32 = 0;
+ let mut x160: fiat_p384_scalar_u1 = 0;
+ let (x159, x160) = fiat_p384_scalar_addcarryx_u32(0x0, x158, x155);
+ let mut x161: u32 = 0;
+ let mut x162: fiat_p384_scalar_u1 = 0;
+ let (x161, x162) = fiat_p384_scalar_addcarryx_u32(x160, x156, x153);
+ let mut x163: u32 = 0;
+ let mut x164: fiat_p384_scalar_u1 = 0;
+ let (x163, x164) = fiat_p384_scalar_addcarryx_u32(x162, x154, x151);
+ let mut x165: u32 = 0;
+ let mut x166: fiat_p384_scalar_u1 = 0;
+ let (x165, x166) = fiat_p384_scalar_addcarryx_u32(x164, x152, x149);
+ let mut x167: u32 = 0;
+ let mut x168: fiat_p384_scalar_u1 = 0;
+ let (x167, x168) = fiat_p384_scalar_addcarryx_u32(x166, x150, x147);
+ let mut x169: u32 = 0;
+ let mut x170: fiat_p384_scalar_u1 = 0;
+ let (x169, x170) = fiat_p384_scalar_addcarryx_u32(x168, x148, x145);
+ let mut x171: u32 = 0;
+ let mut x172: fiat_p384_scalar_u1 = 0;
+ let (x171, x172) = fiat_p384_scalar_addcarryx_u32(x170, x146, x143);
+ let mut x173: u32 = 0;
+ let mut x174: fiat_p384_scalar_u1 = 0;
+ let (x173, x174) = fiat_p384_scalar_addcarryx_u32(x172, x144, x141);
+ let mut x175: u32 = 0;
+ let mut x176: fiat_p384_scalar_u1 = 0;
+ let (x175, x176) = fiat_p384_scalar_addcarryx_u32(x174, x142, x139);
+ let mut x177: u32 = 0;
+ let mut x178: fiat_p384_scalar_u1 = 0;
+ let (x177, x178) = fiat_p384_scalar_addcarryx_u32(x176, x140, x137);
+ let mut x179: u32 = 0;
+ let mut x180: fiat_p384_scalar_u1 = 0;
+ let (x179, x180) = fiat_p384_scalar_addcarryx_u32(x178, x138, x135);
+ let x181: u32 = ((x180 as u32) + x136);
+ let mut x182: u32 = 0;
+ let mut x183: fiat_p384_scalar_u1 = 0;
+ let (x182, x183) = fiat_p384_scalar_addcarryx_u32(0x0, x111, x157);
+ let mut x184: u32 = 0;
+ let mut x185: fiat_p384_scalar_u1 = 0;
+ let (x184, x185) = fiat_p384_scalar_addcarryx_u32(x183, x113, x159);
+ let mut x186: u32 = 0;
+ let mut x187: fiat_p384_scalar_u1 = 0;
+ let (x186, x187) = fiat_p384_scalar_addcarryx_u32(x185, x115, x161);
+ let mut x188: u32 = 0;
+ let mut x189: fiat_p384_scalar_u1 = 0;
+ let (x188, x189) = fiat_p384_scalar_addcarryx_u32(x187, x117, x163);
+ let mut x190: u32 = 0;
+ let mut x191: fiat_p384_scalar_u1 = 0;
+ let (x190, x191) = fiat_p384_scalar_addcarryx_u32(x189, x119, x165);
+ let mut x192: u32 = 0;
+ let mut x193: fiat_p384_scalar_u1 = 0;
+ let (x192, x193) = fiat_p384_scalar_addcarryx_u32(x191, x121, x167);
+ let mut x194: u32 = 0;
+ let mut x195: fiat_p384_scalar_u1 = 0;
+ let (x194, x195) = fiat_p384_scalar_addcarryx_u32(x193, x123, x169);
+ let mut x196: u32 = 0;
+ let mut x197: fiat_p384_scalar_u1 = 0;
+ let (x196, x197) = fiat_p384_scalar_addcarryx_u32(x195, x125, x171);
+ let mut x198: u32 = 0;
+ let mut x199: fiat_p384_scalar_u1 = 0;
+ let (x198, x199) = fiat_p384_scalar_addcarryx_u32(x197, x127, x173);
+ let mut x200: u32 = 0;
+ let mut x201: fiat_p384_scalar_u1 = 0;
+ let (x200, x201) = fiat_p384_scalar_addcarryx_u32(x199, x129, x175);
+ let mut x202: u32 = 0;
+ let mut x203: fiat_p384_scalar_u1 = 0;
+ let (x202, x203) = fiat_p384_scalar_addcarryx_u32(x201, x131, x177);
+ let mut x204: u32 = 0;
+ let mut x205: fiat_p384_scalar_u1 = 0;
+ let (x204, x205) = fiat_p384_scalar_addcarryx_u32(x203, x133, x179);
+ let mut x206: u32 = 0;
+ let mut x207: fiat_p384_scalar_u1 = 0;
+ let (x206, x207) = fiat_p384_scalar_addcarryx_u32(x205, (x134 as u32), x181);
+ let mut x208: u32 = 0;
+ let mut x209: u32 = 0;
+ let (x208, x209) = fiat_p384_scalar_mulx_u32(x182, 0xe88fdc45);
+ let mut x210: u32 = 0;
+ let mut x211: u32 = 0;
+ let (x210, x211) = fiat_p384_scalar_mulx_u32(x208, 0xffffffff);
+ let mut x212: u32 = 0;
+ let mut x213: u32 = 0;
+ let (x212, x213) = fiat_p384_scalar_mulx_u32(x208, 0xffffffff);
+ let mut x214: u32 = 0;
+ let mut x215: u32 = 0;
+ let (x214, x215) = fiat_p384_scalar_mulx_u32(x208, 0xffffffff);
+ let mut x216: u32 = 0;
+ let mut x217: u32 = 0;
+ let (x216, x217) = fiat_p384_scalar_mulx_u32(x208, 0xffffffff);
+ let mut x218: u32 = 0;
+ let mut x219: u32 = 0;
+ let (x218, x219) = fiat_p384_scalar_mulx_u32(x208, 0xffffffff);
+ let mut x220: u32 = 0;
+ let mut x221: u32 = 0;
+ let (x220, x221) = fiat_p384_scalar_mulx_u32(x208, 0xffffffff);
+ let mut x222: u32 = 0;
+ let mut x223: u32 = 0;
+ let (x222, x223) = fiat_p384_scalar_mulx_u32(x208, 0xc7634d81);
+ let mut x224: u32 = 0;
+ let mut x225: u32 = 0;
+ let (x224, x225) = fiat_p384_scalar_mulx_u32(x208, 0xf4372ddf);
+ let mut x226: u32 = 0;
+ let mut x227: u32 = 0;
+ let (x226, x227) = fiat_p384_scalar_mulx_u32(x208, 0x581a0db2);
+ let mut x228: u32 = 0;
+ let mut x229: u32 = 0;
+ let (x228, x229) = fiat_p384_scalar_mulx_u32(x208, 0x48b0a77a);
+ let mut x230: u32 = 0;
+ let mut x231: u32 = 0;
+ let (x230, x231) = fiat_p384_scalar_mulx_u32(x208, 0xecec196a);
+ let mut x232: u32 = 0;
+ let mut x233: u32 = 0;
+ let (x232, x233) = fiat_p384_scalar_mulx_u32(x208, 0xccc52973);
+ let mut x234: u32 = 0;
+ let mut x235: fiat_p384_scalar_u1 = 0;
+ let (x234, x235) = fiat_p384_scalar_addcarryx_u32(0x0, x233, x230);
+ let mut x236: u32 = 0;
+ let mut x237: fiat_p384_scalar_u1 = 0;
+ let (x236, x237) = fiat_p384_scalar_addcarryx_u32(x235, x231, x228);
+ let mut x238: u32 = 0;
+ let mut x239: fiat_p384_scalar_u1 = 0;
+ let (x238, x239) = fiat_p384_scalar_addcarryx_u32(x237, x229, x226);
+ let mut x240: u32 = 0;
+ let mut x241: fiat_p384_scalar_u1 = 0;
+ let (x240, x241) = fiat_p384_scalar_addcarryx_u32(x239, x227, x224);
+ let mut x242: u32 = 0;
+ let mut x243: fiat_p384_scalar_u1 = 0;
+ let (x242, x243) = fiat_p384_scalar_addcarryx_u32(x241, x225, x222);
+ let mut x244: u32 = 0;
+ let mut x245: fiat_p384_scalar_u1 = 0;
+ let (x244, x245) = fiat_p384_scalar_addcarryx_u32(x243, x223, x220);
+ let mut x246: u32 = 0;
+ let mut x247: fiat_p384_scalar_u1 = 0;
+ let (x246, x247) = fiat_p384_scalar_addcarryx_u32(x245, x221, x218);
+ let mut x248: u32 = 0;
+ let mut x249: fiat_p384_scalar_u1 = 0;
+ let (x248, x249) = fiat_p384_scalar_addcarryx_u32(x247, x219, x216);
+ let mut x250: u32 = 0;
+ let mut x251: fiat_p384_scalar_u1 = 0;
+ let (x250, x251) = fiat_p384_scalar_addcarryx_u32(x249, x217, x214);
+ let mut x252: u32 = 0;
+ let mut x253: fiat_p384_scalar_u1 = 0;
+ let (x252, x253) = fiat_p384_scalar_addcarryx_u32(x251, x215, x212);
+ let mut x254: u32 = 0;
+ let mut x255: fiat_p384_scalar_u1 = 0;
+ let (x254, x255) = fiat_p384_scalar_addcarryx_u32(x253, x213, x210);
+ let x256: u32 = ((x255 as u32) + x211);
+ let mut x257: u32 = 0;
+ let mut x258: fiat_p384_scalar_u1 = 0;
+ let (x257, x258) = fiat_p384_scalar_addcarryx_u32(0x0, x182, x232);
+ let mut x259: u32 = 0;
+ let mut x260: fiat_p384_scalar_u1 = 0;
+ let (x259, x260) = fiat_p384_scalar_addcarryx_u32(x258, x184, x234);
+ let mut x261: u32 = 0;
+ let mut x262: fiat_p384_scalar_u1 = 0;
+ let (x261, x262) = fiat_p384_scalar_addcarryx_u32(x260, x186, x236);
+ let mut x263: u32 = 0;
+ let mut x264: fiat_p384_scalar_u1 = 0;
+ let (x263, x264) = fiat_p384_scalar_addcarryx_u32(x262, x188, x238);
+ let mut x265: u32 = 0;
+ let mut x266: fiat_p384_scalar_u1 = 0;
+ let (x265, x266) = fiat_p384_scalar_addcarryx_u32(x264, x190, x240);
+ let mut x267: u32 = 0;
+ let mut x268: fiat_p384_scalar_u1 = 0;
+ let (x267, x268) = fiat_p384_scalar_addcarryx_u32(x266, x192, x242);
+ let mut x269: u32 = 0;
+ let mut x270: fiat_p384_scalar_u1 = 0;
+ let (x269, x270) = fiat_p384_scalar_addcarryx_u32(x268, x194, x244);
+ let mut x271: u32 = 0;
+ let mut x272: fiat_p384_scalar_u1 = 0;
+ let (x271, x272) = fiat_p384_scalar_addcarryx_u32(x270, x196, x246);
+ let mut x273: u32 = 0;
+ let mut x274: fiat_p384_scalar_u1 = 0;
+ let (x273, x274) = fiat_p384_scalar_addcarryx_u32(x272, x198, x248);
+ let mut x275: u32 = 0;
+ let mut x276: fiat_p384_scalar_u1 = 0;
+ let (x275, x276) = fiat_p384_scalar_addcarryx_u32(x274, x200, x250);
+ let mut x277: u32 = 0;
+ let mut x278: fiat_p384_scalar_u1 = 0;
+ let (x277, x278) = fiat_p384_scalar_addcarryx_u32(x276, x202, x252);
+ let mut x279: u32 = 0;
+ let mut x280: fiat_p384_scalar_u1 = 0;
+ let (x279, x280) = fiat_p384_scalar_addcarryx_u32(x278, x204, x254);
+ let mut x281: u32 = 0;
+ let mut x282: fiat_p384_scalar_u1 = 0;
+ let (x281, x282) = fiat_p384_scalar_addcarryx_u32(x280, x206, x256);
+ let x283: u32 = ((x282 as u32) + (x207 as u32));
+ let mut x284: u32 = 0;
+ let mut x285: u32 = 0;
+ let (x284, x285) = fiat_p384_scalar_mulx_u32(x2, (arg2[11]));
+ let mut x286: u32 = 0;
+ let mut x287: u32 = 0;
+ let (x286, x287) = fiat_p384_scalar_mulx_u32(x2, (arg2[10]));
+ let mut x288: u32 = 0;
+ let mut x289: u32 = 0;
+ let (x288, x289) = fiat_p384_scalar_mulx_u32(x2, (arg2[9]));
+ let mut x290: u32 = 0;
+ let mut x291: u32 = 0;
+ let (x290, x291) = fiat_p384_scalar_mulx_u32(x2, (arg2[8]));
+ let mut x292: u32 = 0;
+ let mut x293: u32 = 0;
+ let (x292, x293) = fiat_p384_scalar_mulx_u32(x2, (arg2[7]));
+ let mut x294: u32 = 0;
+ let mut x295: u32 = 0;
+ let (x294, x295) = fiat_p384_scalar_mulx_u32(x2, (arg2[6]));
+ let mut x296: u32 = 0;
+ let mut x297: u32 = 0;
+ let (x296, x297) = fiat_p384_scalar_mulx_u32(x2, (arg2[5]));
+ let mut x298: u32 = 0;
+ let mut x299: u32 = 0;
+ let (x298, x299) = fiat_p384_scalar_mulx_u32(x2, (arg2[4]));
+ let mut x300: u32 = 0;
+ let mut x301: u32 = 0;
+ let (x300, x301) = fiat_p384_scalar_mulx_u32(x2, (arg2[3]));
+ let mut x302: u32 = 0;
+ let mut x303: u32 = 0;
+ let (x302, x303) = fiat_p384_scalar_mulx_u32(x2, (arg2[2]));
+ let mut x304: u32 = 0;
+ let mut x305: u32 = 0;
+ let (x304, x305) = fiat_p384_scalar_mulx_u32(x2, (arg2[1]));
+ let mut x306: u32 = 0;
+ let mut x307: u32 = 0;
+ let (x306, x307) = fiat_p384_scalar_mulx_u32(x2, (arg2[0]));
+ let mut x308: u32 = 0;
+ let mut x309: fiat_p384_scalar_u1 = 0;
+ let (x308, x309) = fiat_p384_scalar_addcarryx_u32(0x0, x307, x304);
+ let mut x310: u32 = 0;
+ let mut x311: fiat_p384_scalar_u1 = 0;
+ let (x310, x311) = fiat_p384_scalar_addcarryx_u32(x309, x305, x302);
+ let mut x312: u32 = 0;
+ let mut x313: fiat_p384_scalar_u1 = 0;
+ let (x312, x313) = fiat_p384_scalar_addcarryx_u32(x311, x303, x300);
+ let mut x314: u32 = 0;
+ let mut x315: fiat_p384_scalar_u1 = 0;
+ let (x314, x315) = fiat_p384_scalar_addcarryx_u32(x313, x301, x298);
+ let mut x316: u32 = 0;
+ let mut x317: fiat_p384_scalar_u1 = 0;
+ let (x316, x317) = fiat_p384_scalar_addcarryx_u32(x315, x299, x296);
+ let mut x318: u32 = 0;
+ let mut x319: fiat_p384_scalar_u1 = 0;
+ let (x318, x319) = fiat_p384_scalar_addcarryx_u32(x317, x297, x294);
+ let mut x320: u32 = 0;
+ let mut x321: fiat_p384_scalar_u1 = 0;
+ let (x320, x321) = fiat_p384_scalar_addcarryx_u32(x319, x295, x292);
+ let mut x322: u32 = 0;
+ let mut x323: fiat_p384_scalar_u1 = 0;
+ let (x322, x323) = fiat_p384_scalar_addcarryx_u32(x321, x293, x290);
+ let mut x324: u32 = 0;
+ let mut x325: fiat_p384_scalar_u1 = 0;
+ let (x324, x325) = fiat_p384_scalar_addcarryx_u32(x323, x291, x288);
+ let mut x326: u32 = 0;
+ let mut x327: fiat_p384_scalar_u1 = 0;
+ let (x326, x327) = fiat_p384_scalar_addcarryx_u32(x325, x289, x286);
+ let mut x328: u32 = 0;
+ let mut x329: fiat_p384_scalar_u1 = 0;
+ let (x328, x329) = fiat_p384_scalar_addcarryx_u32(x327, x287, x284);
+ let x330: u32 = ((x329 as u32) + x285);
+ let mut x331: u32 = 0;
+ let mut x332: fiat_p384_scalar_u1 = 0;
+ let (x331, x332) = fiat_p384_scalar_addcarryx_u32(0x0, x259, x306);
+ let mut x333: u32 = 0;
+ let mut x334: fiat_p384_scalar_u1 = 0;
+ let (x333, x334) = fiat_p384_scalar_addcarryx_u32(x332, x261, x308);
+ let mut x335: u32 = 0;
+ let mut x336: fiat_p384_scalar_u1 = 0;
+ let (x335, x336) = fiat_p384_scalar_addcarryx_u32(x334, x263, x310);
+ let mut x337: u32 = 0;
+ let mut x338: fiat_p384_scalar_u1 = 0;
+ let (x337, x338) = fiat_p384_scalar_addcarryx_u32(x336, x265, x312);
+ let mut x339: u32 = 0;
+ let mut x340: fiat_p384_scalar_u1 = 0;
+ let (x339, x340) = fiat_p384_scalar_addcarryx_u32(x338, x267, x314);
+ let mut x341: u32 = 0;
+ let mut x342: fiat_p384_scalar_u1 = 0;
+ let (x341, x342) = fiat_p384_scalar_addcarryx_u32(x340, x269, x316);
+ let mut x343: u32 = 0;
+ let mut x344: fiat_p384_scalar_u1 = 0;
+ let (x343, x344) = fiat_p384_scalar_addcarryx_u32(x342, x271, x318);
+ let mut x345: u32 = 0;
+ let mut x346: fiat_p384_scalar_u1 = 0;
+ let (x345, x346) = fiat_p384_scalar_addcarryx_u32(x344, x273, x320);
+ let mut x347: u32 = 0;
+ let mut x348: fiat_p384_scalar_u1 = 0;
+ let (x347, x348) = fiat_p384_scalar_addcarryx_u32(x346, x275, x322);
+ let mut x349: u32 = 0;
+ let mut x350: fiat_p384_scalar_u1 = 0;
+ let (x349, x350) = fiat_p384_scalar_addcarryx_u32(x348, x277, x324);
+ let mut x351: u32 = 0;
+ let mut x352: fiat_p384_scalar_u1 = 0;
+ let (x351, x352) = fiat_p384_scalar_addcarryx_u32(x350, x279, x326);
+ let mut x353: u32 = 0;
+ let mut x354: fiat_p384_scalar_u1 = 0;
+ let (x353, x354) = fiat_p384_scalar_addcarryx_u32(x352, x281, x328);
+ let mut x355: u32 = 0;
+ let mut x356: fiat_p384_scalar_u1 = 0;
+ let (x355, x356) = fiat_p384_scalar_addcarryx_u32(x354, x283, x330);
+ let mut x357: u32 = 0;
+ let mut x358: u32 = 0;
+ let (x357, x358) = fiat_p384_scalar_mulx_u32(x331, 0xe88fdc45);
+ let mut x359: u32 = 0;
+ let mut x360: u32 = 0;
+ let (x359, x360) = fiat_p384_scalar_mulx_u32(x357, 0xffffffff);
+ let mut x361: u32 = 0;
+ let mut x362: u32 = 0;
+ let (x361, x362) = fiat_p384_scalar_mulx_u32(x357, 0xffffffff);
+ let mut x363: u32 = 0;
+ let mut x364: u32 = 0;
+ let (x363, x364) = fiat_p384_scalar_mulx_u32(x357, 0xffffffff);
+ let mut x365: u32 = 0;
+ let mut x366: u32 = 0;
+ let (x365, x366) = fiat_p384_scalar_mulx_u32(x357, 0xffffffff);
+ let mut x367: u32 = 0;
+ let mut x368: u32 = 0;
+ let (x367, x368) = fiat_p384_scalar_mulx_u32(x357, 0xffffffff);
+ let mut x369: u32 = 0;
+ let mut x370: u32 = 0;
+ let (x369, x370) = fiat_p384_scalar_mulx_u32(x357, 0xffffffff);
+ let mut x371: u32 = 0;
+ let mut x372: u32 = 0;
+ let (x371, x372) = fiat_p384_scalar_mulx_u32(x357, 0xc7634d81);
+ let mut x373: u32 = 0;
+ let mut x374: u32 = 0;
+ let (x373, x374) = fiat_p384_scalar_mulx_u32(x357, 0xf4372ddf);
+ let mut x375: u32 = 0;
+ let mut x376: u32 = 0;
+ let (x375, x376) = fiat_p384_scalar_mulx_u32(x357, 0x581a0db2);
+ let mut x377: u32 = 0;
+ let mut x378: u32 = 0;
+ let (x377, x378) = fiat_p384_scalar_mulx_u32(x357, 0x48b0a77a);
+ let mut x379: u32 = 0;
+ let mut x380: u32 = 0;
+ let (x379, x380) = fiat_p384_scalar_mulx_u32(x357, 0xecec196a);
+ let mut x381: u32 = 0;
+ let mut x382: u32 = 0;
+ let (x381, x382) = fiat_p384_scalar_mulx_u32(x357, 0xccc52973);
+ let mut x383: u32 = 0;
+ let mut x384: fiat_p384_scalar_u1 = 0;
+ let (x383, x384) = fiat_p384_scalar_addcarryx_u32(0x0, x382, x379);
+ let mut x385: u32 = 0;
+ let mut x386: fiat_p384_scalar_u1 = 0;
+ let (x385, x386) = fiat_p384_scalar_addcarryx_u32(x384, x380, x377);
+ let mut x387: u32 = 0;
+ let mut x388: fiat_p384_scalar_u1 = 0;
+ let (x387, x388) = fiat_p384_scalar_addcarryx_u32(x386, x378, x375);
+ let mut x389: u32 = 0;
+ let mut x390: fiat_p384_scalar_u1 = 0;
+ let (x389, x390) = fiat_p384_scalar_addcarryx_u32(x388, x376, x373);
+ let mut x391: u32 = 0;
+ let mut x392: fiat_p384_scalar_u1 = 0;
+ let (x391, x392) = fiat_p384_scalar_addcarryx_u32(x390, x374, x371);
+ let mut x393: u32 = 0;
+ let mut x394: fiat_p384_scalar_u1 = 0;
+ let (x393, x394) = fiat_p384_scalar_addcarryx_u32(x392, x372, x369);
+ let mut x395: u32 = 0;
+ let mut x396: fiat_p384_scalar_u1 = 0;
+ let (x395, x396) = fiat_p384_scalar_addcarryx_u32(x394, x370, x367);
+ let mut x397: u32 = 0;
+ let mut x398: fiat_p384_scalar_u1 = 0;
+ let (x397, x398) = fiat_p384_scalar_addcarryx_u32(x396, x368, x365);
+ let mut x399: u32 = 0;
+ let mut x400: fiat_p384_scalar_u1 = 0;
+ let (x399, x400) = fiat_p384_scalar_addcarryx_u32(x398, x366, x363);
+ let mut x401: u32 = 0;
+ let mut x402: fiat_p384_scalar_u1 = 0;
+ let (x401, x402) = fiat_p384_scalar_addcarryx_u32(x400, x364, x361);
+ let mut x403: u32 = 0;
+ let mut x404: fiat_p384_scalar_u1 = 0;
+ let (x403, x404) = fiat_p384_scalar_addcarryx_u32(x402, x362, x359);
+ let x405: u32 = ((x404 as u32) + x360);
+ let mut x406: u32 = 0;
+ let mut x407: fiat_p384_scalar_u1 = 0;
+ let (x406, x407) = fiat_p384_scalar_addcarryx_u32(0x0, x331, x381);
+ let mut x408: u32 = 0;
+ let mut x409: fiat_p384_scalar_u1 = 0;
+ let (x408, x409) = fiat_p384_scalar_addcarryx_u32(x407, x333, x383);
+ let mut x410: u32 = 0;
+ let mut x411: fiat_p384_scalar_u1 = 0;
+ let (x410, x411) = fiat_p384_scalar_addcarryx_u32(x409, x335, x385);
+ let mut x412: u32 = 0;
+ let mut x413: fiat_p384_scalar_u1 = 0;
+ let (x412, x413) = fiat_p384_scalar_addcarryx_u32(x411, x337, x387);
+ let mut x414: u32 = 0;
+ let mut x415: fiat_p384_scalar_u1 = 0;
+ let (x414, x415) = fiat_p384_scalar_addcarryx_u32(x413, x339, x389);
+ let mut x416: u32 = 0;
+ let mut x417: fiat_p384_scalar_u1 = 0;
+ let (x416, x417) = fiat_p384_scalar_addcarryx_u32(x415, x341, x391);
+ let mut x418: u32 = 0;
+ let mut x419: fiat_p384_scalar_u1 = 0;
+ let (x418, x419) = fiat_p384_scalar_addcarryx_u32(x417, x343, x393);
+ let mut x420: u32 = 0;
+ let mut x421: fiat_p384_scalar_u1 = 0;
+ let (x420, x421) = fiat_p384_scalar_addcarryx_u32(x419, x345, x395);
+ let mut x422: u32 = 0;
+ let mut x423: fiat_p384_scalar_u1 = 0;
+ let (x422, x423) = fiat_p384_scalar_addcarryx_u32(x421, x347, x397);
+ let mut x424: u32 = 0;
+ let mut x425: fiat_p384_scalar_u1 = 0;
+ let (x424, x425) = fiat_p384_scalar_addcarryx_u32(x423, x349, x399);
+ let mut x426: u32 = 0;
+ let mut x427: fiat_p384_scalar_u1 = 0;
+ let (x426, x427) = fiat_p384_scalar_addcarryx_u32(x425, x351, x401);
+ let mut x428: u32 = 0;
+ let mut x429: fiat_p384_scalar_u1 = 0;
+ let (x428, x429) = fiat_p384_scalar_addcarryx_u32(x427, x353, x403);
+ let mut x430: u32 = 0;
+ let mut x431: fiat_p384_scalar_u1 = 0;
+ let (x430, x431) = fiat_p384_scalar_addcarryx_u32(x429, x355, x405);
+ let x432: u32 = ((x431 as u32) + (x356 as u32));
+ let mut x433: u32 = 0;
+ let mut x434: u32 = 0;
+ let (x433, x434) = fiat_p384_scalar_mulx_u32(x3, (arg2[11]));
+ let mut x435: u32 = 0;
+ let mut x436: u32 = 0;
+ let (x435, x436) = fiat_p384_scalar_mulx_u32(x3, (arg2[10]));
+ let mut x437: u32 = 0;
+ let mut x438: u32 = 0;
+ let (x437, x438) = fiat_p384_scalar_mulx_u32(x3, (arg2[9]));
+ let mut x439: u32 = 0;
+ let mut x440: u32 = 0;
+ let (x439, x440) = fiat_p384_scalar_mulx_u32(x3, (arg2[8]));
+ let mut x441: u32 = 0;
+ let mut x442: u32 = 0;
+ let (x441, x442) = fiat_p384_scalar_mulx_u32(x3, (arg2[7]));
+ let mut x443: u32 = 0;
+ let mut x444: u32 = 0;
+ let (x443, x444) = fiat_p384_scalar_mulx_u32(x3, (arg2[6]));
+ let mut x445: u32 = 0;
+ let mut x446: u32 = 0;
+ let (x445, x446) = fiat_p384_scalar_mulx_u32(x3, (arg2[5]));
+ let mut x447: u32 = 0;
+ let mut x448: u32 = 0;
+ let (x447, x448) = fiat_p384_scalar_mulx_u32(x3, (arg2[4]));
+ let mut x449: u32 = 0;
+ let mut x450: u32 = 0;
+ let (x449, x450) = fiat_p384_scalar_mulx_u32(x3, (arg2[3]));
+ let mut x451: u32 = 0;
+ let mut x452: u32 = 0;
+ let (x451, x452) = fiat_p384_scalar_mulx_u32(x3, (arg2[2]));
+ let mut x453: u32 = 0;
+ let mut x454: u32 = 0;
+ let (x453, x454) = fiat_p384_scalar_mulx_u32(x3, (arg2[1]));
+ let mut x455: u32 = 0;
+ let mut x456: u32 = 0;
+ let (x455, x456) = fiat_p384_scalar_mulx_u32(x3, (arg2[0]));
+ let mut x457: u32 = 0;
+ let mut x458: fiat_p384_scalar_u1 = 0;
+ let (x457, x458) = fiat_p384_scalar_addcarryx_u32(0x0, x456, x453);
+ let mut x459: u32 = 0;
+ let mut x460: fiat_p384_scalar_u1 = 0;
+ let (x459, x460) = fiat_p384_scalar_addcarryx_u32(x458, x454, x451);
+ let mut x461: u32 = 0;
+ let mut x462: fiat_p384_scalar_u1 = 0;
+ let (x461, x462) = fiat_p384_scalar_addcarryx_u32(x460, x452, x449);
+ let mut x463: u32 = 0;
+ let mut x464: fiat_p384_scalar_u1 = 0;
+ let (x463, x464) = fiat_p384_scalar_addcarryx_u32(x462, x450, x447);
+ let mut x465: u32 = 0;
+ let mut x466: fiat_p384_scalar_u1 = 0;
+ let (x465, x466) = fiat_p384_scalar_addcarryx_u32(x464, x448, x445);
+ let mut x467: u32 = 0;
+ let mut x468: fiat_p384_scalar_u1 = 0;
+ let (x467, x468) = fiat_p384_scalar_addcarryx_u32(x466, x446, x443);
+ let mut x469: u32 = 0;
+ let mut x470: fiat_p384_scalar_u1 = 0;
+ let (x469, x470) = fiat_p384_scalar_addcarryx_u32(x468, x444, x441);
+ let mut x471: u32 = 0;
+ let mut x472: fiat_p384_scalar_u1 = 0;
+ let (x471, x472) = fiat_p384_scalar_addcarryx_u32(x470, x442, x439);
+ let mut x473: u32 = 0;
+ let mut x474: fiat_p384_scalar_u1 = 0;
+ let (x473, x474) = fiat_p384_scalar_addcarryx_u32(x472, x440, x437);
+ let mut x475: u32 = 0;
+ let mut x476: fiat_p384_scalar_u1 = 0;
+ let (x475, x476) = fiat_p384_scalar_addcarryx_u32(x474, x438, x435);
+ let mut x477: u32 = 0;
+ let mut x478: fiat_p384_scalar_u1 = 0;
+ let (x477, x478) = fiat_p384_scalar_addcarryx_u32(x476, x436, x433);
+ let x479: u32 = ((x478 as u32) + x434);
+ let mut x480: u32 = 0;
+ let mut x481: fiat_p384_scalar_u1 = 0;
+ let (x480, x481) = fiat_p384_scalar_addcarryx_u32(0x0, x408, x455);
+ let mut x482: u32 = 0;
+ let mut x483: fiat_p384_scalar_u1 = 0;
+ let (x482, x483) = fiat_p384_scalar_addcarryx_u32(x481, x410, x457);
+ let mut x484: u32 = 0;
+ let mut x485: fiat_p384_scalar_u1 = 0;
+ let (x484, x485) = fiat_p384_scalar_addcarryx_u32(x483, x412, x459);
+ let mut x486: u32 = 0;
+ let mut x487: fiat_p384_scalar_u1 = 0;
+ let (x486, x487) = fiat_p384_scalar_addcarryx_u32(x485, x414, x461);
+ let mut x488: u32 = 0;
+ let mut x489: fiat_p384_scalar_u1 = 0;
+ let (x488, x489) = fiat_p384_scalar_addcarryx_u32(x487, x416, x463);
+ let mut x490: u32 = 0;
+ let mut x491: fiat_p384_scalar_u1 = 0;
+ let (x490, x491) = fiat_p384_scalar_addcarryx_u32(x489, x418, x465);
+ let mut x492: u32 = 0;
+ let mut x493: fiat_p384_scalar_u1 = 0;
+ let (x492, x493) = fiat_p384_scalar_addcarryx_u32(x491, x420, x467);
+ let mut x494: u32 = 0;
+ let mut x495: fiat_p384_scalar_u1 = 0;
+ let (x494, x495) = fiat_p384_scalar_addcarryx_u32(x493, x422, x469);
+ let mut x496: u32 = 0;
+ let mut x497: fiat_p384_scalar_u1 = 0;
+ let (x496, x497) = fiat_p384_scalar_addcarryx_u32(x495, x424, x471);
+ let mut x498: u32 = 0;
+ let mut x499: fiat_p384_scalar_u1 = 0;
+ let (x498, x499) = fiat_p384_scalar_addcarryx_u32(x497, x426, x473);
+ let mut x500: u32 = 0;
+ let mut x501: fiat_p384_scalar_u1 = 0;
+ let (x500, x501) = fiat_p384_scalar_addcarryx_u32(x499, x428, x475);
+ let mut x502: u32 = 0;
+ let mut x503: fiat_p384_scalar_u1 = 0;
+ let (x502, x503) = fiat_p384_scalar_addcarryx_u32(x501, x430, x477);
+ let mut x504: u32 = 0;
+ let mut x505: fiat_p384_scalar_u1 = 0;
+ let (x504, x505) = fiat_p384_scalar_addcarryx_u32(x503, x432, x479);
+ let mut x506: u32 = 0;
+ let mut x507: u32 = 0;
+ let (x506, x507) = fiat_p384_scalar_mulx_u32(x480, 0xe88fdc45);
+ let mut x508: u32 = 0;
+ let mut x509: u32 = 0;
+ let (x508, x509) = fiat_p384_scalar_mulx_u32(x506, 0xffffffff);
+ let mut x510: u32 = 0;
+ let mut x511: u32 = 0;
+ let (x510, x511) = fiat_p384_scalar_mulx_u32(x506, 0xffffffff);
+ let mut x512: u32 = 0;
+ let mut x513: u32 = 0;
+ let (x512, x513) = fiat_p384_scalar_mulx_u32(x506, 0xffffffff);
+ let mut x514: u32 = 0;
+ let mut x515: u32 = 0;
+ let (x514, x515) = fiat_p384_scalar_mulx_u32(x506, 0xffffffff);
+ let mut x516: u32 = 0;
+ let mut x517: u32 = 0;
+ let (x516, x517) = fiat_p384_scalar_mulx_u32(x506, 0xffffffff);
+ let mut x518: u32 = 0;
+ let mut x519: u32 = 0;
+ let (x518, x519) = fiat_p384_scalar_mulx_u32(x506, 0xffffffff);
+ let mut x520: u32 = 0;
+ let mut x521: u32 = 0;
+ let (x520, x521) = fiat_p384_scalar_mulx_u32(x506, 0xc7634d81);
+ let mut x522: u32 = 0;
+ let mut x523: u32 = 0;
+ let (x522, x523) = fiat_p384_scalar_mulx_u32(x506, 0xf4372ddf);
+ let mut x524: u32 = 0;
+ let mut x525: u32 = 0;
+ let (x524, x525) = fiat_p384_scalar_mulx_u32(x506, 0x581a0db2);
+ let mut x526: u32 = 0;
+ let mut x527: u32 = 0;
+ let (x526, x527) = fiat_p384_scalar_mulx_u32(x506, 0x48b0a77a);
+ let mut x528: u32 = 0;
+ let mut x529: u32 = 0;
+ let (x528, x529) = fiat_p384_scalar_mulx_u32(x506, 0xecec196a);
+ let mut x530: u32 = 0;
+ let mut x531: u32 = 0;
+ let (x530, x531) = fiat_p384_scalar_mulx_u32(x506, 0xccc52973);
+ let mut x532: u32 = 0;
+ let mut x533: fiat_p384_scalar_u1 = 0;
+ let (x532, x533) = fiat_p384_scalar_addcarryx_u32(0x0, x531, x528);
+ let mut x534: u32 = 0;
+ let mut x535: fiat_p384_scalar_u1 = 0;
+ let (x534, x535) = fiat_p384_scalar_addcarryx_u32(x533, x529, x526);
+ let mut x536: u32 = 0;
+ let mut x537: fiat_p384_scalar_u1 = 0;
+ let (x536, x537) = fiat_p384_scalar_addcarryx_u32(x535, x527, x524);
+ let mut x538: u32 = 0;
+ let mut x539: fiat_p384_scalar_u1 = 0;
+ let (x538, x539) = fiat_p384_scalar_addcarryx_u32(x537, x525, x522);
+ let mut x540: u32 = 0;
+ let mut x541: fiat_p384_scalar_u1 = 0;
+ let (x540, x541) = fiat_p384_scalar_addcarryx_u32(x539, x523, x520);
+ let mut x542: u32 = 0;
+ let mut x543: fiat_p384_scalar_u1 = 0;
+ let (x542, x543) = fiat_p384_scalar_addcarryx_u32(x541, x521, x518);
+ let mut x544: u32 = 0;
+ let mut x545: fiat_p384_scalar_u1 = 0;
+ let (x544, x545) = fiat_p384_scalar_addcarryx_u32(x543, x519, x516);
+ let mut x546: u32 = 0;
+ let mut x547: fiat_p384_scalar_u1 = 0;
+ let (x546, x547) = fiat_p384_scalar_addcarryx_u32(x545, x517, x514);
+ let mut x548: u32 = 0;
+ let mut x549: fiat_p384_scalar_u1 = 0;
+ let (x548, x549) = fiat_p384_scalar_addcarryx_u32(x547, x515, x512);
+ let mut x550: u32 = 0;
+ let mut x551: fiat_p384_scalar_u1 = 0;
+ let (x550, x551) = fiat_p384_scalar_addcarryx_u32(x549, x513, x510);
+ let mut x552: u32 = 0;
+ let mut x553: fiat_p384_scalar_u1 = 0;
+ let (x552, x553) = fiat_p384_scalar_addcarryx_u32(x551, x511, x508);
+ let x554: u32 = ((x553 as u32) + x509);
+ let mut x555: u32 = 0;
+ let mut x556: fiat_p384_scalar_u1 = 0;
+ let (x555, x556) = fiat_p384_scalar_addcarryx_u32(0x0, x480, x530);
+ let mut x557: u32 = 0;
+ let mut x558: fiat_p384_scalar_u1 = 0;
+ let (x557, x558) = fiat_p384_scalar_addcarryx_u32(x556, x482, x532);
+ let mut x559: u32 = 0;
+ let mut x560: fiat_p384_scalar_u1 = 0;
+ let (x559, x560) = fiat_p384_scalar_addcarryx_u32(x558, x484, x534);
+ let mut x561: u32 = 0;
+ let mut x562: fiat_p384_scalar_u1 = 0;
+ let (x561, x562) = fiat_p384_scalar_addcarryx_u32(x560, x486, x536);
+ let mut x563: u32 = 0;
+ let mut x564: fiat_p384_scalar_u1 = 0;
+ let (x563, x564) = fiat_p384_scalar_addcarryx_u32(x562, x488, x538);
+ let mut x565: u32 = 0;
+ let mut x566: fiat_p384_scalar_u1 = 0;
+ let (x565, x566) = fiat_p384_scalar_addcarryx_u32(x564, x490, x540);
+ let mut x567: u32 = 0;
+ let mut x568: fiat_p384_scalar_u1 = 0;
+ let (x567, x568) = fiat_p384_scalar_addcarryx_u32(x566, x492, x542);
+ let mut x569: u32 = 0;
+ let mut x570: fiat_p384_scalar_u1 = 0;
+ let (x569, x570) = fiat_p384_scalar_addcarryx_u32(x568, x494, x544);
+ let mut x571: u32 = 0;
+ let mut x572: fiat_p384_scalar_u1 = 0;
+ let (x571, x572) = fiat_p384_scalar_addcarryx_u32(x570, x496, x546);
+ let mut x573: u32 = 0;
+ let mut x574: fiat_p384_scalar_u1 = 0;
+ let (x573, x574) = fiat_p384_scalar_addcarryx_u32(x572, x498, x548);
+ let mut x575: u32 = 0;
+ let mut x576: fiat_p384_scalar_u1 = 0;
+ let (x575, x576) = fiat_p384_scalar_addcarryx_u32(x574, x500, x550);
+ let mut x577: u32 = 0;
+ let mut x578: fiat_p384_scalar_u1 = 0;
+ let (x577, x578) = fiat_p384_scalar_addcarryx_u32(x576, x502, x552);
+ let mut x579: u32 = 0;
+ let mut x580: fiat_p384_scalar_u1 = 0;
+ let (x579, x580) = fiat_p384_scalar_addcarryx_u32(x578, x504, x554);
+ let x581: u32 = ((x580 as u32) + (x505 as u32));
+ let mut x582: u32 = 0;
+ let mut x583: u32 = 0;
+ let (x582, x583) = fiat_p384_scalar_mulx_u32(x4, (arg2[11]));
+ let mut x584: u32 = 0;
+ let mut x585: u32 = 0;
+ let (x584, x585) = fiat_p384_scalar_mulx_u32(x4, (arg2[10]));
+ let mut x586: u32 = 0;
+ let mut x587: u32 = 0;
+ let (x586, x587) = fiat_p384_scalar_mulx_u32(x4, (arg2[9]));
+ let mut x588: u32 = 0;
+ let mut x589: u32 = 0;
+ let (x588, x589) = fiat_p384_scalar_mulx_u32(x4, (arg2[8]));
+ let mut x590: u32 = 0;
+ let mut x591: u32 = 0;
+ let (x590, x591) = fiat_p384_scalar_mulx_u32(x4, (arg2[7]));
+ let mut x592: u32 = 0;
+ let mut x593: u32 = 0;
+ let (x592, x593) = fiat_p384_scalar_mulx_u32(x4, (arg2[6]));
+ let mut x594: u32 = 0;
+ let mut x595: u32 = 0;
+ let (x594, x595) = fiat_p384_scalar_mulx_u32(x4, (arg2[5]));
+ let mut x596: u32 = 0;
+ let mut x597: u32 = 0;
+ let (x596, x597) = fiat_p384_scalar_mulx_u32(x4, (arg2[4]));
+ let mut x598: u32 = 0;
+ let mut x599: u32 = 0;
+ let (x598, x599) = fiat_p384_scalar_mulx_u32(x4, (arg2[3]));
+ let mut x600: u32 = 0;
+ let mut x601: u32 = 0;
+ let (x600, x601) = fiat_p384_scalar_mulx_u32(x4, (arg2[2]));
+ let mut x602: u32 = 0;
+ let mut x603: u32 = 0;
+ let (x602, x603) = fiat_p384_scalar_mulx_u32(x4, (arg2[1]));
+ let mut x604: u32 = 0;
+ let mut x605: u32 = 0;
+ let (x604, x605) = fiat_p384_scalar_mulx_u32(x4, (arg2[0]));
+ let mut x606: u32 = 0;
+ let mut x607: fiat_p384_scalar_u1 = 0;
+ let (x606, x607) = fiat_p384_scalar_addcarryx_u32(0x0, x605, x602);
+ let mut x608: u32 = 0;
+ let mut x609: fiat_p384_scalar_u1 = 0;
+ let (x608, x609) = fiat_p384_scalar_addcarryx_u32(x607, x603, x600);
+ let mut x610: u32 = 0;
+ let mut x611: fiat_p384_scalar_u1 = 0;
+ let (x610, x611) = fiat_p384_scalar_addcarryx_u32(x609, x601, x598);
+ let mut x612: u32 = 0;
+ let mut x613: fiat_p384_scalar_u1 = 0;
+ let (x612, x613) = fiat_p384_scalar_addcarryx_u32(x611, x599, x596);
+ let mut x614: u32 = 0;
+ let mut x615: fiat_p384_scalar_u1 = 0;
+ let (x614, x615) = fiat_p384_scalar_addcarryx_u32(x613, x597, x594);
+ let mut x616: u32 = 0;
+ let mut x617: fiat_p384_scalar_u1 = 0;
+ let (x616, x617) = fiat_p384_scalar_addcarryx_u32(x615, x595, x592);
+ let mut x618: u32 = 0;
+ let mut x619: fiat_p384_scalar_u1 = 0;
+ let (x618, x619) = fiat_p384_scalar_addcarryx_u32(x617, x593, x590);
+ let mut x620: u32 = 0;
+ let mut x621: fiat_p384_scalar_u1 = 0;
+ let (x620, x621) = fiat_p384_scalar_addcarryx_u32(x619, x591, x588);
+ let mut x622: u32 = 0;
+ let mut x623: fiat_p384_scalar_u1 = 0;
+ let (x622, x623) = fiat_p384_scalar_addcarryx_u32(x621, x589, x586);
+ let mut x624: u32 = 0;
+ let mut x625: fiat_p384_scalar_u1 = 0;
+ let (x624, x625) = fiat_p384_scalar_addcarryx_u32(x623, x587, x584);
+ let mut x626: u32 = 0;
+ let mut x627: fiat_p384_scalar_u1 = 0;
+ let (x626, x627) = fiat_p384_scalar_addcarryx_u32(x625, x585, x582);
+ let x628: u32 = ((x627 as u32) + x583);
+ let mut x629: u32 = 0;
+ let mut x630: fiat_p384_scalar_u1 = 0;
+ let (x629, x630) = fiat_p384_scalar_addcarryx_u32(0x0, x557, x604);
+ let mut x631: u32 = 0;
+ let mut x632: fiat_p384_scalar_u1 = 0;
+ let (x631, x632) = fiat_p384_scalar_addcarryx_u32(x630, x559, x606);
+ let mut x633: u32 = 0;
+ let mut x634: fiat_p384_scalar_u1 = 0;
+ let (x633, x634) = fiat_p384_scalar_addcarryx_u32(x632, x561, x608);
+ let mut x635: u32 = 0;
+ let mut x636: fiat_p384_scalar_u1 = 0;
+ let (x635, x636) = fiat_p384_scalar_addcarryx_u32(x634, x563, x610);
+ let mut x637: u32 = 0;
+ let mut x638: fiat_p384_scalar_u1 = 0;
+ let (x637, x638) = fiat_p384_scalar_addcarryx_u32(x636, x565, x612);
+ let mut x639: u32 = 0;
+ let mut x640: fiat_p384_scalar_u1 = 0;
+ let (x639, x640) = fiat_p384_scalar_addcarryx_u32(x638, x567, x614);
+ let mut x641: u32 = 0;
+ let mut x642: fiat_p384_scalar_u1 = 0;
+ let (x641, x642) = fiat_p384_scalar_addcarryx_u32(x640, x569, x616);
+ let mut x643: u32 = 0;
+ let mut x644: fiat_p384_scalar_u1 = 0;
+ let (x643, x644) = fiat_p384_scalar_addcarryx_u32(x642, x571, x618);
+ let mut x645: u32 = 0;
+ let mut x646: fiat_p384_scalar_u1 = 0;
+ let (x645, x646) = fiat_p384_scalar_addcarryx_u32(x644, x573, x620);
+ let mut x647: u32 = 0;
+ let mut x648: fiat_p384_scalar_u1 = 0;
+ let (x647, x648) = fiat_p384_scalar_addcarryx_u32(x646, x575, x622);
+ let mut x649: u32 = 0;
+ let mut x650: fiat_p384_scalar_u1 = 0;
+ let (x649, x650) = fiat_p384_scalar_addcarryx_u32(x648, x577, x624);
+ let mut x651: u32 = 0;
+ let mut x652: fiat_p384_scalar_u1 = 0;
+ let (x651, x652) = fiat_p384_scalar_addcarryx_u32(x650, x579, x626);
+ let mut x653: u32 = 0;
+ let mut x654: fiat_p384_scalar_u1 = 0;
+ let (x653, x654) = fiat_p384_scalar_addcarryx_u32(x652, x581, x628);
+ let mut x655: u32 = 0;
+ let mut x656: u32 = 0;
+ let (x655, x656) = fiat_p384_scalar_mulx_u32(x629, 0xe88fdc45);
+ let mut x657: u32 = 0;
+ let mut x658: u32 = 0;
+ let (x657, x658) = fiat_p384_scalar_mulx_u32(x655, 0xffffffff);
+ let mut x659: u32 = 0;
+ let mut x660: u32 = 0;
+ let (x659, x660) = fiat_p384_scalar_mulx_u32(x655, 0xffffffff);
+ let mut x661: u32 = 0;
+ let mut x662: u32 = 0;
+ let (x661, x662) = fiat_p384_scalar_mulx_u32(x655, 0xffffffff);
+ let mut x663: u32 = 0;
+ let mut x664: u32 = 0;
+ let (x663, x664) = fiat_p384_scalar_mulx_u32(x655, 0xffffffff);
+ let mut x665: u32 = 0;
+ let mut x666: u32 = 0;
+ let (x665, x666) = fiat_p384_scalar_mulx_u32(x655, 0xffffffff);
+ let mut x667: u32 = 0;
+ let mut x668: u32 = 0;
+ let (x667, x668) = fiat_p384_scalar_mulx_u32(x655, 0xffffffff);
+ let mut x669: u32 = 0;
+ let mut x670: u32 = 0;
+ let (x669, x670) = fiat_p384_scalar_mulx_u32(x655, 0xc7634d81);
+ let mut x671: u32 = 0;
+ let mut x672: u32 = 0;
+ let (x671, x672) = fiat_p384_scalar_mulx_u32(x655, 0xf4372ddf);
+ let mut x673: u32 = 0;
+ let mut x674: u32 = 0;
+ let (x673, x674) = fiat_p384_scalar_mulx_u32(x655, 0x581a0db2);
+ let mut x675: u32 = 0;
+ let mut x676: u32 = 0;
+ let (x675, x676) = fiat_p384_scalar_mulx_u32(x655, 0x48b0a77a);
+ let mut x677: u32 = 0;
+ let mut x678: u32 = 0;
+ let (x677, x678) = fiat_p384_scalar_mulx_u32(x655, 0xecec196a);
+ let mut x679: u32 = 0;
+ let mut x680: u32 = 0;
+ let (x679, x680) = fiat_p384_scalar_mulx_u32(x655, 0xccc52973);
+ let mut x681: u32 = 0;
+ let mut x682: fiat_p384_scalar_u1 = 0;
+ let (x681, x682) = fiat_p384_scalar_addcarryx_u32(0x0, x680, x677);
+ let mut x683: u32 = 0;
+ let mut x684: fiat_p384_scalar_u1 = 0;
+ let (x683, x684) = fiat_p384_scalar_addcarryx_u32(x682, x678, x675);
+ let mut x685: u32 = 0;
+ let mut x686: fiat_p384_scalar_u1 = 0;
+ let (x685, x686) = fiat_p384_scalar_addcarryx_u32(x684, x676, x673);
+ let mut x687: u32 = 0;
+ let mut x688: fiat_p384_scalar_u1 = 0;
+ let (x687, x688) = fiat_p384_scalar_addcarryx_u32(x686, x674, x671);
+ let mut x689: u32 = 0;
+ let mut x690: fiat_p384_scalar_u1 = 0;
+ let (x689, x690) = fiat_p384_scalar_addcarryx_u32(x688, x672, x669);
+ let mut x691: u32 = 0;
+ let mut x692: fiat_p384_scalar_u1 = 0;
+ let (x691, x692) = fiat_p384_scalar_addcarryx_u32(x690, x670, x667);
+ let mut x693: u32 = 0;
+ let mut x694: fiat_p384_scalar_u1 = 0;
+ let (x693, x694) = fiat_p384_scalar_addcarryx_u32(x692, x668, x665);
+ let mut x695: u32 = 0;
+ let mut x696: fiat_p384_scalar_u1 = 0;
+ let (x695, x696) = fiat_p384_scalar_addcarryx_u32(x694, x666, x663);
+ let mut x697: u32 = 0;
+ let mut x698: fiat_p384_scalar_u1 = 0;
+ let (x697, x698) = fiat_p384_scalar_addcarryx_u32(x696, x664, x661);
+ let mut x699: u32 = 0;
+ let mut x700: fiat_p384_scalar_u1 = 0;
+ let (x699, x700) = fiat_p384_scalar_addcarryx_u32(x698, x662, x659);
+ let mut x701: u32 = 0;
+ let mut x702: fiat_p384_scalar_u1 = 0;
+ let (x701, x702) = fiat_p384_scalar_addcarryx_u32(x700, x660, x657);
+ let x703: u32 = ((x702 as u32) + x658);
+ let mut x704: u32 = 0;
+ let mut x705: fiat_p384_scalar_u1 = 0;
+ let (x704, x705) = fiat_p384_scalar_addcarryx_u32(0x0, x629, x679);
+ let mut x706: u32 = 0;
+ let mut x707: fiat_p384_scalar_u1 = 0;
+ let (x706, x707) = fiat_p384_scalar_addcarryx_u32(x705, x631, x681);
+ let mut x708: u32 = 0;
+ let mut x709: fiat_p384_scalar_u1 = 0;
+ let (x708, x709) = fiat_p384_scalar_addcarryx_u32(x707, x633, x683);
+ let mut x710: u32 = 0;
+ let mut x711: fiat_p384_scalar_u1 = 0;
+ let (x710, x711) = fiat_p384_scalar_addcarryx_u32(x709, x635, x685);
+ let mut x712: u32 = 0;
+ let mut x713: fiat_p384_scalar_u1 = 0;
+ let (x712, x713) = fiat_p384_scalar_addcarryx_u32(x711, x637, x687);
+ let mut x714: u32 = 0;
+ let mut x715: fiat_p384_scalar_u1 = 0;
+ let (x714, x715) = fiat_p384_scalar_addcarryx_u32(x713, x639, x689);
+ let mut x716: u32 = 0;
+ let mut x717: fiat_p384_scalar_u1 = 0;
+ let (x716, x717) = fiat_p384_scalar_addcarryx_u32(x715, x641, x691);
+ let mut x718: u32 = 0;
+ let mut x719: fiat_p384_scalar_u1 = 0;
+ let (x718, x719) = fiat_p384_scalar_addcarryx_u32(x717, x643, x693);
+ let mut x720: u32 = 0;
+ let mut x721: fiat_p384_scalar_u1 = 0;
+ let (x720, x721) = fiat_p384_scalar_addcarryx_u32(x719, x645, x695);
+ let mut x722: u32 = 0;
+ let mut x723: fiat_p384_scalar_u1 = 0;
+ let (x722, x723) = fiat_p384_scalar_addcarryx_u32(x721, x647, x697);
+ let mut x724: u32 = 0;
+ let mut x725: fiat_p384_scalar_u1 = 0;
+ let (x724, x725) = fiat_p384_scalar_addcarryx_u32(x723, x649, x699);
+ let mut x726: u32 = 0;
+ let mut x727: fiat_p384_scalar_u1 = 0;
+ let (x726, x727) = fiat_p384_scalar_addcarryx_u32(x725, x651, x701);
+ let mut x728: u32 = 0;
+ let mut x729: fiat_p384_scalar_u1 = 0;
+ let (x728, x729) = fiat_p384_scalar_addcarryx_u32(x727, x653, x703);
+ let x730: u32 = ((x729 as u32) + (x654 as u32));
+ let mut x731: u32 = 0;
+ let mut x732: u32 = 0;
+ let (x731, x732) = fiat_p384_scalar_mulx_u32(x5, (arg2[11]));
+ let mut x733: u32 = 0;
+ let mut x734: u32 = 0;
+ let (x733, x734) = fiat_p384_scalar_mulx_u32(x5, (arg2[10]));
+ let mut x735: u32 = 0;
+ let mut x736: u32 = 0;
+ let (x735, x736) = fiat_p384_scalar_mulx_u32(x5, (arg2[9]));
+ let mut x737: u32 = 0;
+ let mut x738: u32 = 0;
+ let (x737, x738) = fiat_p384_scalar_mulx_u32(x5, (arg2[8]));
+ let mut x739: u32 = 0;
+ let mut x740: u32 = 0;
+ let (x739, x740) = fiat_p384_scalar_mulx_u32(x5, (arg2[7]));
+ let mut x741: u32 = 0;
+ let mut x742: u32 = 0;
+ let (x741, x742) = fiat_p384_scalar_mulx_u32(x5, (arg2[6]));
+ let mut x743: u32 = 0;
+ let mut x744: u32 = 0;
+ let (x743, x744) = fiat_p384_scalar_mulx_u32(x5, (arg2[5]));
+ let mut x745: u32 = 0;
+ let mut x746: u32 = 0;
+ let (x745, x746) = fiat_p384_scalar_mulx_u32(x5, (arg2[4]));
+ let mut x747: u32 = 0;
+ let mut x748: u32 = 0;
+ let (x747, x748) = fiat_p384_scalar_mulx_u32(x5, (arg2[3]));
+ let mut x749: u32 = 0;
+ let mut x750: u32 = 0;
+ let (x749, x750) = fiat_p384_scalar_mulx_u32(x5, (arg2[2]));
+ let mut x751: u32 = 0;
+ let mut x752: u32 = 0;
+ let (x751, x752) = fiat_p384_scalar_mulx_u32(x5, (arg2[1]));
+ let mut x753: u32 = 0;
+ let mut x754: u32 = 0;
+ let (x753, x754) = fiat_p384_scalar_mulx_u32(x5, (arg2[0]));
+ let mut x755: u32 = 0;
+ let mut x756: fiat_p384_scalar_u1 = 0;
+ let (x755, x756) = fiat_p384_scalar_addcarryx_u32(0x0, x754, x751);
+ let mut x757: u32 = 0;
+ let mut x758: fiat_p384_scalar_u1 = 0;
+ let (x757, x758) = fiat_p384_scalar_addcarryx_u32(x756, x752, x749);
+ let mut x759: u32 = 0;
+ let mut x760: fiat_p384_scalar_u1 = 0;
+ let (x759, x760) = fiat_p384_scalar_addcarryx_u32(x758, x750, x747);
+ let mut x761: u32 = 0;
+ let mut x762: fiat_p384_scalar_u1 = 0;
+ let (x761, x762) = fiat_p384_scalar_addcarryx_u32(x760, x748, x745);
+ let mut x763: u32 = 0;
+ let mut x764: fiat_p384_scalar_u1 = 0;
+ let (x763, x764) = fiat_p384_scalar_addcarryx_u32(x762, x746, x743);
+ let mut x765: u32 = 0;
+ let mut x766: fiat_p384_scalar_u1 = 0;
+ let (x765, x766) = fiat_p384_scalar_addcarryx_u32(x764, x744, x741);
+ let mut x767: u32 = 0;
+ let mut x768: fiat_p384_scalar_u1 = 0;
+ let (x767, x768) = fiat_p384_scalar_addcarryx_u32(x766, x742, x739);
+ let mut x769: u32 = 0;
+ let mut x770: fiat_p384_scalar_u1 = 0;
+ let (x769, x770) = fiat_p384_scalar_addcarryx_u32(x768, x740, x737);
+ let mut x771: u32 = 0;
+ let mut x772: fiat_p384_scalar_u1 = 0;
+ let (x771, x772) = fiat_p384_scalar_addcarryx_u32(x770, x738, x735);
+ let mut x773: u32 = 0;
+ let mut x774: fiat_p384_scalar_u1 = 0;
+ let (x773, x774) = fiat_p384_scalar_addcarryx_u32(x772, x736, x733);
+ let mut x775: u32 = 0;
+ let mut x776: fiat_p384_scalar_u1 = 0;
+ let (x775, x776) = fiat_p384_scalar_addcarryx_u32(x774, x734, x731);
+ let x777: u32 = ((x776 as u32) + x732);
+ let mut x778: u32 = 0;
+ let mut x779: fiat_p384_scalar_u1 = 0;
+ let (x778, x779) = fiat_p384_scalar_addcarryx_u32(0x0, x706, x753);
+ let mut x780: u32 = 0;
+ let mut x781: fiat_p384_scalar_u1 = 0;
+ let (x780, x781) = fiat_p384_scalar_addcarryx_u32(x779, x708, x755);
+ let mut x782: u32 = 0;
+ let mut x783: fiat_p384_scalar_u1 = 0;
+ let (x782, x783) = fiat_p384_scalar_addcarryx_u32(x781, x710, x757);
+ let mut x784: u32 = 0;
+ let mut x785: fiat_p384_scalar_u1 = 0;
+ let (x784, x785) = fiat_p384_scalar_addcarryx_u32(x783, x712, x759);
+ let mut x786: u32 = 0;
+ let mut x787: fiat_p384_scalar_u1 = 0;
+ let (x786, x787) = fiat_p384_scalar_addcarryx_u32(x785, x714, x761);
+ let mut x788: u32 = 0;
+ let mut x789: fiat_p384_scalar_u1 = 0;
+ let (x788, x789) = fiat_p384_scalar_addcarryx_u32(x787, x716, x763);
+ let mut x790: u32 = 0;
+ let mut x791: fiat_p384_scalar_u1 = 0;
+ let (x790, x791) = fiat_p384_scalar_addcarryx_u32(x789, x718, x765);
+ let mut x792: u32 = 0;
+ let mut x793: fiat_p384_scalar_u1 = 0;
+ let (x792, x793) = fiat_p384_scalar_addcarryx_u32(x791, x720, x767);
+ let mut x794: u32 = 0;
+ let mut x795: fiat_p384_scalar_u1 = 0;
+ let (x794, x795) = fiat_p384_scalar_addcarryx_u32(x793, x722, x769);
+ let mut x796: u32 = 0;
+ let mut x797: fiat_p384_scalar_u1 = 0;
+ let (x796, x797) = fiat_p384_scalar_addcarryx_u32(x795, x724, x771);
+ let mut x798: u32 = 0;
+ let mut x799: fiat_p384_scalar_u1 = 0;
+ let (x798, x799) = fiat_p384_scalar_addcarryx_u32(x797, x726, x773);
+ let mut x800: u32 = 0;
+ let mut x801: fiat_p384_scalar_u1 = 0;
+ let (x800, x801) = fiat_p384_scalar_addcarryx_u32(x799, x728, x775);
+ let mut x802: u32 = 0;
+ let mut x803: fiat_p384_scalar_u1 = 0;
+ let (x802, x803) = fiat_p384_scalar_addcarryx_u32(x801, x730, x777);
+ let mut x804: u32 = 0;
+ let mut x805: u32 = 0;
+ let (x804, x805) = fiat_p384_scalar_mulx_u32(x778, 0xe88fdc45);
+ let mut x806: u32 = 0;
+ let mut x807: u32 = 0;
+ let (x806, x807) = fiat_p384_scalar_mulx_u32(x804, 0xffffffff);
+ let mut x808: u32 = 0;
+ let mut x809: u32 = 0;
+ let (x808, x809) = fiat_p384_scalar_mulx_u32(x804, 0xffffffff);
+ let mut x810: u32 = 0;
+ let mut x811: u32 = 0;
+ let (x810, x811) = fiat_p384_scalar_mulx_u32(x804, 0xffffffff);
+ let mut x812: u32 = 0;
+ let mut x813: u32 = 0;
+ let (x812, x813) = fiat_p384_scalar_mulx_u32(x804, 0xffffffff);
+ let mut x814: u32 = 0;
+ let mut x815: u32 = 0;
+ let (x814, x815) = fiat_p384_scalar_mulx_u32(x804, 0xffffffff);
+ let mut x816: u32 = 0;
+ let mut x817: u32 = 0;
+ let (x816, x817) = fiat_p384_scalar_mulx_u32(x804, 0xffffffff);
+ let mut x818: u32 = 0;
+ let mut x819: u32 = 0;
+ let (x818, x819) = fiat_p384_scalar_mulx_u32(x804, 0xc7634d81);
+ let mut x820: u32 = 0;
+ let mut x821: u32 = 0;
+ let (x820, x821) = fiat_p384_scalar_mulx_u32(x804, 0xf4372ddf);
+ let mut x822: u32 = 0;
+ let mut x823: u32 = 0;
+ let (x822, x823) = fiat_p384_scalar_mulx_u32(x804, 0x581a0db2);
+ let mut x824: u32 = 0;
+ let mut x825: u32 = 0;
+ let (x824, x825) = fiat_p384_scalar_mulx_u32(x804, 0x48b0a77a);
+ let mut x826: u32 = 0;
+ let mut x827: u32 = 0;
+ let (x826, x827) = fiat_p384_scalar_mulx_u32(x804, 0xecec196a);
+ let mut x828: u32 = 0;
+ let mut x829: u32 = 0;
+ let (x828, x829) = fiat_p384_scalar_mulx_u32(x804, 0xccc52973);
+ let mut x830: u32 = 0;
+ let mut x831: fiat_p384_scalar_u1 = 0;
+ let (x830, x831) = fiat_p384_scalar_addcarryx_u32(0x0, x829, x826);
+ let mut x832: u32 = 0;
+ let mut x833: fiat_p384_scalar_u1 = 0;
+ let (x832, x833) = fiat_p384_scalar_addcarryx_u32(x831, x827, x824);
+ let mut x834: u32 = 0;
+ let mut x835: fiat_p384_scalar_u1 = 0;
+ let (x834, x835) = fiat_p384_scalar_addcarryx_u32(x833, x825, x822);
+ let mut x836: u32 = 0;
+ let mut x837: fiat_p384_scalar_u1 = 0;
+ let (x836, x837) = fiat_p384_scalar_addcarryx_u32(x835, x823, x820);
+ let mut x838: u32 = 0;
+ let mut x839: fiat_p384_scalar_u1 = 0;
+ let (x838, x839) = fiat_p384_scalar_addcarryx_u32(x837, x821, x818);
+ let mut x840: u32 = 0;
+ let mut x841: fiat_p384_scalar_u1 = 0;
+ let (x840, x841) = fiat_p384_scalar_addcarryx_u32(x839, x819, x816);
+ let mut x842: u32 = 0;
+ let mut x843: fiat_p384_scalar_u1 = 0;
+ let (x842, x843) = fiat_p384_scalar_addcarryx_u32(x841, x817, x814);
+ let mut x844: u32 = 0;
+ let mut x845: fiat_p384_scalar_u1 = 0;
+ let (x844, x845) = fiat_p384_scalar_addcarryx_u32(x843, x815, x812);
+ let mut x846: u32 = 0;
+ let mut x847: fiat_p384_scalar_u1 = 0;
+ let (x846, x847) = fiat_p384_scalar_addcarryx_u32(x845, x813, x810);
+ let mut x848: u32 = 0;
+ let mut x849: fiat_p384_scalar_u1 = 0;
+ let (x848, x849) = fiat_p384_scalar_addcarryx_u32(x847, x811, x808);
+ let mut x850: u32 = 0;
+ let mut x851: fiat_p384_scalar_u1 = 0;
+ let (x850, x851) = fiat_p384_scalar_addcarryx_u32(x849, x809, x806);
+ let x852: u32 = ((x851 as u32) + x807);
+ let mut x853: u32 = 0;
+ let mut x854: fiat_p384_scalar_u1 = 0;
+ let (x853, x854) = fiat_p384_scalar_addcarryx_u32(0x0, x778, x828);
+ let mut x855: u32 = 0;
+ let mut x856: fiat_p384_scalar_u1 = 0;
+ let (x855, x856) = fiat_p384_scalar_addcarryx_u32(x854, x780, x830);
+ let mut x857: u32 = 0;
+ let mut x858: fiat_p384_scalar_u1 = 0;
+ let (x857, x858) = fiat_p384_scalar_addcarryx_u32(x856, x782, x832);
+ let mut x859: u32 = 0;
+ let mut x860: fiat_p384_scalar_u1 = 0;
+ let (x859, x860) = fiat_p384_scalar_addcarryx_u32(x858, x784, x834);
+ let mut x861: u32 = 0;
+ let mut x862: fiat_p384_scalar_u1 = 0;
+ let (x861, x862) = fiat_p384_scalar_addcarryx_u32(x860, x786, x836);
+ let mut x863: u32 = 0;
+ let mut x864: fiat_p384_scalar_u1 = 0;
+ let (x863, x864) = fiat_p384_scalar_addcarryx_u32(x862, x788, x838);
+ let mut x865: u32 = 0;
+ let mut x866: fiat_p384_scalar_u1 = 0;
+ let (x865, x866) = fiat_p384_scalar_addcarryx_u32(x864, x790, x840);
+ let mut x867: u32 = 0;
+ let mut x868: fiat_p384_scalar_u1 = 0;
+ let (x867, x868) = fiat_p384_scalar_addcarryx_u32(x866, x792, x842);
+ let mut x869: u32 = 0;
+ let mut x870: fiat_p384_scalar_u1 = 0;
+ let (x869, x870) = fiat_p384_scalar_addcarryx_u32(x868, x794, x844);
+ let mut x871: u32 = 0;
+ let mut x872: fiat_p384_scalar_u1 = 0;
+ let (x871, x872) = fiat_p384_scalar_addcarryx_u32(x870, x796, x846);
+ let mut x873: u32 = 0;
+ let mut x874: fiat_p384_scalar_u1 = 0;
+ let (x873, x874) = fiat_p384_scalar_addcarryx_u32(x872, x798, x848);
+ let mut x875: u32 = 0;
+ let mut x876: fiat_p384_scalar_u1 = 0;
+ let (x875, x876) = fiat_p384_scalar_addcarryx_u32(x874, x800, x850);
+ let mut x877: u32 = 0;
+ let mut x878: fiat_p384_scalar_u1 = 0;
+ let (x877, x878) = fiat_p384_scalar_addcarryx_u32(x876, x802, x852);
+ let x879: u32 = ((x878 as u32) + (x803 as u32));
+ let mut x880: u32 = 0;
+ let mut x881: u32 = 0;
+ let (x880, x881) = fiat_p384_scalar_mulx_u32(x6, (arg2[11]));
+ let mut x882: u32 = 0;
+ let mut x883: u32 = 0;
+ let (x882, x883) = fiat_p384_scalar_mulx_u32(x6, (arg2[10]));
+ let mut x884: u32 = 0;
+ let mut x885: u32 = 0;
+ let (x884, x885) = fiat_p384_scalar_mulx_u32(x6, (arg2[9]));
+ let mut x886: u32 = 0;
+ let mut x887: u32 = 0;
+ let (x886, x887) = fiat_p384_scalar_mulx_u32(x6, (arg2[8]));
+ let mut x888: u32 = 0;
+ let mut x889: u32 = 0;
+ let (x888, x889) = fiat_p384_scalar_mulx_u32(x6, (arg2[7]));
+ let mut x890: u32 = 0;
+ let mut x891: u32 = 0;
+ let (x890, x891) = fiat_p384_scalar_mulx_u32(x6, (arg2[6]));
+ let mut x892: u32 = 0;
+ let mut x893: u32 = 0;
+ let (x892, x893) = fiat_p384_scalar_mulx_u32(x6, (arg2[5]));
+ let mut x894: u32 = 0;
+ let mut x895: u32 = 0;
+ let (x894, x895) = fiat_p384_scalar_mulx_u32(x6, (arg2[4]));
+ let mut x896: u32 = 0;
+ let mut x897: u32 = 0;
+ let (x896, x897) = fiat_p384_scalar_mulx_u32(x6, (arg2[3]));
+ let mut x898: u32 = 0;
+ let mut x899: u32 = 0;
+ let (x898, x899) = fiat_p384_scalar_mulx_u32(x6, (arg2[2]));
+ let mut x900: u32 = 0;
+ let mut x901: u32 = 0;
+ let (x900, x901) = fiat_p384_scalar_mulx_u32(x6, (arg2[1]));
+ let mut x902: u32 = 0;
+ let mut x903: u32 = 0;
+ let (x902, x903) = fiat_p384_scalar_mulx_u32(x6, (arg2[0]));
+ let mut x904: u32 = 0;
+ let mut x905: fiat_p384_scalar_u1 = 0;
+ let (x904, x905) = fiat_p384_scalar_addcarryx_u32(0x0, x903, x900);
+ let mut x906: u32 = 0;
+ let mut x907: fiat_p384_scalar_u1 = 0;
+ let (x906, x907) = fiat_p384_scalar_addcarryx_u32(x905, x901, x898);
+ let mut x908: u32 = 0;
+ let mut x909: fiat_p384_scalar_u1 = 0;
+ let (x908, x909) = fiat_p384_scalar_addcarryx_u32(x907, x899, x896);
+ let mut x910: u32 = 0;
+ let mut x911: fiat_p384_scalar_u1 = 0;
+ let (x910, x911) = fiat_p384_scalar_addcarryx_u32(x909, x897, x894);
+ let mut x912: u32 = 0;
+ let mut x913: fiat_p384_scalar_u1 = 0;
+ let (x912, x913) = fiat_p384_scalar_addcarryx_u32(x911, x895, x892);
+ let mut x914: u32 = 0;
+ let mut x915: fiat_p384_scalar_u1 = 0;
+ let (x914, x915) = fiat_p384_scalar_addcarryx_u32(x913, x893, x890);
+ let mut x916: u32 = 0;
+ let mut x917: fiat_p384_scalar_u1 = 0;
+ let (x916, x917) = fiat_p384_scalar_addcarryx_u32(x915, x891, x888);
+ let mut x918: u32 = 0;
+ let mut x919: fiat_p384_scalar_u1 = 0;
+ let (x918, x919) = fiat_p384_scalar_addcarryx_u32(x917, x889, x886);
+ let mut x920: u32 = 0;
+ let mut x921: fiat_p384_scalar_u1 = 0;
+ let (x920, x921) = fiat_p384_scalar_addcarryx_u32(x919, x887, x884);
+ let mut x922: u32 = 0;
+ let mut x923: fiat_p384_scalar_u1 = 0;
+ let (x922, x923) = fiat_p384_scalar_addcarryx_u32(x921, x885, x882);
+ let mut x924: u32 = 0;
+ let mut x925: fiat_p384_scalar_u1 = 0;
+ let (x924, x925) = fiat_p384_scalar_addcarryx_u32(x923, x883, x880);
+ let x926: u32 = ((x925 as u32) + x881);
+ let mut x927: u32 = 0;
+ let mut x928: fiat_p384_scalar_u1 = 0;
+ let (x927, x928) = fiat_p384_scalar_addcarryx_u32(0x0, x855, x902);
+ let mut x929: u32 = 0;
+ let mut x930: fiat_p384_scalar_u1 = 0;
+ let (x929, x930) = fiat_p384_scalar_addcarryx_u32(x928, x857, x904);
+ let mut x931: u32 = 0;
+ let mut x932: fiat_p384_scalar_u1 = 0;
+ let (x931, x932) = fiat_p384_scalar_addcarryx_u32(x930, x859, x906);
+ let mut x933: u32 = 0;
+ let mut x934: fiat_p384_scalar_u1 = 0;
+ let (x933, x934) = fiat_p384_scalar_addcarryx_u32(x932, x861, x908);
+ let mut x935: u32 = 0;
+ let mut x936: fiat_p384_scalar_u1 = 0;
+ let (x935, x936) = fiat_p384_scalar_addcarryx_u32(x934, x863, x910);
+ let mut x937: u32 = 0;
+ let mut x938: fiat_p384_scalar_u1 = 0;
+ let (x937, x938) = fiat_p384_scalar_addcarryx_u32(x936, x865, x912);
+ let mut x939: u32 = 0;
+ let mut x940: fiat_p384_scalar_u1 = 0;
+ let (x939, x940) = fiat_p384_scalar_addcarryx_u32(x938, x867, x914);
+ let mut x941: u32 = 0;
+ let mut x942: fiat_p384_scalar_u1 = 0;
+ let (x941, x942) = fiat_p384_scalar_addcarryx_u32(x940, x869, x916);
+ let mut x943: u32 = 0;
+ let mut x944: fiat_p384_scalar_u1 = 0;
+ let (x943, x944) = fiat_p384_scalar_addcarryx_u32(x942, x871, x918);
+ let mut x945: u32 = 0;
+ let mut x946: fiat_p384_scalar_u1 = 0;
+ let (x945, x946) = fiat_p384_scalar_addcarryx_u32(x944, x873, x920);
+ let mut x947: u32 = 0;
+ let mut x948: fiat_p384_scalar_u1 = 0;
+ let (x947, x948) = fiat_p384_scalar_addcarryx_u32(x946, x875, x922);
+ let mut x949: u32 = 0;
+ let mut x950: fiat_p384_scalar_u1 = 0;
+ let (x949, x950) = fiat_p384_scalar_addcarryx_u32(x948, x877, x924);
+ let mut x951: u32 = 0;
+ let mut x952: fiat_p384_scalar_u1 = 0;
+ let (x951, x952) = fiat_p384_scalar_addcarryx_u32(x950, x879, x926);
+ let mut x953: u32 = 0;
+ let mut x954: u32 = 0;
+ let (x953, x954) = fiat_p384_scalar_mulx_u32(x927, 0xe88fdc45);
+ let mut x955: u32 = 0;
+ let mut x956: u32 = 0;
+ let (x955, x956) = fiat_p384_scalar_mulx_u32(x953, 0xffffffff);
+ let mut x957: u32 = 0;
+ let mut x958: u32 = 0;
+ let (x957, x958) = fiat_p384_scalar_mulx_u32(x953, 0xffffffff);
+ let mut x959: u32 = 0;
+ let mut x960: u32 = 0;
+ let (x959, x960) = fiat_p384_scalar_mulx_u32(x953, 0xffffffff);
+ let mut x961: u32 = 0;
+ let mut x962: u32 = 0;
+ let (x961, x962) = fiat_p384_scalar_mulx_u32(x953, 0xffffffff);
+ let mut x963: u32 = 0;
+ let mut x964: u32 = 0;
+ let (x963, x964) = fiat_p384_scalar_mulx_u32(x953, 0xffffffff);
+ let mut x965: u32 = 0;
+ let mut x966: u32 = 0;
+ let (x965, x966) = fiat_p384_scalar_mulx_u32(x953, 0xffffffff);
+ let mut x967: u32 = 0;
+ let mut x968: u32 = 0;
+ let (x967, x968) = fiat_p384_scalar_mulx_u32(x953, 0xc7634d81);
+ let mut x969: u32 = 0;
+ let mut x970: u32 = 0;
+ let (x969, x970) = fiat_p384_scalar_mulx_u32(x953, 0xf4372ddf);
+ let mut x971: u32 = 0;
+ let mut x972: u32 = 0;
+ let (x971, x972) = fiat_p384_scalar_mulx_u32(x953, 0x581a0db2);
+ let mut x973: u32 = 0;
+ let mut x974: u32 = 0;
+ let (x973, x974) = fiat_p384_scalar_mulx_u32(x953, 0x48b0a77a);
+ let mut x975: u32 = 0;
+ let mut x976: u32 = 0;
+ let (x975, x976) = fiat_p384_scalar_mulx_u32(x953, 0xecec196a);
+ let mut x977: u32 = 0;
+ let mut x978: u32 = 0;
+ let (x977, x978) = fiat_p384_scalar_mulx_u32(x953, 0xccc52973);
+ let mut x979: u32 = 0;
+ let mut x980: fiat_p384_scalar_u1 = 0;
+ let (x979, x980) = fiat_p384_scalar_addcarryx_u32(0x0, x978, x975);
+ let mut x981: u32 = 0;
+ let mut x982: fiat_p384_scalar_u1 = 0;
+ let (x981, x982) = fiat_p384_scalar_addcarryx_u32(x980, x976, x973);
+ let mut x983: u32 = 0;
+ let mut x984: fiat_p384_scalar_u1 = 0;
+ let (x983, x984) = fiat_p384_scalar_addcarryx_u32(x982, x974, x971);
+ let mut x985: u32 = 0;
+ let mut x986: fiat_p384_scalar_u1 = 0;
+ let (x985, x986) = fiat_p384_scalar_addcarryx_u32(x984, x972, x969);
+ let mut x987: u32 = 0;
+ let mut x988: fiat_p384_scalar_u1 = 0;
+ let (x987, x988) = fiat_p384_scalar_addcarryx_u32(x986, x970, x967);
+ let mut x989: u32 = 0;
+ let mut x990: fiat_p384_scalar_u1 = 0;
+ let (x989, x990) = fiat_p384_scalar_addcarryx_u32(x988, x968, x965);
+ let mut x991: u32 = 0;
+ let mut x992: fiat_p384_scalar_u1 = 0;
+ let (x991, x992) = fiat_p384_scalar_addcarryx_u32(x990, x966, x963);
+ let mut x993: u32 = 0;
+ let mut x994: fiat_p384_scalar_u1 = 0;
+ let (x993, x994) = fiat_p384_scalar_addcarryx_u32(x992, x964, x961);
+ let mut x995: u32 = 0;
+ let mut x996: fiat_p384_scalar_u1 = 0;
+ let (x995, x996) = fiat_p384_scalar_addcarryx_u32(x994, x962, x959);
+ let mut x997: u32 = 0;
+ let mut x998: fiat_p384_scalar_u1 = 0;
+ let (x997, x998) = fiat_p384_scalar_addcarryx_u32(x996, x960, x957);
+ let mut x999: u32 = 0;
+ let mut x1000: fiat_p384_scalar_u1 = 0;
+ let (x999, x1000) = fiat_p384_scalar_addcarryx_u32(x998, x958, x955);
+ let x1001: u32 = ((x1000 as u32) + x956);
+ let mut x1002: u32 = 0;
+ let mut x1003: fiat_p384_scalar_u1 = 0;
+ let (x1002, x1003) = fiat_p384_scalar_addcarryx_u32(0x0, x927, x977);
+ let mut x1004: u32 = 0;
+ let mut x1005: fiat_p384_scalar_u1 = 0;
+ let (x1004, x1005) = fiat_p384_scalar_addcarryx_u32(x1003, x929, x979);
+ let mut x1006: u32 = 0;
+ let mut x1007: fiat_p384_scalar_u1 = 0;
+ let (x1006, x1007) = fiat_p384_scalar_addcarryx_u32(x1005, x931, x981);
+ let mut x1008: u32 = 0;
+ let mut x1009: fiat_p384_scalar_u1 = 0;
+ let (x1008, x1009) = fiat_p384_scalar_addcarryx_u32(x1007, x933, x983);
+ let mut x1010: u32 = 0;
+ let mut x1011: fiat_p384_scalar_u1 = 0;
+ let (x1010, x1011) = fiat_p384_scalar_addcarryx_u32(x1009, x935, x985);
+ let mut x1012: u32 = 0;
+ let mut x1013: fiat_p384_scalar_u1 = 0;
+ let (x1012, x1013) = fiat_p384_scalar_addcarryx_u32(x1011, x937, x987);
+ let mut x1014: u32 = 0;
+ let mut x1015: fiat_p384_scalar_u1 = 0;
+ let (x1014, x1015) = fiat_p384_scalar_addcarryx_u32(x1013, x939, x989);
+ let mut x1016: u32 = 0;
+ let mut x1017: fiat_p384_scalar_u1 = 0;
+ let (x1016, x1017) = fiat_p384_scalar_addcarryx_u32(x1015, x941, x991);
+ let mut x1018: u32 = 0;
+ let mut x1019: fiat_p384_scalar_u1 = 0;
+ let (x1018, x1019) = fiat_p384_scalar_addcarryx_u32(x1017, x943, x993);
+ let mut x1020: u32 = 0;
+ let mut x1021: fiat_p384_scalar_u1 = 0;
+ let (x1020, x1021) = fiat_p384_scalar_addcarryx_u32(x1019, x945, x995);
+ let mut x1022: u32 = 0;
+ let mut x1023: fiat_p384_scalar_u1 = 0;
+ let (x1022, x1023) = fiat_p384_scalar_addcarryx_u32(x1021, x947, x997);
+ let mut x1024: u32 = 0;
+ let mut x1025: fiat_p384_scalar_u1 = 0;
+ let (x1024, x1025) = fiat_p384_scalar_addcarryx_u32(x1023, x949, x999);
+ let mut x1026: u32 = 0;
+ let mut x1027: fiat_p384_scalar_u1 = 0;
+ let (x1026, x1027) = fiat_p384_scalar_addcarryx_u32(x1025, x951, x1001);
+ let x1028: u32 = ((x1027 as u32) + (x952 as u32));
+ let mut x1029: u32 = 0;
+ let mut x1030: u32 = 0;
+ let (x1029, x1030) = fiat_p384_scalar_mulx_u32(x7, (arg2[11]));
+ let mut x1031: u32 = 0;
+ let mut x1032: u32 = 0;
+ let (x1031, x1032) = fiat_p384_scalar_mulx_u32(x7, (arg2[10]));
+ let mut x1033: u32 = 0;
+ let mut x1034: u32 = 0;
+ let (x1033, x1034) = fiat_p384_scalar_mulx_u32(x7, (arg2[9]));
+ let mut x1035: u32 = 0;
+ let mut x1036: u32 = 0;
+ let (x1035, x1036) = fiat_p384_scalar_mulx_u32(x7, (arg2[8]));
+ let mut x1037: u32 = 0;
+ let mut x1038: u32 = 0;
+ let (x1037, x1038) = fiat_p384_scalar_mulx_u32(x7, (arg2[7]));
+ let mut x1039: u32 = 0;
+ let mut x1040: u32 = 0;
+ let (x1039, x1040) = fiat_p384_scalar_mulx_u32(x7, (arg2[6]));
+ let mut x1041: u32 = 0;
+ let mut x1042: u32 = 0;
+ let (x1041, x1042) = fiat_p384_scalar_mulx_u32(x7, (arg2[5]));
+ let mut x1043: u32 = 0;
+ let mut x1044: u32 = 0;
+ let (x1043, x1044) = fiat_p384_scalar_mulx_u32(x7, (arg2[4]));
+ let mut x1045: u32 = 0;
+ let mut x1046: u32 = 0;
+ let (x1045, x1046) = fiat_p384_scalar_mulx_u32(x7, (arg2[3]));
+ let mut x1047: u32 = 0;
+ let mut x1048: u32 = 0;
+ let (x1047, x1048) = fiat_p384_scalar_mulx_u32(x7, (arg2[2]));
+ let mut x1049: u32 = 0;
+ let mut x1050: u32 = 0;
+ let (x1049, x1050) = fiat_p384_scalar_mulx_u32(x7, (arg2[1]));
+ let mut x1051: u32 = 0;
+ let mut x1052: u32 = 0;
+ let (x1051, x1052) = fiat_p384_scalar_mulx_u32(x7, (arg2[0]));
+ let mut x1053: u32 = 0;
+ let mut x1054: fiat_p384_scalar_u1 = 0;
+ let (x1053, x1054) = fiat_p384_scalar_addcarryx_u32(0x0, x1052, x1049);
+ let mut x1055: u32 = 0;
+ let mut x1056: fiat_p384_scalar_u1 = 0;
+ let (x1055, x1056) = fiat_p384_scalar_addcarryx_u32(x1054, x1050, x1047);
+ let mut x1057: u32 = 0;
+ let mut x1058: fiat_p384_scalar_u1 = 0;
+ let (x1057, x1058) = fiat_p384_scalar_addcarryx_u32(x1056, x1048, x1045);
+ let mut x1059: u32 = 0;
+ let mut x1060: fiat_p384_scalar_u1 = 0;
+ let (x1059, x1060) = fiat_p384_scalar_addcarryx_u32(x1058, x1046, x1043);
+ let mut x1061: u32 = 0;
+ let mut x1062: fiat_p384_scalar_u1 = 0;
+ let (x1061, x1062) = fiat_p384_scalar_addcarryx_u32(x1060, x1044, x1041);
+ let mut x1063: u32 = 0;
+ let mut x1064: fiat_p384_scalar_u1 = 0;
+ let (x1063, x1064) = fiat_p384_scalar_addcarryx_u32(x1062, x1042, x1039);
+ let mut x1065: u32 = 0;
+ let mut x1066: fiat_p384_scalar_u1 = 0;
+ let (x1065, x1066) = fiat_p384_scalar_addcarryx_u32(x1064, x1040, x1037);
+ let mut x1067: u32 = 0;
+ let mut x1068: fiat_p384_scalar_u1 = 0;
+ let (x1067, x1068) = fiat_p384_scalar_addcarryx_u32(x1066, x1038, x1035);
+ let mut x1069: u32 = 0;
+ let mut x1070: fiat_p384_scalar_u1 = 0;
+ let (x1069, x1070) = fiat_p384_scalar_addcarryx_u32(x1068, x1036, x1033);
+ let mut x1071: u32 = 0;
+ let mut x1072: fiat_p384_scalar_u1 = 0;
+ let (x1071, x1072) = fiat_p384_scalar_addcarryx_u32(x1070, x1034, x1031);
+ let mut x1073: u32 = 0;
+ let mut x1074: fiat_p384_scalar_u1 = 0;
+ let (x1073, x1074) = fiat_p384_scalar_addcarryx_u32(x1072, x1032, x1029);
+ let x1075: u32 = ((x1074 as u32) + x1030);
+ let mut x1076: u32 = 0;
+ let mut x1077: fiat_p384_scalar_u1 = 0;
+ let (x1076, x1077) = fiat_p384_scalar_addcarryx_u32(0x0, x1004, x1051);
+ let mut x1078: u32 = 0;
+ let mut x1079: fiat_p384_scalar_u1 = 0;
+ let (x1078, x1079) = fiat_p384_scalar_addcarryx_u32(x1077, x1006, x1053);
+ let mut x1080: u32 = 0;
+ let mut x1081: fiat_p384_scalar_u1 = 0;
+ let (x1080, x1081) = fiat_p384_scalar_addcarryx_u32(x1079, x1008, x1055);
+ let mut x1082: u32 = 0;
+ let mut x1083: fiat_p384_scalar_u1 = 0;
+ let (x1082, x1083) = fiat_p384_scalar_addcarryx_u32(x1081, x1010, x1057);
+ let mut x1084: u32 = 0;
+ let mut x1085: fiat_p384_scalar_u1 = 0;
+ let (x1084, x1085) = fiat_p384_scalar_addcarryx_u32(x1083, x1012, x1059);
+ let mut x1086: u32 = 0;
+ let mut x1087: fiat_p384_scalar_u1 = 0;
+ let (x1086, x1087) = fiat_p384_scalar_addcarryx_u32(x1085, x1014, x1061);
+ let mut x1088: u32 = 0;
+ let mut x1089: fiat_p384_scalar_u1 = 0;
+ let (x1088, x1089) = fiat_p384_scalar_addcarryx_u32(x1087, x1016, x1063);
+ let mut x1090: u32 = 0;
+ let mut x1091: fiat_p384_scalar_u1 = 0;
+ let (x1090, x1091) = fiat_p384_scalar_addcarryx_u32(x1089, x1018, x1065);
+ let mut x1092: u32 = 0;
+ let mut x1093: fiat_p384_scalar_u1 = 0;
+ let (x1092, x1093) = fiat_p384_scalar_addcarryx_u32(x1091, x1020, x1067);
+ let mut x1094: u32 = 0;
+ let mut x1095: fiat_p384_scalar_u1 = 0;
+ let (x1094, x1095) = fiat_p384_scalar_addcarryx_u32(x1093, x1022, x1069);
+ let mut x1096: u32 = 0;
+ let mut x1097: fiat_p384_scalar_u1 = 0;
+ let (x1096, x1097) = fiat_p384_scalar_addcarryx_u32(x1095, x1024, x1071);
+ let mut x1098: u32 = 0;
+ let mut x1099: fiat_p384_scalar_u1 = 0;
+ let (x1098, x1099) = fiat_p384_scalar_addcarryx_u32(x1097, x1026, x1073);
+ let mut x1100: u32 = 0;
+ let mut x1101: fiat_p384_scalar_u1 = 0;
+ let (x1100, x1101) = fiat_p384_scalar_addcarryx_u32(x1099, x1028, x1075);
+ let mut x1102: u32 = 0;
+ let mut x1103: u32 = 0;
+ let (x1102, x1103) = fiat_p384_scalar_mulx_u32(x1076, 0xe88fdc45);
+ let mut x1104: u32 = 0;
+ let mut x1105: u32 = 0;
+ let (x1104, x1105) = fiat_p384_scalar_mulx_u32(x1102, 0xffffffff);
+ let mut x1106: u32 = 0;
+ let mut x1107: u32 = 0;
+ let (x1106, x1107) = fiat_p384_scalar_mulx_u32(x1102, 0xffffffff);
+ let mut x1108: u32 = 0;
+ let mut x1109: u32 = 0;
+ let (x1108, x1109) = fiat_p384_scalar_mulx_u32(x1102, 0xffffffff);
+ let mut x1110: u32 = 0;
+ let mut x1111: u32 = 0;
+ let (x1110, x1111) = fiat_p384_scalar_mulx_u32(x1102, 0xffffffff);
+ let mut x1112: u32 = 0;
+ let mut x1113: u32 = 0;
+ let (x1112, x1113) = fiat_p384_scalar_mulx_u32(x1102, 0xffffffff);
+ let mut x1114: u32 = 0;
+ let mut x1115: u32 = 0;
+ let (x1114, x1115) = fiat_p384_scalar_mulx_u32(x1102, 0xffffffff);
+ let mut x1116: u32 = 0;
+ let mut x1117: u32 = 0;
+ let (x1116, x1117) = fiat_p384_scalar_mulx_u32(x1102, 0xc7634d81);
+ let mut x1118: u32 = 0;
+ let mut x1119: u32 = 0;
+ let (x1118, x1119) = fiat_p384_scalar_mulx_u32(x1102, 0xf4372ddf);
+ let mut x1120: u32 = 0;
+ let mut x1121: u32 = 0;
+ let (x1120, x1121) = fiat_p384_scalar_mulx_u32(x1102, 0x581a0db2);
+ let mut x1122: u32 = 0;
+ let mut x1123: u32 = 0;
+ let (x1122, x1123) = fiat_p384_scalar_mulx_u32(x1102, 0x48b0a77a);
+ let mut x1124: u32 = 0;
+ let mut x1125: u32 = 0;
+ let (x1124, x1125) = fiat_p384_scalar_mulx_u32(x1102, 0xecec196a);
+ let mut x1126: u32 = 0;
+ let mut x1127: u32 = 0;
+ let (x1126, x1127) = fiat_p384_scalar_mulx_u32(x1102, 0xccc52973);
+ let mut x1128: u32 = 0;
+ let mut x1129: fiat_p384_scalar_u1 = 0;
+ let (x1128, x1129) = fiat_p384_scalar_addcarryx_u32(0x0, x1127, x1124);
+ let mut x1130: u32 = 0;
+ let mut x1131: fiat_p384_scalar_u1 = 0;
+ let (x1130, x1131) = fiat_p384_scalar_addcarryx_u32(x1129, x1125, x1122);
+ let mut x1132: u32 = 0;
+ let mut x1133: fiat_p384_scalar_u1 = 0;
+ let (x1132, x1133) = fiat_p384_scalar_addcarryx_u32(x1131, x1123, x1120);
+ let mut x1134: u32 = 0;
+ let mut x1135: fiat_p384_scalar_u1 = 0;
+ let (x1134, x1135) = fiat_p384_scalar_addcarryx_u32(x1133, x1121, x1118);
+ let mut x1136: u32 = 0;
+ let mut x1137: fiat_p384_scalar_u1 = 0;
+ let (x1136, x1137) = fiat_p384_scalar_addcarryx_u32(x1135, x1119, x1116);
+ let mut x1138: u32 = 0;
+ let mut x1139: fiat_p384_scalar_u1 = 0;
+ let (x1138, x1139) = fiat_p384_scalar_addcarryx_u32(x1137, x1117, x1114);
+ let mut x1140: u32 = 0;
+ let mut x1141: fiat_p384_scalar_u1 = 0;
+ let (x1140, x1141) = fiat_p384_scalar_addcarryx_u32(x1139, x1115, x1112);
+ let mut x1142: u32 = 0;
+ let mut x1143: fiat_p384_scalar_u1 = 0;
+ let (x1142, x1143) = fiat_p384_scalar_addcarryx_u32(x1141, x1113, x1110);
+ let mut x1144: u32 = 0;
+ let mut x1145: fiat_p384_scalar_u1 = 0;
+ let (x1144, x1145) = fiat_p384_scalar_addcarryx_u32(x1143, x1111, x1108);
+ let mut x1146: u32 = 0;
+ let mut x1147: fiat_p384_scalar_u1 = 0;
+ let (x1146, x1147) = fiat_p384_scalar_addcarryx_u32(x1145, x1109, x1106);
+ let mut x1148: u32 = 0;
+ let mut x1149: fiat_p384_scalar_u1 = 0;
+ let (x1148, x1149) = fiat_p384_scalar_addcarryx_u32(x1147, x1107, x1104);
+ let x1150: u32 = ((x1149 as u32) + x1105);
+ let mut x1151: u32 = 0;
+ let mut x1152: fiat_p384_scalar_u1 = 0;
+ let (x1151, x1152) = fiat_p384_scalar_addcarryx_u32(0x0, x1076, x1126);
+ let mut x1153: u32 = 0;
+ let mut x1154: fiat_p384_scalar_u1 = 0;
+ let (x1153, x1154) = fiat_p384_scalar_addcarryx_u32(x1152, x1078, x1128);
+ let mut x1155: u32 = 0;
+ let mut x1156: fiat_p384_scalar_u1 = 0;
+ let (x1155, x1156) = fiat_p384_scalar_addcarryx_u32(x1154, x1080, x1130);
+ let mut x1157: u32 = 0;
+ let mut x1158: fiat_p384_scalar_u1 = 0;
+ let (x1157, x1158) = fiat_p384_scalar_addcarryx_u32(x1156, x1082, x1132);
+ let mut x1159: u32 = 0;
+ let mut x1160: fiat_p384_scalar_u1 = 0;
+ let (x1159, x1160) = fiat_p384_scalar_addcarryx_u32(x1158, x1084, x1134);
+ let mut x1161: u32 = 0;
+ let mut x1162: fiat_p384_scalar_u1 = 0;
+ let (x1161, x1162) = fiat_p384_scalar_addcarryx_u32(x1160, x1086, x1136);
+ let mut x1163: u32 = 0;
+ let mut x1164: fiat_p384_scalar_u1 = 0;
+ let (x1163, x1164) = fiat_p384_scalar_addcarryx_u32(x1162, x1088, x1138);
+ let mut x1165: u32 = 0;
+ let mut x1166: fiat_p384_scalar_u1 = 0;
+ let (x1165, x1166) = fiat_p384_scalar_addcarryx_u32(x1164, x1090, x1140);
+ let mut x1167: u32 = 0;
+ let mut x1168: fiat_p384_scalar_u1 = 0;
+ let (x1167, x1168) = fiat_p384_scalar_addcarryx_u32(x1166, x1092, x1142);
+ let mut x1169: u32 = 0;
+ let mut x1170: fiat_p384_scalar_u1 = 0;
+ let (x1169, x1170) = fiat_p384_scalar_addcarryx_u32(x1168, x1094, x1144);
+ let mut x1171: u32 = 0;
+ let mut x1172: fiat_p384_scalar_u1 = 0;
+ let (x1171, x1172) = fiat_p384_scalar_addcarryx_u32(x1170, x1096, x1146);
+ let mut x1173: u32 = 0;
+ let mut x1174: fiat_p384_scalar_u1 = 0;
+ let (x1173, x1174) = fiat_p384_scalar_addcarryx_u32(x1172, x1098, x1148);
+ let mut x1175: u32 = 0;
+ let mut x1176: fiat_p384_scalar_u1 = 0;
+ let (x1175, x1176) = fiat_p384_scalar_addcarryx_u32(x1174, x1100, x1150);
+ let x1177: u32 = ((x1176 as u32) + (x1101 as u32));
+ let mut x1178: u32 = 0;
+ let mut x1179: u32 = 0;
+ let (x1178, x1179) = fiat_p384_scalar_mulx_u32(x8, (arg2[11]));
+ let mut x1180: u32 = 0;
+ let mut x1181: u32 = 0;
+ let (x1180, x1181) = fiat_p384_scalar_mulx_u32(x8, (arg2[10]));
+ let mut x1182: u32 = 0;
+ let mut x1183: u32 = 0;
+ let (x1182, x1183) = fiat_p384_scalar_mulx_u32(x8, (arg2[9]));
+ let mut x1184: u32 = 0;
+ let mut x1185: u32 = 0;
+ let (x1184, x1185) = fiat_p384_scalar_mulx_u32(x8, (arg2[8]));
+ let mut x1186: u32 = 0;
+ let mut x1187: u32 = 0;
+ let (x1186, x1187) = fiat_p384_scalar_mulx_u32(x8, (arg2[7]));
+ let mut x1188: u32 = 0;
+ let mut x1189: u32 = 0;
+ let (x1188, x1189) = fiat_p384_scalar_mulx_u32(x8, (arg2[6]));
+ let mut x1190: u32 = 0;
+ let mut x1191: u32 = 0;
+ let (x1190, x1191) = fiat_p384_scalar_mulx_u32(x8, (arg2[5]));
+ let mut x1192: u32 = 0;
+ let mut x1193: u32 = 0;
+ let (x1192, x1193) = fiat_p384_scalar_mulx_u32(x8, (arg2[4]));
+ let mut x1194: u32 = 0;
+ let mut x1195: u32 = 0;
+ let (x1194, x1195) = fiat_p384_scalar_mulx_u32(x8, (arg2[3]));
+ let mut x1196: u32 = 0;
+ let mut x1197: u32 = 0;
+ let (x1196, x1197) = fiat_p384_scalar_mulx_u32(x8, (arg2[2]));
+ let mut x1198: u32 = 0;
+ let mut x1199: u32 = 0;
+ let (x1198, x1199) = fiat_p384_scalar_mulx_u32(x8, (arg2[1]));
+ let mut x1200: u32 = 0;
+ let mut x1201: u32 = 0;
+ let (x1200, x1201) = fiat_p384_scalar_mulx_u32(x8, (arg2[0]));
+ let mut x1202: u32 = 0;
+ let mut x1203: fiat_p384_scalar_u1 = 0;
+ let (x1202, x1203) = fiat_p384_scalar_addcarryx_u32(0x0, x1201, x1198);
+ let mut x1204: u32 = 0;
+ let mut x1205: fiat_p384_scalar_u1 = 0;
+ let (x1204, x1205) = fiat_p384_scalar_addcarryx_u32(x1203, x1199, x1196);
+ let mut x1206: u32 = 0;
+ let mut x1207: fiat_p384_scalar_u1 = 0;
+ let (x1206, x1207) = fiat_p384_scalar_addcarryx_u32(x1205, x1197, x1194);
+ let mut x1208: u32 = 0;
+ let mut x1209: fiat_p384_scalar_u1 = 0;
+ let (x1208, x1209) = fiat_p384_scalar_addcarryx_u32(x1207, x1195, x1192);
+ let mut x1210: u32 = 0;
+ let mut x1211: fiat_p384_scalar_u1 = 0;
+ let (x1210, x1211) = fiat_p384_scalar_addcarryx_u32(x1209, x1193, x1190);
+ let mut x1212: u32 = 0;
+ let mut x1213: fiat_p384_scalar_u1 = 0;
+ let (x1212, x1213) = fiat_p384_scalar_addcarryx_u32(x1211, x1191, x1188);
+ let mut x1214: u32 = 0;
+ let mut x1215: fiat_p384_scalar_u1 = 0;
+ let (x1214, x1215) = fiat_p384_scalar_addcarryx_u32(x1213, x1189, x1186);
+ let mut x1216: u32 = 0;
+ let mut x1217: fiat_p384_scalar_u1 = 0;
+ let (x1216, x1217) = fiat_p384_scalar_addcarryx_u32(x1215, x1187, x1184);
+ let mut x1218: u32 = 0;
+ let mut x1219: fiat_p384_scalar_u1 = 0;
+ let (x1218, x1219) = fiat_p384_scalar_addcarryx_u32(x1217, x1185, x1182);
+ let mut x1220: u32 = 0;
+ let mut x1221: fiat_p384_scalar_u1 = 0;
+ let (x1220, x1221) = fiat_p384_scalar_addcarryx_u32(x1219, x1183, x1180);
+ let mut x1222: u32 = 0;
+ let mut x1223: fiat_p384_scalar_u1 = 0;
+ let (x1222, x1223) = fiat_p384_scalar_addcarryx_u32(x1221, x1181, x1178);
+ let x1224: u32 = ((x1223 as u32) + x1179);
+ let mut x1225: u32 = 0;
+ let mut x1226: fiat_p384_scalar_u1 = 0;
+ let (x1225, x1226) = fiat_p384_scalar_addcarryx_u32(0x0, x1153, x1200);
+ let mut x1227: u32 = 0;
+ let mut x1228: fiat_p384_scalar_u1 = 0;
+ let (x1227, x1228) = fiat_p384_scalar_addcarryx_u32(x1226, x1155, x1202);
+ let mut x1229: u32 = 0;
+ let mut x1230: fiat_p384_scalar_u1 = 0;
+ let (x1229, x1230) = fiat_p384_scalar_addcarryx_u32(x1228, x1157, x1204);
+ let mut x1231: u32 = 0;
+ let mut x1232: fiat_p384_scalar_u1 = 0;
+ let (x1231, x1232) = fiat_p384_scalar_addcarryx_u32(x1230, x1159, x1206);
+ let mut x1233: u32 = 0;
+ let mut x1234: fiat_p384_scalar_u1 = 0;
+ let (x1233, x1234) = fiat_p384_scalar_addcarryx_u32(x1232, x1161, x1208);
+ let mut x1235: u32 = 0;
+ let mut x1236: fiat_p384_scalar_u1 = 0;
+ let (x1235, x1236) = fiat_p384_scalar_addcarryx_u32(x1234, x1163, x1210);
+ let mut x1237: u32 = 0;
+ let mut x1238: fiat_p384_scalar_u1 = 0;
+ let (x1237, x1238) = fiat_p384_scalar_addcarryx_u32(x1236, x1165, x1212);
+ let mut x1239: u32 = 0;
+ let mut x1240: fiat_p384_scalar_u1 = 0;
+ let (x1239, x1240) = fiat_p384_scalar_addcarryx_u32(x1238, x1167, x1214);
+ let mut x1241: u32 = 0;
+ let mut x1242: fiat_p384_scalar_u1 = 0;
+ let (x1241, x1242) = fiat_p384_scalar_addcarryx_u32(x1240, x1169, x1216);
+ let mut x1243: u32 = 0;
+ let mut x1244: fiat_p384_scalar_u1 = 0;
+ let (x1243, x1244) = fiat_p384_scalar_addcarryx_u32(x1242, x1171, x1218);
+ let mut x1245: u32 = 0;
+ let mut x1246: fiat_p384_scalar_u1 = 0;
+ let (x1245, x1246) = fiat_p384_scalar_addcarryx_u32(x1244, x1173, x1220);
+ let mut x1247: u32 = 0;
+ let mut x1248: fiat_p384_scalar_u1 = 0;
+ let (x1247, x1248) = fiat_p384_scalar_addcarryx_u32(x1246, x1175, x1222);
+ let mut x1249: u32 = 0;
+ let mut x1250: fiat_p384_scalar_u1 = 0;
+ let (x1249, x1250) = fiat_p384_scalar_addcarryx_u32(x1248, x1177, x1224);
+ let mut x1251: u32 = 0;
+ let mut x1252: u32 = 0;
+ let (x1251, x1252) = fiat_p384_scalar_mulx_u32(x1225, 0xe88fdc45);
+ let mut x1253: u32 = 0;
+ let mut x1254: u32 = 0;
+ let (x1253, x1254) = fiat_p384_scalar_mulx_u32(x1251, 0xffffffff);
+ let mut x1255: u32 = 0;
+ let mut x1256: u32 = 0;
+ let (x1255, x1256) = fiat_p384_scalar_mulx_u32(x1251, 0xffffffff);
+ let mut x1257: u32 = 0;
+ let mut x1258: u32 = 0;
+ let (x1257, x1258) = fiat_p384_scalar_mulx_u32(x1251, 0xffffffff);
+ let mut x1259: u32 = 0;
+ let mut x1260: u32 = 0;
+ let (x1259, x1260) = fiat_p384_scalar_mulx_u32(x1251, 0xffffffff);
+ let mut x1261: u32 = 0;
+ let mut x1262: u32 = 0;
+ let (x1261, x1262) = fiat_p384_scalar_mulx_u32(x1251, 0xffffffff);
+ let mut x1263: u32 = 0;
+ let mut x1264: u32 = 0;
+ let (x1263, x1264) = fiat_p384_scalar_mulx_u32(x1251, 0xffffffff);
+ let mut x1265: u32 = 0;
+ let mut x1266: u32 = 0;
+ let (x1265, x1266) = fiat_p384_scalar_mulx_u32(x1251, 0xc7634d81);
+ let mut x1267: u32 = 0;
+ let mut x1268: u32 = 0;
+ let (x1267, x1268) = fiat_p384_scalar_mulx_u32(x1251, 0xf4372ddf);
+ let mut x1269: u32 = 0;
+ let mut x1270: u32 = 0;
+ let (x1269, x1270) = fiat_p384_scalar_mulx_u32(x1251, 0x581a0db2);
+ let mut x1271: u32 = 0;
+ let mut x1272: u32 = 0;
+ let (x1271, x1272) = fiat_p384_scalar_mulx_u32(x1251, 0x48b0a77a);
+ let mut x1273: u32 = 0;
+ let mut x1274: u32 = 0;
+ let (x1273, x1274) = fiat_p384_scalar_mulx_u32(x1251, 0xecec196a);
+ let mut x1275: u32 = 0;
+ let mut x1276: u32 = 0;
+ let (x1275, x1276) = fiat_p384_scalar_mulx_u32(x1251, 0xccc52973);
+ let mut x1277: u32 = 0;
+ let mut x1278: fiat_p384_scalar_u1 = 0;
+ let (x1277, x1278) = fiat_p384_scalar_addcarryx_u32(0x0, x1276, x1273);
+ let mut x1279: u32 = 0;
+ let mut x1280: fiat_p384_scalar_u1 = 0;
+ let (x1279, x1280) = fiat_p384_scalar_addcarryx_u32(x1278, x1274, x1271);
+ let mut x1281: u32 = 0;
+ let mut x1282: fiat_p384_scalar_u1 = 0;
+ let (x1281, x1282) = fiat_p384_scalar_addcarryx_u32(x1280, x1272, x1269);
+ let mut x1283: u32 = 0;
+ let mut x1284: fiat_p384_scalar_u1 = 0;
+ let (x1283, x1284) = fiat_p384_scalar_addcarryx_u32(x1282, x1270, x1267);
+ let mut x1285: u32 = 0;
+ let mut x1286: fiat_p384_scalar_u1 = 0;
+ let (x1285, x1286) = fiat_p384_scalar_addcarryx_u32(x1284, x1268, x1265);
+ let mut x1287: u32 = 0;
+ let mut x1288: fiat_p384_scalar_u1 = 0;
+ let (x1287, x1288) = fiat_p384_scalar_addcarryx_u32(x1286, x1266, x1263);
+ let mut x1289: u32 = 0;
+ let mut x1290: fiat_p384_scalar_u1 = 0;
+ let (x1289, x1290) = fiat_p384_scalar_addcarryx_u32(x1288, x1264, x1261);
+ let mut x1291: u32 = 0;
+ let mut x1292: fiat_p384_scalar_u1 = 0;
+ let (x1291, x1292) = fiat_p384_scalar_addcarryx_u32(x1290, x1262, x1259);
+ let mut x1293: u32 = 0;
+ let mut x1294: fiat_p384_scalar_u1 = 0;
+ let (x1293, x1294) = fiat_p384_scalar_addcarryx_u32(x1292, x1260, x1257);
+ let mut x1295: u32 = 0;
+ let mut x1296: fiat_p384_scalar_u1 = 0;
+ let (x1295, x1296) = fiat_p384_scalar_addcarryx_u32(x1294, x1258, x1255);
+ let mut x1297: u32 = 0;
+ let mut x1298: fiat_p384_scalar_u1 = 0;
+ let (x1297, x1298) = fiat_p384_scalar_addcarryx_u32(x1296, x1256, x1253);
+ let x1299: u32 = ((x1298 as u32) + x1254);
+ let mut x1300: u32 = 0;
+ let mut x1301: fiat_p384_scalar_u1 = 0;
+ let (x1300, x1301) = fiat_p384_scalar_addcarryx_u32(0x0, x1225, x1275);
+ let mut x1302: u32 = 0;
+ let mut x1303: fiat_p384_scalar_u1 = 0;
+ let (x1302, x1303) = fiat_p384_scalar_addcarryx_u32(x1301, x1227, x1277);
+ let mut x1304: u32 = 0;
+ let mut x1305: fiat_p384_scalar_u1 = 0;
+ let (x1304, x1305) = fiat_p384_scalar_addcarryx_u32(x1303, x1229, x1279);
+ let mut x1306: u32 = 0;
+ let mut x1307: fiat_p384_scalar_u1 = 0;
+ let (x1306, x1307) = fiat_p384_scalar_addcarryx_u32(x1305, x1231, x1281);
+ let mut x1308: u32 = 0;
+ let mut x1309: fiat_p384_scalar_u1 = 0;
+ let (x1308, x1309) = fiat_p384_scalar_addcarryx_u32(x1307, x1233, x1283);
+ let mut x1310: u32 = 0;
+ let mut x1311: fiat_p384_scalar_u1 = 0;
+ let (x1310, x1311) = fiat_p384_scalar_addcarryx_u32(x1309, x1235, x1285);
+ let mut x1312: u32 = 0;
+ let mut x1313: fiat_p384_scalar_u1 = 0;
+ let (x1312, x1313) = fiat_p384_scalar_addcarryx_u32(x1311, x1237, x1287);
+ let mut x1314: u32 = 0;
+ let mut x1315: fiat_p384_scalar_u1 = 0;
+ let (x1314, x1315) = fiat_p384_scalar_addcarryx_u32(x1313, x1239, x1289);
+ let mut x1316: u32 = 0;
+ let mut x1317: fiat_p384_scalar_u1 = 0;
+ let (x1316, x1317) = fiat_p384_scalar_addcarryx_u32(x1315, x1241, x1291);
+ let mut x1318: u32 = 0;
+ let mut x1319: fiat_p384_scalar_u1 = 0;
+ let (x1318, x1319) = fiat_p384_scalar_addcarryx_u32(x1317, x1243, x1293);
+ let mut x1320: u32 = 0;
+ let mut x1321: fiat_p384_scalar_u1 = 0;
+ let (x1320, x1321) = fiat_p384_scalar_addcarryx_u32(x1319, x1245, x1295);
+ let mut x1322: u32 = 0;
+ let mut x1323: fiat_p384_scalar_u1 = 0;
+ let (x1322, x1323) = fiat_p384_scalar_addcarryx_u32(x1321, x1247, x1297);
+ let mut x1324: u32 = 0;
+ let mut x1325: fiat_p384_scalar_u1 = 0;
+ let (x1324, x1325) = fiat_p384_scalar_addcarryx_u32(x1323, x1249, x1299);
+ let x1326: u32 = ((x1325 as u32) + (x1250 as u32));
+ let mut x1327: u32 = 0;
+ let mut x1328: u32 = 0;
+ let (x1327, x1328) = fiat_p384_scalar_mulx_u32(x9, (arg2[11]));
+ let mut x1329: u32 = 0;
+ let mut x1330: u32 = 0;
+ let (x1329, x1330) = fiat_p384_scalar_mulx_u32(x9, (arg2[10]));
+ let mut x1331: u32 = 0;
+ let mut x1332: u32 = 0;
+ let (x1331, x1332) = fiat_p384_scalar_mulx_u32(x9, (arg2[9]));
+ let mut x1333: u32 = 0;
+ let mut x1334: u32 = 0;
+ let (x1333, x1334) = fiat_p384_scalar_mulx_u32(x9, (arg2[8]));
+ let mut x1335: u32 = 0;
+ let mut x1336: u32 = 0;
+ let (x1335, x1336) = fiat_p384_scalar_mulx_u32(x9, (arg2[7]));
+ let mut x1337: u32 = 0;
+ let mut x1338: u32 = 0;
+ let (x1337, x1338) = fiat_p384_scalar_mulx_u32(x9, (arg2[6]));
+ let mut x1339: u32 = 0;
+ let mut x1340: u32 = 0;
+ let (x1339, x1340) = fiat_p384_scalar_mulx_u32(x9, (arg2[5]));
+ let mut x1341: u32 = 0;
+ let mut x1342: u32 = 0;
+ let (x1341, x1342) = fiat_p384_scalar_mulx_u32(x9, (arg2[4]));
+ let mut x1343: u32 = 0;
+ let mut x1344: u32 = 0;
+ let (x1343, x1344) = fiat_p384_scalar_mulx_u32(x9, (arg2[3]));
+ let mut x1345: u32 = 0;
+ let mut x1346: u32 = 0;
+ let (x1345, x1346) = fiat_p384_scalar_mulx_u32(x9, (arg2[2]));
+ let mut x1347: u32 = 0;
+ let mut x1348: u32 = 0;
+ let (x1347, x1348) = fiat_p384_scalar_mulx_u32(x9, (arg2[1]));
+ let mut x1349: u32 = 0;
+ let mut x1350: u32 = 0;
+ let (x1349, x1350) = fiat_p384_scalar_mulx_u32(x9, (arg2[0]));
+ let mut x1351: u32 = 0;
+ let mut x1352: fiat_p384_scalar_u1 = 0;
+ let (x1351, x1352) = fiat_p384_scalar_addcarryx_u32(0x0, x1350, x1347);
+ let mut x1353: u32 = 0;
+ let mut x1354: fiat_p384_scalar_u1 = 0;
+ let (x1353, x1354) = fiat_p384_scalar_addcarryx_u32(x1352, x1348, x1345);
+ let mut x1355: u32 = 0;
+ let mut x1356: fiat_p384_scalar_u1 = 0;
+ let (x1355, x1356) = fiat_p384_scalar_addcarryx_u32(x1354, x1346, x1343);
+ let mut x1357: u32 = 0;
+ let mut x1358: fiat_p384_scalar_u1 = 0;
+ let (x1357, x1358) = fiat_p384_scalar_addcarryx_u32(x1356, x1344, x1341);
+ let mut x1359: u32 = 0;
+ let mut x1360: fiat_p384_scalar_u1 = 0;
+ let (x1359, x1360) = fiat_p384_scalar_addcarryx_u32(x1358, x1342, x1339);
+ let mut x1361: u32 = 0;
+ let mut x1362: fiat_p384_scalar_u1 = 0;
+ let (x1361, x1362) = fiat_p384_scalar_addcarryx_u32(x1360, x1340, x1337);
+ let mut x1363: u32 = 0;
+ let mut x1364: fiat_p384_scalar_u1 = 0;
+ let (x1363, x1364) = fiat_p384_scalar_addcarryx_u32(x1362, x1338, x1335);
+ let mut x1365: u32 = 0;
+ let mut x1366: fiat_p384_scalar_u1 = 0;
+ let (x1365, x1366) = fiat_p384_scalar_addcarryx_u32(x1364, x1336, x1333);
+ let mut x1367: u32 = 0;
+ let mut x1368: fiat_p384_scalar_u1 = 0;
+ let (x1367, x1368) = fiat_p384_scalar_addcarryx_u32(x1366, x1334, x1331);
+ let mut x1369: u32 = 0;
+ let mut x1370: fiat_p384_scalar_u1 = 0;
+ let (x1369, x1370) = fiat_p384_scalar_addcarryx_u32(x1368, x1332, x1329);
+ let mut x1371: u32 = 0;
+ let mut x1372: fiat_p384_scalar_u1 = 0;
+ let (x1371, x1372) = fiat_p384_scalar_addcarryx_u32(x1370, x1330, x1327);
+ let x1373: u32 = ((x1372 as u32) + x1328);
+ let mut x1374: u32 = 0;
+ let mut x1375: fiat_p384_scalar_u1 = 0;
+ let (x1374, x1375) = fiat_p384_scalar_addcarryx_u32(0x0, x1302, x1349);
+ let mut x1376: u32 = 0;
+ let mut x1377: fiat_p384_scalar_u1 = 0;
+ let (x1376, x1377) = fiat_p384_scalar_addcarryx_u32(x1375, x1304, x1351);
+ let mut x1378: u32 = 0;
+ let mut x1379: fiat_p384_scalar_u1 = 0;
+ let (x1378, x1379) = fiat_p384_scalar_addcarryx_u32(x1377, x1306, x1353);
+ let mut x1380: u32 = 0;
+ let mut x1381: fiat_p384_scalar_u1 = 0;
+ let (x1380, x1381) = fiat_p384_scalar_addcarryx_u32(x1379, x1308, x1355);
+ let mut x1382: u32 = 0;
+ let mut x1383: fiat_p384_scalar_u1 = 0;
+ let (x1382, x1383) = fiat_p384_scalar_addcarryx_u32(x1381, x1310, x1357);
+ let mut x1384: u32 = 0;
+ let mut x1385: fiat_p384_scalar_u1 = 0;
+ let (x1384, x1385) = fiat_p384_scalar_addcarryx_u32(x1383, x1312, x1359);
+ let mut x1386: u32 = 0;
+ let mut x1387: fiat_p384_scalar_u1 = 0;
+ let (x1386, x1387) = fiat_p384_scalar_addcarryx_u32(x1385, x1314, x1361);
+ let mut x1388: u32 = 0;
+ let mut x1389: fiat_p384_scalar_u1 = 0;
+ let (x1388, x1389) = fiat_p384_scalar_addcarryx_u32(x1387, x1316, x1363);
+ let mut x1390: u32 = 0;
+ let mut x1391: fiat_p384_scalar_u1 = 0;
+ let (x1390, x1391) = fiat_p384_scalar_addcarryx_u32(x1389, x1318, x1365);
+ let mut x1392: u32 = 0;
+ let mut x1393: fiat_p384_scalar_u1 = 0;
+ let (x1392, x1393) = fiat_p384_scalar_addcarryx_u32(x1391, x1320, x1367);
+ let mut x1394: u32 = 0;
+ let mut x1395: fiat_p384_scalar_u1 = 0;
+ let (x1394, x1395) = fiat_p384_scalar_addcarryx_u32(x1393, x1322, x1369);
+ let mut x1396: u32 = 0;
+ let mut x1397: fiat_p384_scalar_u1 = 0;
+ let (x1396, x1397) = fiat_p384_scalar_addcarryx_u32(x1395, x1324, x1371);
+ let mut x1398: u32 = 0;
+ let mut x1399: fiat_p384_scalar_u1 = 0;
+ let (x1398, x1399) = fiat_p384_scalar_addcarryx_u32(x1397, x1326, x1373);
+ let mut x1400: u32 = 0;
+ let mut x1401: u32 = 0;
+ let (x1400, x1401) = fiat_p384_scalar_mulx_u32(x1374, 0xe88fdc45);
+ let mut x1402: u32 = 0;
+ let mut x1403: u32 = 0;
+ let (x1402, x1403) = fiat_p384_scalar_mulx_u32(x1400, 0xffffffff);
+ let mut x1404: u32 = 0;
+ let mut x1405: u32 = 0;
+ let (x1404, x1405) = fiat_p384_scalar_mulx_u32(x1400, 0xffffffff);
+ let mut x1406: u32 = 0;
+ let mut x1407: u32 = 0;
+ let (x1406, x1407) = fiat_p384_scalar_mulx_u32(x1400, 0xffffffff);
+ let mut x1408: u32 = 0;
+ let mut x1409: u32 = 0;
+ let (x1408, x1409) = fiat_p384_scalar_mulx_u32(x1400, 0xffffffff);
+ let mut x1410: u32 = 0;
+ let mut x1411: u32 = 0;
+ let (x1410, x1411) = fiat_p384_scalar_mulx_u32(x1400, 0xffffffff);
+ let mut x1412: u32 = 0;
+ let mut x1413: u32 = 0;
+ let (x1412, x1413) = fiat_p384_scalar_mulx_u32(x1400, 0xffffffff);
+ let mut x1414: u32 = 0;
+ let mut x1415: u32 = 0;
+ let (x1414, x1415) = fiat_p384_scalar_mulx_u32(x1400, 0xc7634d81);
+ let mut x1416: u32 = 0;
+ let mut x1417: u32 = 0;
+ let (x1416, x1417) = fiat_p384_scalar_mulx_u32(x1400, 0xf4372ddf);
+ let mut x1418: u32 = 0;
+ let mut x1419: u32 = 0;
+ let (x1418, x1419) = fiat_p384_scalar_mulx_u32(x1400, 0x581a0db2);
+ let mut x1420: u32 = 0;
+ let mut x1421: u32 = 0;
+ let (x1420, x1421) = fiat_p384_scalar_mulx_u32(x1400, 0x48b0a77a);
+ let mut x1422: u32 = 0;
+ let mut x1423: u32 = 0;
+ let (x1422, x1423) = fiat_p384_scalar_mulx_u32(x1400, 0xecec196a);
+ let mut x1424: u32 = 0;
+ let mut x1425: u32 = 0;
+ let (x1424, x1425) = fiat_p384_scalar_mulx_u32(x1400, 0xccc52973);
+ let mut x1426: u32 = 0;
+ let mut x1427: fiat_p384_scalar_u1 = 0;
+ let (x1426, x1427) = fiat_p384_scalar_addcarryx_u32(0x0, x1425, x1422);
+ let mut x1428: u32 = 0;
+ let mut x1429: fiat_p384_scalar_u1 = 0;
+ let (x1428, x1429) = fiat_p384_scalar_addcarryx_u32(x1427, x1423, x1420);
+ let mut x1430: u32 = 0;
+ let mut x1431: fiat_p384_scalar_u1 = 0;
+ let (x1430, x1431) = fiat_p384_scalar_addcarryx_u32(x1429, x1421, x1418);
+ let mut x1432: u32 = 0;
+ let mut x1433: fiat_p384_scalar_u1 = 0;
+ let (x1432, x1433) = fiat_p384_scalar_addcarryx_u32(x1431, x1419, x1416);
+ let mut x1434: u32 = 0;
+ let mut x1435: fiat_p384_scalar_u1 = 0;
+ let (x1434, x1435) = fiat_p384_scalar_addcarryx_u32(x1433, x1417, x1414);
+ let mut x1436: u32 = 0;
+ let mut x1437: fiat_p384_scalar_u1 = 0;
+ let (x1436, x1437) = fiat_p384_scalar_addcarryx_u32(x1435, x1415, x1412);
+ let mut x1438: u32 = 0;
+ let mut x1439: fiat_p384_scalar_u1 = 0;
+ let (x1438, x1439) = fiat_p384_scalar_addcarryx_u32(x1437, x1413, x1410);
+ let mut x1440: u32 = 0;
+ let mut x1441: fiat_p384_scalar_u1 = 0;
+ let (x1440, x1441) = fiat_p384_scalar_addcarryx_u32(x1439, x1411, x1408);
+ let mut x1442: u32 = 0;
+ let mut x1443: fiat_p384_scalar_u1 = 0;
+ let (x1442, x1443) = fiat_p384_scalar_addcarryx_u32(x1441, x1409, x1406);
+ let mut x1444: u32 = 0;
+ let mut x1445: fiat_p384_scalar_u1 = 0;
+ let (x1444, x1445) = fiat_p384_scalar_addcarryx_u32(x1443, x1407, x1404);
+ let mut x1446: u32 = 0;
+ let mut x1447: fiat_p384_scalar_u1 = 0;
+ let (x1446, x1447) = fiat_p384_scalar_addcarryx_u32(x1445, x1405, x1402);
+ let x1448: u32 = ((x1447 as u32) + x1403);
+ let mut x1449: u32 = 0;
+ let mut x1450: fiat_p384_scalar_u1 = 0;
+ let (x1449, x1450) = fiat_p384_scalar_addcarryx_u32(0x0, x1374, x1424);
+ let mut x1451: u32 = 0;
+ let mut x1452: fiat_p384_scalar_u1 = 0;
+ let (x1451, x1452) = fiat_p384_scalar_addcarryx_u32(x1450, x1376, x1426);
+ let mut x1453: u32 = 0;
+ let mut x1454: fiat_p384_scalar_u1 = 0;
+ let (x1453, x1454) = fiat_p384_scalar_addcarryx_u32(x1452, x1378, x1428);
+ let mut x1455: u32 = 0;
+ let mut x1456: fiat_p384_scalar_u1 = 0;
+ let (x1455, x1456) = fiat_p384_scalar_addcarryx_u32(x1454, x1380, x1430);
+ let mut x1457: u32 = 0;
+ let mut x1458: fiat_p384_scalar_u1 = 0;
+ let (x1457, x1458) = fiat_p384_scalar_addcarryx_u32(x1456, x1382, x1432);
+ let mut x1459: u32 = 0;
+ let mut x1460: fiat_p384_scalar_u1 = 0;
+ let (x1459, x1460) = fiat_p384_scalar_addcarryx_u32(x1458, x1384, x1434);
+ let mut x1461: u32 = 0;
+ let mut x1462: fiat_p384_scalar_u1 = 0;
+ let (x1461, x1462) = fiat_p384_scalar_addcarryx_u32(x1460, x1386, x1436);
+ let mut x1463: u32 = 0;
+ let mut x1464: fiat_p384_scalar_u1 = 0;
+ let (x1463, x1464) = fiat_p384_scalar_addcarryx_u32(x1462, x1388, x1438);
+ let mut x1465: u32 = 0;
+ let mut x1466: fiat_p384_scalar_u1 = 0;
+ let (x1465, x1466) = fiat_p384_scalar_addcarryx_u32(x1464, x1390, x1440);
+ let mut x1467: u32 = 0;
+ let mut x1468: fiat_p384_scalar_u1 = 0;
+ let (x1467, x1468) = fiat_p384_scalar_addcarryx_u32(x1466, x1392, x1442);
+ let mut x1469: u32 = 0;
+ let mut x1470: fiat_p384_scalar_u1 = 0;
+ let (x1469, x1470) = fiat_p384_scalar_addcarryx_u32(x1468, x1394, x1444);
+ let mut x1471: u32 = 0;
+ let mut x1472: fiat_p384_scalar_u1 = 0;
+ let (x1471, x1472) = fiat_p384_scalar_addcarryx_u32(x1470, x1396, x1446);
+ let mut x1473: u32 = 0;
+ let mut x1474: fiat_p384_scalar_u1 = 0;
+ let (x1473, x1474) = fiat_p384_scalar_addcarryx_u32(x1472, x1398, x1448);
+ let x1475: u32 = ((x1474 as u32) + (x1399 as u32));
+ let mut x1476: u32 = 0;
+ let mut x1477: u32 = 0;
+ let (x1476, x1477) = fiat_p384_scalar_mulx_u32(x10, (arg2[11]));
+ let mut x1478: u32 = 0;
+ let mut x1479: u32 = 0;
+ let (x1478, x1479) = fiat_p384_scalar_mulx_u32(x10, (arg2[10]));
+ let mut x1480: u32 = 0;
+ let mut x1481: u32 = 0;
+ let (x1480, x1481) = fiat_p384_scalar_mulx_u32(x10, (arg2[9]));
+ let mut x1482: u32 = 0;
+ let mut x1483: u32 = 0;
+ let (x1482, x1483) = fiat_p384_scalar_mulx_u32(x10, (arg2[8]));
+ let mut x1484: u32 = 0;
+ let mut x1485: u32 = 0;
+ let (x1484, x1485) = fiat_p384_scalar_mulx_u32(x10, (arg2[7]));
+ let mut x1486: u32 = 0;
+ let mut x1487: u32 = 0;
+ let (x1486, x1487) = fiat_p384_scalar_mulx_u32(x10, (arg2[6]));
+ let mut x1488: u32 = 0;
+ let mut x1489: u32 = 0;
+ let (x1488, x1489) = fiat_p384_scalar_mulx_u32(x10, (arg2[5]));
+ let mut x1490: u32 = 0;
+ let mut x1491: u32 = 0;
+ let (x1490, x1491) = fiat_p384_scalar_mulx_u32(x10, (arg2[4]));
+ let mut x1492: u32 = 0;
+ let mut x1493: u32 = 0;
+ let (x1492, x1493) = fiat_p384_scalar_mulx_u32(x10, (arg2[3]));
+ let mut x1494: u32 = 0;
+ let mut x1495: u32 = 0;
+ let (x1494, x1495) = fiat_p384_scalar_mulx_u32(x10, (arg2[2]));
+ let mut x1496: u32 = 0;
+ let mut x1497: u32 = 0;
+ let (x1496, x1497) = fiat_p384_scalar_mulx_u32(x10, (arg2[1]));
+ let mut x1498: u32 = 0;
+ let mut x1499: u32 = 0;
+ let (x1498, x1499) = fiat_p384_scalar_mulx_u32(x10, (arg2[0]));
+ let mut x1500: u32 = 0;
+ let mut x1501: fiat_p384_scalar_u1 = 0;
+ let (x1500, x1501) = fiat_p384_scalar_addcarryx_u32(0x0, x1499, x1496);
+ let mut x1502: u32 = 0;
+ let mut x1503: fiat_p384_scalar_u1 = 0;
+ let (x1502, x1503) = fiat_p384_scalar_addcarryx_u32(x1501, x1497, x1494);
+ let mut x1504: u32 = 0;
+ let mut x1505: fiat_p384_scalar_u1 = 0;
+ let (x1504, x1505) = fiat_p384_scalar_addcarryx_u32(x1503, x1495, x1492);
+ let mut x1506: u32 = 0;
+ let mut x1507: fiat_p384_scalar_u1 = 0;
+ let (x1506, x1507) = fiat_p384_scalar_addcarryx_u32(x1505, x1493, x1490);
+ let mut x1508: u32 = 0;
+ let mut x1509: fiat_p384_scalar_u1 = 0;
+ let (x1508, x1509) = fiat_p384_scalar_addcarryx_u32(x1507, x1491, x1488);
+ let mut x1510: u32 = 0;
+ let mut x1511: fiat_p384_scalar_u1 = 0;
+ let (x1510, x1511) = fiat_p384_scalar_addcarryx_u32(x1509, x1489, x1486);
+ let mut x1512: u32 = 0;
+ let mut x1513: fiat_p384_scalar_u1 = 0;
+ let (x1512, x1513) = fiat_p384_scalar_addcarryx_u32(x1511, x1487, x1484);
+ let mut x1514: u32 = 0;
+ let mut x1515: fiat_p384_scalar_u1 = 0;
+ let (x1514, x1515) = fiat_p384_scalar_addcarryx_u32(x1513, x1485, x1482);
+ let mut x1516: u32 = 0;
+ let mut x1517: fiat_p384_scalar_u1 = 0;
+ let (x1516, x1517) = fiat_p384_scalar_addcarryx_u32(x1515, x1483, x1480);
+ let mut x1518: u32 = 0;
+ let mut x1519: fiat_p384_scalar_u1 = 0;
+ let (x1518, x1519) = fiat_p384_scalar_addcarryx_u32(x1517, x1481, x1478);
+ let mut x1520: u32 = 0;
+ let mut x1521: fiat_p384_scalar_u1 = 0;
+ let (x1520, x1521) = fiat_p384_scalar_addcarryx_u32(x1519, x1479, x1476);
+ let x1522: u32 = ((x1521 as u32) + x1477);
+ let mut x1523: u32 = 0;
+ let mut x1524: fiat_p384_scalar_u1 = 0;
+ let (x1523, x1524) = fiat_p384_scalar_addcarryx_u32(0x0, x1451, x1498);
+ let mut x1525: u32 = 0;
+ let mut x1526: fiat_p384_scalar_u1 = 0;
+ let (x1525, x1526) = fiat_p384_scalar_addcarryx_u32(x1524, x1453, x1500);
+ let mut x1527: u32 = 0;
+ let mut x1528: fiat_p384_scalar_u1 = 0;
+ let (x1527, x1528) = fiat_p384_scalar_addcarryx_u32(x1526, x1455, x1502);
+ let mut x1529: u32 = 0;
+ let mut x1530: fiat_p384_scalar_u1 = 0;
+ let (x1529, x1530) = fiat_p384_scalar_addcarryx_u32(x1528, x1457, x1504);
+ let mut x1531: u32 = 0;
+ let mut x1532: fiat_p384_scalar_u1 = 0;
+ let (x1531, x1532) = fiat_p384_scalar_addcarryx_u32(x1530, x1459, x1506);
+ let mut x1533: u32 = 0;
+ let mut x1534: fiat_p384_scalar_u1 = 0;
+ let (x1533, x1534) = fiat_p384_scalar_addcarryx_u32(x1532, x1461, x1508);
+ let mut x1535: u32 = 0;
+ let mut x1536: fiat_p384_scalar_u1 = 0;
+ let (x1535, x1536) = fiat_p384_scalar_addcarryx_u32(x1534, x1463, x1510);
+ let mut x1537: u32 = 0;
+ let mut x1538: fiat_p384_scalar_u1 = 0;
+ let (x1537, x1538) = fiat_p384_scalar_addcarryx_u32(x1536, x1465, x1512);
+ let mut x1539: u32 = 0;
+ let mut x1540: fiat_p384_scalar_u1 = 0;
+ let (x1539, x1540) = fiat_p384_scalar_addcarryx_u32(x1538, x1467, x1514);
+ let mut x1541: u32 = 0;
+ let mut x1542: fiat_p384_scalar_u1 = 0;
+ let (x1541, x1542) = fiat_p384_scalar_addcarryx_u32(x1540, x1469, x1516);
+ let mut x1543: u32 = 0;
+ let mut x1544: fiat_p384_scalar_u1 = 0;
+ let (x1543, x1544) = fiat_p384_scalar_addcarryx_u32(x1542, x1471, x1518);
+ let mut x1545: u32 = 0;
+ let mut x1546: fiat_p384_scalar_u1 = 0;
+ let (x1545, x1546) = fiat_p384_scalar_addcarryx_u32(x1544, x1473, x1520);
+ let mut x1547: u32 = 0;
+ let mut x1548: fiat_p384_scalar_u1 = 0;
+ let (x1547, x1548) = fiat_p384_scalar_addcarryx_u32(x1546, x1475, x1522);
+ let mut x1549: u32 = 0;
+ let mut x1550: u32 = 0;
+ let (x1549, x1550) = fiat_p384_scalar_mulx_u32(x1523, 0xe88fdc45);
+ let mut x1551: u32 = 0;
+ let mut x1552: u32 = 0;
+ let (x1551, x1552) = fiat_p384_scalar_mulx_u32(x1549, 0xffffffff);
+ let mut x1553: u32 = 0;
+ let mut x1554: u32 = 0;
+ let (x1553, x1554) = fiat_p384_scalar_mulx_u32(x1549, 0xffffffff);
+ let mut x1555: u32 = 0;
+ let mut x1556: u32 = 0;
+ let (x1555, x1556) = fiat_p384_scalar_mulx_u32(x1549, 0xffffffff);
+ let mut x1557: u32 = 0;
+ let mut x1558: u32 = 0;
+ let (x1557, x1558) = fiat_p384_scalar_mulx_u32(x1549, 0xffffffff);
+ let mut x1559: u32 = 0;
+ let mut x1560: u32 = 0;
+ let (x1559, x1560) = fiat_p384_scalar_mulx_u32(x1549, 0xffffffff);
+ let mut x1561: u32 = 0;
+ let mut x1562: u32 = 0;
+ let (x1561, x1562) = fiat_p384_scalar_mulx_u32(x1549, 0xffffffff);
+ let mut x1563: u32 = 0;
+ let mut x1564: u32 = 0;
+ let (x1563, x1564) = fiat_p384_scalar_mulx_u32(x1549, 0xc7634d81);
+ let mut x1565: u32 = 0;
+ let mut x1566: u32 = 0;
+ let (x1565, x1566) = fiat_p384_scalar_mulx_u32(x1549, 0xf4372ddf);
+ let mut x1567: u32 = 0;
+ let mut x1568: u32 = 0;
+ let (x1567, x1568) = fiat_p384_scalar_mulx_u32(x1549, 0x581a0db2);
+ let mut x1569: u32 = 0;
+ let mut x1570: u32 = 0;
+ let (x1569, x1570) = fiat_p384_scalar_mulx_u32(x1549, 0x48b0a77a);
+ let mut x1571: u32 = 0;
+ let mut x1572: u32 = 0;
+ let (x1571, x1572) = fiat_p384_scalar_mulx_u32(x1549, 0xecec196a);
+ let mut x1573: u32 = 0;
+ let mut x1574: u32 = 0;
+ let (x1573, x1574) = fiat_p384_scalar_mulx_u32(x1549, 0xccc52973);
+ let mut x1575: u32 = 0;
+ let mut x1576: fiat_p384_scalar_u1 = 0;
+ let (x1575, x1576) = fiat_p384_scalar_addcarryx_u32(0x0, x1574, x1571);
+ let mut x1577: u32 = 0;
+ let mut x1578: fiat_p384_scalar_u1 = 0;
+ let (x1577, x1578) = fiat_p384_scalar_addcarryx_u32(x1576, x1572, x1569);
+ let mut x1579: u32 = 0;
+ let mut x1580: fiat_p384_scalar_u1 = 0;
+ let (x1579, x1580) = fiat_p384_scalar_addcarryx_u32(x1578, x1570, x1567);
+ let mut x1581: u32 = 0;
+ let mut x1582: fiat_p384_scalar_u1 = 0;
+ let (x1581, x1582) = fiat_p384_scalar_addcarryx_u32(x1580, x1568, x1565);
+ let mut x1583: u32 = 0;
+ let mut x1584: fiat_p384_scalar_u1 = 0;
+ let (x1583, x1584) = fiat_p384_scalar_addcarryx_u32(x1582, x1566, x1563);
+ let mut x1585: u32 = 0;
+ let mut x1586: fiat_p384_scalar_u1 = 0;
+ let (x1585, x1586) = fiat_p384_scalar_addcarryx_u32(x1584, x1564, x1561);
+ let mut x1587: u32 = 0;
+ let mut x1588: fiat_p384_scalar_u1 = 0;
+ let (x1587, x1588) = fiat_p384_scalar_addcarryx_u32(x1586, x1562, x1559);
+ let mut x1589: u32 = 0;
+ let mut x1590: fiat_p384_scalar_u1 = 0;
+ let (x1589, x1590) = fiat_p384_scalar_addcarryx_u32(x1588, x1560, x1557);
+ let mut x1591: u32 = 0;
+ let mut x1592: fiat_p384_scalar_u1 = 0;
+ let (x1591, x1592) = fiat_p384_scalar_addcarryx_u32(x1590, x1558, x1555);
+ let mut x1593: u32 = 0;
+ let mut x1594: fiat_p384_scalar_u1 = 0;
+ let (x1593, x1594) = fiat_p384_scalar_addcarryx_u32(x1592, x1556, x1553);
+ let mut x1595: u32 = 0;
+ let mut x1596: fiat_p384_scalar_u1 = 0;
+ let (x1595, x1596) = fiat_p384_scalar_addcarryx_u32(x1594, x1554, x1551);
+ let x1597: u32 = ((x1596 as u32) + x1552);
+ let mut x1598: u32 = 0;
+ let mut x1599: fiat_p384_scalar_u1 = 0;
+ let (x1598, x1599) = fiat_p384_scalar_addcarryx_u32(0x0, x1523, x1573);
+ let mut x1600: u32 = 0;
+ let mut x1601: fiat_p384_scalar_u1 = 0;
+ let (x1600, x1601) = fiat_p384_scalar_addcarryx_u32(x1599, x1525, x1575);
+ let mut x1602: u32 = 0;
+ let mut x1603: fiat_p384_scalar_u1 = 0;
+ let (x1602, x1603) = fiat_p384_scalar_addcarryx_u32(x1601, x1527, x1577);
+ let mut x1604: u32 = 0;
+ let mut x1605: fiat_p384_scalar_u1 = 0;
+ let (x1604, x1605) = fiat_p384_scalar_addcarryx_u32(x1603, x1529, x1579);
+ let mut x1606: u32 = 0;
+ let mut x1607: fiat_p384_scalar_u1 = 0;
+ let (x1606, x1607) = fiat_p384_scalar_addcarryx_u32(x1605, x1531, x1581);
+ let mut x1608: u32 = 0;
+ let mut x1609: fiat_p384_scalar_u1 = 0;
+ let (x1608, x1609) = fiat_p384_scalar_addcarryx_u32(x1607, x1533, x1583);
+ let mut x1610: u32 = 0;
+ let mut x1611: fiat_p384_scalar_u1 = 0;
+ let (x1610, x1611) = fiat_p384_scalar_addcarryx_u32(x1609, x1535, x1585);
+ let mut x1612: u32 = 0;
+ let mut x1613: fiat_p384_scalar_u1 = 0;
+ let (x1612, x1613) = fiat_p384_scalar_addcarryx_u32(x1611, x1537, x1587);
+ let mut x1614: u32 = 0;
+ let mut x1615: fiat_p384_scalar_u1 = 0;
+ let (x1614, x1615) = fiat_p384_scalar_addcarryx_u32(x1613, x1539, x1589);
+ let mut x1616: u32 = 0;
+ let mut x1617: fiat_p384_scalar_u1 = 0;
+ let (x1616, x1617) = fiat_p384_scalar_addcarryx_u32(x1615, x1541, x1591);
+ let mut x1618: u32 = 0;
+ let mut x1619: fiat_p384_scalar_u1 = 0;
+ let (x1618, x1619) = fiat_p384_scalar_addcarryx_u32(x1617, x1543, x1593);
+ let mut x1620: u32 = 0;
+ let mut x1621: fiat_p384_scalar_u1 = 0;
+ let (x1620, x1621) = fiat_p384_scalar_addcarryx_u32(x1619, x1545, x1595);
+ let mut x1622: u32 = 0;
+ let mut x1623: fiat_p384_scalar_u1 = 0;
+ let (x1622, x1623) = fiat_p384_scalar_addcarryx_u32(x1621, x1547, x1597);
+ let x1624: u32 = ((x1623 as u32) + (x1548 as u32));
+ let mut x1625: u32 = 0;
+ let mut x1626: u32 = 0;
+ let (x1625, x1626) = fiat_p384_scalar_mulx_u32(x11, (arg2[11]));
+ let mut x1627: u32 = 0;
+ let mut x1628: u32 = 0;
+ let (x1627, x1628) = fiat_p384_scalar_mulx_u32(x11, (arg2[10]));
+ let mut x1629: u32 = 0;
+ let mut x1630: u32 = 0;
+ let (x1629, x1630) = fiat_p384_scalar_mulx_u32(x11, (arg2[9]));
+ let mut x1631: u32 = 0;
+ let mut x1632: u32 = 0;
+ let (x1631, x1632) = fiat_p384_scalar_mulx_u32(x11, (arg2[8]));
+ let mut x1633: u32 = 0;
+ let mut x1634: u32 = 0;
+ let (x1633, x1634) = fiat_p384_scalar_mulx_u32(x11, (arg2[7]));
+ let mut x1635: u32 = 0;
+ let mut x1636: u32 = 0;
+ let (x1635, x1636) = fiat_p384_scalar_mulx_u32(x11, (arg2[6]));
+ let mut x1637: u32 = 0;
+ let mut x1638: u32 = 0;
+ let (x1637, x1638) = fiat_p384_scalar_mulx_u32(x11, (arg2[5]));
+ let mut x1639: u32 = 0;
+ let mut x1640: u32 = 0;
+ let (x1639, x1640) = fiat_p384_scalar_mulx_u32(x11, (arg2[4]));
+ let mut x1641: u32 = 0;
+ let mut x1642: u32 = 0;
+ let (x1641, x1642) = fiat_p384_scalar_mulx_u32(x11, (arg2[3]));
+ let mut x1643: u32 = 0;
+ let mut x1644: u32 = 0;
+ let (x1643, x1644) = fiat_p384_scalar_mulx_u32(x11, (arg2[2]));
+ let mut x1645: u32 = 0;
+ let mut x1646: u32 = 0;
+ let (x1645, x1646) = fiat_p384_scalar_mulx_u32(x11, (arg2[1]));
+ let mut x1647: u32 = 0;
+ let mut x1648: u32 = 0;
+ let (x1647, x1648) = fiat_p384_scalar_mulx_u32(x11, (arg2[0]));
+ let mut x1649: u32 = 0;
+ let mut x1650: fiat_p384_scalar_u1 = 0;
+ let (x1649, x1650) = fiat_p384_scalar_addcarryx_u32(0x0, x1648, x1645);
+ let mut x1651: u32 = 0;
+ let mut x1652: fiat_p384_scalar_u1 = 0;
+ let (x1651, x1652) = fiat_p384_scalar_addcarryx_u32(x1650, x1646, x1643);
+ let mut x1653: u32 = 0;
+ let mut x1654: fiat_p384_scalar_u1 = 0;
+ let (x1653, x1654) = fiat_p384_scalar_addcarryx_u32(x1652, x1644, x1641);
+ let mut x1655: u32 = 0;
+ let mut x1656: fiat_p384_scalar_u1 = 0;
+ let (x1655, x1656) = fiat_p384_scalar_addcarryx_u32(x1654, x1642, x1639);
+ let mut x1657: u32 = 0;
+ let mut x1658: fiat_p384_scalar_u1 = 0;
+ let (x1657, x1658) = fiat_p384_scalar_addcarryx_u32(x1656, x1640, x1637);
+ let mut x1659: u32 = 0;
+ let mut x1660: fiat_p384_scalar_u1 = 0;
+ let (x1659, x1660) = fiat_p384_scalar_addcarryx_u32(x1658, x1638, x1635);
+ let mut x1661: u32 = 0;
+ let mut x1662: fiat_p384_scalar_u1 = 0;
+ let (x1661, x1662) = fiat_p384_scalar_addcarryx_u32(x1660, x1636, x1633);
+ let mut x1663: u32 = 0;
+ let mut x1664: fiat_p384_scalar_u1 = 0;
+ let (x1663, x1664) = fiat_p384_scalar_addcarryx_u32(x1662, x1634, x1631);
+ let mut x1665: u32 = 0;
+ let mut x1666: fiat_p384_scalar_u1 = 0;
+ let (x1665, x1666) = fiat_p384_scalar_addcarryx_u32(x1664, x1632, x1629);
+ let mut x1667: u32 = 0;
+ let mut x1668: fiat_p384_scalar_u1 = 0;
+ let (x1667, x1668) = fiat_p384_scalar_addcarryx_u32(x1666, x1630, x1627);
+ let mut x1669: u32 = 0;
+ let mut x1670: fiat_p384_scalar_u1 = 0;
+ let (x1669, x1670) = fiat_p384_scalar_addcarryx_u32(x1668, x1628, x1625);
+ let x1671: u32 = ((x1670 as u32) + x1626);
+ let mut x1672: u32 = 0;
+ let mut x1673: fiat_p384_scalar_u1 = 0;
+ let (x1672, x1673) = fiat_p384_scalar_addcarryx_u32(0x0, x1600, x1647);
+ let mut x1674: u32 = 0;
+ let mut x1675: fiat_p384_scalar_u1 = 0;
+ let (x1674, x1675) = fiat_p384_scalar_addcarryx_u32(x1673, x1602, x1649);
+ let mut x1676: u32 = 0;
+ let mut x1677: fiat_p384_scalar_u1 = 0;
+ let (x1676, x1677) = fiat_p384_scalar_addcarryx_u32(x1675, x1604, x1651);
+ let mut x1678: u32 = 0;
+ let mut x1679: fiat_p384_scalar_u1 = 0;
+ let (x1678, x1679) = fiat_p384_scalar_addcarryx_u32(x1677, x1606, x1653);
+ let mut x1680: u32 = 0;
+ let mut x1681: fiat_p384_scalar_u1 = 0;
+ let (x1680, x1681) = fiat_p384_scalar_addcarryx_u32(x1679, x1608, x1655);
+ let mut x1682: u32 = 0;
+ let mut x1683: fiat_p384_scalar_u1 = 0;
+ let (x1682, x1683) = fiat_p384_scalar_addcarryx_u32(x1681, x1610, x1657);
+ let mut x1684: u32 = 0;
+ let mut x1685: fiat_p384_scalar_u1 = 0;
+ let (x1684, x1685) = fiat_p384_scalar_addcarryx_u32(x1683, x1612, x1659);
+ let mut x1686: u32 = 0;
+ let mut x1687: fiat_p384_scalar_u1 = 0;
+ let (x1686, x1687) = fiat_p384_scalar_addcarryx_u32(x1685, x1614, x1661);
+ let mut x1688: u32 = 0;
+ let mut x1689: fiat_p384_scalar_u1 = 0;
+ let (x1688, x1689) = fiat_p384_scalar_addcarryx_u32(x1687, x1616, x1663);
+ let mut x1690: u32 = 0;
+ let mut x1691: fiat_p384_scalar_u1 = 0;
+ let (x1690, x1691) = fiat_p384_scalar_addcarryx_u32(x1689, x1618, x1665);
+ let mut x1692: u32 = 0;
+ let mut x1693: fiat_p384_scalar_u1 = 0;
+ let (x1692, x1693) = fiat_p384_scalar_addcarryx_u32(x1691, x1620, x1667);
+ let mut x1694: u32 = 0;
+ let mut x1695: fiat_p384_scalar_u1 = 0;
+ let (x1694, x1695) = fiat_p384_scalar_addcarryx_u32(x1693, x1622, x1669);
+ let mut x1696: u32 = 0;
+ let mut x1697: fiat_p384_scalar_u1 = 0;
+ let (x1696, x1697) = fiat_p384_scalar_addcarryx_u32(x1695, x1624, x1671);
+ let mut x1698: u32 = 0;
+ let mut x1699: u32 = 0;
+ let (x1698, x1699) = fiat_p384_scalar_mulx_u32(x1672, 0xe88fdc45);
+ let mut x1700: u32 = 0;
+ let mut x1701: u32 = 0;
+ let (x1700, x1701) = fiat_p384_scalar_mulx_u32(x1698, 0xffffffff);
+ let mut x1702: u32 = 0;
+ let mut x1703: u32 = 0;
+ let (x1702, x1703) = fiat_p384_scalar_mulx_u32(x1698, 0xffffffff);
+ let mut x1704: u32 = 0;
+ let mut x1705: u32 = 0;
+ let (x1704, x1705) = fiat_p384_scalar_mulx_u32(x1698, 0xffffffff);
+ let mut x1706: u32 = 0;
+ let mut x1707: u32 = 0;
+ let (x1706, x1707) = fiat_p384_scalar_mulx_u32(x1698, 0xffffffff);
+ let mut x1708: u32 = 0;
+ let mut x1709: u32 = 0;
+ let (x1708, x1709) = fiat_p384_scalar_mulx_u32(x1698, 0xffffffff);
+ let mut x1710: u32 = 0;
+ let mut x1711: u32 = 0;
+ let (x1710, x1711) = fiat_p384_scalar_mulx_u32(x1698, 0xffffffff);
+ let mut x1712: u32 = 0;
+ let mut x1713: u32 = 0;
+ let (x1712, x1713) = fiat_p384_scalar_mulx_u32(x1698, 0xc7634d81);
+ let mut x1714: u32 = 0;
+ let mut x1715: u32 = 0;
+ let (x1714, x1715) = fiat_p384_scalar_mulx_u32(x1698, 0xf4372ddf);
+ let mut x1716: u32 = 0;
+ let mut x1717: u32 = 0;
+ let (x1716, x1717) = fiat_p384_scalar_mulx_u32(x1698, 0x581a0db2);
+ let mut x1718: u32 = 0;
+ let mut x1719: u32 = 0;
+ let (x1718, x1719) = fiat_p384_scalar_mulx_u32(x1698, 0x48b0a77a);
+ let mut x1720: u32 = 0;
+ let mut x1721: u32 = 0;
+ let (x1720, x1721) = fiat_p384_scalar_mulx_u32(x1698, 0xecec196a);
+ let mut x1722: u32 = 0;
+ let mut x1723: u32 = 0;
+ let (x1722, x1723) = fiat_p384_scalar_mulx_u32(x1698, 0xccc52973);
+ let mut x1724: u32 = 0;
+ let mut x1725: fiat_p384_scalar_u1 = 0;
+ let (x1724, x1725) = fiat_p384_scalar_addcarryx_u32(0x0, x1723, x1720);
+ let mut x1726: u32 = 0;
+ let mut x1727: fiat_p384_scalar_u1 = 0;
+ let (x1726, x1727) = fiat_p384_scalar_addcarryx_u32(x1725, x1721, x1718);
+ let mut x1728: u32 = 0;
+ let mut x1729: fiat_p384_scalar_u1 = 0;
+ let (x1728, x1729) = fiat_p384_scalar_addcarryx_u32(x1727, x1719, x1716);
+ let mut x1730: u32 = 0;
+ let mut x1731: fiat_p384_scalar_u1 = 0;
+ let (x1730, x1731) = fiat_p384_scalar_addcarryx_u32(x1729, x1717, x1714);
+ let mut x1732: u32 = 0;
+ let mut x1733: fiat_p384_scalar_u1 = 0;
+ let (x1732, x1733) = fiat_p384_scalar_addcarryx_u32(x1731, x1715, x1712);
+ let mut x1734: u32 = 0;
+ let mut x1735: fiat_p384_scalar_u1 = 0;
+ let (x1734, x1735) = fiat_p384_scalar_addcarryx_u32(x1733, x1713, x1710);
+ let mut x1736: u32 = 0;
+ let mut x1737: fiat_p384_scalar_u1 = 0;
+ let (x1736, x1737) = fiat_p384_scalar_addcarryx_u32(x1735, x1711, x1708);
+ let mut x1738: u32 = 0;
+ let mut x1739: fiat_p384_scalar_u1 = 0;
+ let (x1738, x1739) = fiat_p384_scalar_addcarryx_u32(x1737, x1709, x1706);
+ let mut x1740: u32 = 0;
+ let mut x1741: fiat_p384_scalar_u1 = 0;
+ let (x1740, x1741) = fiat_p384_scalar_addcarryx_u32(x1739, x1707, x1704);
+ let mut x1742: u32 = 0;
+ let mut x1743: fiat_p384_scalar_u1 = 0;
+ let (x1742, x1743) = fiat_p384_scalar_addcarryx_u32(x1741, x1705, x1702);
+ let mut x1744: u32 = 0;
+ let mut x1745: fiat_p384_scalar_u1 = 0;
+ let (x1744, x1745) = fiat_p384_scalar_addcarryx_u32(x1743, x1703, x1700);
+ let x1746: u32 = ((x1745 as u32) + x1701);
+ let mut x1747: u32 = 0;
+ let mut x1748: fiat_p384_scalar_u1 = 0;
+ let (x1747, x1748) = fiat_p384_scalar_addcarryx_u32(0x0, x1672, x1722);
+ let mut x1749: u32 = 0;
+ let mut x1750: fiat_p384_scalar_u1 = 0;
+ let (x1749, x1750) = fiat_p384_scalar_addcarryx_u32(x1748, x1674, x1724);
+ let mut x1751: u32 = 0;
+ let mut x1752: fiat_p384_scalar_u1 = 0;
+ let (x1751, x1752) = fiat_p384_scalar_addcarryx_u32(x1750, x1676, x1726);
+ let mut x1753: u32 = 0;
+ let mut x1754: fiat_p384_scalar_u1 = 0;
+ let (x1753, x1754) = fiat_p384_scalar_addcarryx_u32(x1752, x1678, x1728);
+ let mut x1755: u32 = 0;
+ let mut x1756: fiat_p384_scalar_u1 = 0;
+ let (x1755, x1756) = fiat_p384_scalar_addcarryx_u32(x1754, x1680, x1730);
+ let mut x1757: u32 = 0;
+ let mut x1758: fiat_p384_scalar_u1 = 0;
+ let (x1757, x1758) = fiat_p384_scalar_addcarryx_u32(x1756, x1682, x1732);
+ let mut x1759: u32 = 0;
+ let mut x1760: fiat_p384_scalar_u1 = 0;
+ let (x1759, x1760) = fiat_p384_scalar_addcarryx_u32(x1758, x1684, x1734);
+ let mut x1761: u32 = 0;
+ let mut x1762: fiat_p384_scalar_u1 = 0;
+ let (x1761, x1762) = fiat_p384_scalar_addcarryx_u32(x1760, x1686, x1736);
+ let mut x1763: u32 = 0;
+ let mut x1764: fiat_p384_scalar_u1 = 0;
+ let (x1763, x1764) = fiat_p384_scalar_addcarryx_u32(x1762, x1688, x1738);
+ let mut x1765: u32 = 0;
+ let mut x1766: fiat_p384_scalar_u1 = 0;
+ let (x1765, x1766) = fiat_p384_scalar_addcarryx_u32(x1764, x1690, x1740);
+ let mut x1767: u32 = 0;
+ let mut x1768: fiat_p384_scalar_u1 = 0;
+ let (x1767, x1768) = fiat_p384_scalar_addcarryx_u32(x1766, x1692, x1742);
+ let mut x1769: u32 = 0;
+ let mut x1770: fiat_p384_scalar_u1 = 0;
+ let (x1769, x1770) = fiat_p384_scalar_addcarryx_u32(x1768, x1694, x1744);
+ let mut x1771: u32 = 0;
+ let mut x1772: fiat_p384_scalar_u1 = 0;
+ let (x1771, x1772) = fiat_p384_scalar_addcarryx_u32(x1770, x1696, x1746);
+ let x1773: u32 = ((x1772 as u32) + (x1697 as u32));
+ let mut x1774: u32 = 0;
+ let mut x1775: fiat_p384_scalar_u1 = 0;
+ let (x1774, x1775) = fiat_p384_scalar_subborrowx_u32(0x0, x1749, 0xccc52973);
+ let mut x1776: u32 = 0;
+ let mut x1777: fiat_p384_scalar_u1 = 0;
+ let (x1776, x1777) = fiat_p384_scalar_subborrowx_u32(x1775, x1751, 0xecec196a);
+ let mut x1778: u32 = 0;
+ let mut x1779: fiat_p384_scalar_u1 = 0;
+ let (x1778, x1779) = fiat_p384_scalar_subborrowx_u32(x1777, x1753, 0x48b0a77a);
+ let mut x1780: u32 = 0;
+ let mut x1781: fiat_p384_scalar_u1 = 0;
+ let (x1780, x1781) = fiat_p384_scalar_subborrowx_u32(x1779, x1755, 0x581a0db2);
+ let mut x1782: u32 = 0;
+ let mut x1783: fiat_p384_scalar_u1 = 0;
+ let (x1782, x1783) = fiat_p384_scalar_subborrowx_u32(x1781, x1757, 0xf4372ddf);
+ let mut x1784: u32 = 0;
+ let mut x1785: fiat_p384_scalar_u1 = 0;
+ let (x1784, x1785) = fiat_p384_scalar_subborrowx_u32(x1783, x1759, 0xc7634d81);
+ let mut x1786: u32 = 0;
+ let mut x1787: fiat_p384_scalar_u1 = 0;
+ let (x1786, x1787) = fiat_p384_scalar_subborrowx_u32(x1785, x1761, 0xffffffff);
+ let mut x1788: u32 = 0;
+ let mut x1789: fiat_p384_scalar_u1 = 0;
+ let (x1788, x1789) = fiat_p384_scalar_subborrowx_u32(x1787, x1763, 0xffffffff);
+ let mut x1790: u32 = 0;
+ let mut x1791: fiat_p384_scalar_u1 = 0;
+ let (x1790, x1791) = fiat_p384_scalar_subborrowx_u32(x1789, x1765, 0xffffffff);
+ let mut x1792: u32 = 0;
+ let mut x1793: fiat_p384_scalar_u1 = 0;
+ let (x1792, x1793) = fiat_p384_scalar_subborrowx_u32(x1791, x1767, 0xffffffff);
+ let mut x1794: u32 = 0;
+ let mut x1795: fiat_p384_scalar_u1 = 0;
+ let (x1794, x1795) = fiat_p384_scalar_subborrowx_u32(x1793, x1769, 0xffffffff);
+ let mut x1796: u32 = 0;
+ let mut x1797: fiat_p384_scalar_u1 = 0;
+ let (x1796, x1797) = fiat_p384_scalar_subborrowx_u32(x1795, x1771, 0xffffffff);
+ let mut x1798: u32 = 0;
+ let mut x1799: fiat_p384_scalar_u1 = 0;
+ let (x1798, x1799) = fiat_p384_scalar_subborrowx_u32(x1797, x1773, (0x0 as u32));
+ let mut x1800: u32 = 0;
+ let (x1800) = fiat_p384_scalar_cmovznz_u32(x1799, x1774, x1749);
+ let mut x1801: u32 = 0;
+ let (x1801) = fiat_p384_scalar_cmovznz_u32(x1799, x1776, x1751);
+ let mut x1802: u32 = 0;
+ let (x1802) = fiat_p384_scalar_cmovznz_u32(x1799, x1778, x1753);
+ let mut x1803: u32 = 0;
+ let (x1803) = fiat_p384_scalar_cmovznz_u32(x1799, x1780, x1755);
+ let mut x1804: u32 = 0;
+ let (x1804) = fiat_p384_scalar_cmovznz_u32(x1799, x1782, x1757);
+ let mut x1805: u32 = 0;
+ let (x1805) = fiat_p384_scalar_cmovznz_u32(x1799, x1784, x1759);
+ let mut x1806: u32 = 0;
+ let (x1806) = fiat_p384_scalar_cmovznz_u32(x1799, x1786, x1761);
+ let mut x1807: u32 = 0;
+ let (x1807) = fiat_p384_scalar_cmovznz_u32(x1799, x1788, x1763);
+ let mut x1808: u32 = 0;
+ let (x1808) = fiat_p384_scalar_cmovznz_u32(x1799, x1790, x1765);
+ let mut x1809: u32 = 0;
+ let (x1809) = fiat_p384_scalar_cmovznz_u32(x1799, x1792, x1767);
+ let mut x1810: u32 = 0;
+ let (x1810) = fiat_p384_scalar_cmovznz_u32(x1799, x1794, x1769);
+ let mut x1811: u32 = 0;
+ let (x1811) = fiat_p384_scalar_cmovznz_u32(x1799, x1796, x1771);
+ out1[0] = x1800;
+ out1[1] = x1801;
+ out1[2] = x1802;
+ out1[3] = x1803;
+ out1[4] = x1804;
+ out1[5] = x1805;
+ out1[6] = x1806;
+ out1[7] = x1807;
+ out1[8] = x1808;
+ out1[9] = x1809;
+ out1[10] = x1810;
+ out1[11] = x1811;
+ out1
+}
+#[doc = " The function fiat_p384_scalar_square squares a field element in the Montgomery domain."]
+#[doc = ""]
+#[doc = " Preconditions:"]
+#[doc = " 0 ≤ eval arg1 < m"]
+#[doc = " Postconditions:"]
+#[doc = " eval (from_montgomery out1) mod m = (eval (from_montgomery arg1) * eval (from_montgomery arg1)) mod m"]
+#[doc = " 0 ≤ eval out1 < m"]
+#[doc = ""]
+#[inline]
+pub const fn fiat_p384_scalar_square(
+ arg1: &fiat_p384_scalar_montgomery_domain_field_element,
+) -> fiat_p384_scalar_montgomery_domain_field_element {
+ let mut out1: fiat_p384_scalar_montgomery_domain_field_element = [0; 12];
+ let x1: u32 = (arg1[1]);
+ let x2: u32 = (arg1[2]);
+ let x3: u32 = (arg1[3]);
+ let x4: u32 = (arg1[4]);
+ let x5: u32 = (arg1[5]);
+ let x6: u32 = (arg1[6]);
+ let x7: u32 = (arg1[7]);
+ let x8: u32 = (arg1[8]);
+ let x9: u32 = (arg1[9]);
+ let x10: u32 = (arg1[10]);
+ let x11: u32 = (arg1[11]);
+ let x12: u32 = (arg1[0]);
+ let mut x13: u32 = 0;
+ let mut x14: u32 = 0;
+ let (x13, x14) = fiat_p384_scalar_mulx_u32(x12, (arg1[11]));
+ let mut x15: u32 = 0;
+ let mut x16: u32 = 0;
+ let (x15, x16) = fiat_p384_scalar_mulx_u32(x12, (arg1[10]));
+ let mut x17: u32 = 0;
+ let mut x18: u32 = 0;
+ let (x17, x18) = fiat_p384_scalar_mulx_u32(x12, (arg1[9]));
+ let mut x19: u32 = 0;
+ let mut x20: u32 = 0;
+ let (x19, x20) = fiat_p384_scalar_mulx_u32(x12, (arg1[8]));
+ let mut x21: u32 = 0;
+ let mut x22: u32 = 0;
+ let (x21, x22) = fiat_p384_scalar_mulx_u32(x12, (arg1[7]));
+ let mut x23: u32 = 0;
+ let mut x24: u32 = 0;
+ let (x23, x24) = fiat_p384_scalar_mulx_u32(x12, (arg1[6]));
+ let mut x25: u32 = 0;
+ let mut x26: u32 = 0;
+ let (x25, x26) = fiat_p384_scalar_mulx_u32(x12, (arg1[5]));
+ let mut x27: u32 = 0;
+ let mut x28: u32 = 0;
+ let (x27, x28) = fiat_p384_scalar_mulx_u32(x12, (arg1[4]));
+ let mut x29: u32 = 0;
+ let mut x30: u32 = 0;
+ let (x29, x30) = fiat_p384_scalar_mulx_u32(x12, (arg1[3]));
+ let mut x31: u32 = 0;
+ let mut x32: u32 = 0;
+ let (x31, x32) = fiat_p384_scalar_mulx_u32(x12, (arg1[2]));
+ let mut x33: u32 = 0;
+ let mut x34: u32 = 0;
+ let (x33, x34) = fiat_p384_scalar_mulx_u32(x12, (arg1[1]));
+ let mut x35: u32 = 0;
+ let mut x36: u32 = 0;
+ let (x35, x36) = fiat_p384_scalar_mulx_u32(x12, (arg1[0]));
+ let mut x37: u32 = 0;
+ let mut x38: fiat_p384_scalar_u1 = 0;
+ let (x37, x38) = fiat_p384_scalar_addcarryx_u32(0x0, x36, x33);
+ let mut x39: u32 = 0;
+ let mut x40: fiat_p384_scalar_u1 = 0;
+ let (x39, x40) = fiat_p384_scalar_addcarryx_u32(x38, x34, x31);
+ let mut x41: u32 = 0;
+ let mut x42: fiat_p384_scalar_u1 = 0;
+ let (x41, x42) = fiat_p384_scalar_addcarryx_u32(x40, x32, x29);
+ let mut x43: u32 = 0;
+ let mut x44: fiat_p384_scalar_u1 = 0;
+ let (x43, x44) = fiat_p384_scalar_addcarryx_u32(x42, x30, x27);
+ let mut x45: u32 = 0;
+ let mut x46: fiat_p384_scalar_u1 = 0;
+ let (x45, x46) = fiat_p384_scalar_addcarryx_u32(x44, x28, x25);
+ let mut x47: u32 = 0;
+ let mut x48: fiat_p384_scalar_u1 = 0;
+ let (x47, x48) = fiat_p384_scalar_addcarryx_u32(x46, x26, x23);
+ let mut x49: u32 = 0;
+ let mut x50: fiat_p384_scalar_u1 = 0;
+ let (x49, x50) = fiat_p384_scalar_addcarryx_u32(x48, x24, x21);
+ let mut x51: u32 = 0;
+ let mut x52: fiat_p384_scalar_u1 = 0;
+ let (x51, x52) = fiat_p384_scalar_addcarryx_u32(x50, x22, x19);
+ let mut x53: u32 = 0;
+ let mut x54: fiat_p384_scalar_u1 = 0;
+ let (x53, x54) = fiat_p384_scalar_addcarryx_u32(x52, x20, x17);
+ let mut x55: u32 = 0;
+ let mut x56: fiat_p384_scalar_u1 = 0;
+ let (x55, x56) = fiat_p384_scalar_addcarryx_u32(x54, x18, x15);
+ let mut x57: u32 = 0;
+ let mut x58: fiat_p384_scalar_u1 = 0;
+ let (x57, x58) = fiat_p384_scalar_addcarryx_u32(x56, x16, x13);
+ let x59: u32 = ((x58 as u32) + x14);
+ let mut x60: u32 = 0;
+ let mut x61: u32 = 0;
+ let (x60, x61) = fiat_p384_scalar_mulx_u32(x35, 0xe88fdc45);
+ let mut x62: u32 = 0;
+ let mut x63: u32 = 0;
+ let (x62, x63) = fiat_p384_scalar_mulx_u32(x60, 0xffffffff);
+ let mut x64: u32 = 0;
+ let mut x65: u32 = 0;
+ let (x64, x65) = fiat_p384_scalar_mulx_u32(x60, 0xffffffff);
+ let mut x66: u32 = 0;
+ let mut x67: u32 = 0;
+ let (x66, x67) = fiat_p384_scalar_mulx_u32(x60, 0xffffffff);
+ let mut x68: u32 = 0;
+ let mut x69: u32 = 0;
+ let (x68, x69) = fiat_p384_scalar_mulx_u32(x60, 0xffffffff);
+ let mut x70: u32 = 0;
+ let mut x71: u32 = 0;
+ let (x70, x71) = fiat_p384_scalar_mulx_u32(x60, 0xffffffff);
+ let mut x72: u32 = 0;
+ let mut x73: u32 = 0;
+ let (x72, x73) = fiat_p384_scalar_mulx_u32(x60, 0xffffffff);
+ let mut x74: u32 = 0;
+ let mut x75: u32 = 0;
+ let (x74, x75) = fiat_p384_scalar_mulx_u32(x60, 0xc7634d81);
+ let mut x76: u32 = 0;
+ let mut x77: u32 = 0;
+ let (x76, x77) = fiat_p384_scalar_mulx_u32(x60, 0xf4372ddf);
+ let mut x78: u32 = 0;
+ let mut x79: u32 = 0;
+ let (x78, x79) = fiat_p384_scalar_mulx_u32(x60, 0x581a0db2);
+ let mut x80: u32 = 0;
+ let mut x81: u32 = 0;
+ let (x80, x81) = fiat_p384_scalar_mulx_u32(x60, 0x48b0a77a);
+ let mut x82: u32 = 0;
+ let mut x83: u32 = 0;
+ let (x82, x83) = fiat_p384_scalar_mulx_u32(x60, 0xecec196a);
+ let mut x84: u32 = 0;
+ let mut x85: u32 = 0;
+ let (x84, x85) = fiat_p384_scalar_mulx_u32(x60, 0xccc52973);
+ let mut x86: u32 = 0;
+ let mut x87: fiat_p384_scalar_u1 = 0;
+ let (x86, x87) = fiat_p384_scalar_addcarryx_u32(0x0, x85, x82);
+ let mut x88: u32 = 0;
+ let mut x89: fiat_p384_scalar_u1 = 0;
+ let (x88, x89) = fiat_p384_scalar_addcarryx_u32(x87, x83, x80);
+ let mut x90: u32 = 0;
+ let mut x91: fiat_p384_scalar_u1 = 0;
+ let (x90, x91) = fiat_p384_scalar_addcarryx_u32(x89, x81, x78);
+ let mut x92: u32 = 0;
+ let mut x93: fiat_p384_scalar_u1 = 0;
+ let (x92, x93) = fiat_p384_scalar_addcarryx_u32(x91, x79, x76);
+ let mut x94: u32 = 0;
+ let mut x95: fiat_p384_scalar_u1 = 0;
+ let (x94, x95) = fiat_p384_scalar_addcarryx_u32(x93, x77, x74);
+ let mut x96: u32 = 0;
+ let mut x97: fiat_p384_scalar_u1 = 0;
+ let (x96, x97) = fiat_p384_scalar_addcarryx_u32(x95, x75, x72);
+ let mut x98: u32 = 0;
+ let mut x99: fiat_p384_scalar_u1 = 0;
+ let (x98, x99) = fiat_p384_scalar_addcarryx_u32(x97, x73, x70);
+ let mut x100: u32 = 0;
+ let mut x101: fiat_p384_scalar_u1 = 0;
+ let (x100, x101) = fiat_p384_scalar_addcarryx_u32(x99, x71, x68);
+ let mut x102: u32 = 0;
+ let mut x103: fiat_p384_scalar_u1 = 0;
+ let (x102, x103) = fiat_p384_scalar_addcarryx_u32(x101, x69, x66);
+ let mut x104: u32 = 0;
+ let mut x105: fiat_p384_scalar_u1 = 0;
+ let (x104, x105) = fiat_p384_scalar_addcarryx_u32(x103, x67, x64);
+ let mut x106: u32 = 0;
+ let mut x107: fiat_p384_scalar_u1 = 0;
+ let (x106, x107) = fiat_p384_scalar_addcarryx_u32(x105, x65, x62);
+ let x108: u32 = ((x107 as u32) + x63);
+ let mut x109: u32 = 0;
+ let mut x110: fiat_p384_scalar_u1 = 0;
+ let (x109, x110) = fiat_p384_scalar_addcarryx_u32(0x0, x35, x84);
+ let mut x111: u32 = 0;
+ let mut x112: fiat_p384_scalar_u1 = 0;
+ let (x111, x112) = fiat_p384_scalar_addcarryx_u32(x110, x37, x86);
+ let mut x113: u32 = 0;
+ let mut x114: fiat_p384_scalar_u1 = 0;
+ let (x113, x114) = fiat_p384_scalar_addcarryx_u32(x112, x39, x88);
+ let mut x115: u32 = 0;
+ let mut x116: fiat_p384_scalar_u1 = 0;
+ let (x115, x116) = fiat_p384_scalar_addcarryx_u32(x114, x41, x90);
+ let mut x117: u32 = 0;
+ let mut x118: fiat_p384_scalar_u1 = 0;
+ let (x117, x118) = fiat_p384_scalar_addcarryx_u32(x116, x43, x92);
+ let mut x119: u32 = 0;
+ let mut x120: fiat_p384_scalar_u1 = 0;
+ let (x119, x120) = fiat_p384_scalar_addcarryx_u32(x118, x45, x94);
+ let mut x121: u32 = 0;
+ let mut x122: fiat_p384_scalar_u1 = 0;
+ let (x121, x122) = fiat_p384_scalar_addcarryx_u32(x120, x47, x96);
+ let mut x123: u32 = 0;
+ let mut x124: fiat_p384_scalar_u1 = 0;
+ let (x123, x124) = fiat_p384_scalar_addcarryx_u32(x122, x49, x98);
+ let mut x125: u32 = 0;
+ let mut x126: fiat_p384_scalar_u1 = 0;
+ let (x125, x126) = fiat_p384_scalar_addcarryx_u32(x124, x51, x100);
+ let mut x127: u32 = 0;
+ let mut x128: fiat_p384_scalar_u1 = 0;
+ let (x127, x128) = fiat_p384_scalar_addcarryx_u32(x126, x53, x102);
+ let mut x129: u32 = 0;
+ let mut x130: fiat_p384_scalar_u1 = 0;
+ let (x129, x130) = fiat_p384_scalar_addcarryx_u32(x128, x55, x104);
+ let mut x131: u32 = 0;
+ let mut x132: fiat_p384_scalar_u1 = 0;
+ let (x131, x132) = fiat_p384_scalar_addcarryx_u32(x130, x57, x106);
+ let mut x133: u32 = 0;
+ let mut x134: fiat_p384_scalar_u1 = 0;
+ let (x133, x134) = fiat_p384_scalar_addcarryx_u32(x132, x59, x108);
+ let mut x135: u32 = 0;
+ let mut x136: u32 = 0;
+ let (x135, x136) = fiat_p384_scalar_mulx_u32(x1, (arg1[11]));
+ let mut x137: u32 = 0;
+ let mut x138: u32 = 0;
+ let (x137, x138) = fiat_p384_scalar_mulx_u32(x1, (arg1[10]));
+ let mut x139: u32 = 0;
+ let mut x140: u32 = 0;
+ let (x139, x140) = fiat_p384_scalar_mulx_u32(x1, (arg1[9]));
+ let mut x141: u32 = 0;
+ let mut x142: u32 = 0;
+ let (x141, x142) = fiat_p384_scalar_mulx_u32(x1, (arg1[8]));
+ let mut x143: u32 = 0;
+ let mut x144: u32 = 0;
+ let (x143, x144) = fiat_p384_scalar_mulx_u32(x1, (arg1[7]));
+ let mut x145: u32 = 0;
+ let mut x146: u32 = 0;
+ let (x145, x146) = fiat_p384_scalar_mulx_u32(x1, (arg1[6]));
+ let mut x147: u32 = 0;
+ let mut x148: u32 = 0;
+ let (x147, x148) = fiat_p384_scalar_mulx_u32(x1, (arg1[5]));
+ let mut x149: u32 = 0;
+ let mut x150: u32 = 0;
+ let (x149, x150) = fiat_p384_scalar_mulx_u32(x1, (arg1[4]));
+ let mut x151: u32 = 0;
+ let mut x152: u32 = 0;
+ let (x151, x152) = fiat_p384_scalar_mulx_u32(x1, (arg1[3]));
+ let mut x153: u32 = 0;
+ let mut x154: u32 = 0;
+ let (x153, x154) = fiat_p384_scalar_mulx_u32(x1, (arg1[2]));
+ let mut x155: u32 = 0;
+ let mut x156: u32 = 0;
+ let (x155, x156) = fiat_p384_scalar_mulx_u32(x1, (arg1[1]));
+ let mut x157: u32 = 0;
+ let mut x158: u32 = 0;
+ let (x157, x158) = fiat_p384_scalar_mulx_u32(x1, (arg1[0]));
+ let mut x159: u32 = 0;
+ let mut x160: fiat_p384_scalar_u1 = 0;
+ let (x159, x160) = fiat_p384_scalar_addcarryx_u32(0x0, x158, x155);
+ let mut x161: u32 = 0;
+ let mut x162: fiat_p384_scalar_u1 = 0;
+ let (x161, x162) = fiat_p384_scalar_addcarryx_u32(x160, x156, x153);
+ let mut x163: u32 = 0;
+ let mut x164: fiat_p384_scalar_u1 = 0;
+ let (x163, x164) = fiat_p384_scalar_addcarryx_u32(x162, x154, x151);
+ let mut x165: u32 = 0;
+ let mut x166: fiat_p384_scalar_u1 = 0;
+ let (x165, x166) = fiat_p384_scalar_addcarryx_u32(x164, x152, x149);
+ let mut x167: u32 = 0;
+ let mut x168: fiat_p384_scalar_u1 = 0;
+ let (x167, x168) = fiat_p384_scalar_addcarryx_u32(x166, x150, x147);
+ let mut x169: u32 = 0;
+ let mut x170: fiat_p384_scalar_u1 = 0;
+ let (x169, x170) = fiat_p384_scalar_addcarryx_u32(x168, x148, x145);
+ let mut x171: u32 = 0;
+ let mut x172: fiat_p384_scalar_u1 = 0;
+ let (x171, x172) = fiat_p384_scalar_addcarryx_u32(x170, x146, x143);
+ let mut x173: u32 = 0;
+ let mut x174: fiat_p384_scalar_u1 = 0;
+ let (x173, x174) = fiat_p384_scalar_addcarryx_u32(x172, x144, x141);
+ let mut x175: u32 = 0;
+ let mut x176: fiat_p384_scalar_u1 = 0;
+ let (x175, x176) = fiat_p384_scalar_addcarryx_u32(x174, x142, x139);
+ let mut x177: u32 = 0;
+ let mut x178: fiat_p384_scalar_u1 = 0;
+ let (x177, x178) = fiat_p384_scalar_addcarryx_u32(x176, x140, x137);
+ let mut x179: u32 = 0;
+ let mut x180: fiat_p384_scalar_u1 = 0;
+ let (x179, x180) = fiat_p384_scalar_addcarryx_u32(x178, x138, x135);
+ let x181: u32 = ((x180 as u32) + x136);
+ let mut x182: u32 = 0;
+ let mut x183: fiat_p384_scalar_u1 = 0;
+ let (x182, x183) = fiat_p384_scalar_addcarryx_u32(0x0, x111, x157);
+ let mut x184: u32 = 0;
+ let mut x185: fiat_p384_scalar_u1 = 0;
+ let (x184, x185) = fiat_p384_scalar_addcarryx_u32(x183, x113, x159);
+ let mut x186: u32 = 0;
+ let mut x187: fiat_p384_scalar_u1 = 0;
+ let (x186, x187) = fiat_p384_scalar_addcarryx_u32(x185, x115, x161);
+ let mut x188: u32 = 0;
+ let mut x189: fiat_p384_scalar_u1 = 0;
+ let (x188, x189) = fiat_p384_scalar_addcarryx_u32(x187, x117, x163);
+ let mut x190: u32 = 0;
+ let mut x191: fiat_p384_scalar_u1 = 0;
+ let (x190, x191) = fiat_p384_scalar_addcarryx_u32(x189, x119, x165);
+ let mut x192: u32 = 0;
+ let mut x193: fiat_p384_scalar_u1 = 0;
+ let (x192, x193) = fiat_p384_scalar_addcarryx_u32(x191, x121, x167);
+ let mut x194: u32 = 0;
+ let mut x195: fiat_p384_scalar_u1 = 0;
+ let (x194, x195) = fiat_p384_scalar_addcarryx_u32(x193, x123, x169);
+ let mut x196: u32 = 0;
+ let mut x197: fiat_p384_scalar_u1 = 0;
+ let (x196, x197) = fiat_p384_scalar_addcarryx_u32(x195, x125, x171);
+ let mut x198: u32 = 0;
+ let mut x199: fiat_p384_scalar_u1 = 0;
+ let (x198, x199) = fiat_p384_scalar_addcarryx_u32(x197, x127, x173);
+ let mut x200: u32 = 0;
+ let mut x201: fiat_p384_scalar_u1 = 0;
+ let (x200, x201) = fiat_p384_scalar_addcarryx_u32(x199, x129, x175);
+ let mut x202: u32 = 0;
+ let mut x203: fiat_p384_scalar_u1 = 0;
+ let (x202, x203) = fiat_p384_scalar_addcarryx_u32(x201, x131, x177);
+ let mut x204: u32 = 0;
+ let mut x205: fiat_p384_scalar_u1 = 0;
+ let (x204, x205) = fiat_p384_scalar_addcarryx_u32(x203, x133, x179);
+ let mut x206: u32 = 0;
+ let mut x207: fiat_p384_scalar_u1 = 0;
+ let (x206, x207) = fiat_p384_scalar_addcarryx_u32(x205, (x134 as u32), x181);
+ let mut x208: u32 = 0;
+ let mut x209: u32 = 0;
+ let (x208, x209) = fiat_p384_scalar_mulx_u32(x182, 0xe88fdc45);
+ let mut x210: u32 = 0;
+ let mut x211: u32 = 0;
+ let (x210, x211) = fiat_p384_scalar_mulx_u32(x208, 0xffffffff);
+ let mut x212: u32 = 0;
+ let mut x213: u32 = 0;
+ let (x212, x213) = fiat_p384_scalar_mulx_u32(x208, 0xffffffff);
+ let mut x214: u32 = 0;
+ let mut x215: u32 = 0;
+ let (x214, x215) = fiat_p384_scalar_mulx_u32(x208, 0xffffffff);
+ let mut x216: u32 = 0;
+ let mut x217: u32 = 0;
+ let (x216, x217) = fiat_p384_scalar_mulx_u32(x208, 0xffffffff);
+ let mut x218: u32 = 0;
+ let mut x219: u32 = 0;
+ let (x218, x219) = fiat_p384_scalar_mulx_u32(x208, 0xffffffff);
+ let mut x220: u32 = 0;
+ let mut x221: u32 = 0;
+ let (x220, x221) = fiat_p384_scalar_mulx_u32(x208, 0xffffffff);
+ let mut x222: u32 = 0;
+ let mut x223: u32 = 0;
+ let (x222, x223) = fiat_p384_scalar_mulx_u32(x208, 0xc7634d81);
+ let mut x224: u32 = 0;
+ let mut x225: u32 = 0;
+ let (x224, x225) = fiat_p384_scalar_mulx_u32(x208, 0xf4372ddf);
+ let mut x226: u32 = 0;
+ let mut x227: u32 = 0;
+ let (x226, x227) = fiat_p384_scalar_mulx_u32(x208, 0x581a0db2);
+ let mut x228: u32 = 0;
+ let mut x229: u32 = 0;
+ let (x228, x229) = fiat_p384_scalar_mulx_u32(x208, 0x48b0a77a);
+ let mut x230: u32 = 0;
+ let mut x231: u32 = 0;
+ let (x230, x231) = fiat_p384_scalar_mulx_u32(x208, 0xecec196a);
+ let mut x232: u32 = 0;
+ let mut x233: u32 = 0;
+ let (x232, x233) = fiat_p384_scalar_mulx_u32(x208, 0xccc52973);
+ let mut x234: u32 = 0;
+ let mut x235: fiat_p384_scalar_u1 = 0;
+ let (x234, x235) = fiat_p384_scalar_addcarryx_u32(0x0, x233, x230);
+ let mut x236: u32 = 0;
+ let mut x237: fiat_p384_scalar_u1 = 0;
+ let (x236, x237) = fiat_p384_scalar_addcarryx_u32(x235, x231, x228);
+ let mut x238: u32 = 0;
+ let mut x239: fiat_p384_scalar_u1 = 0;
+ let (x238, x239) = fiat_p384_scalar_addcarryx_u32(x237, x229, x226);
+ let mut x240: u32 = 0;
+ let mut x241: fiat_p384_scalar_u1 = 0;
+ let (x240, x241) = fiat_p384_scalar_addcarryx_u32(x239, x227, x224);
+ let mut x242: u32 = 0;
+ let mut x243: fiat_p384_scalar_u1 = 0;
+ let (x242, x243) = fiat_p384_scalar_addcarryx_u32(x241, x225, x222);
+ let mut x244: u32 = 0;
+ let mut x245: fiat_p384_scalar_u1 = 0;
+ let (x244, x245) = fiat_p384_scalar_addcarryx_u32(x243, x223, x220);
+ let mut x246: u32 = 0;
+ let mut x247: fiat_p384_scalar_u1 = 0;
+ let (x246, x247) = fiat_p384_scalar_addcarryx_u32(x245, x221, x218);
+ let mut x248: u32 = 0;
+ let mut x249: fiat_p384_scalar_u1 = 0;
+ let (x248, x249) = fiat_p384_scalar_addcarryx_u32(x247, x219, x216);
+ let mut x250: u32 = 0;
+ let mut x251: fiat_p384_scalar_u1 = 0;
+ let (x250, x251) = fiat_p384_scalar_addcarryx_u32(x249, x217, x214);
+ let mut x252: u32 = 0;
+ let mut x253: fiat_p384_scalar_u1 = 0;
+ let (x252, x253) = fiat_p384_scalar_addcarryx_u32(x251, x215, x212);
+ let mut x254: u32 = 0;
+ let mut x255: fiat_p384_scalar_u1 = 0;
+ let (x254, x255) = fiat_p384_scalar_addcarryx_u32(x253, x213, x210);
+ let x256: u32 = ((x255 as u32) + x211);
+ let mut x257: u32 = 0;
+ let mut x258: fiat_p384_scalar_u1 = 0;
+ let (x257, x258) = fiat_p384_scalar_addcarryx_u32(0x0, x182, x232);
+ let mut x259: u32 = 0;
+ let mut x260: fiat_p384_scalar_u1 = 0;
+ let (x259, x260) = fiat_p384_scalar_addcarryx_u32(x258, x184, x234);
+ let mut x261: u32 = 0;
+ let mut x262: fiat_p384_scalar_u1 = 0;
+ let (x261, x262) = fiat_p384_scalar_addcarryx_u32(x260, x186, x236);
+ let mut x263: u32 = 0;
+ let mut x264: fiat_p384_scalar_u1 = 0;
+ let (x263, x264) = fiat_p384_scalar_addcarryx_u32(x262, x188, x238);
+ let mut x265: u32 = 0;
+ let mut x266: fiat_p384_scalar_u1 = 0;
+ let (x265, x266) = fiat_p384_scalar_addcarryx_u32(x264, x190, x240);
+ let mut x267: u32 = 0;
+ let mut x268: fiat_p384_scalar_u1 = 0;
+ let (x267, x268) = fiat_p384_scalar_addcarryx_u32(x266, x192, x242);
+ let mut x269: u32 = 0;
+ let mut x270: fiat_p384_scalar_u1 = 0;
+ let (x269, x270) = fiat_p384_scalar_addcarryx_u32(x268, x194, x244);
+ let mut x271: u32 = 0;
+ let mut x272: fiat_p384_scalar_u1 = 0;
+ let (x271, x272) = fiat_p384_scalar_addcarryx_u32(x270, x196, x246);
+ let mut x273: u32 = 0;
+ let mut x274: fiat_p384_scalar_u1 = 0;
+ let (x273, x274) = fiat_p384_scalar_addcarryx_u32(x272, x198, x248);
+ let mut x275: u32 = 0;
+ let mut x276: fiat_p384_scalar_u1 = 0;
+ let (x275, x276) = fiat_p384_scalar_addcarryx_u32(x274, x200, x250);
+ let mut x277: u32 = 0;
+ let mut x278: fiat_p384_scalar_u1 = 0;
+ let (x277, x278) = fiat_p384_scalar_addcarryx_u32(x276, x202, x252);
+ let mut x279: u32 = 0;
+ let mut x280: fiat_p384_scalar_u1 = 0;
+ let (x279, x280) = fiat_p384_scalar_addcarryx_u32(x278, x204, x254);
+ let mut x281: u32 = 0;
+ let mut x282: fiat_p384_scalar_u1 = 0;
+ let (x281, x282) = fiat_p384_scalar_addcarryx_u32(x280, x206, x256);
+ let x283: u32 = ((x282 as u32) + (x207 as u32));
+ let mut x284: u32 = 0;
+ let mut x285: u32 = 0;
+ let (x284, x285) = fiat_p384_scalar_mulx_u32(x2, (arg1[11]));
+ let mut x286: u32 = 0;
+ let mut x287: u32 = 0;
+ let (x286, x287) = fiat_p384_scalar_mulx_u32(x2, (arg1[10]));
+ let mut x288: u32 = 0;
+ let mut x289: u32 = 0;
+ let (x288, x289) = fiat_p384_scalar_mulx_u32(x2, (arg1[9]));
+ let mut x290: u32 = 0;
+ let mut x291: u32 = 0;
+ let (x290, x291) = fiat_p384_scalar_mulx_u32(x2, (arg1[8]));
+ let mut x292: u32 = 0;
+ let mut x293: u32 = 0;
+ let (x292, x293) = fiat_p384_scalar_mulx_u32(x2, (arg1[7]));
+ let mut x294: u32 = 0;
+ let mut x295: u32 = 0;
+ let (x294, x295) = fiat_p384_scalar_mulx_u32(x2, (arg1[6]));
+ let mut x296: u32 = 0;
+ let mut x297: u32 = 0;
+ let (x296, x297) = fiat_p384_scalar_mulx_u32(x2, (arg1[5]));
+ let mut x298: u32 = 0;
+ let mut x299: u32 = 0;
+ let (x298, x299) = fiat_p384_scalar_mulx_u32(x2, (arg1[4]));
+ let mut x300: u32 = 0;
+ let mut x301: u32 = 0;
+ let (x300, x301) = fiat_p384_scalar_mulx_u32(x2, (arg1[3]));
+ let mut x302: u32 = 0;
+ let mut x303: u32 = 0;
+ let (x302, x303) = fiat_p384_scalar_mulx_u32(x2, (arg1[2]));
+ let mut x304: u32 = 0;
+ let mut x305: u32 = 0;
+ let (x304, x305) = fiat_p384_scalar_mulx_u32(x2, (arg1[1]));
+ let mut x306: u32 = 0;
+ let mut x307: u32 = 0;
+ let (x306, x307) = fiat_p384_scalar_mulx_u32(x2, (arg1[0]));
+ let mut x308: u32 = 0;
+ let mut x309: fiat_p384_scalar_u1 = 0;
+ let (x308, x309) = fiat_p384_scalar_addcarryx_u32(0x0, x307, x304);
+ let mut x310: u32 = 0;
+ let mut x311: fiat_p384_scalar_u1 = 0;
+ let (x310, x311) = fiat_p384_scalar_addcarryx_u32(x309, x305, x302);
+ let mut x312: u32 = 0;
+ let mut x313: fiat_p384_scalar_u1 = 0;
+ let (x312, x313) = fiat_p384_scalar_addcarryx_u32(x311, x303, x300);
+ let mut x314: u32 = 0;
+ let mut x315: fiat_p384_scalar_u1 = 0;
+ let (x314, x315) = fiat_p384_scalar_addcarryx_u32(x313, x301, x298);
+ let mut x316: u32 = 0;
+ let mut x317: fiat_p384_scalar_u1 = 0;
+ let (x316, x317) = fiat_p384_scalar_addcarryx_u32(x315, x299, x296);
+ let mut x318: u32 = 0;
+ let mut x319: fiat_p384_scalar_u1 = 0;
+ let (x318, x319) = fiat_p384_scalar_addcarryx_u32(x317, x297, x294);
+ let mut x320: u32 = 0;
+ let mut x321: fiat_p384_scalar_u1 = 0;
+ let (x320, x321) = fiat_p384_scalar_addcarryx_u32(x319, x295, x292);
+ let mut x322: u32 = 0;
+ let mut x323: fiat_p384_scalar_u1 = 0;
+ let (x322, x323) = fiat_p384_scalar_addcarryx_u32(x321, x293, x290);
+ let mut x324: u32 = 0;
+ let mut x325: fiat_p384_scalar_u1 = 0;
+ let (x324, x325) = fiat_p384_scalar_addcarryx_u32(x323, x291, x288);
+ let mut x326: u32 = 0;
+ let mut x327: fiat_p384_scalar_u1 = 0;
+ let (x326, x327) = fiat_p384_scalar_addcarryx_u32(x325, x289, x286);
+ let mut x328: u32 = 0;
+ let mut x329: fiat_p384_scalar_u1 = 0;
+ let (x328, x329) = fiat_p384_scalar_addcarryx_u32(x327, x287, x284);
+ let x330: u32 = ((x329 as u32) + x285);
+ let mut x331: u32 = 0;
+ let mut x332: fiat_p384_scalar_u1 = 0;
+ let (x331, x332) = fiat_p384_scalar_addcarryx_u32(0x0, x259, x306);
+ let mut x333: u32 = 0;
+ let mut x334: fiat_p384_scalar_u1 = 0;
+ let (x333, x334) = fiat_p384_scalar_addcarryx_u32(x332, x261, x308);
+ let mut x335: u32 = 0;
+ let mut x336: fiat_p384_scalar_u1 = 0;
+ let (x335, x336) = fiat_p384_scalar_addcarryx_u32(x334, x263, x310);
+ let mut x337: u32 = 0;
+ let mut x338: fiat_p384_scalar_u1 = 0;
+ let (x337, x338) = fiat_p384_scalar_addcarryx_u32(x336, x265, x312);
+ let mut x339: u32 = 0;
+ let mut x340: fiat_p384_scalar_u1 = 0;
+ let (x339, x340) = fiat_p384_scalar_addcarryx_u32(x338, x267, x314);
+ let mut x341: u32 = 0;
+ let mut x342: fiat_p384_scalar_u1 = 0;
+ let (x341, x342) = fiat_p384_scalar_addcarryx_u32(x340, x269, x316);
+ let mut x343: u32 = 0;
+ let mut x344: fiat_p384_scalar_u1 = 0;
+ let (x343, x344) = fiat_p384_scalar_addcarryx_u32(x342, x271, x318);
+ let mut x345: u32 = 0;
+ let mut x346: fiat_p384_scalar_u1 = 0;
+ let (x345, x346) = fiat_p384_scalar_addcarryx_u32(x344, x273, x320);
+ let mut x347: u32 = 0;
+ let mut x348: fiat_p384_scalar_u1 = 0;
+ let (x347, x348) = fiat_p384_scalar_addcarryx_u32(x346, x275, x322);
+ let mut x349: u32 = 0;
+ let mut x350: fiat_p384_scalar_u1 = 0;
+ let (x349, x350) = fiat_p384_scalar_addcarryx_u32(x348, x277, x324);
+ let mut x351: u32 = 0;
+ let mut x352: fiat_p384_scalar_u1 = 0;
+ let (x351, x352) = fiat_p384_scalar_addcarryx_u32(x350, x279, x326);
+ let mut x353: u32 = 0;
+ let mut x354: fiat_p384_scalar_u1 = 0;
+ let (x353, x354) = fiat_p384_scalar_addcarryx_u32(x352, x281, x328);
+ let mut x355: u32 = 0;
+ let mut x356: fiat_p384_scalar_u1 = 0;
+ let (x355, x356) = fiat_p384_scalar_addcarryx_u32(x354, x283, x330);
+ let mut x357: u32 = 0;
+ let mut x358: u32 = 0;
+ let (x357, x358) = fiat_p384_scalar_mulx_u32(x331, 0xe88fdc45);
+ let mut x359: u32 = 0;
+ let mut x360: u32 = 0;
+ let (x359, x360) = fiat_p384_scalar_mulx_u32(x357, 0xffffffff);
+ let mut x361: u32 = 0;
+ let mut x362: u32 = 0;
+ let (x361, x362) = fiat_p384_scalar_mulx_u32(x357, 0xffffffff);
+ let mut x363: u32 = 0;
+ let mut x364: u32 = 0;
+ let (x363, x364) = fiat_p384_scalar_mulx_u32(x357, 0xffffffff);
+ let mut x365: u32 = 0;
+ let mut x366: u32 = 0;
+ let (x365, x366) = fiat_p384_scalar_mulx_u32(x357, 0xffffffff);
+ let mut x367: u32 = 0;
+ let mut x368: u32 = 0;
+ let (x367, x368) = fiat_p384_scalar_mulx_u32(x357, 0xffffffff);
+ let mut x369: u32 = 0;
+ let mut x370: u32 = 0;
+ let (x369, x370) = fiat_p384_scalar_mulx_u32(x357, 0xffffffff);
+ let mut x371: u32 = 0;
+ let mut x372: u32 = 0;
+ let (x371, x372) = fiat_p384_scalar_mulx_u32(x357, 0xc7634d81);
+ let mut x373: u32 = 0;
+ let mut x374: u32 = 0;
+ let (x373, x374) = fiat_p384_scalar_mulx_u32(x357, 0xf4372ddf);
+ let mut x375: u32 = 0;
+ let mut x376: u32 = 0;
+ let (x375, x376) = fiat_p384_scalar_mulx_u32(x357, 0x581a0db2);
+ let mut x377: u32 = 0;
+ let mut x378: u32 = 0;
+ let (x377, x378) = fiat_p384_scalar_mulx_u32(x357, 0x48b0a77a);
+ let mut x379: u32 = 0;
+ let mut x380: u32 = 0;
+ let (x379, x380) = fiat_p384_scalar_mulx_u32(x357, 0xecec196a);
+ let mut x381: u32 = 0;
+ let mut x382: u32 = 0;
+ let (x381, x382) = fiat_p384_scalar_mulx_u32(x357, 0xccc52973);
+ let mut x383: u32 = 0;
+ let mut x384: fiat_p384_scalar_u1 = 0;
+ let (x383, x384) = fiat_p384_scalar_addcarryx_u32(0x0, x382, x379);
+ let mut x385: u32 = 0;
+ let mut x386: fiat_p384_scalar_u1 = 0;
+ let (x385, x386) = fiat_p384_scalar_addcarryx_u32(x384, x380, x377);
+ let mut x387: u32 = 0;
+ let mut x388: fiat_p384_scalar_u1 = 0;
+ let (x387, x388) = fiat_p384_scalar_addcarryx_u32(x386, x378, x375);
+ let mut x389: u32 = 0;
+ let mut x390: fiat_p384_scalar_u1 = 0;
+ let (x389, x390) = fiat_p384_scalar_addcarryx_u32(x388, x376, x373);
+ let mut x391: u32 = 0;
+ let mut x392: fiat_p384_scalar_u1 = 0;
+ let (x391, x392) = fiat_p384_scalar_addcarryx_u32(x390, x374, x371);
+ let mut x393: u32 = 0;
+ let mut x394: fiat_p384_scalar_u1 = 0;
+ let (x393, x394) = fiat_p384_scalar_addcarryx_u32(x392, x372, x369);
+ let mut x395: u32 = 0;
+ let mut x396: fiat_p384_scalar_u1 = 0;
+ let (x395, x396) = fiat_p384_scalar_addcarryx_u32(x394, x370, x367);
+ let mut x397: u32 = 0;
+ let mut x398: fiat_p384_scalar_u1 = 0;
+ let (x397, x398) = fiat_p384_scalar_addcarryx_u32(x396, x368, x365);
+ let mut x399: u32 = 0;
+ let mut x400: fiat_p384_scalar_u1 = 0;
+ let (x399, x400) = fiat_p384_scalar_addcarryx_u32(x398, x366, x363);
+ let mut x401: u32 = 0;
+ let mut x402: fiat_p384_scalar_u1 = 0;
+ let (x401, x402) = fiat_p384_scalar_addcarryx_u32(x400, x364, x361);
+ let mut x403: u32 = 0;
+ let mut x404: fiat_p384_scalar_u1 = 0;
+ let (x403, x404) = fiat_p384_scalar_addcarryx_u32(x402, x362, x359);
+ let x405: u32 = ((x404 as u32) + x360);
+ let mut x406: u32 = 0;
+ let mut x407: fiat_p384_scalar_u1 = 0;
+ let (x406, x407) = fiat_p384_scalar_addcarryx_u32(0x0, x331, x381);
+ let mut x408: u32 = 0;
+ let mut x409: fiat_p384_scalar_u1 = 0;
+ let (x408, x409) = fiat_p384_scalar_addcarryx_u32(x407, x333, x383);
+ let mut x410: u32 = 0;
+ let mut x411: fiat_p384_scalar_u1 = 0;
+ let (x410, x411) = fiat_p384_scalar_addcarryx_u32(x409, x335, x385);
+ let mut x412: u32 = 0;
+ let mut x413: fiat_p384_scalar_u1 = 0;
+ let (x412, x413) = fiat_p384_scalar_addcarryx_u32(x411, x337, x387);
+ let mut x414: u32 = 0;
+ let mut x415: fiat_p384_scalar_u1 = 0;
+ let (x414, x415) = fiat_p384_scalar_addcarryx_u32(x413, x339, x389);
+ let mut x416: u32 = 0;
+ let mut x417: fiat_p384_scalar_u1 = 0;
+ let (x416, x417) = fiat_p384_scalar_addcarryx_u32(x415, x341, x391);
+ let mut x418: u32 = 0;
+ let mut x419: fiat_p384_scalar_u1 = 0;
+ let (x418, x419) = fiat_p384_scalar_addcarryx_u32(x417, x343, x393);
+ let mut x420: u32 = 0;
+ let mut x421: fiat_p384_scalar_u1 = 0;
+ let (x420, x421) = fiat_p384_scalar_addcarryx_u32(x419, x345, x395);
+ let mut x422: u32 = 0;
+ let mut x423: fiat_p384_scalar_u1 = 0;
+ let (x422, x423) = fiat_p384_scalar_addcarryx_u32(x421, x347, x397);
+ let mut x424: u32 = 0;
+ let mut x425: fiat_p384_scalar_u1 = 0;
+ let (x424, x425) = fiat_p384_scalar_addcarryx_u32(x423, x349, x399);
+ let mut x426: u32 = 0;
+ let mut x427: fiat_p384_scalar_u1 = 0;
+ let (x426, x427) = fiat_p384_scalar_addcarryx_u32(x425, x351, x401);
+ let mut x428: u32 = 0;
+ let mut x429: fiat_p384_scalar_u1 = 0;
+ let (x428, x429) = fiat_p384_scalar_addcarryx_u32(x427, x353, x403);
+ let mut x430: u32 = 0;
+ let mut x431: fiat_p384_scalar_u1 = 0;
+ let (x430, x431) = fiat_p384_scalar_addcarryx_u32(x429, x355, x405);
+ let x432: u32 = ((x431 as u32) + (x356 as u32));
+ let mut x433: u32 = 0;
+ let mut x434: u32 = 0;
+ let (x433, x434) = fiat_p384_scalar_mulx_u32(x3, (arg1[11]));
+ let mut x435: u32 = 0;
+ let mut x436: u32 = 0;
+ let (x435, x436) = fiat_p384_scalar_mulx_u32(x3, (arg1[10]));
+ let mut x437: u32 = 0;
+ let mut x438: u32 = 0;
+ let (x437, x438) = fiat_p384_scalar_mulx_u32(x3, (arg1[9]));
+ let mut x439: u32 = 0;
+ let mut x440: u32 = 0;
+ let (x439, x440) = fiat_p384_scalar_mulx_u32(x3, (arg1[8]));
+ let mut x441: u32 = 0;
+ let mut x442: u32 = 0;
+ let (x441, x442) = fiat_p384_scalar_mulx_u32(x3, (arg1[7]));
+ let mut x443: u32 = 0;
+ let mut x444: u32 = 0;
+ let (x443, x444) = fiat_p384_scalar_mulx_u32(x3, (arg1[6]));
+ let mut x445: u32 = 0;
+ let mut x446: u32 = 0;
+ let (x445, x446) = fiat_p384_scalar_mulx_u32(x3, (arg1[5]));
+ let mut x447: u32 = 0;
+ let mut x448: u32 = 0;
+ let (x447, x448) = fiat_p384_scalar_mulx_u32(x3, (arg1[4]));
+ let mut x449: u32 = 0;
+ let mut x450: u32 = 0;
+ let (x449, x450) = fiat_p384_scalar_mulx_u32(x3, (arg1[3]));
+ let mut x451: u32 = 0;
+ let mut x452: u32 = 0;
+ let (x451, x452) = fiat_p384_scalar_mulx_u32(x3, (arg1[2]));
+ let mut x453: u32 = 0;
+ let mut x454: u32 = 0;
+ let (x453, x454) = fiat_p384_scalar_mulx_u32(x3, (arg1[1]));
+ let mut x455: u32 = 0;
+ let mut x456: u32 = 0;
+ let (x455, x456) = fiat_p384_scalar_mulx_u32(x3, (arg1[0]));
+ let mut x457: u32 = 0;
+ let mut x458: fiat_p384_scalar_u1 = 0;
+ let (x457, x458) = fiat_p384_scalar_addcarryx_u32(0x0, x456, x453);
+ let mut x459: u32 = 0;
+ let mut x460: fiat_p384_scalar_u1 = 0;
+ let (x459, x460) = fiat_p384_scalar_addcarryx_u32(x458, x454, x451);
+ let mut x461: u32 = 0;
+ let mut x462: fiat_p384_scalar_u1 = 0;
+ let (x461, x462) = fiat_p384_scalar_addcarryx_u32(x460, x452, x449);
+ let mut x463: u32 = 0;
+ let mut x464: fiat_p384_scalar_u1 = 0;
+ let (x463, x464) = fiat_p384_scalar_addcarryx_u32(x462, x450, x447);
+ let mut x465: u32 = 0;
+ let mut x466: fiat_p384_scalar_u1 = 0;
+ let (x465, x466) = fiat_p384_scalar_addcarryx_u32(x464, x448, x445);
+ let mut x467: u32 = 0;
+ let mut x468: fiat_p384_scalar_u1 = 0;
+ let (x467, x468) = fiat_p384_scalar_addcarryx_u32(x466, x446, x443);
+ let mut x469: u32 = 0;
+ let mut x470: fiat_p384_scalar_u1 = 0;
+ let (x469, x470) = fiat_p384_scalar_addcarryx_u32(x468, x444, x441);
+ let mut x471: u32 = 0;
+ let mut x472: fiat_p384_scalar_u1 = 0;
+ let (x471, x472) = fiat_p384_scalar_addcarryx_u32(x470, x442, x439);
+ let mut x473: u32 = 0;
+ let mut x474: fiat_p384_scalar_u1 = 0;
+ let (x473, x474) = fiat_p384_scalar_addcarryx_u32(x472, x440, x437);
+ let mut x475: u32 = 0;
+ let mut x476: fiat_p384_scalar_u1 = 0;
+ let (x475, x476) = fiat_p384_scalar_addcarryx_u32(x474, x438, x435);
+ let mut x477: u32 = 0;
+ let mut x478: fiat_p384_scalar_u1 = 0;
+ let (x477, x478) = fiat_p384_scalar_addcarryx_u32(x476, x436, x433);
+ let x479: u32 = ((x478 as u32) + x434);
+ let mut x480: u32 = 0;
+ let mut x481: fiat_p384_scalar_u1 = 0;
+ let (x480, x481) = fiat_p384_scalar_addcarryx_u32(0x0, x408, x455);
+ let mut x482: u32 = 0;
+ let mut x483: fiat_p384_scalar_u1 = 0;
+ let (x482, x483) = fiat_p384_scalar_addcarryx_u32(x481, x410, x457);
+ let mut x484: u32 = 0;
+ let mut x485: fiat_p384_scalar_u1 = 0;
+ let (x484, x485) = fiat_p384_scalar_addcarryx_u32(x483, x412, x459);
+ let mut x486: u32 = 0;
+ let mut x487: fiat_p384_scalar_u1 = 0;
+ let (x486, x487) = fiat_p384_scalar_addcarryx_u32(x485, x414, x461);
+ let mut x488: u32 = 0;
+ let mut x489: fiat_p384_scalar_u1 = 0;
+ let (x488, x489) = fiat_p384_scalar_addcarryx_u32(x487, x416, x463);
+ let mut x490: u32 = 0;
+ let mut x491: fiat_p384_scalar_u1 = 0;
+ let (x490, x491) = fiat_p384_scalar_addcarryx_u32(x489, x418, x465);
+ let mut x492: u32 = 0;
+ let mut x493: fiat_p384_scalar_u1 = 0;
+ let (x492, x493) = fiat_p384_scalar_addcarryx_u32(x491, x420, x467);
+ let mut x494: u32 = 0;
+ let mut x495: fiat_p384_scalar_u1 = 0;
+ let (x494, x495) = fiat_p384_scalar_addcarryx_u32(x493, x422, x469);
+ let mut x496: u32 = 0;
+ let mut x497: fiat_p384_scalar_u1 = 0;
+ let (x496, x497) = fiat_p384_scalar_addcarryx_u32(x495, x424, x471);
+ let mut x498: u32 = 0;
+ let mut x499: fiat_p384_scalar_u1 = 0;
+ let (x498, x499) = fiat_p384_scalar_addcarryx_u32(x497, x426, x473);
+ let mut x500: u32 = 0;
+ let mut x501: fiat_p384_scalar_u1 = 0;
+ let (x500, x501) = fiat_p384_scalar_addcarryx_u32(x499, x428, x475);
+ let mut x502: u32 = 0;
+ let mut x503: fiat_p384_scalar_u1 = 0;
+ let (x502, x503) = fiat_p384_scalar_addcarryx_u32(x501, x430, x477);
+ let mut x504: u32 = 0;
+ let mut x505: fiat_p384_scalar_u1 = 0;
+ let (x504, x505) = fiat_p384_scalar_addcarryx_u32(x503, x432, x479);
+ let mut x506: u32 = 0;
+ let mut x507: u32 = 0;
+ let (x506, x507) = fiat_p384_scalar_mulx_u32(x480, 0xe88fdc45);
+ let mut x508: u32 = 0;
+ let mut x509: u32 = 0;
+ let (x508, x509) = fiat_p384_scalar_mulx_u32(x506, 0xffffffff);
+ let mut x510: u32 = 0;
+ let mut x511: u32 = 0;
+ let (x510, x511) = fiat_p384_scalar_mulx_u32(x506, 0xffffffff);
+ let mut x512: u32 = 0;
+ let mut x513: u32 = 0;
+ let (x512, x513) = fiat_p384_scalar_mulx_u32(x506, 0xffffffff);
+ let mut x514: u32 = 0;
+ let mut x515: u32 = 0;
+ let (x514, x515) = fiat_p384_scalar_mulx_u32(x506, 0xffffffff);
+ let mut x516: u32 = 0;
+ let mut x517: u32 = 0;
+ let (x516, x517) = fiat_p384_scalar_mulx_u32(x506, 0xffffffff);
+ let mut x518: u32 = 0;
+ let mut x519: u32 = 0;
+ let (x518, x519) = fiat_p384_scalar_mulx_u32(x506, 0xffffffff);
+ let mut x520: u32 = 0;
+ let mut x521: u32 = 0;
+ let (x520, x521) = fiat_p384_scalar_mulx_u32(x506, 0xc7634d81);
+ let mut x522: u32 = 0;
+ let mut x523: u32 = 0;
+ let (x522, x523) = fiat_p384_scalar_mulx_u32(x506, 0xf4372ddf);
+ let mut x524: u32 = 0;
+ let mut x525: u32 = 0;
+ let (x524, x525) = fiat_p384_scalar_mulx_u32(x506, 0x581a0db2);
+ let mut x526: u32 = 0;
+ let mut x527: u32 = 0;
+ let (x526, x527) = fiat_p384_scalar_mulx_u32(x506, 0x48b0a77a);
+ let mut x528: u32 = 0;
+ let mut x529: u32 = 0;
+ let (x528, x529) = fiat_p384_scalar_mulx_u32(x506, 0xecec196a);
+ let mut x530: u32 = 0;
+ let mut x531: u32 = 0;
+ let (x530, x531) = fiat_p384_scalar_mulx_u32(x506, 0xccc52973);
+ let mut x532: u32 = 0;
+ let mut x533: fiat_p384_scalar_u1 = 0;
+ let (x532, x533) = fiat_p384_scalar_addcarryx_u32(0x0, x531, x528);
+ let mut x534: u32 = 0;
+ let mut x535: fiat_p384_scalar_u1 = 0;
+ let (x534, x535) = fiat_p384_scalar_addcarryx_u32(x533, x529, x526);
+ let mut x536: u32 = 0;
+ let mut x537: fiat_p384_scalar_u1 = 0;
+ let (x536, x537) = fiat_p384_scalar_addcarryx_u32(x535, x527, x524);
+ let mut x538: u32 = 0;
+ let mut x539: fiat_p384_scalar_u1 = 0;
+ let (x538, x539) = fiat_p384_scalar_addcarryx_u32(x537, x525, x522);
+ let mut x540: u32 = 0;
+ let mut x541: fiat_p384_scalar_u1 = 0;
+ let (x540, x541) = fiat_p384_scalar_addcarryx_u32(x539, x523, x520);
+ let mut x542: u32 = 0;
+ let mut x543: fiat_p384_scalar_u1 = 0;
+ let (x542, x543) = fiat_p384_scalar_addcarryx_u32(x541, x521, x518);
+ let mut x544: u32 = 0;
+ let mut x545: fiat_p384_scalar_u1 = 0;
+ let (x544, x545) = fiat_p384_scalar_addcarryx_u32(x543, x519, x516);
+ let mut x546: u32 = 0;
+ let mut x547: fiat_p384_scalar_u1 = 0;
+ let (x546, x547) = fiat_p384_scalar_addcarryx_u32(x545, x517, x514);
+ let mut x548: u32 = 0;
+ let mut x549: fiat_p384_scalar_u1 = 0;
+ let (x548, x549) = fiat_p384_scalar_addcarryx_u32(x547, x515, x512);
+ let mut x550: u32 = 0;
+ let mut x551: fiat_p384_scalar_u1 = 0;
+ let (x550, x551) = fiat_p384_scalar_addcarryx_u32(x549, x513, x510);
+ let mut x552: u32 = 0;
+ let mut x553: fiat_p384_scalar_u1 = 0;
+ let (x552, x553) = fiat_p384_scalar_addcarryx_u32(x551, x511, x508);
+ let x554: u32 = ((x553 as u32) + x509);
+ let mut x555: u32 = 0;
+ let mut x556: fiat_p384_scalar_u1 = 0;
+ let (x555, x556) = fiat_p384_scalar_addcarryx_u32(0x0, x480, x530);
+ let mut x557: u32 = 0;
+ let mut x558: fiat_p384_scalar_u1 = 0;
+ let (x557, x558) = fiat_p384_scalar_addcarryx_u32(x556, x482, x532);
+ let mut x559: u32 = 0;
+ let mut x560: fiat_p384_scalar_u1 = 0;
+ let (x559, x560) = fiat_p384_scalar_addcarryx_u32(x558, x484, x534);
+ let mut x561: u32 = 0;
+ let mut x562: fiat_p384_scalar_u1 = 0;
+ let (x561, x562) = fiat_p384_scalar_addcarryx_u32(x560, x486, x536);
+ let mut x563: u32 = 0;
+ let mut x564: fiat_p384_scalar_u1 = 0;
+ let (x563, x564) = fiat_p384_scalar_addcarryx_u32(x562, x488, x538);
+ let mut x565: u32 = 0;
+ let mut x566: fiat_p384_scalar_u1 = 0;
+ let (x565, x566) = fiat_p384_scalar_addcarryx_u32(x564, x490, x540);
+ let mut x567: u32 = 0;
+ let mut x568: fiat_p384_scalar_u1 = 0;
+ let (x567, x568) = fiat_p384_scalar_addcarryx_u32(x566, x492, x542);
+ let mut x569: u32 = 0;
+ let mut x570: fiat_p384_scalar_u1 = 0;
+ let (x569, x570) = fiat_p384_scalar_addcarryx_u32(x568, x494, x544);
+ let mut x571: u32 = 0;
+ let mut x572: fiat_p384_scalar_u1 = 0;
+ let (x571, x572) = fiat_p384_scalar_addcarryx_u32(x570, x496, x546);
+ let mut x573: u32 = 0;
+ let mut x574: fiat_p384_scalar_u1 = 0;
+ let (x573, x574) = fiat_p384_scalar_addcarryx_u32(x572, x498, x548);
+ let mut x575: u32 = 0;
+ let mut x576: fiat_p384_scalar_u1 = 0;
+ let (x575, x576) = fiat_p384_scalar_addcarryx_u32(x574, x500, x550);
+ let mut x577: u32 = 0;
+ let mut x578: fiat_p384_scalar_u1 = 0;
+ let (x577, x578) = fiat_p384_scalar_addcarryx_u32(x576, x502, x552);
+ let mut x579: u32 = 0;
+ let mut x580: fiat_p384_scalar_u1 = 0;
+ let (x579, x580) = fiat_p384_scalar_addcarryx_u32(x578, x504, x554);
+ let x581: u32 = ((x580 as u32) + (x505 as u32));
+ let mut x582: u32 = 0;
+ let mut x583: u32 = 0;
+ let (x582, x583) = fiat_p384_scalar_mulx_u32(x4, (arg1[11]));
+ let mut x584: u32 = 0;
+ let mut x585: u32 = 0;
+ let (x584, x585) = fiat_p384_scalar_mulx_u32(x4, (arg1[10]));
+ let mut x586: u32 = 0;
+ let mut x587: u32 = 0;
+ let (x586, x587) = fiat_p384_scalar_mulx_u32(x4, (arg1[9]));
+ let mut x588: u32 = 0;
+ let mut x589: u32 = 0;
+ let (x588, x589) = fiat_p384_scalar_mulx_u32(x4, (arg1[8]));
+ let mut x590: u32 = 0;
+ let mut x591: u32 = 0;
+ let (x590, x591) = fiat_p384_scalar_mulx_u32(x4, (arg1[7]));
+ let mut x592: u32 = 0;
+ let mut x593: u32 = 0;
+ let (x592, x593) = fiat_p384_scalar_mulx_u32(x4, (arg1[6]));
+ let mut x594: u32 = 0;
+ let mut x595: u32 = 0;
+ let (x594, x595) = fiat_p384_scalar_mulx_u32(x4, (arg1[5]));
+ let mut x596: u32 = 0;
+ let mut x597: u32 = 0;
+ let (x596, x597) = fiat_p384_scalar_mulx_u32(x4, (arg1[4]));
+ let mut x598: u32 = 0;
+ let mut x599: u32 = 0;
+ let (x598, x599) = fiat_p384_scalar_mulx_u32(x4, (arg1[3]));
+ let mut x600: u32 = 0;
+ let mut x601: u32 = 0;
+ let (x600, x601) = fiat_p384_scalar_mulx_u32(x4, (arg1[2]));
+ let mut x602: u32 = 0;
+ let mut x603: u32 = 0;
+ let (x602, x603) = fiat_p384_scalar_mulx_u32(x4, (arg1[1]));
+ let mut x604: u32 = 0;
+ let mut x605: u32 = 0;
+ let (x604, x605) = fiat_p384_scalar_mulx_u32(x4, (arg1[0]));
+ let mut x606: u32 = 0;
+ let mut x607: fiat_p384_scalar_u1 = 0;
+ let (x606, x607) = fiat_p384_scalar_addcarryx_u32(0x0, x605, x602);
+ let mut x608: u32 = 0;
+ let mut x609: fiat_p384_scalar_u1 = 0;
+ let (x608, x609) = fiat_p384_scalar_addcarryx_u32(x607, x603, x600);
+ let mut x610: u32 = 0;
+ let mut x611: fiat_p384_scalar_u1 = 0;
+ let (x610, x611) = fiat_p384_scalar_addcarryx_u32(x609, x601, x598);
+ let mut x612: u32 = 0;
+ let mut x613: fiat_p384_scalar_u1 = 0;
+ let (x612, x613) = fiat_p384_scalar_addcarryx_u32(x611, x599, x596);
+ let mut x614: u32 = 0;
+ let mut x615: fiat_p384_scalar_u1 = 0;
+ let (x614, x615) = fiat_p384_scalar_addcarryx_u32(x613, x597, x594);
+ let mut x616: u32 = 0;
+ let mut x617: fiat_p384_scalar_u1 = 0;
+ let (x616, x617) = fiat_p384_scalar_addcarryx_u32(x615, x595, x592);
+ let mut x618: u32 = 0;
+ let mut x619: fiat_p384_scalar_u1 = 0;
+ let (x618, x619) = fiat_p384_scalar_addcarryx_u32(x617, x593, x590);
+ let mut x620: u32 = 0;
+ let mut x621: fiat_p384_scalar_u1 = 0;
+ let (x620, x621) = fiat_p384_scalar_addcarryx_u32(x619, x591, x588);
+ let mut x622: u32 = 0;
+ let mut x623: fiat_p384_scalar_u1 = 0;
+ let (x622, x623) = fiat_p384_scalar_addcarryx_u32(x621, x589, x586);
+ let mut x624: u32 = 0;
+ let mut x625: fiat_p384_scalar_u1 = 0;
+ let (x624, x625) = fiat_p384_scalar_addcarryx_u32(x623, x587, x584);
+ let mut x626: u32 = 0;
+ let mut x627: fiat_p384_scalar_u1 = 0;
+ let (x626, x627) = fiat_p384_scalar_addcarryx_u32(x625, x585, x582);
+ let x628: u32 = ((x627 as u32) + x583);
+ let mut x629: u32 = 0;
+ let mut x630: fiat_p384_scalar_u1 = 0;
+ let (x629, x630) = fiat_p384_scalar_addcarryx_u32(0x0, x557, x604);
+ let mut x631: u32 = 0;
+ let mut x632: fiat_p384_scalar_u1 = 0;
+ let (x631, x632) = fiat_p384_scalar_addcarryx_u32(x630, x559, x606);
+ let mut x633: u32 = 0;
+ let mut x634: fiat_p384_scalar_u1 = 0;
+ let (x633, x634) = fiat_p384_scalar_addcarryx_u32(x632, x561, x608);
+ let mut x635: u32 = 0;
+ let mut x636: fiat_p384_scalar_u1 = 0;
+ let (x635, x636) = fiat_p384_scalar_addcarryx_u32(x634, x563, x610);
+ let mut x637: u32 = 0;
+ let mut x638: fiat_p384_scalar_u1 = 0;
+ let (x637, x638) = fiat_p384_scalar_addcarryx_u32(x636, x565, x612);
+ let mut x639: u32 = 0;
+ let mut x640: fiat_p384_scalar_u1 = 0;
+ let (x639, x640) = fiat_p384_scalar_addcarryx_u32(x638, x567, x614);
+ let mut x641: u32 = 0;
+ let mut x642: fiat_p384_scalar_u1 = 0;
+ let (x641, x642) = fiat_p384_scalar_addcarryx_u32(x640, x569, x616);
+ let mut x643: u32 = 0;
+ let mut x644: fiat_p384_scalar_u1 = 0;
+ let (x643, x644) = fiat_p384_scalar_addcarryx_u32(x642, x571, x618);
+ let mut x645: u32 = 0;
+ let mut x646: fiat_p384_scalar_u1 = 0;
+ let (x645, x646) = fiat_p384_scalar_addcarryx_u32(x644, x573, x620);
+ let mut x647: u32 = 0;
+ let mut x648: fiat_p384_scalar_u1 = 0;
+ let (x647, x648) = fiat_p384_scalar_addcarryx_u32(x646, x575, x622);
+ let mut x649: u32 = 0;
+ let mut x650: fiat_p384_scalar_u1 = 0;
+ let (x649, x650) = fiat_p384_scalar_addcarryx_u32(x648, x577, x624);
+ let mut x651: u32 = 0;
+ let mut x652: fiat_p384_scalar_u1 = 0;
+ let (x651, x652) = fiat_p384_scalar_addcarryx_u32(x650, x579, x626);
+ let mut x653: u32 = 0;
+ let mut x654: fiat_p384_scalar_u1 = 0;
+ let (x653, x654) = fiat_p384_scalar_addcarryx_u32(x652, x581, x628);
+ let mut x655: u32 = 0;
+ let mut x656: u32 = 0;
+ let (x655, x656) = fiat_p384_scalar_mulx_u32(x629, 0xe88fdc45);
+ let mut x657: u32 = 0;
+ let mut x658: u32 = 0;
+ let (x657, x658) = fiat_p384_scalar_mulx_u32(x655, 0xffffffff);
+ let mut x659: u32 = 0;
+ let mut x660: u32 = 0;
+ let (x659, x660) = fiat_p384_scalar_mulx_u32(x655, 0xffffffff);
+ let mut x661: u32 = 0;
+ let mut x662: u32 = 0;
+ let (x661, x662) = fiat_p384_scalar_mulx_u32(x655, 0xffffffff);
+ let mut x663: u32 = 0;
+ let mut x664: u32 = 0;
+ let (x663, x664) = fiat_p384_scalar_mulx_u32(x655, 0xffffffff);
+ let mut x665: u32 = 0;
+ let mut x666: u32 = 0;
+ let (x665, x666) = fiat_p384_scalar_mulx_u32(x655, 0xffffffff);
+ let mut x667: u32 = 0;
+ let mut x668: u32 = 0;
+ let (x667, x668) = fiat_p384_scalar_mulx_u32(x655, 0xffffffff);
+ let mut x669: u32 = 0;
+ let mut x670: u32 = 0;
+ let (x669, x670) = fiat_p384_scalar_mulx_u32(x655, 0xc7634d81);
+ let mut x671: u32 = 0;
+ let mut x672: u32 = 0;
+ let (x671, x672) = fiat_p384_scalar_mulx_u32(x655, 0xf4372ddf);
+ let mut x673: u32 = 0;
+ let mut x674: u32 = 0;
+ let (x673, x674) = fiat_p384_scalar_mulx_u32(x655, 0x581a0db2);
+ let mut x675: u32 = 0;
+ let mut x676: u32 = 0;
+ let (x675, x676) = fiat_p384_scalar_mulx_u32(x655, 0x48b0a77a);
+ let mut x677: u32 = 0;
+ let mut x678: u32 = 0;
+ let (x677, x678) = fiat_p384_scalar_mulx_u32(x655, 0xecec196a);
+ let mut x679: u32 = 0;
+ let mut x680: u32 = 0;
+ let (x679, x680) = fiat_p384_scalar_mulx_u32(x655, 0xccc52973);
+ let mut x681: u32 = 0;
+ let mut x682: fiat_p384_scalar_u1 = 0;
+ let (x681, x682) = fiat_p384_scalar_addcarryx_u32(0x0, x680, x677);
+ let mut x683: u32 = 0;
+ let mut x684: fiat_p384_scalar_u1 = 0;
+ let (x683, x684) = fiat_p384_scalar_addcarryx_u32(x682, x678, x675);
+ let mut x685: u32 = 0;
+ let mut x686: fiat_p384_scalar_u1 = 0;
+ let (x685, x686) = fiat_p384_scalar_addcarryx_u32(x684, x676, x673);
+ let mut x687: u32 = 0;
+ let mut x688: fiat_p384_scalar_u1 = 0;
+ let (x687, x688) = fiat_p384_scalar_addcarryx_u32(x686, x674, x671);
+ let mut x689: u32 = 0;
+ let mut x690: fiat_p384_scalar_u1 = 0;
+ let (x689, x690) = fiat_p384_scalar_addcarryx_u32(x688, x672, x669);
+ let mut x691: u32 = 0;
+ let mut x692: fiat_p384_scalar_u1 = 0;
+ let (x691, x692) = fiat_p384_scalar_addcarryx_u32(x690, x670, x667);
+ let mut x693: u32 = 0;
+ let mut x694: fiat_p384_scalar_u1 = 0;
+ let (x693, x694) = fiat_p384_scalar_addcarryx_u32(x692, x668, x665);
+ let mut x695: u32 = 0;
+ let mut x696: fiat_p384_scalar_u1 = 0;
+ let (x695, x696) = fiat_p384_scalar_addcarryx_u32(x694, x666, x663);
+ let mut x697: u32 = 0;
+ let mut x698: fiat_p384_scalar_u1 = 0;
+ let (x697, x698) = fiat_p384_scalar_addcarryx_u32(x696, x664, x661);
+ let mut x699: u32 = 0;
+ let mut x700: fiat_p384_scalar_u1 = 0;
+ let (x699, x700) = fiat_p384_scalar_addcarryx_u32(x698, x662, x659);
+ let mut x701: u32 = 0;
+ let mut x702: fiat_p384_scalar_u1 = 0;
+ let (x701, x702) = fiat_p384_scalar_addcarryx_u32(x700, x660, x657);
+ let x703: u32 = ((x702 as u32) + x658);
+ let mut x704: u32 = 0;
+ let mut x705: fiat_p384_scalar_u1 = 0;
+ let (x704, x705) = fiat_p384_scalar_addcarryx_u32(0x0, x629, x679);
+ let mut x706: u32 = 0;
+ let mut x707: fiat_p384_scalar_u1 = 0;
+ let (x706, x707) = fiat_p384_scalar_addcarryx_u32(x705, x631, x681);
+ let mut x708: u32 = 0;
+ let mut x709: fiat_p384_scalar_u1 = 0;
+ let (x708, x709) = fiat_p384_scalar_addcarryx_u32(x707, x633, x683);
+ let mut x710: u32 = 0;
+ let mut x711: fiat_p384_scalar_u1 = 0;
+ let (x710, x711) = fiat_p384_scalar_addcarryx_u32(x709, x635, x685);
+ let mut x712: u32 = 0;
+ let mut x713: fiat_p384_scalar_u1 = 0;
+ let (x712, x713) = fiat_p384_scalar_addcarryx_u32(x711, x637, x687);
+ let mut x714: u32 = 0;
+ let mut x715: fiat_p384_scalar_u1 = 0;
+ let (x714, x715) = fiat_p384_scalar_addcarryx_u32(x713, x639, x689);
+ let mut x716: u32 = 0;
+ let mut x717: fiat_p384_scalar_u1 = 0;
+ let (x716, x717) = fiat_p384_scalar_addcarryx_u32(x715, x641, x691);
+ let mut x718: u32 = 0;
+ let mut x719: fiat_p384_scalar_u1 = 0;
+ let (x718, x719) = fiat_p384_scalar_addcarryx_u32(x717, x643, x693);
+ let mut x720: u32 = 0;
+ let mut x721: fiat_p384_scalar_u1 = 0;
+ let (x720, x721) = fiat_p384_scalar_addcarryx_u32(x719, x645, x695);
+ let mut x722: u32 = 0;
+ let mut x723: fiat_p384_scalar_u1 = 0;
+ let (x722, x723) = fiat_p384_scalar_addcarryx_u32(x721, x647, x697);
+ let mut x724: u32 = 0;
+ let mut x725: fiat_p384_scalar_u1 = 0;
+ let (x724, x725) = fiat_p384_scalar_addcarryx_u32(x723, x649, x699);
+ let mut x726: u32 = 0;
+ let mut x727: fiat_p384_scalar_u1 = 0;
+ let (x726, x727) = fiat_p384_scalar_addcarryx_u32(x725, x651, x701);
+ let mut x728: u32 = 0;
+ let mut x729: fiat_p384_scalar_u1 = 0;
+ let (x728, x729) = fiat_p384_scalar_addcarryx_u32(x727, x653, x703);
+ let x730: u32 = ((x729 as u32) + (x654 as u32));
+ let mut x731: u32 = 0;
+ let mut x732: u32 = 0;
+ let (x731, x732) = fiat_p384_scalar_mulx_u32(x5, (arg1[11]));
+ let mut x733: u32 = 0;
+ let mut x734: u32 = 0;
+ let (x733, x734) = fiat_p384_scalar_mulx_u32(x5, (arg1[10]));
+ let mut x735: u32 = 0;
+ let mut x736: u32 = 0;
+ let (x735, x736) = fiat_p384_scalar_mulx_u32(x5, (arg1[9]));
+ let mut x737: u32 = 0;
+ let mut x738: u32 = 0;
+ let (x737, x738) = fiat_p384_scalar_mulx_u32(x5, (arg1[8]));
+ let mut x739: u32 = 0;
+ let mut x740: u32 = 0;
+ let (x739, x740) = fiat_p384_scalar_mulx_u32(x5, (arg1[7]));
+ let mut x741: u32 = 0;
+ let mut x742: u32 = 0;
+ let (x741, x742) = fiat_p384_scalar_mulx_u32(x5, (arg1[6]));
+ let mut x743: u32 = 0;
+ let mut x744: u32 = 0;
+ let (x743, x744) = fiat_p384_scalar_mulx_u32(x5, (arg1[5]));
+ let mut x745: u32 = 0;
+ let mut x746: u32 = 0;
+ let (x745, x746) = fiat_p384_scalar_mulx_u32(x5, (arg1[4]));
+ let mut x747: u32 = 0;
+ let mut x748: u32 = 0;
+ let (x747, x748) = fiat_p384_scalar_mulx_u32(x5, (arg1[3]));
+ let mut x749: u32 = 0;
+ let mut x750: u32 = 0;
+ let (x749, x750) = fiat_p384_scalar_mulx_u32(x5, (arg1[2]));
+ let mut x751: u32 = 0;
+ let mut x752: u32 = 0;
+ let (x751, x752) = fiat_p384_scalar_mulx_u32(x5, (arg1[1]));
+ let mut x753: u32 = 0;
+ let mut x754: u32 = 0;
+ let (x753, x754) = fiat_p384_scalar_mulx_u32(x5, (arg1[0]));
+ let mut x755: u32 = 0;
+ let mut x756: fiat_p384_scalar_u1 = 0;
+ let (x755, x756) = fiat_p384_scalar_addcarryx_u32(0x0, x754, x751);
+ let mut x757: u32 = 0;
+ let mut x758: fiat_p384_scalar_u1 = 0;
+ let (x757, x758) = fiat_p384_scalar_addcarryx_u32(x756, x752, x749);
+ let mut x759: u32 = 0;
+ let mut x760: fiat_p384_scalar_u1 = 0;
+ let (x759, x760) = fiat_p384_scalar_addcarryx_u32(x758, x750, x747);
+ let mut x761: u32 = 0;
+ let mut x762: fiat_p384_scalar_u1 = 0;
+ let (x761, x762) = fiat_p384_scalar_addcarryx_u32(x760, x748, x745);
+ let mut x763: u32 = 0;
+ let mut x764: fiat_p384_scalar_u1 = 0;
+ let (x763, x764) = fiat_p384_scalar_addcarryx_u32(x762, x746, x743);
+ let mut x765: u32 = 0;
+ let mut x766: fiat_p384_scalar_u1 = 0;
+ let (x765, x766) = fiat_p384_scalar_addcarryx_u32(x764, x744, x741);
+ let mut x767: u32 = 0;
+ let mut x768: fiat_p384_scalar_u1 = 0;
+ let (x767, x768) = fiat_p384_scalar_addcarryx_u32(x766, x742, x739);
+ let mut x769: u32 = 0;
+ let mut x770: fiat_p384_scalar_u1 = 0;
+ let (x769, x770) = fiat_p384_scalar_addcarryx_u32(x768, x740, x737);
+ let mut x771: u32 = 0;
+ let mut x772: fiat_p384_scalar_u1 = 0;
+ let (x771, x772) = fiat_p384_scalar_addcarryx_u32(x770, x738, x735);
+ let mut x773: u32 = 0;
+ let mut x774: fiat_p384_scalar_u1 = 0;
+ let (x773, x774) = fiat_p384_scalar_addcarryx_u32(x772, x736, x733);
+ let mut x775: u32 = 0;
+ let mut x776: fiat_p384_scalar_u1 = 0;
+ let (x775, x776) = fiat_p384_scalar_addcarryx_u32(x774, x734, x731);
+ let x777: u32 = ((x776 as u32) + x732);
+ let mut x778: u32 = 0;
+ let mut x779: fiat_p384_scalar_u1 = 0;
+ let (x778, x779) = fiat_p384_scalar_addcarryx_u32(0x0, x706, x753);
+ let mut x780: u32 = 0;
+ let mut x781: fiat_p384_scalar_u1 = 0;
+ let (x780, x781) = fiat_p384_scalar_addcarryx_u32(x779, x708, x755);
+ let mut x782: u32 = 0;
+ let mut x783: fiat_p384_scalar_u1 = 0;
+ let (x782, x783) = fiat_p384_scalar_addcarryx_u32(x781, x710, x757);
+ let mut x784: u32 = 0;
+ let mut x785: fiat_p384_scalar_u1 = 0;
+ let (x784, x785) = fiat_p384_scalar_addcarryx_u32(x783, x712, x759);
+ let mut x786: u32 = 0;
+ let mut x787: fiat_p384_scalar_u1 = 0;
+ let (x786, x787) = fiat_p384_scalar_addcarryx_u32(x785, x714, x761);
+ let mut x788: u32 = 0;
+ let mut x789: fiat_p384_scalar_u1 = 0;
+ let (x788, x789) = fiat_p384_scalar_addcarryx_u32(x787, x716, x763);
+ let mut x790: u32 = 0;
+ let mut x791: fiat_p384_scalar_u1 = 0;
+ let (x790, x791) = fiat_p384_scalar_addcarryx_u32(x789, x718, x765);
+ let mut x792: u32 = 0;
+ let mut x793: fiat_p384_scalar_u1 = 0;
+ let (x792, x793) = fiat_p384_scalar_addcarryx_u32(x791, x720, x767);
+ let mut x794: u32 = 0;
+ let mut x795: fiat_p384_scalar_u1 = 0;
+ let (x794, x795) = fiat_p384_scalar_addcarryx_u32(x793, x722, x769);
+ let mut x796: u32 = 0;
+ let mut x797: fiat_p384_scalar_u1 = 0;
+ let (x796, x797) = fiat_p384_scalar_addcarryx_u32(x795, x724, x771);
+ let mut x798: u32 = 0;
+ let mut x799: fiat_p384_scalar_u1 = 0;
+ let (x798, x799) = fiat_p384_scalar_addcarryx_u32(x797, x726, x773);
+ let mut x800: u32 = 0;
+ let mut x801: fiat_p384_scalar_u1 = 0;
+ let (x800, x801) = fiat_p384_scalar_addcarryx_u32(x799, x728, x775);
+ let mut x802: u32 = 0;
+ let mut x803: fiat_p384_scalar_u1 = 0;
+ let (x802, x803) = fiat_p384_scalar_addcarryx_u32(x801, x730, x777);
+ let mut x804: u32 = 0;
+ let mut x805: u32 = 0;
+ let (x804, x805) = fiat_p384_scalar_mulx_u32(x778, 0xe88fdc45);
+ let mut x806: u32 = 0;
+ let mut x807: u32 = 0;
+ let (x806, x807) = fiat_p384_scalar_mulx_u32(x804, 0xffffffff);
+ let mut x808: u32 = 0;
+ let mut x809: u32 = 0;
+ let (x808, x809) = fiat_p384_scalar_mulx_u32(x804, 0xffffffff);
+ let mut x810: u32 = 0;
+ let mut x811: u32 = 0;
+ let (x810, x811) = fiat_p384_scalar_mulx_u32(x804, 0xffffffff);
+ let mut x812: u32 = 0;
+ let mut x813: u32 = 0;
+ let (x812, x813) = fiat_p384_scalar_mulx_u32(x804, 0xffffffff);
+ let mut x814: u32 = 0;
+ let mut x815: u32 = 0;
+ let (x814, x815) = fiat_p384_scalar_mulx_u32(x804, 0xffffffff);
+ let mut x816: u32 = 0;
+ let mut x817: u32 = 0;
+ let (x816, x817) = fiat_p384_scalar_mulx_u32(x804, 0xffffffff);
+ let mut x818: u32 = 0;
+ let mut x819: u32 = 0;
+ let (x818, x819) = fiat_p384_scalar_mulx_u32(x804, 0xc7634d81);
+ let mut x820: u32 = 0;
+ let mut x821: u32 = 0;
+ let (x820, x821) = fiat_p384_scalar_mulx_u32(x804, 0xf4372ddf);
+ let mut x822: u32 = 0;
+ let mut x823: u32 = 0;
+ let (x822, x823) = fiat_p384_scalar_mulx_u32(x804, 0x581a0db2);
+ let mut x824: u32 = 0;
+ let mut x825: u32 = 0;
+ let (x824, x825) = fiat_p384_scalar_mulx_u32(x804, 0x48b0a77a);
+ let mut x826: u32 = 0;
+ let mut x827: u32 = 0;
+ let (x826, x827) = fiat_p384_scalar_mulx_u32(x804, 0xecec196a);
+ let mut x828: u32 = 0;
+ let mut x829: u32 = 0;
+ let (x828, x829) = fiat_p384_scalar_mulx_u32(x804, 0xccc52973);
+ let mut x830: u32 = 0;
+ let mut x831: fiat_p384_scalar_u1 = 0;
+ let (x830, x831) = fiat_p384_scalar_addcarryx_u32(0x0, x829, x826);
+ let mut x832: u32 = 0;
+ let mut x833: fiat_p384_scalar_u1 = 0;
+ let (x832, x833) = fiat_p384_scalar_addcarryx_u32(x831, x827, x824);
+ let mut x834: u32 = 0;
+ let mut x835: fiat_p384_scalar_u1 = 0;
+ let (x834, x835) = fiat_p384_scalar_addcarryx_u32(x833, x825, x822);
+ let mut x836: u32 = 0;
+ let mut x837: fiat_p384_scalar_u1 = 0;
+ let (x836, x837) = fiat_p384_scalar_addcarryx_u32(x835, x823, x820);
+ let mut x838: u32 = 0;
+ let mut x839: fiat_p384_scalar_u1 = 0;
+ let (x838, x839) = fiat_p384_scalar_addcarryx_u32(x837, x821, x818);
+ let mut x840: u32 = 0;
+ let mut x841: fiat_p384_scalar_u1 = 0;
+ let (x840, x841) = fiat_p384_scalar_addcarryx_u32(x839, x819, x816);
+ let mut x842: u32 = 0;
+ let mut x843: fiat_p384_scalar_u1 = 0;
+ let (x842, x843) = fiat_p384_scalar_addcarryx_u32(x841, x817, x814);
+ let mut x844: u32 = 0;
+ let mut x845: fiat_p384_scalar_u1 = 0;
+ let (x844, x845) = fiat_p384_scalar_addcarryx_u32(x843, x815, x812);
+ let mut x846: u32 = 0;
+ let mut x847: fiat_p384_scalar_u1 = 0;
+ let (x846, x847) = fiat_p384_scalar_addcarryx_u32(x845, x813, x810);
+ let mut x848: u32 = 0;
+ let mut x849: fiat_p384_scalar_u1 = 0;
+ let (x848, x849) = fiat_p384_scalar_addcarryx_u32(x847, x811, x808);
+ let mut x850: u32 = 0;
+ let mut x851: fiat_p384_scalar_u1 = 0;
+ let (x850, x851) = fiat_p384_scalar_addcarryx_u32(x849, x809, x806);
+ let x852: u32 = ((x851 as u32) + x807);
+ let mut x853: u32 = 0;
+ let mut x854: fiat_p384_scalar_u1 = 0;
+ let (x853, x854) = fiat_p384_scalar_addcarryx_u32(0x0, x778, x828);
+ let mut x855: u32 = 0;
+ let mut x856: fiat_p384_scalar_u1 = 0;
+ let (x855, x856) = fiat_p384_scalar_addcarryx_u32(x854, x780, x830);
+ let mut x857: u32 = 0;
+ let mut x858: fiat_p384_scalar_u1 = 0;
+ let (x857, x858) = fiat_p384_scalar_addcarryx_u32(x856, x782, x832);
+ let mut x859: u32 = 0;
+ let mut x860: fiat_p384_scalar_u1 = 0;
+ let (x859, x860) = fiat_p384_scalar_addcarryx_u32(x858, x784, x834);
+ let mut x861: u32 = 0;
+ let mut x862: fiat_p384_scalar_u1 = 0;
+ let (x861, x862) = fiat_p384_scalar_addcarryx_u32(x860, x786, x836);
+ let mut x863: u32 = 0;
+ let mut x864: fiat_p384_scalar_u1 = 0;
+ let (x863, x864) = fiat_p384_scalar_addcarryx_u32(x862, x788, x838);
+ let mut x865: u32 = 0;
+ let mut x866: fiat_p384_scalar_u1 = 0;
+ let (x865, x866) = fiat_p384_scalar_addcarryx_u32(x864, x790, x840);
+ let mut x867: u32 = 0;
+ let mut x868: fiat_p384_scalar_u1 = 0;
+ let (x867, x868) = fiat_p384_scalar_addcarryx_u32(x866, x792, x842);
+ let mut x869: u32 = 0;
+ let mut x870: fiat_p384_scalar_u1 = 0;
+ let (x869, x870) = fiat_p384_scalar_addcarryx_u32(x868, x794, x844);
+ let mut x871: u32 = 0;
+ let mut x872: fiat_p384_scalar_u1 = 0;
+ let (x871, x872) = fiat_p384_scalar_addcarryx_u32(x870, x796, x846);
+ let mut x873: u32 = 0;
+ let mut x874: fiat_p384_scalar_u1 = 0;
+ let (x873, x874) = fiat_p384_scalar_addcarryx_u32(x872, x798, x848);
+ let mut x875: u32 = 0;
+ let mut x876: fiat_p384_scalar_u1 = 0;
+ let (x875, x876) = fiat_p384_scalar_addcarryx_u32(x874, x800, x850);
+ let mut x877: u32 = 0;
+ let mut x878: fiat_p384_scalar_u1 = 0;
+ let (x877, x878) = fiat_p384_scalar_addcarryx_u32(x876, x802, x852);
+ let x879: u32 = ((x878 as u32) + (x803 as u32));
+ let mut x880: u32 = 0;
+ let mut x881: u32 = 0;
+ let (x880, x881) = fiat_p384_scalar_mulx_u32(x6, (arg1[11]));
+ let mut x882: u32 = 0;
+ let mut x883: u32 = 0;
+ let (x882, x883) = fiat_p384_scalar_mulx_u32(x6, (arg1[10]));
+ let mut x884: u32 = 0;
+ let mut x885: u32 = 0;
+ let (x884, x885) = fiat_p384_scalar_mulx_u32(x6, (arg1[9]));
+ let mut x886: u32 = 0;
+ let mut x887: u32 = 0;
+ let (x886, x887) = fiat_p384_scalar_mulx_u32(x6, (arg1[8]));
+ let mut x888: u32 = 0;
+ let mut x889: u32 = 0;
+ let (x888, x889) = fiat_p384_scalar_mulx_u32(x6, (arg1[7]));
+ let mut x890: u32 = 0;
+ let mut x891: u32 = 0;
+ let (x890, x891) = fiat_p384_scalar_mulx_u32(x6, (arg1[6]));
+ let mut x892: u32 = 0;
+ let mut x893: u32 = 0;
+ let (x892, x893) = fiat_p384_scalar_mulx_u32(x6, (arg1[5]));
+ let mut x894: u32 = 0;
+ let mut x895: u32 = 0;
+ let (x894, x895) = fiat_p384_scalar_mulx_u32(x6, (arg1[4]));
+ let mut x896: u32 = 0;
+ let mut x897: u32 = 0;
+ let (x896, x897) = fiat_p384_scalar_mulx_u32(x6, (arg1[3]));
+ let mut x898: u32 = 0;
+ let mut x899: u32 = 0;
+ let (x898, x899) = fiat_p384_scalar_mulx_u32(x6, (arg1[2]));
+ let mut x900: u32 = 0;
+ let mut x901: u32 = 0;
+ let (x900, x901) = fiat_p384_scalar_mulx_u32(x6, (arg1[1]));
+ let mut x902: u32 = 0;
+ let mut x903: u32 = 0;
+ let (x902, x903) = fiat_p384_scalar_mulx_u32(x6, (arg1[0]));
+ let mut x904: u32 = 0;
+ let mut x905: fiat_p384_scalar_u1 = 0;
+ let (x904, x905) = fiat_p384_scalar_addcarryx_u32(0x0, x903, x900);
+ let mut x906: u32 = 0;
+ let mut x907: fiat_p384_scalar_u1 = 0;
+ let (x906, x907) = fiat_p384_scalar_addcarryx_u32(x905, x901, x898);
+ let mut x908: u32 = 0;
+ let mut x909: fiat_p384_scalar_u1 = 0;
+ let (x908, x909) = fiat_p384_scalar_addcarryx_u32(x907, x899, x896);
+ let mut x910: u32 = 0;
+ let mut x911: fiat_p384_scalar_u1 = 0;
+ let (x910, x911) = fiat_p384_scalar_addcarryx_u32(x909, x897, x894);
+ let mut x912: u32 = 0;
+ let mut x913: fiat_p384_scalar_u1 = 0;
+ let (x912, x913) = fiat_p384_scalar_addcarryx_u32(x911, x895, x892);
+ let mut x914: u32 = 0;
+ let mut x915: fiat_p384_scalar_u1 = 0;
+ let (x914, x915) = fiat_p384_scalar_addcarryx_u32(x913, x893, x890);
+ let mut x916: u32 = 0;
+ let mut x917: fiat_p384_scalar_u1 = 0;
+ let (x916, x917) = fiat_p384_scalar_addcarryx_u32(x915, x891, x888);
+ let mut x918: u32 = 0;
+ let mut x919: fiat_p384_scalar_u1 = 0;
+ let (x918, x919) = fiat_p384_scalar_addcarryx_u32(x917, x889, x886);
+ let mut x920: u32 = 0;
+ let mut x921: fiat_p384_scalar_u1 = 0;
+ let (x920, x921) = fiat_p384_scalar_addcarryx_u32(x919, x887, x884);
+ let mut x922: u32 = 0;
+ let mut x923: fiat_p384_scalar_u1 = 0;
+ let (x922, x923) = fiat_p384_scalar_addcarryx_u32(x921, x885, x882);
+ let mut x924: u32 = 0;
+ let mut x925: fiat_p384_scalar_u1 = 0;
+ let (x924, x925) = fiat_p384_scalar_addcarryx_u32(x923, x883, x880);
+ let x926: u32 = ((x925 as u32) + x881);
+ let mut x927: u32 = 0;
+ let mut x928: fiat_p384_scalar_u1 = 0;
+ let (x927, x928) = fiat_p384_scalar_addcarryx_u32(0x0, x855, x902);
+ let mut x929: u32 = 0;
+ let mut x930: fiat_p384_scalar_u1 = 0;
+ let (x929, x930) = fiat_p384_scalar_addcarryx_u32(x928, x857, x904);
+ let mut x931: u32 = 0;
+ let mut x932: fiat_p384_scalar_u1 = 0;
+ let (x931, x932) = fiat_p384_scalar_addcarryx_u32(x930, x859, x906);
+ let mut x933: u32 = 0;
+ let mut x934: fiat_p384_scalar_u1 = 0;
+ let (x933, x934) = fiat_p384_scalar_addcarryx_u32(x932, x861, x908);
+ let mut x935: u32 = 0;
+ let mut x936: fiat_p384_scalar_u1 = 0;
+ let (x935, x936) = fiat_p384_scalar_addcarryx_u32(x934, x863, x910);
+ let mut x937: u32 = 0;
+ let mut x938: fiat_p384_scalar_u1 = 0;
+ let (x937, x938) = fiat_p384_scalar_addcarryx_u32(x936, x865, x912);
+ let mut x939: u32 = 0;
+ let mut x940: fiat_p384_scalar_u1 = 0;
+ let (x939, x940) = fiat_p384_scalar_addcarryx_u32(x938, x867, x914);
+ let mut x941: u32 = 0;
+ let mut x942: fiat_p384_scalar_u1 = 0;
+ let (x941, x942) = fiat_p384_scalar_addcarryx_u32(x940, x869, x916);
+ let mut x943: u32 = 0;
+ let mut x944: fiat_p384_scalar_u1 = 0;
+ let (x943, x944) = fiat_p384_scalar_addcarryx_u32(x942, x871, x918);
+ let mut x945: u32 = 0;
+ let mut x946: fiat_p384_scalar_u1 = 0;
+ let (x945, x946) = fiat_p384_scalar_addcarryx_u32(x944, x873, x920);
+ let mut x947: u32 = 0;
+ let mut x948: fiat_p384_scalar_u1 = 0;
+ let (x947, x948) = fiat_p384_scalar_addcarryx_u32(x946, x875, x922);
+ let mut x949: u32 = 0;
+ let mut x950: fiat_p384_scalar_u1 = 0;
+ let (x949, x950) = fiat_p384_scalar_addcarryx_u32(x948, x877, x924);
+ let mut x951: u32 = 0;
+ let mut x952: fiat_p384_scalar_u1 = 0;
+ let (x951, x952) = fiat_p384_scalar_addcarryx_u32(x950, x879, x926);
+ let mut x953: u32 = 0;
+ let mut x954: u32 = 0;
+ let (x953, x954) = fiat_p384_scalar_mulx_u32(x927, 0xe88fdc45);
+ let mut x955: u32 = 0;
+ let mut x956: u32 = 0;
+ let (x955, x956) = fiat_p384_scalar_mulx_u32(x953, 0xffffffff);
+ let mut x957: u32 = 0;
+ let mut x958: u32 = 0;
+ let (x957, x958) = fiat_p384_scalar_mulx_u32(x953, 0xffffffff);
+ let mut x959: u32 = 0;
+ let mut x960: u32 = 0;
+ let (x959, x960) = fiat_p384_scalar_mulx_u32(x953, 0xffffffff);
+ let mut x961: u32 = 0;
+ let mut x962: u32 = 0;
+ let (x961, x962) = fiat_p384_scalar_mulx_u32(x953, 0xffffffff);
+ let mut x963: u32 = 0;
+ let mut x964: u32 = 0;
+ let (x963, x964) = fiat_p384_scalar_mulx_u32(x953, 0xffffffff);
+ let mut x965: u32 = 0;
+ let mut x966: u32 = 0;
+ let (x965, x966) = fiat_p384_scalar_mulx_u32(x953, 0xffffffff);
+ let mut x967: u32 = 0;
+ let mut x968: u32 = 0;
+ let (x967, x968) = fiat_p384_scalar_mulx_u32(x953, 0xc7634d81);
+ let mut x969: u32 = 0;
+ let mut x970: u32 = 0;
+ let (x969, x970) = fiat_p384_scalar_mulx_u32(x953, 0xf4372ddf);
+ let mut x971: u32 = 0;
+ let mut x972: u32 = 0;
+ let (x971, x972) = fiat_p384_scalar_mulx_u32(x953, 0x581a0db2);
+ let mut x973: u32 = 0;
+ let mut x974: u32 = 0;
+ let (x973, x974) = fiat_p384_scalar_mulx_u32(x953, 0x48b0a77a);
+ let mut x975: u32 = 0;
+ let mut x976: u32 = 0;
+ let (x975, x976) = fiat_p384_scalar_mulx_u32(x953, 0xecec196a);
+ let mut x977: u32 = 0;
+ let mut x978: u32 = 0;
+ let (x977, x978) = fiat_p384_scalar_mulx_u32(x953, 0xccc52973);
+ let mut x979: u32 = 0;
+ let mut x980: fiat_p384_scalar_u1 = 0;
+ let (x979, x980) = fiat_p384_scalar_addcarryx_u32(0x0, x978, x975);
+ let mut x981: u32 = 0;
+ let mut x982: fiat_p384_scalar_u1 = 0;
+ let (x981, x982) = fiat_p384_scalar_addcarryx_u32(x980, x976, x973);
+ let mut x983: u32 = 0;
+ let mut x984: fiat_p384_scalar_u1 = 0;
+ let (x983, x984) = fiat_p384_scalar_addcarryx_u32(x982, x974, x971);
+ let mut x985: u32 = 0;
+ let mut x986: fiat_p384_scalar_u1 = 0;
+ let (x985, x986) = fiat_p384_scalar_addcarryx_u32(x984, x972, x969);
+ let mut x987: u32 = 0;
+ let mut x988: fiat_p384_scalar_u1 = 0;
+ let (x987, x988) = fiat_p384_scalar_addcarryx_u32(x986, x970, x967);
+ let mut x989: u32 = 0;
+ let mut x990: fiat_p384_scalar_u1 = 0;
+ let (x989, x990) = fiat_p384_scalar_addcarryx_u32(x988, x968, x965);
+ let mut x991: u32 = 0;
+ let mut x992: fiat_p384_scalar_u1 = 0;
+ let (x991, x992) = fiat_p384_scalar_addcarryx_u32(x990, x966, x963);
+ let mut x993: u32 = 0;
+ let mut x994: fiat_p384_scalar_u1 = 0;
+ let (x993, x994) = fiat_p384_scalar_addcarryx_u32(x992, x964, x961);
+ let mut x995: u32 = 0;
+ let mut x996: fiat_p384_scalar_u1 = 0;
+ let (x995, x996) = fiat_p384_scalar_addcarryx_u32(x994, x962, x959);
+ let mut x997: u32 = 0;
+ let mut x998: fiat_p384_scalar_u1 = 0;
+ let (x997, x998) = fiat_p384_scalar_addcarryx_u32(x996, x960, x957);
+ let mut x999: u32 = 0;
+ let mut x1000: fiat_p384_scalar_u1 = 0;
+ let (x999, x1000) = fiat_p384_scalar_addcarryx_u32(x998, x958, x955);
+ let x1001: u32 = ((x1000 as u32) + x956);
+ let mut x1002: u32 = 0;
+ let mut x1003: fiat_p384_scalar_u1 = 0;
+ let (x1002, x1003) = fiat_p384_scalar_addcarryx_u32(0x0, x927, x977);
+ let mut x1004: u32 = 0;
+ let mut x1005: fiat_p384_scalar_u1 = 0;
+ let (x1004, x1005) = fiat_p384_scalar_addcarryx_u32(x1003, x929, x979);
+ let mut x1006: u32 = 0;
+ let mut x1007: fiat_p384_scalar_u1 = 0;
+ let (x1006, x1007) = fiat_p384_scalar_addcarryx_u32(x1005, x931, x981);
+ let mut x1008: u32 = 0;
+ let mut x1009: fiat_p384_scalar_u1 = 0;
+ let (x1008, x1009) = fiat_p384_scalar_addcarryx_u32(x1007, x933, x983);
+ let mut x1010: u32 = 0;
+ let mut x1011: fiat_p384_scalar_u1 = 0;
+ let (x1010, x1011) = fiat_p384_scalar_addcarryx_u32(x1009, x935, x985);
+ let mut x1012: u32 = 0;
+ let mut x1013: fiat_p384_scalar_u1 = 0;
+ let (x1012, x1013) = fiat_p384_scalar_addcarryx_u32(x1011, x937, x987);
+ let mut x1014: u32 = 0;
+ let mut x1015: fiat_p384_scalar_u1 = 0;
+ let (x1014, x1015) = fiat_p384_scalar_addcarryx_u32(x1013, x939, x989);
+ let mut x1016: u32 = 0;
+ let mut x1017: fiat_p384_scalar_u1 = 0;
+ let (x1016, x1017) = fiat_p384_scalar_addcarryx_u32(x1015, x941, x991);
+ let mut x1018: u32 = 0;
+ let mut x1019: fiat_p384_scalar_u1 = 0;
+ let (x1018, x1019) = fiat_p384_scalar_addcarryx_u32(x1017, x943, x993);
+ let mut x1020: u32 = 0;
+ let mut x1021: fiat_p384_scalar_u1 = 0;
+ let (x1020, x1021) = fiat_p384_scalar_addcarryx_u32(x1019, x945, x995);
+ let mut x1022: u32 = 0;
+ let mut x1023: fiat_p384_scalar_u1 = 0;
+ let (x1022, x1023) = fiat_p384_scalar_addcarryx_u32(x1021, x947, x997);
+ let mut x1024: u32 = 0;
+ let mut x1025: fiat_p384_scalar_u1 = 0;
+ let (x1024, x1025) = fiat_p384_scalar_addcarryx_u32(x1023, x949, x999);
+ let mut x1026: u32 = 0;
+ let mut x1027: fiat_p384_scalar_u1 = 0;
+ let (x1026, x1027) = fiat_p384_scalar_addcarryx_u32(x1025, x951, x1001);
+ let x1028: u32 = ((x1027 as u32) + (x952 as u32));
+ let mut x1029: u32 = 0;
+ let mut x1030: u32 = 0;
+ let (x1029, x1030) = fiat_p384_scalar_mulx_u32(x7, (arg1[11]));
+ let mut x1031: u32 = 0;
+ let mut x1032: u32 = 0;
+ let (x1031, x1032) = fiat_p384_scalar_mulx_u32(x7, (arg1[10]));
+ let mut x1033: u32 = 0;
+ let mut x1034: u32 = 0;
+ let (x1033, x1034) = fiat_p384_scalar_mulx_u32(x7, (arg1[9]));
+ let mut x1035: u32 = 0;
+ let mut x1036: u32 = 0;
+ let (x1035, x1036) = fiat_p384_scalar_mulx_u32(x7, (arg1[8]));
+ let mut x1037: u32 = 0;
+ let mut x1038: u32 = 0;
+ let (x1037, x1038) = fiat_p384_scalar_mulx_u32(x7, (arg1[7]));
+ let mut x1039: u32 = 0;
+ let mut x1040: u32 = 0;
+ let (x1039, x1040) = fiat_p384_scalar_mulx_u32(x7, (arg1[6]));
+ let mut x1041: u32 = 0;
+ let mut x1042: u32 = 0;
+ let (x1041, x1042) = fiat_p384_scalar_mulx_u32(x7, (arg1[5]));
+ let mut x1043: u32 = 0;
+ let mut x1044: u32 = 0;
+ let (x1043, x1044) = fiat_p384_scalar_mulx_u32(x7, (arg1[4]));
+ let mut x1045: u32 = 0;
+ let mut x1046: u32 = 0;
+ let (x1045, x1046) = fiat_p384_scalar_mulx_u32(x7, (arg1[3]));
+ let mut x1047: u32 = 0;
+ let mut x1048: u32 = 0;
+ let (x1047, x1048) = fiat_p384_scalar_mulx_u32(x7, (arg1[2]));
+ let mut x1049: u32 = 0;
+ let mut x1050: u32 = 0;
+ let (x1049, x1050) = fiat_p384_scalar_mulx_u32(x7, (arg1[1]));
+ let mut x1051: u32 = 0;
+ let mut x1052: u32 = 0;
+ let (x1051, x1052) = fiat_p384_scalar_mulx_u32(x7, (arg1[0]));
+ let mut x1053: u32 = 0;
+ let mut x1054: fiat_p384_scalar_u1 = 0;
+ let (x1053, x1054) = fiat_p384_scalar_addcarryx_u32(0x0, x1052, x1049);
+ let mut x1055: u32 = 0;
+ let mut x1056: fiat_p384_scalar_u1 = 0;
+ let (x1055, x1056) = fiat_p384_scalar_addcarryx_u32(x1054, x1050, x1047);
+ let mut x1057: u32 = 0;
+ let mut x1058: fiat_p384_scalar_u1 = 0;
+ let (x1057, x1058) = fiat_p384_scalar_addcarryx_u32(x1056, x1048, x1045);
+ let mut x1059: u32 = 0;
+ let mut x1060: fiat_p384_scalar_u1 = 0;
+ let (x1059, x1060) = fiat_p384_scalar_addcarryx_u32(x1058, x1046, x1043);
+ let mut x1061: u32 = 0;
+ let mut x1062: fiat_p384_scalar_u1 = 0;
+ let (x1061, x1062) = fiat_p384_scalar_addcarryx_u32(x1060, x1044, x1041);
+ let mut x1063: u32 = 0;
+ let mut x1064: fiat_p384_scalar_u1 = 0;
+ let (x1063, x1064) = fiat_p384_scalar_addcarryx_u32(x1062, x1042, x1039);
+ let mut x1065: u32 = 0;
+ let mut x1066: fiat_p384_scalar_u1 = 0;
+ let (x1065, x1066) = fiat_p384_scalar_addcarryx_u32(x1064, x1040, x1037);
+ let mut x1067: u32 = 0;
+ let mut x1068: fiat_p384_scalar_u1 = 0;
+ let (x1067, x1068) = fiat_p384_scalar_addcarryx_u32(x1066, x1038, x1035);
+ let mut x1069: u32 = 0;
+ let mut x1070: fiat_p384_scalar_u1 = 0;
+ let (x1069, x1070) = fiat_p384_scalar_addcarryx_u32(x1068, x1036, x1033);
+ let mut x1071: u32 = 0;
+ let mut x1072: fiat_p384_scalar_u1 = 0;
+ let (x1071, x1072) = fiat_p384_scalar_addcarryx_u32(x1070, x1034, x1031);
+ let mut x1073: u32 = 0;
+ let mut x1074: fiat_p384_scalar_u1 = 0;
+ let (x1073, x1074) = fiat_p384_scalar_addcarryx_u32(x1072, x1032, x1029);
+ let x1075: u32 = ((x1074 as u32) + x1030);
+ let mut x1076: u32 = 0;
+ let mut x1077: fiat_p384_scalar_u1 = 0;
+ let (x1076, x1077) = fiat_p384_scalar_addcarryx_u32(0x0, x1004, x1051);
+ let mut x1078: u32 = 0;
+ let mut x1079: fiat_p384_scalar_u1 = 0;
+ let (x1078, x1079) = fiat_p384_scalar_addcarryx_u32(x1077, x1006, x1053);
+ let mut x1080: u32 = 0;
+ let mut x1081: fiat_p384_scalar_u1 = 0;
+ let (x1080, x1081) = fiat_p384_scalar_addcarryx_u32(x1079, x1008, x1055);
+ let mut x1082: u32 = 0;
+ let mut x1083: fiat_p384_scalar_u1 = 0;
+ let (x1082, x1083) = fiat_p384_scalar_addcarryx_u32(x1081, x1010, x1057);
+ let mut x1084: u32 = 0;
+ let mut x1085: fiat_p384_scalar_u1 = 0;
+ let (x1084, x1085) = fiat_p384_scalar_addcarryx_u32(x1083, x1012, x1059);
+ let mut x1086: u32 = 0;
+ let mut x1087: fiat_p384_scalar_u1 = 0;
+ let (x1086, x1087) = fiat_p384_scalar_addcarryx_u32(x1085, x1014, x1061);
+ let mut x1088: u32 = 0;
+ let mut x1089: fiat_p384_scalar_u1 = 0;
+ let (x1088, x1089) = fiat_p384_scalar_addcarryx_u32(x1087, x1016, x1063);
+ let mut x1090: u32 = 0;
+ let mut x1091: fiat_p384_scalar_u1 = 0;
+ let (x1090, x1091) = fiat_p384_scalar_addcarryx_u32(x1089, x1018, x1065);
+ let mut x1092: u32 = 0;
+ let mut x1093: fiat_p384_scalar_u1 = 0;
+ let (x1092, x1093) = fiat_p384_scalar_addcarryx_u32(x1091, x1020, x1067);
+ let mut x1094: u32 = 0;
+ let mut x1095: fiat_p384_scalar_u1 = 0;
+ let (x1094, x1095) = fiat_p384_scalar_addcarryx_u32(x1093, x1022, x1069);
+ let mut x1096: u32 = 0;
+ let mut x1097: fiat_p384_scalar_u1 = 0;
+ let (x1096, x1097) = fiat_p384_scalar_addcarryx_u32(x1095, x1024, x1071);
+ let mut x1098: u32 = 0;
+ let mut x1099: fiat_p384_scalar_u1 = 0;
+ let (x1098, x1099) = fiat_p384_scalar_addcarryx_u32(x1097, x1026, x1073);
+ let mut x1100: u32 = 0;
+ let mut x1101: fiat_p384_scalar_u1 = 0;
+ let (x1100, x1101) = fiat_p384_scalar_addcarryx_u32(x1099, x1028, x1075);
+ let mut x1102: u32 = 0;
+ let mut x1103: u32 = 0;
+ let (x1102, x1103) = fiat_p384_scalar_mulx_u32(x1076, 0xe88fdc45);
+ let mut x1104: u32 = 0;
+ let mut x1105: u32 = 0;
+ let (x1104, x1105) = fiat_p384_scalar_mulx_u32(x1102, 0xffffffff);
+ let mut x1106: u32 = 0;
+ let mut x1107: u32 = 0;
+ let (x1106, x1107) = fiat_p384_scalar_mulx_u32(x1102, 0xffffffff);
+ let mut x1108: u32 = 0;
+ let mut x1109: u32 = 0;
+ let (x1108, x1109) = fiat_p384_scalar_mulx_u32(x1102, 0xffffffff);
+ let mut x1110: u32 = 0;
+ let mut x1111: u32 = 0;
+ let (x1110, x1111) = fiat_p384_scalar_mulx_u32(x1102, 0xffffffff);
+ let mut x1112: u32 = 0;
+ let mut x1113: u32 = 0;
+ let (x1112, x1113) = fiat_p384_scalar_mulx_u32(x1102, 0xffffffff);
+ let mut x1114: u32 = 0;
+ let mut x1115: u32 = 0;
+ let (x1114, x1115) = fiat_p384_scalar_mulx_u32(x1102, 0xffffffff);
+ let mut x1116: u32 = 0;
+ let mut x1117: u32 = 0;
+ let (x1116, x1117) = fiat_p384_scalar_mulx_u32(x1102, 0xc7634d81);
+ let mut x1118: u32 = 0;
+ let mut x1119: u32 = 0;
+ let (x1118, x1119) = fiat_p384_scalar_mulx_u32(x1102, 0xf4372ddf);
+ let mut x1120: u32 = 0;
+ let mut x1121: u32 = 0;
+ let (x1120, x1121) = fiat_p384_scalar_mulx_u32(x1102, 0x581a0db2);
+ let mut x1122: u32 = 0;
+ let mut x1123: u32 = 0;
+ let (x1122, x1123) = fiat_p384_scalar_mulx_u32(x1102, 0x48b0a77a);
+ let mut x1124: u32 = 0;
+ let mut x1125: u32 = 0;
+ let (x1124, x1125) = fiat_p384_scalar_mulx_u32(x1102, 0xecec196a);
+ let mut x1126: u32 = 0;
+ let mut x1127: u32 = 0;
+ let (x1126, x1127) = fiat_p384_scalar_mulx_u32(x1102, 0xccc52973);
+ let mut x1128: u32 = 0;
+ let mut x1129: fiat_p384_scalar_u1 = 0;
+ let (x1128, x1129) = fiat_p384_scalar_addcarryx_u32(0x0, x1127, x1124);
+ let mut x1130: u32 = 0;
+ let mut x1131: fiat_p384_scalar_u1 = 0;
+ let (x1130, x1131) = fiat_p384_scalar_addcarryx_u32(x1129, x1125, x1122);
+ let mut x1132: u32 = 0;
+ let mut x1133: fiat_p384_scalar_u1 = 0;
+ let (x1132, x1133) = fiat_p384_scalar_addcarryx_u32(x1131, x1123, x1120);
+ let mut x1134: u32 = 0;
+ let mut x1135: fiat_p384_scalar_u1 = 0;
+ let (x1134, x1135) = fiat_p384_scalar_addcarryx_u32(x1133, x1121, x1118);
+ let mut x1136: u32 = 0;
+ let mut x1137: fiat_p384_scalar_u1 = 0;
+ let (x1136, x1137) = fiat_p384_scalar_addcarryx_u32(x1135, x1119, x1116);
+ let mut x1138: u32 = 0;
+ let mut x1139: fiat_p384_scalar_u1 = 0;
+ let (x1138, x1139) = fiat_p384_scalar_addcarryx_u32(x1137, x1117, x1114);
+ let mut x1140: u32 = 0;
+ let mut x1141: fiat_p384_scalar_u1 = 0;
+ let (x1140, x1141) = fiat_p384_scalar_addcarryx_u32(x1139, x1115, x1112);
+ let mut x1142: u32 = 0;
+ let mut x1143: fiat_p384_scalar_u1 = 0;
+ let (x1142, x1143) = fiat_p384_scalar_addcarryx_u32(x1141, x1113, x1110);
+ let mut x1144: u32 = 0;
+ let mut x1145: fiat_p384_scalar_u1 = 0;
+ let (x1144, x1145) = fiat_p384_scalar_addcarryx_u32(x1143, x1111, x1108);
+ let mut x1146: u32 = 0;
+ let mut x1147: fiat_p384_scalar_u1 = 0;
+ let (x1146, x1147) = fiat_p384_scalar_addcarryx_u32(x1145, x1109, x1106);
+ let mut x1148: u32 = 0;
+ let mut x1149: fiat_p384_scalar_u1 = 0;
+ let (x1148, x1149) = fiat_p384_scalar_addcarryx_u32(x1147, x1107, x1104);
+ let x1150: u32 = ((x1149 as u32) + x1105);
+ let mut x1151: u32 = 0;
+ let mut x1152: fiat_p384_scalar_u1 = 0;
+ let (x1151, x1152) = fiat_p384_scalar_addcarryx_u32(0x0, x1076, x1126);
+ let mut x1153: u32 = 0;
+ let mut x1154: fiat_p384_scalar_u1 = 0;
+ let (x1153, x1154) = fiat_p384_scalar_addcarryx_u32(x1152, x1078, x1128);
+ let mut x1155: u32 = 0;
+ let mut x1156: fiat_p384_scalar_u1 = 0;
+ let (x1155, x1156) = fiat_p384_scalar_addcarryx_u32(x1154, x1080, x1130);
+ let mut x1157: u32 = 0;
+ let mut x1158: fiat_p384_scalar_u1 = 0;
+ let (x1157, x1158) = fiat_p384_scalar_addcarryx_u32(x1156, x1082, x1132);
+ let mut x1159: u32 = 0;
+ let mut x1160: fiat_p384_scalar_u1 = 0;
+ let (x1159, x1160) = fiat_p384_scalar_addcarryx_u32(x1158, x1084, x1134);
+ let mut x1161: u32 = 0;
+ let mut x1162: fiat_p384_scalar_u1 = 0;
+ let (x1161, x1162) = fiat_p384_scalar_addcarryx_u32(x1160, x1086, x1136);
+ let mut x1163: u32 = 0;
+ let mut x1164: fiat_p384_scalar_u1 = 0;
+ let (x1163, x1164) = fiat_p384_scalar_addcarryx_u32(x1162, x1088, x1138);
+ let mut x1165: u32 = 0;
+ let mut x1166: fiat_p384_scalar_u1 = 0;
+ let (x1165, x1166) = fiat_p384_scalar_addcarryx_u32(x1164, x1090, x1140);
+ let mut x1167: u32 = 0;
+ let mut x1168: fiat_p384_scalar_u1 = 0;
+ let (x1167, x1168) = fiat_p384_scalar_addcarryx_u32(x1166, x1092, x1142);
+ let mut x1169: u32 = 0;
+ let mut x1170: fiat_p384_scalar_u1 = 0;
+ let (x1169, x1170) = fiat_p384_scalar_addcarryx_u32(x1168, x1094, x1144);
+ let mut x1171: u32 = 0;
+ let mut x1172: fiat_p384_scalar_u1 = 0;
+ let (x1171, x1172) = fiat_p384_scalar_addcarryx_u32(x1170, x1096, x1146);
+ let mut x1173: u32 = 0;
+ let mut x1174: fiat_p384_scalar_u1 = 0;
+ let (x1173, x1174) = fiat_p384_scalar_addcarryx_u32(x1172, x1098, x1148);
+ let mut x1175: u32 = 0;
+ let mut x1176: fiat_p384_scalar_u1 = 0;
+ let (x1175, x1176) = fiat_p384_scalar_addcarryx_u32(x1174, x1100, x1150);
+ let x1177: u32 = ((x1176 as u32) + (x1101 as u32));
+ let mut x1178: u32 = 0;
+ let mut x1179: u32 = 0;
+ let (x1178, x1179) = fiat_p384_scalar_mulx_u32(x8, (arg1[11]));
+ let mut x1180: u32 = 0;
+ let mut x1181: u32 = 0;
+ let (x1180, x1181) = fiat_p384_scalar_mulx_u32(x8, (arg1[10]));
+ let mut x1182: u32 = 0;
+ let mut x1183: u32 = 0;
+ let (x1182, x1183) = fiat_p384_scalar_mulx_u32(x8, (arg1[9]));
+ let mut x1184: u32 = 0;
+ let mut x1185: u32 = 0;
+ let (x1184, x1185) = fiat_p384_scalar_mulx_u32(x8, (arg1[8]));
+ let mut x1186: u32 = 0;
+ let mut x1187: u32 = 0;
+ let (x1186, x1187) = fiat_p384_scalar_mulx_u32(x8, (arg1[7]));
+ let mut x1188: u32 = 0;
+ let mut x1189: u32 = 0;
+ let (x1188, x1189) = fiat_p384_scalar_mulx_u32(x8, (arg1[6]));
+ let mut x1190: u32 = 0;
+ let mut x1191: u32 = 0;
+ let (x1190, x1191) = fiat_p384_scalar_mulx_u32(x8, (arg1[5]));
+ let mut x1192: u32 = 0;
+ let mut x1193: u32 = 0;
+ let (x1192, x1193) = fiat_p384_scalar_mulx_u32(x8, (arg1[4]));
+ let mut x1194: u32 = 0;
+ let mut x1195: u32 = 0;
+ let (x1194, x1195) = fiat_p384_scalar_mulx_u32(x8, (arg1[3]));
+ let mut x1196: u32 = 0;
+ let mut x1197: u32 = 0;
+ let (x1196, x1197) = fiat_p384_scalar_mulx_u32(x8, (arg1[2]));
+ let mut x1198: u32 = 0;
+ let mut x1199: u32 = 0;
+ let (x1198, x1199) = fiat_p384_scalar_mulx_u32(x8, (arg1[1]));
+ let mut x1200: u32 = 0;
+ let mut x1201: u32 = 0;
+ let (x1200, x1201) = fiat_p384_scalar_mulx_u32(x8, (arg1[0]));
+ let mut x1202: u32 = 0;
+ let mut x1203: fiat_p384_scalar_u1 = 0;
+ let (x1202, x1203) = fiat_p384_scalar_addcarryx_u32(0x0, x1201, x1198);
+ let mut x1204: u32 = 0;
+ let mut x1205: fiat_p384_scalar_u1 = 0;
+ let (x1204, x1205) = fiat_p384_scalar_addcarryx_u32(x1203, x1199, x1196);
+ let mut x1206: u32 = 0;
+ let mut x1207: fiat_p384_scalar_u1 = 0;
+ let (x1206, x1207) = fiat_p384_scalar_addcarryx_u32(x1205, x1197, x1194);
+ let mut x1208: u32 = 0;
+ let mut x1209: fiat_p384_scalar_u1 = 0;
+ let (x1208, x1209) = fiat_p384_scalar_addcarryx_u32(x1207, x1195, x1192);
+ let mut x1210: u32 = 0;
+ let mut x1211: fiat_p384_scalar_u1 = 0;
+ let (x1210, x1211) = fiat_p384_scalar_addcarryx_u32(x1209, x1193, x1190);
+ let mut x1212: u32 = 0;
+ let mut x1213: fiat_p384_scalar_u1 = 0;
+ let (x1212, x1213) = fiat_p384_scalar_addcarryx_u32(x1211, x1191, x1188);
+ let mut x1214: u32 = 0;
+ let mut x1215: fiat_p384_scalar_u1 = 0;
+ let (x1214, x1215) = fiat_p384_scalar_addcarryx_u32(x1213, x1189, x1186);
+ let mut x1216: u32 = 0;
+ let mut x1217: fiat_p384_scalar_u1 = 0;
+ let (x1216, x1217) = fiat_p384_scalar_addcarryx_u32(x1215, x1187, x1184);
+ let mut x1218: u32 = 0;
+ let mut x1219: fiat_p384_scalar_u1 = 0;
+ let (x1218, x1219) = fiat_p384_scalar_addcarryx_u32(x1217, x1185, x1182);
+ let mut x1220: u32 = 0;
+ let mut x1221: fiat_p384_scalar_u1 = 0;
+ let (x1220, x1221) = fiat_p384_scalar_addcarryx_u32(x1219, x1183, x1180);
+ let mut x1222: u32 = 0;
+ let mut x1223: fiat_p384_scalar_u1 = 0;
+ let (x1222, x1223) = fiat_p384_scalar_addcarryx_u32(x1221, x1181, x1178);
+ let x1224: u32 = ((x1223 as u32) + x1179);
+ let mut x1225: u32 = 0;
+ let mut x1226: fiat_p384_scalar_u1 = 0;
+ let (x1225, x1226) = fiat_p384_scalar_addcarryx_u32(0x0, x1153, x1200);
+ let mut x1227: u32 = 0;
+ let mut x1228: fiat_p384_scalar_u1 = 0;
+ let (x1227, x1228) = fiat_p384_scalar_addcarryx_u32(x1226, x1155, x1202);
+ let mut x1229: u32 = 0;
+ let mut x1230: fiat_p384_scalar_u1 = 0;
+ let (x1229, x1230) = fiat_p384_scalar_addcarryx_u32(x1228, x1157, x1204);
+ let mut x1231: u32 = 0;
+ let mut x1232: fiat_p384_scalar_u1 = 0;
+ let (x1231, x1232) = fiat_p384_scalar_addcarryx_u32(x1230, x1159, x1206);
+ let mut x1233: u32 = 0;
+ let mut x1234: fiat_p384_scalar_u1 = 0;
+ let (x1233, x1234) = fiat_p384_scalar_addcarryx_u32(x1232, x1161, x1208);
+ let mut x1235: u32 = 0;
+ let mut x1236: fiat_p384_scalar_u1 = 0;
+ let (x1235, x1236) = fiat_p384_scalar_addcarryx_u32(x1234, x1163, x1210);
+ let mut x1237: u32 = 0;
+ let mut x1238: fiat_p384_scalar_u1 = 0;
+ let (x1237, x1238) = fiat_p384_scalar_addcarryx_u32(x1236, x1165, x1212);
+ let mut x1239: u32 = 0;
+ let mut x1240: fiat_p384_scalar_u1 = 0;
+ let (x1239, x1240) = fiat_p384_scalar_addcarryx_u32(x1238, x1167, x1214);
+ let mut x1241: u32 = 0;
+ let mut x1242: fiat_p384_scalar_u1 = 0;
+ let (x1241, x1242) = fiat_p384_scalar_addcarryx_u32(x1240, x1169, x1216);
+ let mut x1243: u32 = 0;
+ let mut x1244: fiat_p384_scalar_u1 = 0;
+ let (x1243, x1244) = fiat_p384_scalar_addcarryx_u32(x1242, x1171, x1218);
+ let mut x1245: u32 = 0;
+ let mut x1246: fiat_p384_scalar_u1 = 0;
+ let (x1245, x1246) = fiat_p384_scalar_addcarryx_u32(x1244, x1173, x1220);
+ let mut x1247: u32 = 0;
+ let mut x1248: fiat_p384_scalar_u1 = 0;
+ let (x1247, x1248) = fiat_p384_scalar_addcarryx_u32(x1246, x1175, x1222);
+ let mut x1249: u32 = 0;
+ let mut x1250: fiat_p384_scalar_u1 = 0;
+ let (x1249, x1250) = fiat_p384_scalar_addcarryx_u32(x1248, x1177, x1224);
+ let mut x1251: u32 = 0;
+ let mut x1252: u32 = 0;
+ let (x1251, x1252) = fiat_p384_scalar_mulx_u32(x1225, 0xe88fdc45);
+ let mut x1253: u32 = 0;
+ let mut x1254: u32 = 0;
+ let (x1253, x1254) = fiat_p384_scalar_mulx_u32(x1251, 0xffffffff);
+ let mut x1255: u32 = 0;
+ let mut x1256: u32 = 0;
+ let (x1255, x1256) = fiat_p384_scalar_mulx_u32(x1251, 0xffffffff);
+ let mut x1257: u32 = 0;
+ let mut x1258: u32 = 0;
+ let (x1257, x1258) = fiat_p384_scalar_mulx_u32(x1251, 0xffffffff);
+ let mut x1259: u32 = 0;
+ let mut x1260: u32 = 0;
+ let (x1259, x1260) = fiat_p384_scalar_mulx_u32(x1251, 0xffffffff);
+ let mut x1261: u32 = 0;
+ let mut x1262: u32 = 0;
+ let (x1261, x1262) = fiat_p384_scalar_mulx_u32(x1251, 0xffffffff);
+ let mut x1263: u32 = 0;
+ let mut x1264: u32 = 0;
+ let (x1263, x1264) = fiat_p384_scalar_mulx_u32(x1251, 0xffffffff);
+ let mut x1265: u32 = 0;
+ let mut x1266: u32 = 0;
+ let (x1265, x1266) = fiat_p384_scalar_mulx_u32(x1251, 0xc7634d81);
+ let mut x1267: u32 = 0;
+ let mut x1268: u32 = 0;
+ let (x1267, x1268) = fiat_p384_scalar_mulx_u32(x1251, 0xf4372ddf);
+ let mut x1269: u32 = 0;
+ let mut x1270: u32 = 0;
+ let (x1269, x1270) = fiat_p384_scalar_mulx_u32(x1251, 0x581a0db2);
+ let mut x1271: u32 = 0;
+ let mut x1272: u32 = 0;
+ let (x1271, x1272) = fiat_p384_scalar_mulx_u32(x1251, 0x48b0a77a);
+ let mut x1273: u32 = 0;
+ let mut x1274: u32 = 0;
+ let (x1273, x1274) = fiat_p384_scalar_mulx_u32(x1251, 0xecec196a);
+ let mut x1275: u32 = 0;
+ let mut x1276: u32 = 0;
+ let (x1275, x1276) = fiat_p384_scalar_mulx_u32(x1251, 0xccc52973);
+ let mut x1277: u32 = 0;
+ let mut x1278: fiat_p384_scalar_u1 = 0;
+ let (x1277, x1278) = fiat_p384_scalar_addcarryx_u32(0x0, x1276, x1273);
+ let mut x1279: u32 = 0;
+ let mut x1280: fiat_p384_scalar_u1 = 0;
+ let (x1279, x1280) = fiat_p384_scalar_addcarryx_u32(x1278, x1274, x1271);
+ let mut x1281: u32 = 0;
+ let mut x1282: fiat_p384_scalar_u1 = 0;
+ let (x1281, x1282) = fiat_p384_scalar_addcarryx_u32(x1280, x1272, x1269);
+ let mut x1283: u32 = 0;
+ let mut x1284: fiat_p384_scalar_u1 = 0;
+ let (x1283, x1284) = fiat_p384_scalar_addcarryx_u32(x1282, x1270, x1267);
+ let mut x1285: u32 = 0;
+ let mut x1286: fiat_p384_scalar_u1 = 0;
+ let (x1285, x1286) = fiat_p384_scalar_addcarryx_u32(x1284, x1268, x1265);
+ let mut x1287: u32 = 0;
+ let mut x1288: fiat_p384_scalar_u1 = 0;
+ let (x1287, x1288) = fiat_p384_scalar_addcarryx_u32(x1286, x1266, x1263);
+ let mut x1289: u32 = 0;
+ let mut x1290: fiat_p384_scalar_u1 = 0;
+ let (x1289, x1290) = fiat_p384_scalar_addcarryx_u32(x1288, x1264, x1261);
+ let mut x1291: u32 = 0;
+ let mut x1292: fiat_p384_scalar_u1 = 0;
+ let (x1291, x1292) = fiat_p384_scalar_addcarryx_u32(x1290, x1262, x1259);
+ let mut x1293: u32 = 0;
+ let mut x1294: fiat_p384_scalar_u1 = 0;
+ let (x1293, x1294) = fiat_p384_scalar_addcarryx_u32(x1292, x1260, x1257);
+ let mut x1295: u32 = 0;
+ let mut x1296: fiat_p384_scalar_u1 = 0;
+ let (x1295, x1296) = fiat_p384_scalar_addcarryx_u32(x1294, x1258, x1255);
+ let mut x1297: u32 = 0;
+ let mut x1298: fiat_p384_scalar_u1 = 0;
+ let (x1297, x1298) = fiat_p384_scalar_addcarryx_u32(x1296, x1256, x1253);
+ let x1299: u32 = ((x1298 as u32) + x1254);
+ let mut x1300: u32 = 0;
+ let mut x1301: fiat_p384_scalar_u1 = 0;
+ let (x1300, x1301) = fiat_p384_scalar_addcarryx_u32(0x0, x1225, x1275);
+ let mut x1302: u32 = 0;
+ let mut x1303: fiat_p384_scalar_u1 = 0;
+ let (x1302, x1303) = fiat_p384_scalar_addcarryx_u32(x1301, x1227, x1277);
+ let mut x1304: u32 = 0;
+ let mut x1305: fiat_p384_scalar_u1 = 0;
+ let (x1304, x1305) = fiat_p384_scalar_addcarryx_u32(x1303, x1229, x1279);
+ let mut x1306: u32 = 0;
+ let mut x1307: fiat_p384_scalar_u1 = 0;
+ let (x1306, x1307) = fiat_p384_scalar_addcarryx_u32(x1305, x1231, x1281);
+ let mut x1308: u32 = 0;
+ let mut x1309: fiat_p384_scalar_u1 = 0;
+ let (x1308, x1309) = fiat_p384_scalar_addcarryx_u32(x1307, x1233, x1283);
+ let mut x1310: u32 = 0;
+ let mut x1311: fiat_p384_scalar_u1 = 0;
+ let (x1310, x1311) = fiat_p384_scalar_addcarryx_u32(x1309, x1235, x1285);
+ let mut x1312: u32 = 0;
+ let mut x1313: fiat_p384_scalar_u1 = 0;
+ let (x1312, x1313) = fiat_p384_scalar_addcarryx_u32(x1311, x1237, x1287);
+ let mut x1314: u32 = 0;
+ let mut x1315: fiat_p384_scalar_u1 = 0;
+ let (x1314, x1315) = fiat_p384_scalar_addcarryx_u32(x1313, x1239, x1289);
+ let mut x1316: u32 = 0;
+ let mut x1317: fiat_p384_scalar_u1 = 0;
+ let (x1316, x1317) = fiat_p384_scalar_addcarryx_u32(x1315, x1241, x1291);
+ let mut x1318: u32 = 0;
+ let mut x1319: fiat_p384_scalar_u1 = 0;
+ let (x1318, x1319) = fiat_p384_scalar_addcarryx_u32(x1317, x1243, x1293);
+ let mut x1320: u32 = 0;
+ let mut x1321: fiat_p384_scalar_u1 = 0;
+ let (x1320, x1321) = fiat_p384_scalar_addcarryx_u32(x1319, x1245, x1295);
+ let mut x1322: u32 = 0;
+ let mut x1323: fiat_p384_scalar_u1 = 0;
+ let (x1322, x1323) = fiat_p384_scalar_addcarryx_u32(x1321, x1247, x1297);
+ let mut x1324: u32 = 0;
+ let mut x1325: fiat_p384_scalar_u1 = 0;
+ let (x1324, x1325) = fiat_p384_scalar_addcarryx_u32(x1323, x1249, x1299);
+ let x1326: u32 = ((x1325 as u32) + (x1250 as u32));
+ let mut x1327: u32 = 0;
+ let mut x1328: u32 = 0;
+ let (x1327, x1328) = fiat_p384_scalar_mulx_u32(x9, (arg1[11]));
+ let mut x1329: u32 = 0;
+ let mut x1330: u32 = 0;
+ let (x1329, x1330) = fiat_p384_scalar_mulx_u32(x9, (arg1[10]));
+ let mut x1331: u32 = 0;
+ let mut x1332: u32 = 0;
+ let (x1331, x1332) = fiat_p384_scalar_mulx_u32(x9, (arg1[9]));
+ let mut x1333: u32 = 0;
+ let mut x1334: u32 = 0;
+ let (x1333, x1334) = fiat_p384_scalar_mulx_u32(x9, (arg1[8]));
+ let mut x1335: u32 = 0;
+ let mut x1336: u32 = 0;
+ let (x1335, x1336) = fiat_p384_scalar_mulx_u32(x9, (arg1[7]));
+ let mut x1337: u32 = 0;
+ let mut x1338: u32 = 0;
+ let (x1337, x1338) = fiat_p384_scalar_mulx_u32(x9, (arg1[6]));
+ let mut x1339: u32 = 0;
+ let mut x1340: u32 = 0;
+ let (x1339, x1340) = fiat_p384_scalar_mulx_u32(x9, (arg1[5]));
+ let mut x1341: u32 = 0;
+ let mut x1342: u32 = 0;
+ let (x1341, x1342) = fiat_p384_scalar_mulx_u32(x9, (arg1[4]));
+ let mut x1343: u32 = 0;
+ let mut x1344: u32 = 0;
+ let (x1343, x1344) = fiat_p384_scalar_mulx_u32(x9, (arg1[3]));
+ let mut x1345: u32 = 0;
+ let mut x1346: u32 = 0;
+ let (x1345, x1346) = fiat_p384_scalar_mulx_u32(x9, (arg1[2]));
+ let mut x1347: u32 = 0;
+ let mut x1348: u32 = 0;
+ let (x1347, x1348) = fiat_p384_scalar_mulx_u32(x9, (arg1[1]));
+ let mut x1349: u32 = 0;
+ let mut x1350: u32 = 0;
+ let (x1349, x1350) = fiat_p384_scalar_mulx_u32(x9, (arg1[0]));
+ let mut x1351: u32 = 0;
+ let mut x1352: fiat_p384_scalar_u1 = 0;
+ let (x1351, x1352) = fiat_p384_scalar_addcarryx_u32(0x0, x1350, x1347);
+ let mut x1353: u32 = 0;
+ let mut x1354: fiat_p384_scalar_u1 = 0;
+ let (x1353, x1354) = fiat_p384_scalar_addcarryx_u32(x1352, x1348, x1345);
+ let mut x1355: u32 = 0;
+ let mut x1356: fiat_p384_scalar_u1 = 0;
+ let (x1355, x1356) = fiat_p384_scalar_addcarryx_u32(x1354, x1346, x1343);
+ let mut x1357: u32 = 0;
+ let mut x1358: fiat_p384_scalar_u1 = 0;
+ let (x1357, x1358) = fiat_p384_scalar_addcarryx_u32(x1356, x1344, x1341);
+ let mut x1359: u32 = 0;
+ let mut x1360: fiat_p384_scalar_u1 = 0;
+ let (x1359, x1360) = fiat_p384_scalar_addcarryx_u32(x1358, x1342, x1339);
+ let mut x1361: u32 = 0;
+ let mut x1362: fiat_p384_scalar_u1 = 0;
+ let (x1361, x1362) = fiat_p384_scalar_addcarryx_u32(x1360, x1340, x1337);
+ let mut x1363: u32 = 0;
+ let mut x1364: fiat_p384_scalar_u1 = 0;
+ let (x1363, x1364) = fiat_p384_scalar_addcarryx_u32(x1362, x1338, x1335);
+ let mut x1365: u32 = 0;
+ let mut x1366: fiat_p384_scalar_u1 = 0;
+ let (x1365, x1366) = fiat_p384_scalar_addcarryx_u32(x1364, x1336, x1333);
+ let mut x1367: u32 = 0;
+ let mut x1368: fiat_p384_scalar_u1 = 0;
+ let (x1367, x1368) = fiat_p384_scalar_addcarryx_u32(x1366, x1334, x1331);
+ let mut x1369: u32 = 0;
+ let mut x1370: fiat_p384_scalar_u1 = 0;
+ let (x1369, x1370) = fiat_p384_scalar_addcarryx_u32(x1368, x1332, x1329);
+ let mut x1371: u32 = 0;
+ let mut x1372: fiat_p384_scalar_u1 = 0;
+ let (x1371, x1372) = fiat_p384_scalar_addcarryx_u32(x1370, x1330, x1327);
+ let x1373: u32 = ((x1372 as u32) + x1328);
+ let mut x1374: u32 = 0;
+ let mut x1375: fiat_p384_scalar_u1 = 0;
+ let (x1374, x1375) = fiat_p384_scalar_addcarryx_u32(0x0, x1302, x1349);
+ let mut x1376: u32 = 0;
+ let mut x1377: fiat_p384_scalar_u1 = 0;
+ let (x1376, x1377) = fiat_p384_scalar_addcarryx_u32(x1375, x1304, x1351);
+ let mut x1378: u32 = 0;
+ let mut x1379: fiat_p384_scalar_u1 = 0;
+ let (x1378, x1379) = fiat_p384_scalar_addcarryx_u32(x1377, x1306, x1353);
+ let mut x1380: u32 = 0;
+ let mut x1381: fiat_p384_scalar_u1 = 0;
+ let (x1380, x1381) = fiat_p384_scalar_addcarryx_u32(x1379, x1308, x1355);
+ let mut x1382: u32 = 0;
+ let mut x1383: fiat_p384_scalar_u1 = 0;
+ let (x1382, x1383) = fiat_p384_scalar_addcarryx_u32(x1381, x1310, x1357);
+ let mut x1384: u32 = 0;
+ let mut x1385: fiat_p384_scalar_u1 = 0;
+ let (x1384, x1385) = fiat_p384_scalar_addcarryx_u32(x1383, x1312, x1359);
+ let mut x1386: u32 = 0;
+ let mut x1387: fiat_p384_scalar_u1 = 0;
+ let (x1386, x1387) = fiat_p384_scalar_addcarryx_u32(x1385, x1314, x1361);
+ let mut x1388: u32 = 0;
+ let mut x1389: fiat_p384_scalar_u1 = 0;
+ let (x1388, x1389) = fiat_p384_scalar_addcarryx_u32(x1387, x1316, x1363);
+ let mut x1390: u32 = 0;
+ let mut x1391: fiat_p384_scalar_u1 = 0;
+ let (x1390, x1391) = fiat_p384_scalar_addcarryx_u32(x1389, x1318, x1365);
+ let mut x1392: u32 = 0;
+ let mut x1393: fiat_p384_scalar_u1 = 0;
+ let (x1392, x1393) = fiat_p384_scalar_addcarryx_u32(x1391, x1320, x1367);
+ let mut x1394: u32 = 0;
+ let mut x1395: fiat_p384_scalar_u1 = 0;
+ let (x1394, x1395) = fiat_p384_scalar_addcarryx_u32(x1393, x1322, x1369);
+ let mut x1396: u32 = 0;
+ let mut x1397: fiat_p384_scalar_u1 = 0;
+ let (x1396, x1397) = fiat_p384_scalar_addcarryx_u32(x1395, x1324, x1371);
+ let mut x1398: u32 = 0;
+ let mut x1399: fiat_p384_scalar_u1 = 0;
+ let (x1398, x1399) = fiat_p384_scalar_addcarryx_u32(x1397, x1326, x1373);
+ let mut x1400: u32 = 0;
+ let mut x1401: u32 = 0;
+ let (x1400, x1401) = fiat_p384_scalar_mulx_u32(x1374, 0xe88fdc45);
+ let mut x1402: u32 = 0;
+ let mut x1403: u32 = 0;
+ let (x1402, x1403) = fiat_p384_scalar_mulx_u32(x1400, 0xffffffff);
+ let mut x1404: u32 = 0;
+ let mut x1405: u32 = 0;
+ let (x1404, x1405) = fiat_p384_scalar_mulx_u32(x1400, 0xffffffff);
+ let mut x1406: u32 = 0;
+ let mut x1407: u32 = 0;
+ let (x1406, x1407) = fiat_p384_scalar_mulx_u32(x1400, 0xffffffff);
+ let mut x1408: u32 = 0;
+ let mut x1409: u32 = 0;
+ let (x1408, x1409) = fiat_p384_scalar_mulx_u32(x1400, 0xffffffff);
+ let mut x1410: u32 = 0;
+ let mut x1411: u32 = 0;
+ let (x1410, x1411) = fiat_p384_scalar_mulx_u32(x1400, 0xffffffff);
+ let mut x1412: u32 = 0;
+ let mut x1413: u32 = 0;
+ let (x1412, x1413) = fiat_p384_scalar_mulx_u32(x1400, 0xffffffff);
+ let mut x1414: u32 = 0;
+ let mut x1415: u32 = 0;
+ let (x1414, x1415) = fiat_p384_scalar_mulx_u32(x1400, 0xc7634d81);
+ let mut x1416: u32 = 0;
+ let mut x1417: u32 = 0;
+ let (x1416, x1417) = fiat_p384_scalar_mulx_u32(x1400, 0xf4372ddf);
+ let mut x1418: u32 = 0;
+ let mut x1419: u32 = 0;
+ let (x1418, x1419) = fiat_p384_scalar_mulx_u32(x1400, 0x581a0db2);
+ let mut x1420: u32 = 0;
+ let mut x1421: u32 = 0;
+ let (x1420, x1421) = fiat_p384_scalar_mulx_u32(x1400, 0x48b0a77a);
+ let mut x1422: u32 = 0;
+ let mut x1423: u32 = 0;
+ let (x1422, x1423) = fiat_p384_scalar_mulx_u32(x1400, 0xecec196a);
+ let mut x1424: u32 = 0;
+ let mut x1425: u32 = 0;
+ let (x1424, x1425) = fiat_p384_scalar_mulx_u32(x1400, 0xccc52973);
+ let mut x1426: u32 = 0;
+ let mut x1427: fiat_p384_scalar_u1 = 0;
+ let (x1426, x1427) = fiat_p384_scalar_addcarryx_u32(0x0, x1425, x1422);
+ let mut x1428: u32 = 0;
+ let mut x1429: fiat_p384_scalar_u1 = 0;
+ let (x1428, x1429) = fiat_p384_scalar_addcarryx_u32(x1427, x1423, x1420);
+ let mut x1430: u32 = 0;
+ let mut x1431: fiat_p384_scalar_u1 = 0;
+ let (x1430, x1431) = fiat_p384_scalar_addcarryx_u32(x1429, x1421, x1418);
+ let mut x1432: u32 = 0;
+ let mut x1433: fiat_p384_scalar_u1 = 0;
+ let (x1432, x1433) = fiat_p384_scalar_addcarryx_u32(x1431, x1419, x1416);
+ let mut x1434: u32 = 0;
+ let mut x1435: fiat_p384_scalar_u1 = 0;
+ let (x1434, x1435) = fiat_p384_scalar_addcarryx_u32(x1433, x1417, x1414);
+ let mut x1436: u32 = 0;
+ let mut x1437: fiat_p384_scalar_u1 = 0;
+ let (x1436, x1437) = fiat_p384_scalar_addcarryx_u32(x1435, x1415, x1412);
+ let mut x1438: u32 = 0;
+ let mut x1439: fiat_p384_scalar_u1 = 0;
+ let (x1438, x1439) = fiat_p384_scalar_addcarryx_u32(x1437, x1413, x1410);
+ let mut x1440: u32 = 0;
+ let mut x1441: fiat_p384_scalar_u1 = 0;
+ let (x1440, x1441) = fiat_p384_scalar_addcarryx_u32(x1439, x1411, x1408);
+ let mut x1442: u32 = 0;
+ let mut x1443: fiat_p384_scalar_u1 = 0;
+ let (x1442, x1443) = fiat_p384_scalar_addcarryx_u32(x1441, x1409, x1406);
+ let mut x1444: u32 = 0;
+ let mut x1445: fiat_p384_scalar_u1 = 0;
+ let (x1444, x1445) = fiat_p384_scalar_addcarryx_u32(x1443, x1407, x1404);
+ let mut x1446: u32 = 0;
+ let mut x1447: fiat_p384_scalar_u1 = 0;
+ let (x1446, x1447) = fiat_p384_scalar_addcarryx_u32(x1445, x1405, x1402);
+ let x1448: u32 = ((x1447 as u32) + x1403);
+ let mut x1449: u32 = 0;
+ let mut x1450: fiat_p384_scalar_u1 = 0;
+ let (x1449, x1450) = fiat_p384_scalar_addcarryx_u32(0x0, x1374, x1424);
+ let mut x1451: u32 = 0;
+ let mut x1452: fiat_p384_scalar_u1 = 0;
+ let (x1451, x1452) = fiat_p384_scalar_addcarryx_u32(x1450, x1376, x1426);
+ let mut x1453: u32 = 0;
+ let mut x1454: fiat_p384_scalar_u1 = 0;
+ let (x1453, x1454) = fiat_p384_scalar_addcarryx_u32(x1452, x1378, x1428);
+ let mut x1455: u32 = 0;
+ let mut x1456: fiat_p384_scalar_u1 = 0;
+ let (x1455, x1456) = fiat_p384_scalar_addcarryx_u32(x1454, x1380, x1430);
+ let mut x1457: u32 = 0;
+ let mut x1458: fiat_p384_scalar_u1 = 0;
+ let (x1457, x1458) = fiat_p384_scalar_addcarryx_u32(x1456, x1382, x1432);
+ let mut x1459: u32 = 0;
+ let mut x1460: fiat_p384_scalar_u1 = 0;
+ let (x1459, x1460) = fiat_p384_scalar_addcarryx_u32(x1458, x1384, x1434);
+ let mut x1461: u32 = 0;
+ let mut x1462: fiat_p384_scalar_u1 = 0;
+ let (x1461, x1462) = fiat_p384_scalar_addcarryx_u32(x1460, x1386, x1436);
+ let mut x1463: u32 = 0;
+ let mut x1464: fiat_p384_scalar_u1 = 0;
+ let (x1463, x1464) = fiat_p384_scalar_addcarryx_u32(x1462, x1388, x1438);
+ let mut x1465: u32 = 0;
+ let mut x1466: fiat_p384_scalar_u1 = 0;
+ let (x1465, x1466) = fiat_p384_scalar_addcarryx_u32(x1464, x1390, x1440);
+ let mut x1467: u32 = 0;
+ let mut x1468: fiat_p384_scalar_u1 = 0;
+ let (x1467, x1468) = fiat_p384_scalar_addcarryx_u32(x1466, x1392, x1442);
+ let mut x1469: u32 = 0;
+ let mut x1470: fiat_p384_scalar_u1 = 0;
+ let (x1469, x1470) = fiat_p384_scalar_addcarryx_u32(x1468, x1394, x1444);
+ let mut x1471: u32 = 0;
+ let mut x1472: fiat_p384_scalar_u1 = 0;
+ let (x1471, x1472) = fiat_p384_scalar_addcarryx_u32(x1470, x1396, x1446);
+ let mut x1473: u32 = 0;
+ let mut x1474: fiat_p384_scalar_u1 = 0;
+ let (x1473, x1474) = fiat_p384_scalar_addcarryx_u32(x1472, x1398, x1448);
+ let x1475: u32 = ((x1474 as u32) + (x1399 as u32));
+ let mut x1476: u32 = 0;
+ let mut x1477: u32 = 0;
+ let (x1476, x1477) = fiat_p384_scalar_mulx_u32(x10, (arg1[11]));
+ let mut x1478: u32 = 0;
+ let mut x1479: u32 = 0;
+ let (x1478, x1479) = fiat_p384_scalar_mulx_u32(x10, (arg1[10]));
+ let mut x1480: u32 = 0;
+ let mut x1481: u32 = 0;
+ let (x1480, x1481) = fiat_p384_scalar_mulx_u32(x10, (arg1[9]));
+ let mut x1482: u32 = 0;
+ let mut x1483: u32 = 0;
+ let (x1482, x1483) = fiat_p384_scalar_mulx_u32(x10, (arg1[8]));
+ let mut x1484: u32 = 0;
+ let mut x1485: u32 = 0;
+ let (x1484, x1485) = fiat_p384_scalar_mulx_u32(x10, (arg1[7]));
+ let mut x1486: u32 = 0;
+ let mut x1487: u32 = 0;
+ let (x1486, x1487) = fiat_p384_scalar_mulx_u32(x10, (arg1[6]));
+ let mut x1488: u32 = 0;
+ let mut x1489: u32 = 0;
+ let (x1488, x1489) = fiat_p384_scalar_mulx_u32(x10, (arg1[5]));
+ let mut x1490: u32 = 0;
+ let mut x1491: u32 = 0;
+ let (x1490, x1491) = fiat_p384_scalar_mulx_u32(x10, (arg1[4]));
+ let mut x1492: u32 = 0;
+ let mut x1493: u32 = 0;
+ let (x1492, x1493) = fiat_p384_scalar_mulx_u32(x10, (arg1[3]));
+ let mut x1494: u32 = 0;
+ let mut x1495: u32 = 0;
+ let (x1494, x1495) = fiat_p384_scalar_mulx_u32(x10, (arg1[2]));
+ let mut x1496: u32 = 0;
+ let mut x1497: u32 = 0;
+ let (x1496, x1497) = fiat_p384_scalar_mulx_u32(x10, (arg1[1]));
+ let mut x1498: u32 = 0;
+ let mut x1499: u32 = 0;
+ let (x1498, x1499) = fiat_p384_scalar_mulx_u32(x10, (arg1[0]));
+ let mut x1500: u32 = 0;
+ let mut x1501: fiat_p384_scalar_u1 = 0;
+ let (x1500, x1501) = fiat_p384_scalar_addcarryx_u32(0x0, x1499, x1496);
+ let mut x1502: u32 = 0;
+ let mut x1503: fiat_p384_scalar_u1 = 0;
+ let (x1502, x1503) = fiat_p384_scalar_addcarryx_u32(x1501, x1497, x1494);
+ let mut x1504: u32 = 0;
+ let mut x1505: fiat_p384_scalar_u1 = 0;
+ let (x1504, x1505) = fiat_p384_scalar_addcarryx_u32(x1503, x1495, x1492);
+ let mut x1506: u32 = 0;
+ let mut x1507: fiat_p384_scalar_u1 = 0;
+ let (x1506, x1507) = fiat_p384_scalar_addcarryx_u32(x1505, x1493, x1490);
+ let mut x1508: u32 = 0;
+ let mut x1509: fiat_p384_scalar_u1 = 0;
+ let (x1508, x1509) = fiat_p384_scalar_addcarryx_u32(x1507, x1491, x1488);
+ let mut x1510: u32 = 0;
+ let mut x1511: fiat_p384_scalar_u1 = 0;
+ let (x1510, x1511) = fiat_p384_scalar_addcarryx_u32(x1509, x1489, x1486);
+ let mut x1512: u32 = 0;
+ let mut x1513: fiat_p384_scalar_u1 = 0;
+ let (x1512, x1513) = fiat_p384_scalar_addcarryx_u32(x1511, x1487, x1484);
+ let mut x1514: u32 = 0;
+ let mut x1515: fiat_p384_scalar_u1 = 0;
+ let (x1514, x1515) = fiat_p384_scalar_addcarryx_u32(x1513, x1485, x1482);
+ let mut x1516: u32 = 0;
+ let mut x1517: fiat_p384_scalar_u1 = 0;
+ let (x1516, x1517) = fiat_p384_scalar_addcarryx_u32(x1515, x1483, x1480);
+ let mut x1518: u32 = 0;
+ let mut x1519: fiat_p384_scalar_u1 = 0;
+ let (x1518, x1519) = fiat_p384_scalar_addcarryx_u32(x1517, x1481, x1478);
+ let mut x1520: u32 = 0;
+ let mut x1521: fiat_p384_scalar_u1 = 0;
+ let (x1520, x1521) = fiat_p384_scalar_addcarryx_u32(x1519, x1479, x1476);
+ let x1522: u32 = ((x1521 as u32) + x1477);
+ let mut x1523: u32 = 0;
+ let mut x1524: fiat_p384_scalar_u1 = 0;
+ let (x1523, x1524) = fiat_p384_scalar_addcarryx_u32(0x0, x1451, x1498);
+ let mut x1525: u32 = 0;
+ let mut x1526: fiat_p384_scalar_u1 = 0;
+ let (x1525, x1526) = fiat_p384_scalar_addcarryx_u32(x1524, x1453, x1500);
+ let mut x1527: u32 = 0;
+ let mut x1528: fiat_p384_scalar_u1 = 0;
+ let (x1527, x1528) = fiat_p384_scalar_addcarryx_u32(x1526, x1455, x1502);
+ let mut x1529: u32 = 0;
+ let mut x1530: fiat_p384_scalar_u1 = 0;
+ let (x1529, x1530) = fiat_p384_scalar_addcarryx_u32(x1528, x1457, x1504);
+ let mut x1531: u32 = 0;
+ let mut x1532: fiat_p384_scalar_u1 = 0;
+ let (x1531, x1532) = fiat_p384_scalar_addcarryx_u32(x1530, x1459, x1506);
+ let mut x1533: u32 = 0;
+ let mut x1534: fiat_p384_scalar_u1 = 0;
+ let (x1533, x1534) = fiat_p384_scalar_addcarryx_u32(x1532, x1461, x1508);
+ let mut x1535: u32 = 0;
+ let mut x1536: fiat_p384_scalar_u1 = 0;
+ let (x1535, x1536) = fiat_p384_scalar_addcarryx_u32(x1534, x1463, x1510);
+ let mut x1537: u32 = 0;
+ let mut x1538: fiat_p384_scalar_u1 = 0;
+ let (x1537, x1538) = fiat_p384_scalar_addcarryx_u32(x1536, x1465, x1512);
+ let mut x1539: u32 = 0;
+ let mut x1540: fiat_p384_scalar_u1 = 0;
+ let (x1539, x1540) = fiat_p384_scalar_addcarryx_u32(x1538, x1467, x1514);
+ let mut x1541: u32 = 0;
+ let mut x1542: fiat_p384_scalar_u1 = 0;
+ let (x1541, x1542) = fiat_p384_scalar_addcarryx_u32(x1540, x1469, x1516);
+ let mut x1543: u32 = 0;
+ let mut x1544: fiat_p384_scalar_u1 = 0;
+ let (x1543, x1544) = fiat_p384_scalar_addcarryx_u32(x1542, x1471, x1518);
+ let mut x1545: u32 = 0;
+ let mut x1546: fiat_p384_scalar_u1 = 0;
+ let (x1545, x1546) = fiat_p384_scalar_addcarryx_u32(x1544, x1473, x1520);
+ let mut x1547: u32 = 0;
+ let mut x1548: fiat_p384_scalar_u1 = 0;
+ let (x1547, x1548) = fiat_p384_scalar_addcarryx_u32(x1546, x1475, x1522);
+ let mut x1549: u32 = 0;
+ let mut x1550: u32 = 0;
+ let (x1549, x1550) = fiat_p384_scalar_mulx_u32(x1523, 0xe88fdc45);
+ let mut x1551: u32 = 0;
+ let mut x1552: u32 = 0;
+ let (x1551, x1552) = fiat_p384_scalar_mulx_u32(x1549, 0xffffffff);
+ let mut x1553: u32 = 0;
+ let mut x1554: u32 = 0;
+ let (x1553, x1554) = fiat_p384_scalar_mulx_u32(x1549, 0xffffffff);
+ let mut x1555: u32 = 0;
+ let mut x1556: u32 = 0;
+ let (x1555, x1556) = fiat_p384_scalar_mulx_u32(x1549, 0xffffffff);
+ let mut x1557: u32 = 0;
+ let mut x1558: u32 = 0;
+ let (x1557, x1558) = fiat_p384_scalar_mulx_u32(x1549, 0xffffffff);
+ let mut x1559: u32 = 0;
+ let mut x1560: u32 = 0;
+ let (x1559, x1560) = fiat_p384_scalar_mulx_u32(x1549, 0xffffffff);
+ let mut x1561: u32 = 0;
+ let mut x1562: u32 = 0;
+ let (x1561, x1562) = fiat_p384_scalar_mulx_u32(x1549, 0xffffffff);
+ let mut x1563: u32 = 0;
+ let mut x1564: u32 = 0;
+ let (x1563, x1564) = fiat_p384_scalar_mulx_u32(x1549, 0xc7634d81);
+ let mut x1565: u32 = 0;
+ let mut x1566: u32 = 0;
+ let (x1565, x1566) = fiat_p384_scalar_mulx_u32(x1549, 0xf4372ddf);
+ let mut x1567: u32 = 0;
+ let mut x1568: u32 = 0;
+ let (x1567, x1568) = fiat_p384_scalar_mulx_u32(x1549, 0x581a0db2);
+ let mut x1569: u32 = 0;
+ let mut x1570: u32 = 0;
+ let (x1569, x1570) = fiat_p384_scalar_mulx_u32(x1549, 0x48b0a77a);
+ let mut x1571: u32 = 0;
+ let mut x1572: u32 = 0;
+ let (x1571, x1572) = fiat_p384_scalar_mulx_u32(x1549, 0xecec196a);
+ let mut x1573: u32 = 0;
+ let mut x1574: u32 = 0;
+ let (x1573, x1574) = fiat_p384_scalar_mulx_u32(x1549, 0xccc52973);
+ let mut x1575: u32 = 0;
+ let mut x1576: fiat_p384_scalar_u1 = 0;
+ let (x1575, x1576) = fiat_p384_scalar_addcarryx_u32(0x0, x1574, x1571);
+ let mut x1577: u32 = 0;
+ let mut x1578: fiat_p384_scalar_u1 = 0;
+ let (x1577, x1578) = fiat_p384_scalar_addcarryx_u32(x1576, x1572, x1569);
+ let mut x1579: u32 = 0;
+ let mut x1580: fiat_p384_scalar_u1 = 0;
+ let (x1579, x1580) = fiat_p384_scalar_addcarryx_u32(x1578, x1570, x1567);
+ let mut x1581: u32 = 0;
+ let mut x1582: fiat_p384_scalar_u1 = 0;
+ let (x1581, x1582) = fiat_p384_scalar_addcarryx_u32(x1580, x1568, x1565);
+ let mut x1583: u32 = 0;
+ let mut x1584: fiat_p384_scalar_u1 = 0;
+ let (x1583, x1584) = fiat_p384_scalar_addcarryx_u32(x1582, x1566, x1563);
+ let mut x1585: u32 = 0;
+ let mut x1586: fiat_p384_scalar_u1 = 0;
+ let (x1585, x1586) = fiat_p384_scalar_addcarryx_u32(x1584, x1564, x1561);
+ let mut x1587: u32 = 0;
+ let mut x1588: fiat_p384_scalar_u1 = 0;
+ let (x1587, x1588) = fiat_p384_scalar_addcarryx_u32(x1586, x1562, x1559);
+ let mut x1589: u32 = 0;
+ let mut x1590: fiat_p384_scalar_u1 = 0;
+ let (x1589, x1590) = fiat_p384_scalar_addcarryx_u32(x1588, x1560, x1557);
+ let mut x1591: u32 = 0;
+ let mut x1592: fiat_p384_scalar_u1 = 0;
+ let (x1591, x1592) = fiat_p384_scalar_addcarryx_u32(x1590, x1558, x1555);
+ let mut x1593: u32 = 0;
+ let mut x1594: fiat_p384_scalar_u1 = 0;
+ let (x1593, x1594) = fiat_p384_scalar_addcarryx_u32(x1592, x1556, x1553);
+ let mut x1595: u32 = 0;
+ let mut x1596: fiat_p384_scalar_u1 = 0;
+ let (x1595, x1596) = fiat_p384_scalar_addcarryx_u32(x1594, x1554, x1551);
+ let x1597: u32 = ((x1596 as u32) + x1552);
+ let mut x1598: u32 = 0;
+ let mut x1599: fiat_p384_scalar_u1 = 0;
+ let (x1598, x1599) = fiat_p384_scalar_addcarryx_u32(0x0, x1523, x1573);
+ let mut x1600: u32 = 0;
+ let mut x1601: fiat_p384_scalar_u1 = 0;
+ let (x1600, x1601) = fiat_p384_scalar_addcarryx_u32(x1599, x1525, x1575);
+ let mut x1602: u32 = 0;
+ let mut x1603: fiat_p384_scalar_u1 = 0;
+ let (x1602, x1603) = fiat_p384_scalar_addcarryx_u32(x1601, x1527, x1577);
+ let mut x1604: u32 = 0;
+ let mut x1605: fiat_p384_scalar_u1 = 0;
+ let (x1604, x1605) = fiat_p384_scalar_addcarryx_u32(x1603, x1529, x1579);
+ let mut x1606: u32 = 0;
+ let mut x1607: fiat_p384_scalar_u1 = 0;
+ let (x1606, x1607) = fiat_p384_scalar_addcarryx_u32(x1605, x1531, x1581);
+ let mut x1608: u32 = 0;
+ let mut x1609: fiat_p384_scalar_u1 = 0;
+ let (x1608, x1609) = fiat_p384_scalar_addcarryx_u32(x1607, x1533, x1583);
+ let mut x1610: u32 = 0;
+ let mut x1611: fiat_p384_scalar_u1 = 0;
+ let (x1610, x1611) = fiat_p384_scalar_addcarryx_u32(x1609, x1535, x1585);
+ let mut x1612: u32 = 0;
+ let mut x1613: fiat_p384_scalar_u1 = 0;
+ let (x1612, x1613) = fiat_p384_scalar_addcarryx_u32(x1611, x1537, x1587);
+ let mut x1614: u32 = 0;
+ let mut x1615: fiat_p384_scalar_u1 = 0;
+ let (x1614, x1615) = fiat_p384_scalar_addcarryx_u32(x1613, x1539, x1589);
+ let mut x1616: u32 = 0;
+ let mut x1617: fiat_p384_scalar_u1 = 0;
+ let (x1616, x1617) = fiat_p384_scalar_addcarryx_u32(x1615, x1541, x1591);
+ let mut x1618: u32 = 0;
+ let mut x1619: fiat_p384_scalar_u1 = 0;
+ let (x1618, x1619) = fiat_p384_scalar_addcarryx_u32(x1617, x1543, x1593);
+ let mut x1620: u32 = 0;
+ let mut x1621: fiat_p384_scalar_u1 = 0;
+ let (x1620, x1621) = fiat_p384_scalar_addcarryx_u32(x1619, x1545, x1595);
+ let mut x1622: u32 = 0;
+ let mut x1623: fiat_p384_scalar_u1 = 0;
+ let (x1622, x1623) = fiat_p384_scalar_addcarryx_u32(x1621, x1547, x1597);
+ let x1624: u32 = ((x1623 as u32) + (x1548 as u32));
+ let mut x1625: u32 = 0;
+ let mut x1626: u32 = 0;
+ let (x1625, x1626) = fiat_p384_scalar_mulx_u32(x11, (arg1[11]));
+ let mut x1627: u32 = 0;
+ let mut x1628: u32 = 0;
+ let (x1627, x1628) = fiat_p384_scalar_mulx_u32(x11, (arg1[10]));
+ let mut x1629: u32 = 0;
+ let mut x1630: u32 = 0;
+ let (x1629, x1630) = fiat_p384_scalar_mulx_u32(x11, (arg1[9]));
+ let mut x1631: u32 = 0;
+ let mut x1632: u32 = 0;
+ let (x1631, x1632) = fiat_p384_scalar_mulx_u32(x11, (arg1[8]));
+ let mut x1633: u32 = 0;
+ let mut x1634: u32 = 0;
+ let (x1633, x1634) = fiat_p384_scalar_mulx_u32(x11, (arg1[7]));
+ let mut x1635: u32 = 0;
+ let mut x1636: u32 = 0;
+ let (x1635, x1636) = fiat_p384_scalar_mulx_u32(x11, (arg1[6]));
+ let mut x1637: u32 = 0;
+ let mut x1638: u32 = 0;
+ let (x1637, x1638) = fiat_p384_scalar_mulx_u32(x11, (arg1[5]));
+ let mut x1639: u32 = 0;
+ let mut x1640: u32 = 0;
+ let (x1639, x1640) = fiat_p384_scalar_mulx_u32(x11, (arg1[4]));
+ let mut x1641: u32 = 0;
+ let mut x1642: u32 = 0;
+ let (x1641, x1642) = fiat_p384_scalar_mulx_u32(x11, (arg1[3]));
+ let mut x1643: u32 = 0;
+ let mut x1644: u32 = 0;
+ let (x1643, x1644) = fiat_p384_scalar_mulx_u32(x11, (arg1[2]));
+ let mut x1645: u32 = 0;
+ let mut x1646: u32 = 0;
+ let (x1645, x1646) = fiat_p384_scalar_mulx_u32(x11, (arg1[1]));
+ let mut x1647: u32 = 0;
+ let mut x1648: u32 = 0;
+ let (x1647, x1648) = fiat_p384_scalar_mulx_u32(x11, (arg1[0]));
+ let mut x1649: u32 = 0;
+ let mut x1650: fiat_p384_scalar_u1 = 0;
+ let (x1649, x1650) = fiat_p384_scalar_addcarryx_u32(0x0, x1648, x1645);
+ let mut x1651: u32 = 0;
+ let mut x1652: fiat_p384_scalar_u1 = 0;
+ let (x1651, x1652) = fiat_p384_scalar_addcarryx_u32(x1650, x1646, x1643);
+ let mut x1653: u32 = 0;
+ let mut x1654: fiat_p384_scalar_u1 = 0;
+ let (x1653, x1654) = fiat_p384_scalar_addcarryx_u32(x1652, x1644, x1641);
+ let mut x1655: u32 = 0;
+ let mut x1656: fiat_p384_scalar_u1 = 0;
+ let (x1655, x1656) = fiat_p384_scalar_addcarryx_u32(x1654, x1642, x1639);
+ let mut x1657: u32 = 0;
+ let mut x1658: fiat_p384_scalar_u1 = 0;
+ let (x1657, x1658) = fiat_p384_scalar_addcarryx_u32(x1656, x1640, x1637);
+ let mut x1659: u32 = 0;
+ let mut x1660: fiat_p384_scalar_u1 = 0;
+ let (x1659, x1660) = fiat_p384_scalar_addcarryx_u32(x1658, x1638, x1635);
+ let mut x1661: u32 = 0;
+ let mut x1662: fiat_p384_scalar_u1 = 0;
+ let (x1661, x1662) = fiat_p384_scalar_addcarryx_u32(x1660, x1636, x1633);
+ let mut x1663: u32 = 0;
+ let mut x1664: fiat_p384_scalar_u1 = 0;
+ let (x1663, x1664) = fiat_p384_scalar_addcarryx_u32(x1662, x1634, x1631);
+ let mut x1665: u32 = 0;
+ let mut x1666: fiat_p384_scalar_u1 = 0;
+ let (x1665, x1666) = fiat_p384_scalar_addcarryx_u32(x1664, x1632, x1629);
+ let mut x1667: u32 = 0;
+ let mut x1668: fiat_p384_scalar_u1 = 0;
+ let (x1667, x1668) = fiat_p384_scalar_addcarryx_u32(x1666, x1630, x1627);
+ let mut x1669: u32 = 0;
+ let mut x1670: fiat_p384_scalar_u1 = 0;
+ let (x1669, x1670) = fiat_p384_scalar_addcarryx_u32(x1668, x1628, x1625);
+ let x1671: u32 = ((x1670 as u32) + x1626);
+ let mut x1672: u32 = 0;
+ let mut x1673: fiat_p384_scalar_u1 = 0;
+ let (x1672, x1673) = fiat_p384_scalar_addcarryx_u32(0x0, x1600, x1647);
+ let mut x1674: u32 = 0;
+ let mut x1675: fiat_p384_scalar_u1 = 0;
+ let (x1674, x1675) = fiat_p384_scalar_addcarryx_u32(x1673, x1602, x1649);
+ let mut x1676: u32 = 0;
+ let mut x1677: fiat_p384_scalar_u1 = 0;
+ let (x1676, x1677) = fiat_p384_scalar_addcarryx_u32(x1675, x1604, x1651);
+ let mut x1678: u32 = 0;
+ let mut x1679: fiat_p384_scalar_u1 = 0;
+ let (x1678, x1679) = fiat_p384_scalar_addcarryx_u32(x1677, x1606, x1653);
+ let mut x1680: u32 = 0;
+ let mut x1681: fiat_p384_scalar_u1 = 0;
+ let (x1680, x1681) = fiat_p384_scalar_addcarryx_u32(x1679, x1608, x1655);
+ let mut x1682: u32 = 0;
+ let mut x1683: fiat_p384_scalar_u1 = 0;
+ let (x1682, x1683) = fiat_p384_scalar_addcarryx_u32(x1681, x1610, x1657);
+ let mut x1684: u32 = 0;
+ let mut x1685: fiat_p384_scalar_u1 = 0;
+ let (x1684, x1685) = fiat_p384_scalar_addcarryx_u32(x1683, x1612, x1659);
+ let mut x1686: u32 = 0;
+ let mut x1687: fiat_p384_scalar_u1 = 0;
+ let (x1686, x1687) = fiat_p384_scalar_addcarryx_u32(x1685, x1614, x1661);
+ let mut x1688: u32 = 0;
+ let mut x1689: fiat_p384_scalar_u1 = 0;
+ let (x1688, x1689) = fiat_p384_scalar_addcarryx_u32(x1687, x1616, x1663);
+ let mut x1690: u32 = 0;
+ let mut x1691: fiat_p384_scalar_u1 = 0;
+ let (x1690, x1691) = fiat_p384_scalar_addcarryx_u32(x1689, x1618, x1665);
+ let mut x1692: u32 = 0;
+ let mut x1693: fiat_p384_scalar_u1 = 0;
+ let (x1692, x1693) = fiat_p384_scalar_addcarryx_u32(x1691, x1620, x1667);
+ let mut x1694: u32 = 0;
+ let mut x1695: fiat_p384_scalar_u1 = 0;
+ let (x1694, x1695) = fiat_p384_scalar_addcarryx_u32(x1693, x1622, x1669);
+ let mut x1696: u32 = 0;
+ let mut x1697: fiat_p384_scalar_u1 = 0;
+ let (x1696, x1697) = fiat_p384_scalar_addcarryx_u32(x1695, x1624, x1671);
+ let mut x1698: u32 = 0;
+ let mut x1699: u32 = 0;
+ let (x1698, x1699) = fiat_p384_scalar_mulx_u32(x1672, 0xe88fdc45);
+ let mut x1700: u32 = 0;
+ let mut x1701: u32 = 0;
+ let (x1700, x1701) = fiat_p384_scalar_mulx_u32(x1698, 0xffffffff);
+ let mut x1702: u32 = 0;
+ let mut x1703: u32 = 0;
+ let (x1702, x1703) = fiat_p384_scalar_mulx_u32(x1698, 0xffffffff);
+ let mut x1704: u32 = 0;
+ let mut x1705: u32 = 0;
+ let (x1704, x1705) = fiat_p384_scalar_mulx_u32(x1698, 0xffffffff);
+ let mut x1706: u32 = 0;
+ let mut x1707: u32 = 0;
+ let (x1706, x1707) = fiat_p384_scalar_mulx_u32(x1698, 0xffffffff);
+ let mut x1708: u32 = 0;
+ let mut x1709: u32 = 0;
+ let (x1708, x1709) = fiat_p384_scalar_mulx_u32(x1698, 0xffffffff);
+ let mut x1710: u32 = 0;
+ let mut x1711: u32 = 0;
+ let (x1710, x1711) = fiat_p384_scalar_mulx_u32(x1698, 0xffffffff);
+ let mut x1712: u32 = 0;
+ let mut x1713: u32 = 0;
+ let (x1712, x1713) = fiat_p384_scalar_mulx_u32(x1698, 0xc7634d81);
+ let mut x1714: u32 = 0;
+ let mut x1715: u32 = 0;
+ let (x1714, x1715) = fiat_p384_scalar_mulx_u32(x1698, 0xf4372ddf);
+ let mut x1716: u32 = 0;
+ let mut x1717: u32 = 0;
+ let (x1716, x1717) = fiat_p384_scalar_mulx_u32(x1698, 0x581a0db2);
+ let mut x1718: u32 = 0;
+ let mut x1719: u32 = 0;
+ let (x1718, x1719) = fiat_p384_scalar_mulx_u32(x1698, 0x48b0a77a);
+ let mut x1720: u32 = 0;
+ let mut x1721: u32 = 0;
+ let (x1720, x1721) = fiat_p384_scalar_mulx_u32(x1698, 0xecec196a);
+ let mut x1722: u32 = 0;
+ let mut x1723: u32 = 0;
+ let (x1722, x1723) = fiat_p384_scalar_mulx_u32(x1698, 0xccc52973);
+ let mut x1724: u32 = 0;
+ let mut x1725: fiat_p384_scalar_u1 = 0;
+ let (x1724, x1725) = fiat_p384_scalar_addcarryx_u32(0x0, x1723, x1720);
+ let mut x1726: u32 = 0;
+ let mut x1727: fiat_p384_scalar_u1 = 0;
+ let (x1726, x1727) = fiat_p384_scalar_addcarryx_u32(x1725, x1721, x1718);
+ let mut x1728: u32 = 0;
+ let mut x1729: fiat_p384_scalar_u1 = 0;
+ let (x1728, x1729) = fiat_p384_scalar_addcarryx_u32(x1727, x1719, x1716);
+ let mut x1730: u32 = 0;
+ let mut x1731: fiat_p384_scalar_u1 = 0;
+ let (x1730, x1731) = fiat_p384_scalar_addcarryx_u32(x1729, x1717, x1714);
+ let mut x1732: u32 = 0;
+ let mut x1733: fiat_p384_scalar_u1 = 0;
+ let (x1732, x1733) = fiat_p384_scalar_addcarryx_u32(x1731, x1715, x1712);
+ let mut x1734: u32 = 0;
+ let mut x1735: fiat_p384_scalar_u1 = 0;
+ let (x1734, x1735) = fiat_p384_scalar_addcarryx_u32(x1733, x1713, x1710);
+ let mut x1736: u32 = 0;
+ let mut x1737: fiat_p384_scalar_u1 = 0;
+ let (x1736, x1737) = fiat_p384_scalar_addcarryx_u32(x1735, x1711, x1708);
+ let mut x1738: u32 = 0;
+ let mut x1739: fiat_p384_scalar_u1 = 0;
+ let (x1738, x1739) = fiat_p384_scalar_addcarryx_u32(x1737, x1709, x1706);
+ let mut x1740: u32 = 0;
+ let mut x1741: fiat_p384_scalar_u1 = 0;
+ let (x1740, x1741) = fiat_p384_scalar_addcarryx_u32(x1739, x1707, x1704);
+ let mut x1742: u32 = 0;
+ let mut x1743: fiat_p384_scalar_u1 = 0;
+ let (x1742, x1743) = fiat_p384_scalar_addcarryx_u32(x1741, x1705, x1702);
+ let mut x1744: u32 = 0;
+ let mut x1745: fiat_p384_scalar_u1 = 0;
+ let (x1744, x1745) = fiat_p384_scalar_addcarryx_u32(x1743, x1703, x1700);
+ let x1746: u32 = ((x1745 as u32) + x1701);
+ let mut x1747: u32 = 0;
+ let mut x1748: fiat_p384_scalar_u1 = 0;
+ let (x1747, x1748) = fiat_p384_scalar_addcarryx_u32(0x0, x1672, x1722);
+ let mut x1749: u32 = 0;
+ let mut x1750: fiat_p384_scalar_u1 = 0;
+ let (x1749, x1750) = fiat_p384_scalar_addcarryx_u32(x1748, x1674, x1724);
+ let mut x1751: u32 = 0;
+ let mut x1752: fiat_p384_scalar_u1 = 0;
+ let (x1751, x1752) = fiat_p384_scalar_addcarryx_u32(x1750, x1676, x1726);
+ let mut x1753: u32 = 0;
+ let mut x1754: fiat_p384_scalar_u1 = 0;
+ let (x1753, x1754) = fiat_p384_scalar_addcarryx_u32(x1752, x1678, x1728);
+ let mut x1755: u32 = 0;
+ let mut x1756: fiat_p384_scalar_u1 = 0;
+ let (x1755, x1756) = fiat_p384_scalar_addcarryx_u32(x1754, x1680, x1730);
+ let mut x1757: u32 = 0;
+ let mut x1758: fiat_p384_scalar_u1 = 0;
+ let (x1757, x1758) = fiat_p384_scalar_addcarryx_u32(x1756, x1682, x1732);
+ let mut x1759: u32 = 0;
+ let mut x1760: fiat_p384_scalar_u1 = 0;
+ let (x1759, x1760) = fiat_p384_scalar_addcarryx_u32(x1758, x1684, x1734);
+ let mut x1761: u32 = 0;
+ let mut x1762: fiat_p384_scalar_u1 = 0;
+ let (x1761, x1762) = fiat_p384_scalar_addcarryx_u32(x1760, x1686, x1736);
+ let mut x1763: u32 = 0;
+ let mut x1764: fiat_p384_scalar_u1 = 0;
+ let (x1763, x1764) = fiat_p384_scalar_addcarryx_u32(x1762, x1688, x1738);
+ let mut x1765: u32 = 0;
+ let mut x1766: fiat_p384_scalar_u1 = 0;
+ let (x1765, x1766) = fiat_p384_scalar_addcarryx_u32(x1764, x1690, x1740);
+ let mut x1767: u32 = 0;
+ let mut x1768: fiat_p384_scalar_u1 = 0;
+ let (x1767, x1768) = fiat_p384_scalar_addcarryx_u32(x1766, x1692, x1742);
+ let mut x1769: u32 = 0;
+ let mut x1770: fiat_p384_scalar_u1 = 0;
+ let (x1769, x1770) = fiat_p384_scalar_addcarryx_u32(x1768, x1694, x1744);
+ let mut x1771: u32 = 0;
+ let mut x1772: fiat_p384_scalar_u1 = 0;
+ let (x1771, x1772) = fiat_p384_scalar_addcarryx_u32(x1770, x1696, x1746);
+ let x1773: u32 = ((x1772 as u32) + (x1697 as u32));
+ let mut x1774: u32 = 0;
+ let mut x1775: fiat_p384_scalar_u1 = 0;
+ let (x1774, x1775) = fiat_p384_scalar_subborrowx_u32(0x0, x1749, 0xccc52973);
+ let mut x1776: u32 = 0;
+ let mut x1777: fiat_p384_scalar_u1 = 0;
+ let (x1776, x1777) = fiat_p384_scalar_subborrowx_u32(x1775, x1751, 0xecec196a);
+ let mut x1778: u32 = 0;
+ let mut x1779: fiat_p384_scalar_u1 = 0;
+ let (x1778, x1779) = fiat_p384_scalar_subborrowx_u32(x1777, x1753, 0x48b0a77a);
+ let mut x1780: u32 = 0;
+ let mut x1781: fiat_p384_scalar_u1 = 0;
+ let (x1780, x1781) = fiat_p384_scalar_subborrowx_u32(x1779, x1755, 0x581a0db2);
+ let mut x1782: u32 = 0;
+ let mut x1783: fiat_p384_scalar_u1 = 0;
+ let (x1782, x1783) = fiat_p384_scalar_subborrowx_u32(x1781, x1757, 0xf4372ddf);
+ let mut x1784: u32 = 0;
+ let mut x1785: fiat_p384_scalar_u1 = 0;
+ let (x1784, x1785) = fiat_p384_scalar_subborrowx_u32(x1783, x1759, 0xc7634d81);
+ let mut x1786: u32 = 0;
+ let mut x1787: fiat_p384_scalar_u1 = 0;
+ let (x1786, x1787) = fiat_p384_scalar_subborrowx_u32(x1785, x1761, 0xffffffff);
+ let mut x1788: u32 = 0;
+ let mut x1789: fiat_p384_scalar_u1 = 0;
+ let (x1788, x1789) = fiat_p384_scalar_subborrowx_u32(x1787, x1763, 0xffffffff);
+ let mut x1790: u32 = 0;
+ let mut x1791: fiat_p384_scalar_u1 = 0;
+ let (x1790, x1791) = fiat_p384_scalar_subborrowx_u32(x1789, x1765, 0xffffffff);
+ let mut x1792: u32 = 0;
+ let mut x1793: fiat_p384_scalar_u1 = 0;
+ let (x1792, x1793) = fiat_p384_scalar_subborrowx_u32(x1791, x1767, 0xffffffff);
+ let mut x1794: u32 = 0;
+ let mut x1795: fiat_p384_scalar_u1 = 0;
+ let (x1794, x1795) = fiat_p384_scalar_subborrowx_u32(x1793, x1769, 0xffffffff);
+ let mut x1796: u32 = 0;
+ let mut x1797: fiat_p384_scalar_u1 = 0;
+ let (x1796, x1797) = fiat_p384_scalar_subborrowx_u32(x1795, x1771, 0xffffffff);
+ let mut x1798: u32 = 0;
+ let mut x1799: fiat_p384_scalar_u1 = 0;
+ let (x1798, x1799) = fiat_p384_scalar_subborrowx_u32(x1797, x1773, (0x0 as u32));
+ let mut x1800: u32 = 0;
+ let (x1800) = fiat_p384_scalar_cmovznz_u32(x1799, x1774, x1749);
+ let mut x1801: u32 = 0;
+ let (x1801) = fiat_p384_scalar_cmovznz_u32(x1799, x1776, x1751);
+ let mut x1802: u32 = 0;
+ let (x1802) = fiat_p384_scalar_cmovznz_u32(x1799, x1778, x1753);
+ let mut x1803: u32 = 0;
+ let (x1803) = fiat_p384_scalar_cmovznz_u32(x1799, x1780, x1755);
+ let mut x1804: u32 = 0;
+ let (x1804) = fiat_p384_scalar_cmovznz_u32(x1799, x1782, x1757);
+ let mut x1805: u32 = 0;
+ let (x1805) = fiat_p384_scalar_cmovznz_u32(x1799, x1784, x1759);
+ let mut x1806: u32 = 0;
+ let (x1806) = fiat_p384_scalar_cmovznz_u32(x1799, x1786, x1761);
+ let mut x1807: u32 = 0;
+ let (x1807) = fiat_p384_scalar_cmovznz_u32(x1799, x1788, x1763);
+ let mut x1808: u32 = 0;
+ let (x1808) = fiat_p384_scalar_cmovznz_u32(x1799, x1790, x1765);
+ let mut x1809: u32 = 0;
+ let (x1809) = fiat_p384_scalar_cmovznz_u32(x1799, x1792, x1767);
+ let mut x1810: u32 = 0;
+ let (x1810) = fiat_p384_scalar_cmovznz_u32(x1799, x1794, x1769);
+ let mut x1811: u32 = 0;
+ let (x1811) = fiat_p384_scalar_cmovznz_u32(x1799, x1796, x1771);
+ out1[0] = x1800;
+ out1[1] = x1801;
+ out1[2] = x1802;
+ out1[3] = x1803;
+ out1[4] = x1804;
+ out1[5] = x1805;
+ out1[6] = x1806;
+ out1[7] = x1807;
+ out1[8] = x1808;
+ out1[9] = x1809;
+ out1[10] = x1810;
+ out1[11] = x1811;
+ out1
+}
+#[doc = " The function fiat_p384_scalar_add adds two field elements in the Montgomery domain."]
+#[doc = ""]
+#[doc = " Preconditions:"]
+#[doc = " 0 ≤ eval arg1 < m"]
+#[doc = " 0 ≤ eval arg2 < m"]
+#[doc = " Postconditions:"]
+#[doc = " eval (from_montgomery out1) mod m = (eval (from_montgomery arg1) + eval (from_montgomery arg2)) mod m"]
+#[doc = " 0 ≤ eval out1 < m"]
+#[doc = ""]
+#[inline]
+pub const fn fiat_p384_scalar_add(
+ arg1: &fiat_p384_scalar_montgomery_domain_field_element,
+ arg2: &fiat_p384_scalar_montgomery_domain_field_element,
+) -> fiat_p384_scalar_montgomery_domain_field_element {
+ let mut out1: fiat_p384_scalar_montgomery_domain_field_element = [0; 12];
+ let mut x1: u32 = 0;
+ let mut x2: fiat_p384_scalar_u1 = 0;
+ let (x1, x2) = fiat_p384_scalar_addcarryx_u32(0x0, (arg1[0]), (arg2[0]));
+ let mut x3: u32 = 0;
+ let mut x4: fiat_p384_scalar_u1 = 0;
+ let (x3, x4) = fiat_p384_scalar_addcarryx_u32(x2, (arg1[1]), (arg2[1]));
+ let mut x5: u32 = 0;
+ let mut x6: fiat_p384_scalar_u1 = 0;
+ let (x5, x6) = fiat_p384_scalar_addcarryx_u32(x4, (arg1[2]), (arg2[2]));
+ let mut x7: u32 = 0;
+ let mut x8: fiat_p384_scalar_u1 = 0;
+ let (x7, x8) = fiat_p384_scalar_addcarryx_u32(x6, (arg1[3]), (arg2[3]));
+ let mut x9: u32 = 0;
+ let mut x10: fiat_p384_scalar_u1 = 0;
+ let (x9, x10) = fiat_p384_scalar_addcarryx_u32(x8, (arg1[4]), (arg2[4]));
+ let mut x11: u32 = 0;
+ let mut x12: fiat_p384_scalar_u1 = 0;
+ let (x11, x12) = fiat_p384_scalar_addcarryx_u32(x10, (arg1[5]), (arg2[5]));
+ let mut x13: u32 = 0;
+ let mut x14: fiat_p384_scalar_u1 = 0;
+ let (x13, x14) = fiat_p384_scalar_addcarryx_u32(x12, (arg1[6]), (arg2[6]));
+ let mut x15: u32 = 0;
+ let mut x16: fiat_p384_scalar_u1 = 0;
+ let (x15, x16) = fiat_p384_scalar_addcarryx_u32(x14, (arg1[7]), (arg2[7]));
+ let mut x17: u32 = 0;
+ let mut x18: fiat_p384_scalar_u1 = 0;
+ let (x17, x18) = fiat_p384_scalar_addcarryx_u32(x16, (arg1[8]), (arg2[8]));
+ let mut x19: u32 = 0;
+ let mut x20: fiat_p384_scalar_u1 = 0;
+ let (x19, x20) = fiat_p384_scalar_addcarryx_u32(x18, (arg1[9]), (arg2[9]));
+ let mut x21: u32 = 0;
+ let mut x22: fiat_p384_scalar_u1 = 0;
+ let (x21, x22) = fiat_p384_scalar_addcarryx_u32(x20, (arg1[10]), (arg2[10]));
+ let mut x23: u32 = 0;
+ let mut x24: fiat_p384_scalar_u1 = 0;
+ let (x23, x24) = fiat_p384_scalar_addcarryx_u32(x22, (arg1[11]), (arg2[11]));
+ let mut x25: u32 = 0;
+ let mut x26: fiat_p384_scalar_u1 = 0;
+ let (x25, x26) = fiat_p384_scalar_subborrowx_u32(0x0, x1, 0xccc52973);
+ let mut x27: u32 = 0;
+ let mut x28: fiat_p384_scalar_u1 = 0;
+ let (x27, x28) = fiat_p384_scalar_subborrowx_u32(x26, x3, 0xecec196a);
+ let mut x29: u32 = 0;
+ let mut x30: fiat_p384_scalar_u1 = 0;
+ let (x29, x30) = fiat_p384_scalar_subborrowx_u32(x28, x5, 0x48b0a77a);
+ let mut x31: u32 = 0;
+ let mut x32: fiat_p384_scalar_u1 = 0;
+ let (x31, x32) = fiat_p384_scalar_subborrowx_u32(x30, x7, 0x581a0db2);
+ let mut x33: u32 = 0;
+ let mut x34: fiat_p384_scalar_u1 = 0;
+ let (x33, x34) = fiat_p384_scalar_subborrowx_u32(x32, x9, 0xf4372ddf);
+ let mut x35: u32 = 0;
+ let mut x36: fiat_p384_scalar_u1 = 0;
+ let (x35, x36) = fiat_p384_scalar_subborrowx_u32(x34, x11, 0xc7634d81);
+ let mut x37: u32 = 0;
+ let mut x38: fiat_p384_scalar_u1 = 0;
+ let (x37, x38) = fiat_p384_scalar_subborrowx_u32(x36, x13, 0xffffffff);
+ let mut x39: u32 = 0;
+ let mut x40: fiat_p384_scalar_u1 = 0;
+ let (x39, x40) = fiat_p384_scalar_subborrowx_u32(x38, x15, 0xffffffff);
+ let mut x41: u32 = 0;
+ let mut x42: fiat_p384_scalar_u1 = 0;
+ let (x41, x42) = fiat_p384_scalar_subborrowx_u32(x40, x17, 0xffffffff);
+ let mut x43: u32 = 0;
+ let mut x44: fiat_p384_scalar_u1 = 0;
+ let (x43, x44) = fiat_p384_scalar_subborrowx_u32(x42, x19, 0xffffffff);
+ let mut x45: u32 = 0;
+ let mut x46: fiat_p384_scalar_u1 = 0;
+ let (x45, x46) = fiat_p384_scalar_subborrowx_u32(x44, x21, 0xffffffff);
+ let mut x47: u32 = 0;
+ let mut x48: fiat_p384_scalar_u1 = 0;
+ let (x47, x48) = fiat_p384_scalar_subborrowx_u32(x46, x23, 0xffffffff);
+ let mut x49: u32 = 0;
+ let mut x50: fiat_p384_scalar_u1 = 0;
+ let (x49, x50) = fiat_p384_scalar_subborrowx_u32(x48, (x24 as u32), (0x0 as u32));
+ let mut x51: u32 = 0;
+ let (x51) = fiat_p384_scalar_cmovznz_u32(x50, x25, x1);
+ let mut x52: u32 = 0;
+ let (x52) = fiat_p384_scalar_cmovznz_u32(x50, x27, x3);
+ let mut x53: u32 = 0;
+ let (x53) = fiat_p384_scalar_cmovznz_u32(x50, x29, x5);
+ let mut x54: u32 = 0;
+ let (x54) = fiat_p384_scalar_cmovznz_u32(x50, x31, x7);
+ let mut x55: u32 = 0;
+ let (x55) = fiat_p384_scalar_cmovznz_u32(x50, x33, x9);
+ let mut x56: u32 = 0;
+ let (x56) = fiat_p384_scalar_cmovznz_u32(x50, x35, x11);
+ let mut x57: u32 = 0;
+ let (x57) = fiat_p384_scalar_cmovznz_u32(x50, x37, x13);
+ let mut x58: u32 = 0;
+ let (x58) = fiat_p384_scalar_cmovznz_u32(x50, x39, x15);
+ let mut x59: u32 = 0;
+ let (x59) = fiat_p384_scalar_cmovznz_u32(x50, x41, x17);
+ let mut x60: u32 = 0;
+ let (x60) = fiat_p384_scalar_cmovznz_u32(x50, x43, x19);
+ let mut x61: u32 = 0;
+ let (x61) = fiat_p384_scalar_cmovznz_u32(x50, x45, x21);
+ let mut x62: u32 = 0;
+ let (x62) = fiat_p384_scalar_cmovznz_u32(x50, x47, x23);
+ out1[0] = x51;
+ out1[1] = x52;
+ out1[2] = x53;
+ out1[3] = x54;
+ out1[4] = x55;
+ out1[5] = x56;
+ out1[6] = x57;
+ out1[7] = x58;
+ out1[8] = x59;
+ out1[9] = x60;
+ out1[10] = x61;
+ out1[11] = x62;
+ out1
+}
+#[doc = " The function fiat_p384_scalar_sub subtracts two field elements in the Montgomery domain."]
+#[doc = ""]
+#[doc = " Preconditions:"]
+#[doc = " 0 ≤ eval arg1 < m"]
+#[doc = " 0 ≤ eval arg2 < m"]
+#[doc = " Postconditions:"]
+#[doc = " eval (from_montgomery out1) mod m = (eval (from_montgomery arg1) - eval (from_montgomery arg2)) mod m"]
+#[doc = " 0 ≤ eval out1 < m"]
+#[doc = ""]
+#[inline]
+pub const fn fiat_p384_scalar_sub(
+ arg1: &fiat_p384_scalar_montgomery_domain_field_element,
+ arg2: &fiat_p384_scalar_montgomery_domain_field_element,
+) -> fiat_p384_scalar_montgomery_domain_field_element {
+ let mut out1: fiat_p384_scalar_montgomery_domain_field_element = [0; 12];
+ let mut x1: u32 = 0;
+ let mut x2: fiat_p384_scalar_u1 = 0;
+ let (x1, x2) = fiat_p384_scalar_subborrowx_u32(0x0, (arg1[0]), (arg2[0]));
+ let mut x3: u32 = 0;
+ let mut x4: fiat_p384_scalar_u1 = 0;
+ let (x3, x4) = fiat_p384_scalar_subborrowx_u32(x2, (arg1[1]), (arg2[1]));
+ let mut x5: u32 = 0;
+ let mut x6: fiat_p384_scalar_u1 = 0;
+ let (x5, x6) = fiat_p384_scalar_subborrowx_u32(x4, (arg1[2]), (arg2[2]));
+ let mut x7: u32 = 0;
+ let mut x8: fiat_p384_scalar_u1 = 0;
+ let (x7, x8) = fiat_p384_scalar_subborrowx_u32(x6, (arg1[3]), (arg2[3]));
+ let mut x9: u32 = 0;
+ let mut x10: fiat_p384_scalar_u1 = 0;
+ let (x9, x10) = fiat_p384_scalar_subborrowx_u32(x8, (arg1[4]), (arg2[4]));
+ let mut x11: u32 = 0;
+ let mut x12: fiat_p384_scalar_u1 = 0;
+ let (x11, x12) = fiat_p384_scalar_subborrowx_u32(x10, (arg1[5]), (arg2[5]));
+ let mut x13: u32 = 0;
+ let mut x14: fiat_p384_scalar_u1 = 0;
+ let (x13, x14) = fiat_p384_scalar_subborrowx_u32(x12, (arg1[6]), (arg2[6]));
+ let mut x15: u32 = 0;
+ let mut x16: fiat_p384_scalar_u1 = 0;
+ let (x15, x16) = fiat_p384_scalar_subborrowx_u32(x14, (arg1[7]), (arg2[7]));
+ let mut x17: u32 = 0;
+ let mut x18: fiat_p384_scalar_u1 = 0;
+ let (x17, x18) = fiat_p384_scalar_subborrowx_u32(x16, (arg1[8]), (arg2[8]));
+ let mut x19: u32 = 0;
+ let mut x20: fiat_p384_scalar_u1 = 0;
+ let (x19, x20) = fiat_p384_scalar_subborrowx_u32(x18, (arg1[9]), (arg2[9]));
+ let mut x21: u32 = 0;
+ let mut x22: fiat_p384_scalar_u1 = 0;
+ let (x21, x22) = fiat_p384_scalar_subborrowx_u32(x20, (arg1[10]), (arg2[10]));
+ let mut x23: u32 = 0;
+ let mut x24: fiat_p384_scalar_u1 = 0;
+ let (x23, x24) = fiat_p384_scalar_subborrowx_u32(x22, (arg1[11]), (arg2[11]));
+ let mut x25: u32 = 0;
+ let (x25) = fiat_p384_scalar_cmovznz_u32(x24, (0x0 as u32), 0xffffffff);
+ let mut x26: u32 = 0;
+ let mut x27: fiat_p384_scalar_u1 = 0;
+ let (x26, x27) = fiat_p384_scalar_addcarryx_u32(0x0, x1, (x25 & 0xccc52973));
+ let mut x28: u32 = 0;
+ let mut x29: fiat_p384_scalar_u1 = 0;
+ let (x28, x29) = fiat_p384_scalar_addcarryx_u32(x27, x3, (x25 & 0xecec196a));
+ let mut x30: u32 = 0;
+ let mut x31: fiat_p384_scalar_u1 = 0;
+ let (x30, x31) = fiat_p384_scalar_addcarryx_u32(x29, x5, (x25 & 0x48b0a77a));
+ let mut x32: u32 = 0;
+ let mut x33: fiat_p384_scalar_u1 = 0;
+ let (x32, x33) = fiat_p384_scalar_addcarryx_u32(x31, x7, (x25 & 0x581a0db2));
+ let mut x34: u32 = 0;
+ let mut x35: fiat_p384_scalar_u1 = 0;
+ let (x34, x35) = fiat_p384_scalar_addcarryx_u32(x33, x9, (x25 & 0xf4372ddf));
+ let mut x36: u32 = 0;
+ let mut x37: fiat_p384_scalar_u1 = 0;
+ let (x36, x37) = fiat_p384_scalar_addcarryx_u32(x35, x11, (x25 & 0xc7634d81));
+ let mut x38: u32 = 0;
+ let mut x39: fiat_p384_scalar_u1 = 0;
+ let (x38, x39) = fiat_p384_scalar_addcarryx_u32(x37, x13, x25);
+ let mut x40: u32 = 0;
+ let mut x41: fiat_p384_scalar_u1 = 0;
+ let (x40, x41) = fiat_p384_scalar_addcarryx_u32(x39, x15, x25);
+ let mut x42: u32 = 0;
+ let mut x43: fiat_p384_scalar_u1 = 0;
+ let (x42, x43) = fiat_p384_scalar_addcarryx_u32(x41, x17, x25);
+ let mut x44: u32 = 0;
+ let mut x45: fiat_p384_scalar_u1 = 0;
+ let (x44, x45) = fiat_p384_scalar_addcarryx_u32(x43, x19, x25);
+ let mut x46: u32 = 0;
+ let mut x47: fiat_p384_scalar_u1 = 0;
+ let (x46, x47) = fiat_p384_scalar_addcarryx_u32(x45, x21, x25);
+ let mut x48: u32 = 0;
+ let mut x49: fiat_p384_scalar_u1 = 0;
+ let (x48, x49) = fiat_p384_scalar_addcarryx_u32(x47, x23, x25);
+ out1[0] = x26;
+ out1[1] = x28;
+ out1[2] = x30;
+ out1[3] = x32;
+ out1[4] = x34;
+ out1[5] = x36;
+ out1[6] = x38;
+ out1[7] = x40;
+ out1[8] = x42;
+ out1[9] = x44;
+ out1[10] = x46;
+ out1[11] = x48;
+ out1
+}
+#[doc = " The function fiat_p384_scalar_opp negates a field element in the Montgomery domain."]
+#[doc = ""]
+#[doc = " Preconditions:"]
+#[doc = " 0 ≤ eval arg1 < m"]
+#[doc = " Postconditions:"]
+#[doc = " eval (from_montgomery out1) mod m = -eval (from_montgomery arg1) mod m"]
+#[doc = " 0 ≤ eval out1 < m"]
+#[doc = ""]
+#[inline]
+pub const fn fiat_p384_scalar_opp(
+ arg1: &fiat_p384_scalar_montgomery_domain_field_element,
+) -> fiat_p384_scalar_montgomery_domain_field_element {
+ let mut out1: fiat_p384_scalar_montgomery_domain_field_element = [0; 12];
+ let mut x1: u32 = 0;
+ let mut x2: fiat_p384_scalar_u1 = 0;
+ let (x1, x2) = fiat_p384_scalar_subborrowx_u32(0x0, (0x0 as u32), (arg1[0]));
+ let mut x3: u32 = 0;
+ let mut x4: fiat_p384_scalar_u1 = 0;
+ let (x3, x4) = fiat_p384_scalar_subborrowx_u32(x2, (0x0 as u32), (arg1[1]));
+ let mut x5: u32 = 0;
+ let mut x6: fiat_p384_scalar_u1 = 0;
+ let (x5, x6) = fiat_p384_scalar_subborrowx_u32(x4, (0x0 as u32), (arg1[2]));
+ let mut x7: u32 = 0;
+ let mut x8: fiat_p384_scalar_u1 = 0;
+ let (x7, x8) = fiat_p384_scalar_subborrowx_u32(x6, (0x0 as u32), (arg1[3]));
+ let mut x9: u32 = 0;
+ let mut x10: fiat_p384_scalar_u1 = 0;
+ let (x9, x10) = fiat_p384_scalar_subborrowx_u32(x8, (0x0 as u32), (arg1[4]));
+ let mut x11: u32 = 0;
+ let mut x12: fiat_p384_scalar_u1 = 0;
+ let (x11, x12) = fiat_p384_scalar_subborrowx_u32(x10, (0x0 as u32), (arg1[5]));
+ let mut x13: u32 = 0;
+ let mut x14: fiat_p384_scalar_u1 = 0;
+ let (x13, x14) = fiat_p384_scalar_subborrowx_u32(x12, (0x0 as u32), (arg1[6]));
+ let mut x15: u32 = 0;
+ let mut x16: fiat_p384_scalar_u1 = 0;
+ let (x15, x16) = fiat_p384_scalar_subborrowx_u32(x14, (0x0 as u32), (arg1[7]));
+ let mut x17: u32 = 0;
+ let mut x18: fiat_p384_scalar_u1 = 0;
+ let (x17, x18) = fiat_p384_scalar_subborrowx_u32(x16, (0x0 as u32), (arg1[8]));
+ let mut x19: u32 = 0;
+ let mut x20: fiat_p384_scalar_u1 = 0;
+ let (x19, x20) = fiat_p384_scalar_subborrowx_u32(x18, (0x0 as u32), (arg1[9]));
+ let mut x21: u32 = 0;
+ let mut x22: fiat_p384_scalar_u1 = 0;
+ let (x21, x22) = fiat_p384_scalar_subborrowx_u32(x20, (0x0 as u32), (arg1[10]));
+ let mut x23: u32 = 0;
+ let mut x24: fiat_p384_scalar_u1 = 0;
+ let (x23, x24) = fiat_p384_scalar_subborrowx_u32(x22, (0x0 as u32), (arg1[11]));
+ let mut x25: u32 = 0;
+ let (x25) = fiat_p384_scalar_cmovznz_u32(x24, (0x0 as u32), 0xffffffff);
+ let mut x26: u32 = 0;
+ let mut x27: fiat_p384_scalar_u1 = 0;
+ let (x26, x27) = fiat_p384_scalar_addcarryx_u32(0x0, x1, (x25 & 0xccc52973));
+ let mut x28: u32 = 0;
+ let mut x29: fiat_p384_scalar_u1 = 0;
+ let (x28, x29) = fiat_p384_scalar_addcarryx_u32(x27, x3, (x25 & 0xecec196a));
+ let mut x30: u32 = 0;
+ let mut x31: fiat_p384_scalar_u1 = 0;
+ let (x30, x31) = fiat_p384_scalar_addcarryx_u32(x29, x5, (x25 & 0x48b0a77a));
+ let mut x32: u32 = 0;
+ let mut x33: fiat_p384_scalar_u1 = 0;
+ let (x32, x33) = fiat_p384_scalar_addcarryx_u32(x31, x7, (x25 & 0x581a0db2));
+ let mut x34: u32 = 0;
+ let mut x35: fiat_p384_scalar_u1 = 0;
+ let (x34, x35) = fiat_p384_scalar_addcarryx_u32(x33, x9, (x25 & 0xf4372ddf));
+ let mut x36: u32 = 0;
+ let mut x37: fiat_p384_scalar_u1 = 0;
+ let (x36, x37) = fiat_p384_scalar_addcarryx_u32(x35, x11, (x25 & 0xc7634d81));
+ let mut x38: u32 = 0;
+ let mut x39: fiat_p384_scalar_u1 = 0;
+ let (x38, x39) = fiat_p384_scalar_addcarryx_u32(x37, x13, x25);
+ let mut x40: u32 = 0;
+ let mut x41: fiat_p384_scalar_u1 = 0;
+ let (x40, x41) = fiat_p384_scalar_addcarryx_u32(x39, x15, x25);
+ let mut x42: u32 = 0;
+ let mut x43: fiat_p384_scalar_u1 = 0;
+ let (x42, x43) = fiat_p384_scalar_addcarryx_u32(x41, x17, x25);
+ let mut x44: u32 = 0;
+ let mut x45: fiat_p384_scalar_u1 = 0;
+ let (x44, x45) = fiat_p384_scalar_addcarryx_u32(x43, x19, x25);
+ let mut x46: u32 = 0;
+ let mut x47: fiat_p384_scalar_u1 = 0;
+ let (x46, x47) = fiat_p384_scalar_addcarryx_u32(x45, x21, x25);
+ let mut x48: u32 = 0;
+ let mut x49: fiat_p384_scalar_u1 = 0;
+ let (x48, x49) = fiat_p384_scalar_addcarryx_u32(x47, x23, x25);
+ out1[0] = x26;
+ out1[1] = x28;
+ out1[2] = x30;
+ out1[3] = x32;
+ out1[4] = x34;
+ out1[5] = x36;
+ out1[6] = x38;
+ out1[7] = x40;
+ out1[8] = x42;
+ out1[9] = x44;
+ out1[10] = x46;
+ out1[11] = x48;
+ out1
+}
+#[doc = " The function fiat_p384_scalar_from_montgomery translates a field element out of the Montgomery domain."]
+#[doc = ""]
+#[doc = " Preconditions:"]
+#[doc = " 0 ≤ eval arg1 < m"]
+#[doc = " Postconditions:"]
+#[doc = " eval out1 mod m = (eval arg1 * ((2^32)⁻¹ mod m)^12) mod m"]
+#[doc = " 0 ≤ eval out1 < m"]
+#[doc = ""]
+#[inline]
+pub const fn fiat_p384_scalar_from_montgomery(
+ arg1: &fiat_p384_scalar_montgomery_domain_field_element,
+) -> fiat_p384_scalar_non_montgomery_domain_field_element {
+ let mut out1: fiat_p384_scalar_non_montgomery_domain_field_element = [0; 12];
+ let x1: u32 = (arg1[0]);
+ let mut x2: u32 = 0;
+ let mut x3: u32 = 0;
+ let (x2, x3) = fiat_p384_scalar_mulx_u32(x1, 0xe88fdc45);
+ let mut x4: u32 = 0;
+ let mut x5: u32 = 0;
+ let (x4, x5) = fiat_p384_scalar_mulx_u32(x2, 0xffffffff);
+ let mut x6: u32 = 0;
+ let mut x7: u32 = 0;
+ let (x6, x7) = fiat_p384_scalar_mulx_u32(x2, 0xffffffff);
+ let mut x8: u32 = 0;
+ let mut x9: u32 = 0;
+ let (x8, x9) = fiat_p384_scalar_mulx_u32(x2, 0xffffffff);
+ let mut x10: u32 = 0;
+ let mut x11: u32 = 0;
+ let (x10, x11) = fiat_p384_scalar_mulx_u32(x2, 0xffffffff);
+ let mut x12: u32 = 0;
+ let mut x13: u32 = 0;
+ let (x12, x13) = fiat_p384_scalar_mulx_u32(x2, 0xffffffff);
+ let mut x14: u32 = 0;
+ let mut x15: u32 = 0;
+ let (x14, x15) = fiat_p384_scalar_mulx_u32(x2, 0xffffffff);
+ let mut x16: u32 = 0;
+ let mut x17: u32 = 0;
+ let (x16, x17) = fiat_p384_scalar_mulx_u32(x2, 0xc7634d81);
+ let mut x18: u32 = 0;
+ let mut x19: u32 = 0;
+ let (x18, x19) = fiat_p384_scalar_mulx_u32(x2, 0xf4372ddf);
+ let mut x20: u32 = 0;
+ let mut x21: u32 = 0;
+ let (x20, x21) = fiat_p384_scalar_mulx_u32(x2, 0x581a0db2);
+ let mut x22: u32 = 0;
+ let mut x23: u32 = 0;
+ let (x22, x23) = fiat_p384_scalar_mulx_u32(x2, 0x48b0a77a);
+ let mut x24: u32 = 0;
+ let mut x25: u32 = 0;
+ let (x24, x25) = fiat_p384_scalar_mulx_u32(x2, 0xecec196a);
+ let mut x26: u32 = 0;
+ let mut x27: u32 = 0;
+ let (x26, x27) = fiat_p384_scalar_mulx_u32(x2, 0xccc52973);
+ let mut x28: u32 = 0;
+ let mut x29: fiat_p384_scalar_u1 = 0;
+ let (x28, x29) = fiat_p384_scalar_addcarryx_u32(0x0, x27, x24);
+ let mut x30: u32 = 0;
+ let mut x31: fiat_p384_scalar_u1 = 0;
+ let (x30, x31) = fiat_p384_scalar_addcarryx_u32(x29, x25, x22);
+ let mut x32: u32 = 0;
+ let mut x33: fiat_p384_scalar_u1 = 0;
+ let (x32, x33) = fiat_p384_scalar_addcarryx_u32(x31, x23, x20);
+ let mut x34: u32 = 0;
+ let mut x35: fiat_p384_scalar_u1 = 0;
+ let (x34, x35) = fiat_p384_scalar_addcarryx_u32(x33, x21, x18);
+ let mut x36: u32 = 0;
+ let mut x37: fiat_p384_scalar_u1 = 0;
+ let (x36, x37) = fiat_p384_scalar_addcarryx_u32(x35, x19, x16);
+ let mut x38: u32 = 0;
+ let mut x39: fiat_p384_scalar_u1 = 0;
+ let (x38, x39) = fiat_p384_scalar_addcarryx_u32(x37, x17, x14);
+ let mut x40: u32 = 0;
+ let mut x41: fiat_p384_scalar_u1 = 0;
+ let (x40, x41) = fiat_p384_scalar_addcarryx_u32(x39, x15, x12);
+ let mut x42: u32 = 0;
+ let mut x43: fiat_p384_scalar_u1 = 0;
+ let (x42, x43) = fiat_p384_scalar_addcarryx_u32(x41, x13, x10);
+ let mut x44: u32 = 0;
+ let mut x45: fiat_p384_scalar_u1 = 0;
+ let (x44, x45) = fiat_p384_scalar_addcarryx_u32(x43, x11, x8);
+ let mut x46: u32 = 0;
+ let mut x47: fiat_p384_scalar_u1 = 0;
+ let (x46, x47) = fiat_p384_scalar_addcarryx_u32(x45, x9, x6);
+ let mut x48: u32 = 0;
+ let mut x49: fiat_p384_scalar_u1 = 0;
+ let (x48, x49) = fiat_p384_scalar_addcarryx_u32(x47, x7, x4);
+ let mut x50: u32 = 0;
+ let mut x51: fiat_p384_scalar_u1 = 0;
+ let (x50, x51) = fiat_p384_scalar_addcarryx_u32(0x0, x1, x26);
+ let mut x52: u32 = 0;
+ let mut x53: fiat_p384_scalar_u1 = 0;
+ let (x52, x53) = fiat_p384_scalar_addcarryx_u32(x51, (0x0 as u32), x28);
+ let mut x54: u32 = 0;
+ let mut x55: fiat_p384_scalar_u1 = 0;
+ let (x54, x55) = fiat_p384_scalar_addcarryx_u32(x53, (0x0 as u32), x30);
+ let mut x56: u32 = 0;
+ let mut x57: fiat_p384_scalar_u1 = 0;
+ let (x56, x57) = fiat_p384_scalar_addcarryx_u32(x55, (0x0 as u32), x32);
+ let mut x58: u32 = 0;
+ let mut x59: fiat_p384_scalar_u1 = 0;
+ let (x58, x59) = fiat_p384_scalar_addcarryx_u32(x57, (0x0 as u32), x34);
+ let mut x60: u32 = 0;
+ let mut x61: fiat_p384_scalar_u1 = 0;
+ let (x60, x61) = fiat_p384_scalar_addcarryx_u32(x59, (0x0 as u32), x36);
+ let mut x62: u32 = 0;
+ let mut x63: fiat_p384_scalar_u1 = 0;
+ let (x62, x63) = fiat_p384_scalar_addcarryx_u32(x61, (0x0 as u32), x38);
+ let mut x64: u32 = 0;
+ let mut x65: fiat_p384_scalar_u1 = 0;
+ let (x64, x65) = fiat_p384_scalar_addcarryx_u32(x63, (0x0 as u32), x40);
+ let mut x66: u32 = 0;
+ let mut x67: fiat_p384_scalar_u1 = 0;
+ let (x66, x67) = fiat_p384_scalar_addcarryx_u32(x65, (0x0 as u32), x42);
+ let mut x68: u32 = 0;
+ let mut x69: fiat_p384_scalar_u1 = 0;
+ let (x68, x69) = fiat_p384_scalar_addcarryx_u32(x67, (0x0 as u32), x44);
+ let mut x70: u32 = 0;
+ let mut x71: fiat_p384_scalar_u1 = 0;
+ let (x70, x71) = fiat_p384_scalar_addcarryx_u32(x69, (0x0 as u32), x46);
+ let mut x72: u32 = 0;
+ let mut x73: fiat_p384_scalar_u1 = 0;
+ let (x72, x73) = fiat_p384_scalar_addcarryx_u32(x71, (0x0 as u32), x48);
+ let mut x74: u32 = 0;
+ let mut x75: fiat_p384_scalar_u1 = 0;
+ let (x74, x75) = fiat_p384_scalar_addcarryx_u32(x73, (0x0 as u32), ((x49 as u32) + x5));
+ let mut x76: u32 = 0;
+ let mut x77: fiat_p384_scalar_u1 = 0;
+ let (x76, x77) = fiat_p384_scalar_addcarryx_u32(0x0, x52, (arg1[1]));
+ let mut x78: u32 = 0;
+ let mut x79: fiat_p384_scalar_u1 = 0;
+ let (x78, x79) = fiat_p384_scalar_addcarryx_u32(x77, x54, (0x0 as u32));
+ let mut x80: u32 = 0;
+ let mut x81: fiat_p384_scalar_u1 = 0;
+ let (x80, x81) = fiat_p384_scalar_addcarryx_u32(x79, x56, (0x0 as u32));
+ let mut x82: u32 = 0;
+ let mut x83: fiat_p384_scalar_u1 = 0;
+ let (x82, x83) = fiat_p384_scalar_addcarryx_u32(x81, x58, (0x0 as u32));
+ let mut x84: u32 = 0;
+ let mut x85: fiat_p384_scalar_u1 = 0;
+ let (x84, x85) = fiat_p384_scalar_addcarryx_u32(x83, x60, (0x0 as u32));
+ let mut x86: u32 = 0;
+ let mut x87: fiat_p384_scalar_u1 = 0;
+ let (x86, x87) = fiat_p384_scalar_addcarryx_u32(x85, x62, (0x0 as u32));
+ let mut x88: u32 = 0;
+ let mut x89: fiat_p384_scalar_u1 = 0;
+ let (x88, x89) = fiat_p384_scalar_addcarryx_u32(x87, x64, (0x0 as u32));
+ let mut x90: u32 = 0;
+ let mut x91: fiat_p384_scalar_u1 = 0;
+ let (x90, x91) = fiat_p384_scalar_addcarryx_u32(x89, x66, (0x0 as u32));
+ let mut x92: u32 = 0;
+ let mut x93: fiat_p384_scalar_u1 = 0;
+ let (x92, x93) = fiat_p384_scalar_addcarryx_u32(x91, x68, (0x0 as u32));
+ let mut x94: u32 = 0;
+ let mut x95: fiat_p384_scalar_u1 = 0;
+ let (x94, x95) = fiat_p384_scalar_addcarryx_u32(x93, x70, (0x0 as u32));
+ let mut x96: u32 = 0;
+ let mut x97: fiat_p384_scalar_u1 = 0;
+ let (x96, x97) = fiat_p384_scalar_addcarryx_u32(x95, x72, (0x0 as u32));
+ let mut x98: u32 = 0;
+ let mut x99: fiat_p384_scalar_u1 = 0;
+ let (x98, x99) = fiat_p384_scalar_addcarryx_u32(x97, x74, (0x0 as u32));
+ let mut x100: u32 = 0;
+ let mut x101: u32 = 0;
+ let (x100, x101) = fiat_p384_scalar_mulx_u32(x76, 0xe88fdc45);
+ let mut x102: u32 = 0;
+ let mut x103: u32 = 0;
+ let (x102, x103) = fiat_p384_scalar_mulx_u32(x100, 0xffffffff);
+ let mut x104: u32 = 0;
+ let mut x105: u32 = 0;
+ let (x104, x105) = fiat_p384_scalar_mulx_u32(x100, 0xffffffff);
+ let mut x106: u32 = 0;
+ let mut x107: u32 = 0;
+ let (x106, x107) = fiat_p384_scalar_mulx_u32(x100, 0xffffffff);
+ let mut x108: u32 = 0;
+ let mut x109: u32 = 0;
+ let (x108, x109) = fiat_p384_scalar_mulx_u32(x100, 0xffffffff);
+ let mut x110: u32 = 0;
+ let mut x111: u32 = 0;
+ let (x110, x111) = fiat_p384_scalar_mulx_u32(x100, 0xffffffff);
+ let mut x112: u32 = 0;
+ let mut x113: u32 = 0;
+ let (x112, x113) = fiat_p384_scalar_mulx_u32(x100, 0xffffffff);
+ let mut x114: u32 = 0;
+ let mut x115: u32 = 0;
+ let (x114, x115) = fiat_p384_scalar_mulx_u32(x100, 0xc7634d81);
+ let mut x116: u32 = 0;
+ let mut x117: u32 = 0;
+ let (x116, x117) = fiat_p384_scalar_mulx_u32(x100, 0xf4372ddf);
+ let mut x118: u32 = 0;
+ let mut x119: u32 = 0;
+ let (x118, x119) = fiat_p384_scalar_mulx_u32(x100, 0x581a0db2);
+ let mut x120: u32 = 0;
+ let mut x121: u32 = 0;
+ let (x120, x121) = fiat_p384_scalar_mulx_u32(x100, 0x48b0a77a);
+ let mut x122: u32 = 0;
+ let mut x123: u32 = 0;
+ let (x122, x123) = fiat_p384_scalar_mulx_u32(x100, 0xecec196a);
+ let mut x124: u32 = 0;
+ let mut x125: u32 = 0;
+ let (x124, x125) = fiat_p384_scalar_mulx_u32(x100, 0xccc52973);
+ let mut x126: u32 = 0;
+ let mut x127: fiat_p384_scalar_u1 = 0;
+ let (x126, x127) = fiat_p384_scalar_addcarryx_u32(0x0, x125, x122);
+ let mut x128: u32 = 0;
+ let mut x129: fiat_p384_scalar_u1 = 0;
+ let (x128, x129) = fiat_p384_scalar_addcarryx_u32(x127, x123, x120);
+ let mut x130: u32 = 0;
+ let mut x131: fiat_p384_scalar_u1 = 0;
+ let (x130, x131) = fiat_p384_scalar_addcarryx_u32(x129, x121, x118);
+ let mut x132: u32 = 0;
+ let mut x133: fiat_p384_scalar_u1 = 0;
+ let (x132, x133) = fiat_p384_scalar_addcarryx_u32(x131, x119, x116);
+ let mut x134: u32 = 0;
+ let mut x135: fiat_p384_scalar_u1 = 0;
+ let (x134, x135) = fiat_p384_scalar_addcarryx_u32(x133, x117, x114);
+ let mut x136: u32 = 0;
+ let mut x137: fiat_p384_scalar_u1 = 0;
+ let (x136, x137) = fiat_p384_scalar_addcarryx_u32(x135, x115, x112);
+ let mut x138: u32 = 0;
+ let mut x139: fiat_p384_scalar_u1 = 0;
+ let (x138, x139) = fiat_p384_scalar_addcarryx_u32(x137, x113, x110);
+ let mut x140: u32 = 0;
+ let mut x141: fiat_p384_scalar_u1 = 0;
+ let (x140, x141) = fiat_p384_scalar_addcarryx_u32(x139, x111, x108);
+ let mut x142: u32 = 0;
+ let mut x143: fiat_p384_scalar_u1 = 0;
+ let (x142, x143) = fiat_p384_scalar_addcarryx_u32(x141, x109, x106);
+ let mut x144: u32 = 0;
+ let mut x145: fiat_p384_scalar_u1 = 0;
+ let (x144, x145) = fiat_p384_scalar_addcarryx_u32(x143, x107, x104);
+ let mut x146: u32 = 0;
+ let mut x147: fiat_p384_scalar_u1 = 0;
+ let (x146, x147) = fiat_p384_scalar_addcarryx_u32(x145, x105, x102);
+ let mut x148: u32 = 0;
+ let mut x149: fiat_p384_scalar_u1 = 0;
+ let (x148, x149) = fiat_p384_scalar_addcarryx_u32(0x0, x76, x124);
+ let mut x150: u32 = 0;
+ let mut x151: fiat_p384_scalar_u1 = 0;
+ let (x150, x151) = fiat_p384_scalar_addcarryx_u32(x149, x78, x126);
+ let mut x152: u32 = 0;
+ let mut x153: fiat_p384_scalar_u1 = 0;
+ let (x152, x153) = fiat_p384_scalar_addcarryx_u32(x151, x80, x128);
+ let mut x154: u32 = 0;
+ let mut x155: fiat_p384_scalar_u1 = 0;
+ let (x154, x155) = fiat_p384_scalar_addcarryx_u32(x153, x82, x130);
+ let mut x156: u32 = 0;
+ let mut x157: fiat_p384_scalar_u1 = 0;
+ let (x156, x157) = fiat_p384_scalar_addcarryx_u32(x155, x84, x132);
+ let mut x158: u32 = 0;
+ let mut x159: fiat_p384_scalar_u1 = 0;
+ let (x158, x159) = fiat_p384_scalar_addcarryx_u32(x157, x86, x134);
+ let mut x160: u32 = 0;
+ let mut x161: fiat_p384_scalar_u1 = 0;
+ let (x160, x161) = fiat_p384_scalar_addcarryx_u32(x159, x88, x136);
+ let mut x162: u32 = 0;
+ let mut x163: fiat_p384_scalar_u1 = 0;
+ let (x162, x163) = fiat_p384_scalar_addcarryx_u32(x161, x90, x138);
+ let mut x164: u32 = 0;
+ let mut x165: fiat_p384_scalar_u1 = 0;
+ let (x164, x165) = fiat_p384_scalar_addcarryx_u32(x163, x92, x140);
+ let mut x166: u32 = 0;
+ let mut x167: fiat_p384_scalar_u1 = 0;
+ let (x166, x167) = fiat_p384_scalar_addcarryx_u32(x165, x94, x142);
+ let mut x168: u32 = 0;
+ let mut x169: fiat_p384_scalar_u1 = 0;
+ let (x168, x169) = fiat_p384_scalar_addcarryx_u32(x167, x96, x144);
+ let mut x170: u32 = 0;
+ let mut x171: fiat_p384_scalar_u1 = 0;
+ let (x170, x171) = fiat_p384_scalar_addcarryx_u32(x169, x98, x146);
+ let mut x172: u32 = 0;
+ let mut x173: fiat_p384_scalar_u1 = 0;
+ let (x172, x173) =
+ fiat_p384_scalar_addcarryx_u32(x171, ((x99 as u32) + (x75 as u32)), ((x147 as u32) + x103));
+ let mut x174: u32 = 0;
+ let mut x175: fiat_p384_scalar_u1 = 0;
+ let (x174, x175) = fiat_p384_scalar_addcarryx_u32(0x0, x150, (arg1[2]));
+ let mut x176: u32 = 0;
+ let mut x177: fiat_p384_scalar_u1 = 0;
+ let (x176, x177) = fiat_p384_scalar_addcarryx_u32(x175, x152, (0x0 as u32));
+ let mut x178: u32 = 0;
+ let mut x179: fiat_p384_scalar_u1 = 0;
+ let (x178, x179) = fiat_p384_scalar_addcarryx_u32(x177, x154, (0x0 as u32));
+ let mut x180: u32 = 0;
+ let mut x181: fiat_p384_scalar_u1 = 0;
+ let (x180, x181) = fiat_p384_scalar_addcarryx_u32(x179, x156, (0x0 as u32));
+ let mut x182: u32 = 0;
+ let mut x183: fiat_p384_scalar_u1 = 0;
+ let (x182, x183) = fiat_p384_scalar_addcarryx_u32(x181, x158, (0x0 as u32));
+ let mut x184: u32 = 0;
+ let mut x185: fiat_p384_scalar_u1 = 0;
+ let (x184, x185) = fiat_p384_scalar_addcarryx_u32(x183, x160, (0x0 as u32));
+ let mut x186: u32 = 0;
+ let mut x187: fiat_p384_scalar_u1 = 0;
+ let (x186, x187) = fiat_p384_scalar_addcarryx_u32(x185, x162, (0x0 as u32));
+ let mut x188: u32 = 0;
+ let mut x189: fiat_p384_scalar_u1 = 0;
+ let (x188, x189) = fiat_p384_scalar_addcarryx_u32(x187, x164, (0x0 as u32));
+ let mut x190: u32 = 0;
+ let mut x191: fiat_p384_scalar_u1 = 0;
+ let (x190, x191) = fiat_p384_scalar_addcarryx_u32(x189, x166, (0x0 as u32));
+ let mut x192: u32 = 0;
+ let mut x193: fiat_p384_scalar_u1 = 0;
+ let (x192, x193) = fiat_p384_scalar_addcarryx_u32(x191, x168, (0x0 as u32));
+ let mut x194: u32 = 0;
+ let mut x195: fiat_p384_scalar_u1 = 0;
+ let (x194, x195) = fiat_p384_scalar_addcarryx_u32(x193, x170, (0x0 as u32));
+ let mut x196: u32 = 0;
+ let mut x197: fiat_p384_scalar_u1 = 0;
+ let (x196, x197) = fiat_p384_scalar_addcarryx_u32(x195, x172, (0x0 as u32));
+ let mut x198: u32 = 0;
+ let mut x199: u32 = 0;
+ let (x198, x199) = fiat_p384_scalar_mulx_u32(x174, 0xe88fdc45);
+ let mut x200: u32 = 0;
+ let mut x201: u32 = 0;
+ let (x200, x201) = fiat_p384_scalar_mulx_u32(x198, 0xffffffff);
+ let mut x202: u32 = 0;
+ let mut x203: u32 = 0;
+ let (x202, x203) = fiat_p384_scalar_mulx_u32(x198, 0xffffffff);
+ let mut x204: u32 = 0;
+ let mut x205: u32 = 0;
+ let (x204, x205) = fiat_p384_scalar_mulx_u32(x198, 0xffffffff);
+ let mut x206: u32 = 0;
+ let mut x207: u32 = 0;
+ let (x206, x207) = fiat_p384_scalar_mulx_u32(x198, 0xffffffff);
+ let mut x208: u32 = 0;
+ let mut x209: u32 = 0;
+ let (x208, x209) = fiat_p384_scalar_mulx_u32(x198, 0xffffffff);
+ let mut x210: u32 = 0;
+ let mut x211: u32 = 0;
+ let (x210, x211) = fiat_p384_scalar_mulx_u32(x198, 0xffffffff);
+ let mut x212: u32 = 0;
+ let mut x213: u32 = 0;
+ let (x212, x213) = fiat_p384_scalar_mulx_u32(x198, 0xc7634d81);
+ let mut x214: u32 = 0;
+ let mut x215: u32 = 0;
+ let (x214, x215) = fiat_p384_scalar_mulx_u32(x198, 0xf4372ddf);
+ let mut x216: u32 = 0;
+ let mut x217: u32 = 0;
+ let (x216, x217) = fiat_p384_scalar_mulx_u32(x198, 0x581a0db2);
+ let mut x218: u32 = 0;
+ let mut x219: u32 = 0;
+ let (x218, x219) = fiat_p384_scalar_mulx_u32(x198, 0x48b0a77a);
+ let mut x220: u32 = 0;
+ let mut x221: u32 = 0;
+ let (x220, x221) = fiat_p384_scalar_mulx_u32(x198, 0xecec196a);
+ let mut x222: u32 = 0;
+ let mut x223: u32 = 0;
+ let (x222, x223) = fiat_p384_scalar_mulx_u32(x198, 0xccc52973);
+ let mut x224: u32 = 0;
+ let mut x225: fiat_p384_scalar_u1 = 0;
+ let (x224, x225) = fiat_p384_scalar_addcarryx_u32(0x0, x223, x220);
+ let mut x226: u32 = 0;
+ let mut x227: fiat_p384_scalar_u1 = 0;
+ let (x226, x227) = fiat_p384_scalar_addcarryx_u32(x225, x221, x218);
+ let mut x228: u32 = 0;
+ let mut x229: fiat_p384_scalar_u1 = 0;
+ let (x228, x229) = fiat_p384_scalar_addcarryx_u32(x227, x219, x216);
+ let mut x230: u32 = 0;
+ let mut x231: fiat_p384_scalar_u1 = 0;
+ let (x230, x231) = fiat_p384_scalar_addcarryx_u32(x229, x217, x214);
+ let mut x232: u32 = 0;
+ let mut x233: fiat_p384_scalar_u1 = 0;
+ let (x232, x233) = fiat_p384_scalar_addcarryx_u32(x231, x215, x212);
+ let mut x234: u32 = 0;
+ let mut x235: fiat_p384_scalar_u1 = 0;
+ let (x234, x235) = fiat_p384_scalar_addcarryx_u32(x233, x213, x210);
+ let mut x236: u32 = 0;
+ let mut x237: fiat_p384_scalar_u1 = 0;
+ let (x236, x237) = fiat_p384_scalar_addcarryx_u32(x235, x211, x208);
+ let mut x238: u32 = 0;
+ let mut x239: fiat_p384_scalar_u1 = 0;
+ let (x238, x239) = fiat_p384_scalar_addcarryx_u32(x237, x209, x206);
+ let mut x240: u32 = 0;
+ let mut x241: fiat_p384_scalar_u1 = 0;
+ let (x240, x241) = fiat_p384_scalar_addcarryx_u32(x239, x207, x204);
+ let mut x242: u32 = 0;
+ let mut x243: fiat_p384_scalar_u1 = 0;
+ let (x242, x243) = fiat_p384_scalar_addcarryx_u32(x241, x205, x202);
+ let mut x244: u32 = 0;
+ let mut x245: fiat_p384_scalar_u1 = 0;
+ let (x244, x245) = fiat_p384_scalar_addcarryx_u32(x243, x203, x200);
+ let mut x246: u32 = 0;
+ let mut x247: fiat_p384_scalar_u1 = 0;
+ let (x246, x247) = fiat_p384_scalar_addcarryx_u32(0x0, x174, x222);
+ let mut x248: u32 = 0;
+ let mut x249: fiat_p384_scalar_u1 = 0;
+ let (x248, x249) = fiat_p384_scalar_addcarryx_u32(x247, x176, x224);
+ let mut x250: u32 = 0;
+ let mut x251: fiat_p384_scalar_u1 = 0;
+ let (x250, x251) = fiat_p384_scalar_addcarryx_u32(x249, x178, x226);
+ let mut x252: u32 = 0;
+ let mut x253: fiat_p384_scalar_u1 = 0;
+ let (x252, x253) = fiat_p384_scalar_addcarryx_u32(x251, x180, x228);
+ let mut x254: u32 = 0;
+ let mut x255: fiat_p384_scalar_u1 = 0;
+ let (x254, x255) = fiat_p384_scalar_addcarryx_u32(x253, x182, x230);
+ let mut x256: u32 = 0;
+ let mut x257: fiat_p384_scalar_u1 = 0;
+ let (x256, x257) = fiat_p384_scalar_addcarryx_u32(x255, x184, x232);
+ let mut x258: u32 = 0;
+ let mut x259: fiat_p384_scalar_u1 = 0;
+ let (x258, x259) = fiat_p384_scalar_addcarryx_u32(x257, x186, x234);
+ let mut x260: u32 = 0;
+ let mut x261: fiat_p384_scalar_u1 = 0;
+ let (x260, x261) = fiat_p384_scalar_addcarryx_u32(x259, x188, x236);
+ let mut x262: u32 = 0;
+ let mut x263: fiat_p384_scalar_u1 = 0;
+ let (x262, x263) = fiat_p384_scalar_addcarryx_u32(x261, x190, x238);
+ let mut x264: u32 = 0;
+ let mut x265: fiat_p384_scalar_u1 = 0;
+ let (x264, x265) = fiat_p384_scalar_addcarryx_u32(x263, x192, x240);
+ let mut x266: u32 = 0;
+ let mut x267: fiat_p384_scalar_u1 = 0;
+ let (x266, x267) = fiat_p384_scalar_addcarryx_u32(x265, x194, x242);
+ let mut x268: u32 = 0;
+ let mut x269: fiat_p384_scalar_u1 = 0;
+ let (x268, x269) = fiat_p384_scalar_addcarryx_u32(x267, x196, x244);
+ let mut x270: u32 = 0;
+ let mut x271: fiat_p384_scalar_u1 = 0;
+ let (x270, x271) = fiat_p384_scalar_addcarryx_u32(
+ x269,
+ ((x197 as u32) + (x173 as u32)),
+ ((x245 as u32) + x201),
+ );
+ let mut x272: u32 = 0;
+ let mut x273: fiat_p384_scalar_u1 = 0;
+ let (x272, x273) = fiat_p384_scalar_addcarryx_u32(0x0, x248, (arg1[3]));
+ let mut x274: u32 = 0;
+ let mut x275: fiat_p384_scalar_u1 = 0;
+ let (x274, x275) = fiat_p384_scalar_addcarryx_u32(x273, x250, (0x0 as u32));
+ let mut x276: u32 = 0;
+ let mut x277: fiat_p384_scalar_u1 = 0;
+ let (x276, x277) = fiat_p384_scalar_addcarryx_u32(x275, x252, (0x0 as u32));
+ let mut x278: u32 = 0;
+ let mut x279: fiat_p384_scalar_u1 = 0;
+ let (x278, x279) = fiat_p384_scalar_addcarryx_u32(x277, x254, (0x0 as u32));
+ let mut x280: u32 = 0;
+ let mut x281: fiat_p384_scalar_u1 = 0;
+ let (x280, x281) = fiat_p384_scalar_addcarryx_u32(x279, x256, (0x0 as u32));
+ let mut x282: u32 = 0;
+ let mut x283: fiat_p384_scalar_u1 = 0;
+ let (x282, x283) = fiat_p384_scalar_addcarryx_u32(x281, x258, (0x0 as u32));
+ let mut x284: u32 = 0;
+ let mut x285: fiat_p384_scalar_u1 = 0;
+ let (x284, x285) = fiat_p384_scalar_addcarryx_u32(x283, x260, (0x0 as u32));
+ let mut x286: u32 = 0;
+ let mut x287: fiat_p384_scalar_u1 = 0;
+ let (x286, x287) = fiat_p384_scalar_addcarryx_u32(x285, x262, (0x0 as u32));
+ let mut x288: u32 = 0;
+ let mut x289: fiat_p384_scalar_u1 = 0;
+ let (x288, x289) = fiat_p384_scalar_addcarryx_u32(x287, x264, (0x0 as u32));
+ let mut x290: u32 = 0;
+ let mut x291: fiat_p384_scalar_u1 = 0;
+ let (x290, x291) = fiat_p384_scalar_addcarryx_u32(x289, x266, (0x0 as u32));
+ let mut x292: u32 = 0;
+ let mut x293: fiat_p384_scalar_u1 = 0;
+ let (x292, x293) = fiat_p384_scalar_addcarryx_u32(x291, x268, (0x0 as u32));
+ let mut x294: u32 = 0;
+ let mut x295: fiat_p384_scalar_u1 = 0;
+ let (x294, x295) = fiat_p384_scalar_addcarryx_u32(x293, x270, (0x0 as u32));
+ let mut x296: u32 = 0;
+ let mut x297: u32 = 0;
+ let (x296, x297) = fiat_p384_scalar_mulx_u32(x272, 0xe88fdc45);
+ let mut x298: u32 = 0;
+ let mut x299: u32 = 0;
+ let (x298, x299) = fiat_p384_scalar_mulx_u32(x296, 0xffffffff);
+ let mut x300: u32 = 0;
+ let mut x301: u32 = 0;
+ let (x300, x301) = fiat_p384_scalar_mulx_u32(x296, 0xffffffff);
+ let mut x302: u32 = 0;
+ let mut x303: u32 = 0;
+ let (x302, x303) = fiat_p384_scalar_mulx_u32(x296, 0xffffffff);
+ let mut x304: u32 = 0;
+ let mut x305: u32 = 0;
+ let (x304, x305) = fiat_p384_scalar_mulx_u32(x296, 0xffffffff);
+ let mut x306: u32 = 0;
+ let mut x307: u32 = 0;
+ let (x306, x307) = fiat_p384_scalar_mulx_u32(x296, 0xffffffff);
+ let mut x308: u32 = 0;
+ let mut x309: u32 = 0;
+ let (x308, x309) = fiat_p384_scalar_mulx_u32(x296, 0xffffffff);
+ let mut x310: u32 = 0;
+ let mut x311: u32 = 0;
+ let (x310, x311) = fiat_p384_scalar_mulx_u32(x296, 0xc7634d81);
+ let mut x312: u32 = 0;
+ let mut x313: u32 = 0;
+ let (x312, x313) = fiat_p384_scalar_mulx_u32(x296, 0xf4372ddf);
+ let mut x314: u32 = 0;
+ let mut x315: u32 = 0;
+ let (x314, x315) = fiat_p384_scalar_mulx_u32(x296, 0x581a0db2);
+ let mut x316: u32 = 0;
+ let mut x317: u32 = 0;
+ let (x316, x317) = fiat_p384_scalar_mulx_u32(x296, 0x48b0a77a);
+ let mut x318: u32 = 0;
+ let mut x319: u32 = 0;
+ let (x318, x319) = fiat_p384_scalar_mulx_u32(x296, 0xecec196a);
+ let mut x320: u32 = 0;
+ let mut x321: u32 = 0;
+ let (x320, x321) = fiat_p384_scalar_mulx_u32(x296, 0xccc52973);
+ let mut x322: u32 = 0;
+ let mut x323: fiat_p384_scalar_u1 = 0;
+ let (x322, x323) = fiat_p384_scalar_addcarryx_u32(0x0, x321, x318);
+ let mut x324: u32 = 0;
+ let mut x325: fiat_p384_scalar_u1 = 0;
+ let (x324, x325) = fiat_p384_scalar_addcarryx_u32(x323, x319, x316);
+ let mut x326: u32 = 0;
+ let mut x327: fiat_p384_scalar_u1 = 0;
+ let (x326, x327) = fiat_p384_scalar_addcarryx_u32(x325, x317, x314);
+ let mut x328: u32 = 0;
+ let mut x329: fiat_p384_scalar_u1 = 0;
+ let (x328, x329) = fiat_p384_scalar_addcarryx_u32(x327, x315, x312);
+ let mut x330: u32 = 0;
+ let mut x331: fiat_p384_scalar_u1 = 0;
+ let (x330, x331) = fiat_p384_scalar_addcarryx_u32(x329, x313, x310);
+ let mut x332: u32 = 0;
+ let mut x333: fiat_p384_scalar_u1 = 0;
+ let (x332, x333) = fiat_p384_scalar_addcarryx_u32(x331, x311, x308);
+ let mut x334: u32 = 0;
+ let mut x335: fiat_p384_scalar_u1 = 0;
+ let (x334, x335) = fiat_p384_scalar_addcarryx_u32(x333, x309, x306);
+ let mut x336: u32 = 0;
+ let mut x337: fiat_p384_scalar_u1 = 0;
+ let (x336, x337) = fiat_p384_scalar_addcarryx_u32(x335, x307, x304);
+ let mut x338: u32 = 0;
+ let mut x339: fiat_p384_scalar_u1 = 0;
+ let (x338, x339) = fiat_p384_scalar_addcarryx_u32(x337, x305, x302);
+ let mut x340: u32 = 0;
+ let mut x341: fiat_p384_scalar_u1 = 0;
+ let (x340, x341) = fiat_p384_scalar_addcarryx_u32(x339, x303, x300);
+ let mut x342: u32 = 0;
+ let mut x343: fiat_p384_scalar_u1 = 0;
+ let (x342, x343) = fiat_p384_scalar_addcarryx_u32(x341, x301, x298);
+ let mut x344: u32 = 0;
+ let mut x345: fiat_p384_scalar_u1 = 0;
+ let (x344, x345) = fiat_p384_scalar_addcarryx_u32(0x0, x272, x320);
+ let mut x346: u32 = 0;
+ let mut x347: fiat_p384_scalar_u1 = 0;
+ let (x346, x347) = fiat_p384_scalar_addcarryx_u32(x345, x274, x322);
+ let mut x348: u32 = 0;
+ let mut x349: fiat_p384_scalar_u1 = 0;
+ let (x348, x349) = fiat_p384_scalar_addcarryx_u32(x347, x276, x324);
+ let mut x350: u32 = 0;
+ let mut x351: fiat_p384_scalar_u1 = 0;
+ let (x350, x351) = fiat_p384_scalar_addcarryx_u32(x349, x278, x326);
+ let mut x352: u32 = 0;
+ let mut x353: fiat_p384_scalar_u1 = 0;
+ let (x352, x353) = fiat_p384_scalar_addcarryx_u32(x351, x280, x328);
+ let mut x354: u32 = 0;
+ let mut x355: fiat_p384_scalar_u1 = 0;
+ let (x354, x355) = fiat_p384_scalar_addcarryx_u32(x353, x282, x330);
+ let mut x356: u32 = 0;
+ let mut x357: fiat_p384_scalar_u1 = 0;
+ let (x356, x357) = fiat_p384_scalar_addcarryx_u32(x355, x284, x332);
+ let mut x358: u32 = 0;
+ let mut x359: fiat_p384_scalar_u1 = 0;
+ let (x358, x359) = fiat_p384_scalar_addcarryx_u32(x357, x286, x334);
+ let mut x360: u32 = 0;
+ let mut x361: fiat_p384_scalar_u1 = 0;
+ let (x360, x361) = fiat_p384_scalar_addcarryx_u32(x359, x288, x336);
+ let mut x362: u32 = 0;
+ let mut x363: fiat_p384_scalar_u1 = 0;
+ let (x362, x363) = fiat_p384_scalar_addcarryx_u32(x361, x290, x338);
+ let mut x364: u32 = 0;
+ let mut x365: fiat_p384_scalar_u1 = 0;
+ let (x364, x365) = fiat_p384_scalar_addcarryx_u32(x363, x292, x340);
+ let mut x366: u32 = 0;
+ let mut x367: fiat_p384_scalar_u1 = 0;
+ let (x366, x367) = fiat_p384_scalar_addcarryx_u32(x365, x294, x342);
+ let mut x368: u32 = 0;
+ let mut x369: fiat_p384_scalar_u1 = 0;
+ let (x368, x369) = fiat_p384_scalar_addcarryx_u32(
+ x367,
+ ((x295 as u32) + (x271 as u32)),
+ ((x343 as u32) + x299),
+ );
+ let mut x370: u32 = 0;
+ let mut x371: fiat_p384_scalar_u1 = 0;
+ let (x370, x371) = fiat_p384_scalar_addcarryx_u32(0x0, x346, (arg1[4]));
+ let mut x372: u32 = 0;
+ let mut x373: fiat_p384_scalar_u1 = 0;
+ let (x372, x373) = fiat_p384_scalar_addcarryx_u32(x371, x348, (0x0 as u32));
+ let mut x374: u32 = 0;
+ let mut x375: fiat_p384_scalar_u1 = 0;
+ let (x374, x375) = fiat_p384_scalar_addcarryx_u32(x373, x350, (0x0 as u32));
+ let mut x376: u32 = 0;
+ let mut x377: fiat_p384_scalar_u1 = 0;
+ let (x376, x377) = fiat_p384_scalar_addcarryx_u32(x375, x352, (0x0 as u32));
+ let mut x378: u32 = 0;
+ let mut x379: fiat_p384_scalar_u1 = 0;
+ let (x378, x379) = fiat_p384_scalar_addcarryx_u32(x377, x354, (0x0 as u32));
+ let mut x380: u32 = 0;
+ let mut x381: fiat_p384_scalar_u1 = 0;
+ let (x380, x381) = fiat_p384_scalar_addcarryx_u32(x379, x356, (0x0 as u32));
+ let mut x382: u32 = 0;
+ let mut x383: fiat_p384_scalar_u1 = 0;
+ let (x382, x383) = fiat_p384_scalar_addcarryx_u32(x381, x358, (0x0 as u32));
+ let mut x384: u32 = 0;
+ let mut x385: fiat_p384_scalar_u1 = 0;
+ let (x384, x385) = fiat_p384_scalar_addcarryx_u32(x383, x360, (0x0 as u32));
+ let mut x386: u32 = 0;
+ let mut x387: fiat_p384_scalar_u1 = 0;
+ let (x386, x387) = fiat_p384_scalar_addcarryx_u32(x385, x362, (0x0 as u32));
+ let mut x388: u32 = 0;
+ let mut x389: fiat_p384_scalar_u1 = 0;
+ let (x388, x389) = fiat_p384_scalar_addcarryx_u32(x387, x364, (0x0 as u32));
+ let mut x390: u32 = 0;
+ let mut x391: fiat_p384_scalar_u1 = 0;
+ let (x390, x391) = fiat_p384_scalar_addcarryx_u32(x389, x366, (0x0 as u32));
+ let mut x392: u32 = 0;
+ let mut x393: fiat_p384_scalar_u1 = 0;
+ let (x392, x393) = fiat_p384_scalar_addcarryx_u32(x391, x368, (0x0 as u32));
+ let mut x394: u32 = 0;
+ let mut x395: u32 = 0;
+ let (x394, x395) = fiat_p384_scalar_mulx_u32(x370, 0xe88fdc45);
+ let mut x396: u32 = 0;
+ let mut x397: u32 = 0;
+ let (x396, x397) = fiat_p384_scalar_mulx_u32(x394, 0xffffffff);
+ let mut x398: u32 = 0;
+ let mut x399: u32 = 0;
+ let (x398, x399) = fiat_p384_scalar_mulx_u32(x394, 0xffffffff);
+ let mut x400: u32 = 0;
+ let mut x401: u32 = 0;
+ let (x400, x401) = fiat_p384_scalar_mulx_u32(x394, 0xffffffff);
+ let mut x402: u32 = 0;
+ let mut x403: u32 = 0;
+ let (x402, x403) = fiat_p384_scalar_mulx_u32(x394, 0xffffffff);
+ let mut x404: u32 = 0;
+ let mut x405: u32 = 0;
+ let (x404, x405) = fiat_p384_scalar_mulx_u32(x394, 0xffffffff);
+ let mut x406: u32 = 0;
+ let mut x407: u32 = 0;
+ let (x406, x407) = fiat_p384_scalar_mulx_u32(x394, 0xffffffff);
+ let mut x408: u32 = 0;
+ let mut x409: u32 = 0;
+ let (x408, x409) = fiat_p384_scalar_mulx_u32(x394, 0xc7634d81);
+ let mut x410: u32 = 0;
+ let mut x411: u32 = 0;
+ let (x410, x411) = fiat_p384_scalar_mulx_u32(x394, 0xf4372ddf);
+ let mut x412: u32 = 0;
+ let mut x413: u32 = 0;
+ let (x412, x413) = fiat_p384_scalar_mulx_u32(x394, 0x581a0db2);
+ let mut x414: u32 = 0;
+ let mut x415: u32 = 0;
+ let (x414, x415) = fiat_p384_scalar_mulx_u32(x394, 0x48b0a77a);
+ let mut x416: u32 = 0;
+ let mut x417: u32 = 0;
+ let (x416, x417) = fiat_p384_scalar_mulx_u32(x394, 0xecec196a);
+ let mut x418: u32 = 0;
+ let mut x419: u32 = 0;
+ let (x418, x419) = fiat_p384_scalar_mulx_u32(x394, 0xccc52973);
+ let mut x420: u32 = 0;
+ let mut x421: fiat_p384_scalar_u1 = 0;
+ let (x420, x421) = fiat_p384_scalar_addcarryx_u32(0x0, x419, x416);
+ let mut x422: u32 = 0;
+ let mut x423: fiat_p384_scalar_u1 = 0;
+ let (x422, x423) = fiat_p384_scalar_addcarryx_u32(x421, x417, x414);
+ let mut x424: u32 = 0;
+ let mut x425: fiat_p384_scalar_u1 = 0;
+ let (x424, x425) = fiat_p384_scalar_addcarryx_u32(x423, x415, x412);
+ let mut x426: u32 = 0;
+ let mut x427: fiat_p384_scalar_u1 = 0;
+ let (x426, x427) = fiat_p384_scalar_addcarryx_u32(x425, x413, x410);
+ let mut x428: u32 = 0;
+ let mut x429: fiat_p384_scalar_u1 = 0;
+ let (x428, x429) = fiat_p384_scalar_addcarryx_u32(x427, x411, x408);
+ let mut x430: u32 = 0;
+ let mut x431: fiat_p384_scalar_u1 = 0;
+ let (x430, x431) = fiat_p384_scalar_addcarryx_u32(x429, x409, x406);
+ let mut x432: u32 = 0;
+ let mut x433: fiat_p384_scalar_u1 = 0;
+ let (x432, x433) = fiat_p384_scalar_addcarryx_u32(x431, x407, x404);
+ let mut x434: u32 = 0;
+ let mut x435: fiat_p384_scalar_u1 = 0;
+ let (x434, x435) = fiat_p384_scalar_addcarryx_u32(x433, x405, x402);
+ let mut x436: u32 = 0;
+ let mut x437: fiat_p384_scalar_u1 = 0;
+ let (x436, x437) = fiat_p384_scalar_addcarryx_u32(x435, x403, x400);
+ let mut x438: u32 = 0;
+ let mut x439: fiat_p384_scalar_u1 = 0;
+ let (x438, x439) = fiat_p384_scalar_addcarryx_u32(x437, x401, x398);
+ let mut x440: u32 = 0;
+ let mut x441: fiat_p384_scalar_u1 = 0;
+ let (x440, x441) = fiat_p384_scalar_addcarryx_u32(x439, x399, x396);
+ let mut x442: u32 = 0;
+ let mut x443: fiat_p384_scalar_u1 = 0;
+ let (x442, x443) = fiat_p384_scalar_addcarryx_u32(0x0, x370, x418);
+ let mut x444: u32 = 0;
+ let mut x445: fiat_p384_scalar_u1 = 0;
+ let (x444, x445) = fiat_p384_scalar_addcarryx_u32(x443, x372, x420);
+ let mut x446: u32 = 0;
+ let mut x447: fiat_p384_scalar_u1 = 0;
+ let (x446, x447) = fiat_p384_scalar_addcarryx_u32(x445, x374, x422);
+ let mut x448: u32 = 0;
+ let mut x449: fiat_p384_scalar_u1 = 0;
+ let (x448, x449) = fiat_p384_scalar_addcarryx_u32(x447, x376, x424);
+ let mut x450: u32 = 0;
+ let mut x451: fiat_p384_scalar_u1 = 0;
+ let (x450, x451) = fiat_p384_scalar_addcarryx_u32(x449, x378, x426);
+ let mut x452: u32 = 0;
+ let mut x453: fiat_p384_scalar_u1 = 0;
+ let (x452, x453) = fiat_p384_scalar_addcarryx_u32(x451, x380, x428);
+ let mut x454: u32 = 0;
+ let mut x455: fiat_p384_scalar_u1 = 0;
+ let (x454, x455) = fiat_p384_scalar_addcarryx_u32(x453, x382, x430);
+ let mut x456: u32 = 0;
+ let mut x457: fiat_p384_scalar_u1 = 0;
+ let (x456, x457) = fiat_p384_scalar_addcarryx_u32(x455, x384, x432);
+ let mut x458: u32 = 0;
+ let mut x459: fiat_p384_scalar_u1 = 0;
+ let (x458, x459) = fiat_p384_scalar_addcarryx_u32(x457, x386, x434);
+ let mut x460: u32 = 0;
+ let mut x461: fiat_p384_scalar_u1 = 0;
+ let (x460, x461) = fiat_p384_scalar_addcarryx_u32(x459, x388, x436);
+ let mut x462: u32 = 0;
+ let mut x463: fiat_p384_scalar_u1 = 0;
+ let (x462, x463) = fiat_p384_scalar_addcarryx_u32(x461, x390, x438);
+ let mut x464: u32 = 0;
+ let mut x465: fiat_p384_scalar_u1 = 0;
+ let (x464, x465) = fiat_p384_scalar_addcarryx_u32(x463, x392, x440);
+ let mut x466: u32 = 0;
+ let mut x467: fiat_p384_scalar_u1 = 0;
+ let (x466, x467) = fiat_p384_scalar_addcarryx_u32(
+ x465,
+ ((x393 as u32) + (x369 as u32)),
+ ((x441 as u32) + x397),
+ );
+ let mut x468: u32 = 0;
+ let mut x469: fiat_p384_scalar_u1 = 0;
+ let (x468, x469) = fiat_p384_scalar_addcarryx_u32(0x0, x444, (arg1[5]));
+ let mut x470: u32 = 0;
+ let mut x471: fiat_p384_scalar_u1 = 0;
+ let (x470, x471) = fiat_p384_scalar_addcarryx_u32(x469, x446, (0x0 as u32));
+ let mut x472: u32 = 0;
+ let mut x473: fiat_p384_scalar_u1 = 0;
+ let (x472, x473) = fiat_p384_scalar_addcarryx_u32(x471, x448, (0x0 as u32));
+ let mut x474: u32 = 0;
+ let mut x475: fiat_p384_scalar_u1 = 0;
+ let (x474, x475) = fiat_p384_scalar_addcarryx_u32(x473, x450, (0x0 as u32));
+ let mut x476: u32 = 0;
+ let mut x477: fiat_p384_scalar_u1 = 0;
+ let (x476, x477) = fiat_p384_scalar_addcarryx_u32(x475, x452, (0x0 as u32));
+ let mut x478: u32 = 0;
+ let mut x479: fiat_p384_scalar_u1 = 0;
+ let (x478, x479) = fiat_p384_scalar_addcarryx_u32(x477, x454, (0x0 as u32));
+ let mut x480: u32 = 0;
+ let mut x481: fiat_p384_scalar_u1 = 0;
+ let (x480, x481) = fiat_p384_scalar_addcarryx_u32(x479, x456, (0x0 as u32));
+ let mut x482: u32 = 0;
+ let mut x483: fiat_p384_scalar_u1 = 0;
+ let (x482, x483) = fiat_p384_scalar_addcarryx_u32(x481, x458, (0x0 as u32));
+ let mut x484: u32 = 0;
+ let mut x485: fiat_p384_scalar_u1 = 0;
+ let (x484, x485) = fiat_p384_scalar_addcarryx_u32(x483, x460, (0x0 as u32));
+ let mut x486: u32 = 0;
+ let mut x487: fiat_p384_scalar_u1 = 0;
+ let (x486, x487) = fiat_p384_scalar_addcarryx_u32(x485, x462, (0x0 as u32));
+ let mut x488: u32 = 0;
+ let mut x489: fiat_p384_scalar_u1 = 0;
+ let (x488, x489) = fiat_p384_scalar_addcarryx_u32(x487, x464, (0x0 as u32));
+ let mut x490: u32 = 0;
+ let mut x491: fiat_p384_scalar_u1 = 0;
+ let (x490, x491) = fiat_p384_scalar_addcarryx_u32(x489, x466, (0x0 as u32));
+ let mut x492: u32 = 0;
+ let mut x493: u32 = 0;
+ let (x492, x493) = fiat_p384_scalar_mulx_u32(x468, 0xe88fdc45);
+ let mut x494: u32 = 0;
+ let mut x495: u32 = 0;
+ let (x494, x495) = fiat_p384_scalar_mulx_u32(x492, 0xffffffff);
+ let mut x496: u32 = 0;
+ let mut x497: u32 = 0;
+ let (x496, x497) = fiat_p384_scalar_mulx_u32(x492, 0xffffffff);
+ let mut x498: u32 = 0;
+ let mut x499: u32 = 0;
+ let (x498, x499) = fiat_p384_scalar_mulx_u32(x492, 0xffffffff);
+ let mut x500: u32 = 0;
+ let mut x501: u32 = 0;
+ let (x500, x501) = fiat_p384_scalar_mulx_u32(x492, 0xffffffff);
+ let mut x502: u32 = 0;
+ let mut x503: u32 = 0;
+ let (x502, x503) = fiat_p384_scalar_mulx_u32(x492, 0xffffffff);
+ let mut x504: u32 = 0;
+ let mut x505: u32 = 0;
+ let (x504, x505) = fiat_p384_scalar_mulx_u32(x492, 0xffffffff);
+ let mut x506: u32 = 0;
+ let mut x507: u32 = 0;
+ let (x506, x507) = fiat_p384_scalar_mulx_u32(x492, 0xc7634d81);
+ let mut x508: u32 = 0;
+ let mut x509: u32 = 0;
+ let (x508, x509) = fiat_p384_scalar_mulx_u32(x492, 0xf4372ddf);
+ let mut x510: u32 = 0;
+ let mut x511: u32 = 0;
+ let (x510, x511) = fiat_p384_scalar_mulx_u32(x492, 0x581a0db2);
+ let mut x512: u32 = 0;
+ let mut x513: u32 = 0;
+ let (x512, x513) = fiat_p384_scalar_mulx_u32(x492, 0x48b0a77a);
+ let mut x514: u32 = 0;
+ let mut x515: u32 = 0;
+ let (x514, x515) = fiat_p384_scalar_mulx_u32(x492, 0xecec196a);
+ let mut x516: u32 = 0;
+ let mut x517: u32 = 0;
+ let (x516, x517) = fiat_p384_scalar_mulx_u32(x492, 0xccc52973);
+ let mut x518: u32 = 0;
+ let mut x519: fiat_p384_scalar_u1 = 0;
+ let (x518, x519) = fiat_p384_scalar_addcarryx_u32(0x0, x517, x514);
+ let mut x520: u32 = 0;
+ let mut x521: fiat_p384_scalar_u1 = 0;
+ let (x520, x521) = fiat_p384_scalar_addcarryx_u32(x519, x515, x512);
+ let mut x522: u32 = 0;
+ let mut x523: fiat_p384_scalar_u1 = 0;
+ let (x522, x523) = fiat_p384_scalar_addcarryx_u32(x521, x513, x510);
+ let mut x524: u32 = 0;
+ let mut x525: fiat_p384_scalar_u1 = 0;
+ let (x524, x525) = fiat_p384_scalar_addcarryx_u32(x523, x511, x508);
+ let mut x526: u32 = 0;
+ let mut x527: fiat_p384_scalar_u1 = 0;
+ let (x526, x527) = fiat_p384_scalar_addcarryx_u32(x525, x509, x506);
+ let mut x528: u32 = 0;
+ let mut x529: fiat_p384_scalar_u1 = 0;
+ let (x528, x529) = fiat_p384_scalar_addcarryx_u32(x527, x507, x504);
+ let mut x530: u32 = 0;
+ let mut x531: fiat_p384_scalar_u1 = 0;
+ let (x530, x531) = fiat_p384_scalar_addcarryx_u32(x529, x505, x502);
+ let mut x532: u32 = 0;
+ let mut x533: fiat_p384_scalar_u1 = 0;
+ let (x532, x533) = fiat_p384_scalar_addcarryx_u32(x531, x503, x500);
+ let mut x534: u32 = 0;
+ let mut x535: fiat_p384_scalar_u1 = 0;
+ let (x534, x535) = fiat_p384_scalar_addcarryx_u32(x533, x501, x498);
+ let mut x536: u32 = 0;
+ let mut x537: fiat_p384_scalar_u1 = 0;
+ let (x536, x537) = fiat_p384_scalar_addcarryx_u32(x535, x499, x496);
+ let mut x538: u32 = 0;
+ let mut x539: fiat_p384_scalar_u1 = 0;
+ let (x538, x539) = fiat_p384_scalar_addcarryx_u32(x537, x497, x494);
+ let mut x540: u32 = 0;
+ let mut x541: fiat_p384_scalar_u1 = 0;
+ let (x540, x541) = fiat_p384_scalar_addcarryx_u32(0x0, x468, x516);
+ let mut x542: u32 = 0;
+ let mut x543: fiat_p384_scalar_u1 = 0;
+ let (x542, x543) = fiat_p384_scalar_addcarryx_u32(x541, x470, x518);
+ let mut x544: u32 = 0;
+ let mut x545: fiat_p384_scalar_u1 = 0;
+ let (x544, x545) = fiat_p384_scalar_addcarryx_u32(x543, x472, x520);
+ let mut x546: u32 = 0;
+ let mut x547: fiat_p384_scalar_u1 = 0;
+ let (x546, x547) = fiat_p384_scalar_addcarryx_u32(x545, x474, x522);
+ let mut x548: u32 = 0;
+ let mut x549: fiat_p384_scalar_u1 = 0;
+ let (x548, x549) = fiat_p384_scalar_addcarryx_u32(x547, x476, x524);
+ let mut x550: u32 = 0;
+ let mut x551: fiat_p384_scalar_u1 = 0;
+ let (x550, x551) = fiat_p384_scalar_addcarryx_u32(x549, x478, x526);
+ let mut x552: u32 = 0;
+ let mut x553: fiat_p384_scalar_u1 = 0;
+ let (x552, x553) = fiat_p384_scalar_addcarryx_u32(x551, x480, x528);
+ let mut x554: u32 = 0;
+ let mut x555: fiat_p384_scalar_u1 = 0;
+ let (x554, x555) = fiat_p384_scalar_addcarryx_u32(x553, x482, x530);
+ let mut x556: u32 = 0;
+ let mut x557: fiat_p384_scalar_u1 = 0;
+ let (x556, x557) = fiat_p384_scalar_addcarryx_u32(x555, x484, x532);
+ let mut x558: u32 = 0;
+ let mut x559: fiat_p384_scalar_u1 = 0;
+ let (x558, x559) = fiat_p384_scalar_addcarryx_u32(x557, x486, x534);
+ let mut x560: u32 = 0;
+ let mut x561: fiat_p384_scalar_u1 = 0;
+ let (x560, x561) = fiat_p384_scalar_addcarryx_u32(x559, x488, x536);
+ let mut x562: u32 = 0;
+ let mut x563: fiat_p384_scalar_u1 = 0;
+ let (x562, x563) = fiat_p384_scalar_addcarryx_u32(x561, x490, x538);
+ let mut x564: u32 = 0;
+ let mut x565: fiat_p384_scalar_u1 = 0;
+ let (x564, x565) = fiat_p384_scalar_addcarryx_u32(
+ x563,
+ ((x491 as u32) + (x467 as u32)),
+ ((x539 as u32) + x495),
+ );
+ let mut x566: u32 = 0;
+ let mut x567: fiat_p384_scalar_u1 = 0;
+ let (x566, x567) = fiat_p384_scalar_addcarryx_u32(0x0, x542, (arg1[6]));
+ let mut x568: u32 = 0;
+ let mut x569: fiat_p384_scalar_u1 = 0;
+ let (x568, x569) = fiat_p384_scalar_addcarryx_u32(x567, x544, (0x0 as u32));
+ let mut x570: u32 = 0;
+ let mut x571: fiat_p384_scalar_u1 = 0;
+ let (x570, x571) = fiat_p384_scalar_addcarryx_u32(x569, x546, (0x0 as u32));
+ let mut x572: u32 = 0;
+ let mut x573: fiat_p384_scalar_u1 = 0;
+ let (x572, x573) = fiat_p384_scalar_addcarryx_u32(x571, x548, (0x0 as u32));
+ let mut x574: u32 = 0;
+ let mut x575: fiat_p384_scalar_u1 = 0;
+ let (x574, x575) = fiat_p384_scalar_addcarryx_u32(x573, x550, (0x0 as u32));
+ let mut x576: u32 = 0;
+ let mut x577: fiat_p384_scalar_u1 = 0;
+ let (x576, x577) = fiat_p384_scalar_addcarryx_u32(x575, x552, (0x0 as u32));
+ let mut x578: u32 = 0;
+ let mut x579: fiat_p384_scalar_u1 = 0;
+ let (x578, x579) = fiat_p384_scalar_addcarryx_u32(x577, x554, (0x0 as u32));
+ let mut x580: u32 = 0;
+ let mut x581: fiat_p384_scalar_u1 = 0;
+ let (x580, x581) = fiat_p384_scalar_addcarryx_u32(x579, x556, (0x0 as u32));
+ let mut x582: u32 = 0;
+ let mut x583: fiat_p384_scalar_u1 = 0;
+ let (x582, x583) = fiat_p384_scalar_addcarryx_u32(x581, x558, (0x0 as u32));
+ let mut x584: u32 = 0;
+ let mut x585: fiat_p384_scalar_u1 = 0;
+ let (x584, x585) = fiat_p384_scalar_addcarryx_u32(x583, x560, (0x0 as u32));
+ let mut x586: u32 = 0;
+ let mut x587: fiat_p384_scalar_u1 = 0;
+ let (x586, x587) = fiat_p384_scalar_addcarryx_u32(x585, x562, (0x0 as u32));
+ let mut x588: u32 = 0;
+ let mut x589: fiat_p384_scalar_u1 = 0;
+ let (x588, x589) = fiat_p384_scalar_addcarryx_u32(x587, x564, (0x0 as u32));
+ let mut x590: u32 = 0;
+ let mut x591: u32 = 0;
+ let (x590, x591) = fiat_p384_scalar_mulx_u32(x566, 0xe88fdc45);
+ let mut x592: u32 = 0;
+ let mut x593: u32 = 0;
+ let (x592, x593) = fiat_p384_scalar_mulx_u32(x590, 0xffffffff);
+ let mut x594: u32 = 0;
+ let mut x595: u32 = 0;
+ let (x594, x595) = fiat_p384_scalar_mulx_u32(x590, 0xffffffff);
+ let mut x596: u32 = 0;
+ let mut x597: u32 = 0;
+ let (x596, x597) = fiat_p384_scalar_mulx_u32(x590, 0xffffffff);
+ let mut x598: u32 = 0;
+ let mut x599: u32 = 0;
+ let (x598, x599) = fiat_p384_scalar_mulx_u32(x590, 0xffffffff);
+ let mut x600: u32 = 0;
+ let mut x601: u32 = 0;
+ let (x600, x601) = fiat_p384_scalar_mulx_u32(x590, 0xffffffff);
+ let mut x602: u32 = 0;
+ let mut x603: u32 = 0;
+ let (x602, x603) = fiat_p384_scalar_mulx_u32(x590, 0xffffffff);
+ let mut x604: u32 = 0;
+ let mut x605: u32 = 0;
+ let (x604, x605) = fiat_p384_scalar_mulx_u32(x590, 0xc7634d81);
+ let mut x606: u32 = 0;
+ let mut x607: u32 = 0;
+ let (x606, x607) = fiat_p384_scalar_mulx_u32(x590, 0xf4372ddf);
+ let mut x608: u32 = 0;
+ let mut x609: u32 = 0;
+ let (x608, x609) = fiat_p384_scalar_mulx_u32(x590, 0x581a0db2);
+ let mut x610: u32 = 0;
+ let mut x611: u32 = 0;
+ let (x610, x611) = fiat_p384_scalar_mulx_u32(x590, 0x48b0a77a);
+ let mut x612: u32 = 0;
+ let mut x613: u32 = 0;
+ let (x612, x613) = fiat_p384_scalar_mulx_u32(x590, 0xecec196a);
+ let mut x614: u32 = 0;
+ let mut x615: u32 = 0;
+ let (x614, x615) = fiat_p384_scalar_mulx_u32(x590, 0xccc52973);
+ let mut x616: u32 = 0;
+ let mut x617: fiat_p384_scalar_u1 = 0;
+ let (x616, x617) = fiat_p384_scalar_addcarryx_u32(0x0, x615, x612);
+ let mut x618: u32 = 0;
+ let mut x619: fiat_p384_scalar_u1 = 0;
+ let (x618, x619) = fiat_p384_scalar_addcarryx_u32(x617, x613, x610);
+ let mut x620: u32 = 0;
+ let mut x621: fiat_p384_scalar_u1 = 0;
+ let (x620, x621) = fiat_p384_scalar_addcarryx_u32(x619, x611, x608);
+ let mut x622: u32 = 0;
+ let mut x623: fiat_p384_scalar_u1 = 0;
+ let (x622, x623) = fiat_p384_scalar_addcarryx_u32(x621, x609, x606);
+ let mut x624: u32 = 0;
+ let mut x625: fiat_p384_scalar_u1 = 0;
+ let (x624, x625) = fiat_p384_scalar_addcarryx_u32(x623, x607, x604);
+ let mut x626: u32 = 0;
+ let mut x627: fiat_p384_scalar_u1 = 0;
+ let (x626, x627) = fiat_p384_scalar_addcarryx_u32(x625, x605, x602);
+ let mut x628: u32 = 0;
+ let mut x629: fiat_p384_scalar_u1 = 0;
+ let (x628, x629) = fiat_p384_scalar_addcarryx_u32(x627, x603, x600);
+ let mut x630: u32 = 0;
+ let mut x631: fiat_p384_scalar_u1 = 0;
+ let (x630, x631) = fiat_p384_scalar_addcarryx_u32(x629, x601, x598);
+ let mut x632: u32 = 0;
+ let mut x633: fiat_p384_scalar_u1 = 0;
+ let (x632, x633) = fiat_p384_scalar_addcarryx_u32(x631, x599, x596);
+ let mut x634: u32 = 0;
+ let mut x635: fiat_p384_scalar_u1 = 0;
+ let (x634, x635) = fiat_p384_scalar_addcarryx_u32(x633, x597, x594);
+ let mut x636: u32 = 0;
+ let mut x637: fiat_p384_scalar_u1 = 0;
+ let (x636, x637) = fiat_p384_scalar_addcarryx_u32(x635, x595, x592);
+ let mut x638: u32 = 0;
+ let mut x639: fiat_p384_scalar_u1 = 0;
+ let (x638, x639) = fiat_p384_scalar_addcarryx_u32(0x0, x566, x614);
+ let mut x640: u32 = 0;
+ let mut x641: fiat_p384_scalar_u1 = 0;
+ let (x640, x641) = fiat_p384_scalar_addcarryx_u32(x639, x568, x616);
+ let mut x642: u32 = 0;
+ let mut x643: fiat_p384_scalar_u1 = 0;
+ let (x642, x643) = fiat_p384_scalar_addcarryx_u32(x641, x570, x618);
+ let mut x644: u32 = 0;
+ let mut x645: fiat_p384_scalar_u1 = 0;
+ let (x644, x645) = fiat_p384_scalar_addcarryx_u32(x643, x572, x620);
+ let mut x646: u32 = 0;
+ let mut x647: fiat_p384_scalar_u1 = 0;
+ let (x646, x647) = fiat_p384_scalar_addcarryx_u32(x645, x574, x622);
+ let mut x648: u32 = 0;
+ let mut x649: fiat_p384_scalar_u1 = 0;
+ let (x648, x649) = fiat_p384_scalar_addcarryx_u32(x647, x576, x624);
+ let mut x650: u32 = 0;
+ let mut x651: fiat_p384_scalar_u1 = 0;
+ let (x650, x651) = fiat_p384_scalar_addcarryx_u32(x649, x578, x626);
+ let mut x652: u32 = 0;
+ let mut x653: fiat_p384_scalar_u1 = 0;
+ let (x652, x653) = fiat_p384_scalar_addcarryx_u32(x651, x580, x628);
+ let mut x654: u32 = 0;
+ let mut x655: fiat_p384_scalar_u1 = 0;
+ let (x654, x655) = fiat_p384_scalar_addcarryx_u32(x653, x582, x630);
+ let mut x656: u32 = 0;
+ let mut x657: fiat_p384_scalar_u1 = 0;
+ let (x656, x657) = fiat_p384_scalar_addcarryx_u32(x655, x584, x632);
+ let mut x658: u32 = 0;
+ let mut x659: fiat_p384_scalar_u1 = 0;
+ let (x658, x659) = fiat_p384_scalar_addcarryx_u32(x657, x586, x634);
+ let mut x660: u32 = 0;
+ let mut x661: fiat_p384_scalar_u1 = 0;
+ let (x660, x661) = fiat_p384_scalar_addcarryx_u32(x659, x588, x636);
+ let mut x662: u32 = 0;
+ let mut x663: fiat_p384_scalar_u1 = 0;
+ let (x662, x663) = fiat_p384_scalar_addcarryx_u32(
+ x661,
+ ((x589 as u32) + (x565 as u32)),
+ ((x637 as u32) + x593),
+ );
+ let mut x664: u32 = 0;
+ let mut x665: fiat_p384_scalar_u1 = 0;
+ let (x664, x665) = fiat_p384_scalar_addcarryx_u32(0x0, x640, (arg1[7]));
+ let mut x666: u32 = 0;
+ let mut x667: fiat_p384_scalar_u1 = 0;
+ let (x666, x667) = fiat_p384_scalar_addcarryx_u32(x665, x642, (0x0 as u32));
+ let mut x668: u32 = 0;
+ let mut x669: fiat_p384_scalar_u1 = 0;
+ let (x668, x669) = fiat_p384_scalar_addcarryx_u32(x667, x644, (0x0 as u32));
+ let mut x670: u32 = 0;
+ let mut x671: fiat_p384_scalar_u1 = 0;
+ let (x670, x671) = fiat_p384_scalar_addcarryx_u32(x669, x646, (0x0 as u32));
+ let mut x672: u32 = 0;
+ let mut x673: fiat_p384_scalar_u1 = 0;
+ let (x672, x673) = fiat_p384_scalar_addcarryx_u32(x671, x648, (0x0 as u32));
+ let mut x674: u32 = 0;
+ let mut x675: fiat_p384_scalar_u1 = 0;
+ let (x674, x675) = fiat_p384_scalar_addcarryx_u32(x673, x650, (0x0 as u32));
+ let mut x676: u32 = 0;
+ let mut x677: fiat_p384_scalar_u1 = 0;
+ let (x676, x677) = fiat_p384_scalar_addcarryx_u32(x675, x652, (0x0 as u32));
+ let mut x678: u32 = 0;
+ let mut x679: fiat_p384_scalar_u1 = 0;
+ let (x678, x679) = fiat_p384_scalar_addcarryx_u32(x677, x654, (0x0 as u32));
+ let mut x680: u32 = 0;
+ let mut x681: fiat_p384_scalar_u1 = 0;
+ let (x680, x681) = fiat_p384_scalar_addcarryx_u32(x679, x656, (0x0 as u32));
+ let mut x682: u32 = 0;
+ let mut x683: fiat_p384_scalar_u1 = 0;
+ let (x682, x683) = fiat_p384_scalar_addcarryx_u32(x681, x658, (0x0 as u32));
+ let mut x684: u32 = 0;
+ let mut x685: fiat_p384_scalar_u1 = 0;
+ let (x684, x685) = fiat_p384_scalar_addcarryx_u32(x683, x660, (0x0 as u32));
+ let mut x686: u32 = 0;
+ let mut x687: fiat_p384_scalar_u1 = 0;
+ let (x686, x687) = fiat_p384_scalar_addcarryx_u32(x685, x662, (0x0 as u32));
+ let mut x688: u32 = 0;
+ let mut x689: u32 = 0;
+ let (x688, x689) = fiat_p384_scalar_mulx_u32(x664, 0xe88fdc45);
+ let mut x690: u32 = 0;
+ let mut x691: u32 = 0;
+ let (x690, x691) = fiat_p384_scalar_mulx_u32(x688, 0xffffffff);
+ let mut x692: u32 = 0;
+ let mut x693: u32 = 0;
+ let (x692, x693) = fiat_p384_scalar_mulx_u32(x688, 0xffffffff);
+ let mut x694: u32 = 0;
+ let mut x695: u32 = 0;
+ let (x694, x695) = fiat_p384_scalar_mulx_u32(x688, 0xffffffff);
+ let mut x696: u32 = 0;
+ let mut x697: u32 = 0;
+ let (x696, x697) = fiat_p384_scalar_mulx_u32(x688, 0xffffffff);
+ let mut x698: u32 = 0;
+ let mut x699: u32 = 0;
+ let (x698, x699) = fiat_p384_scalar_mulx_u32(x688, 0xffffffff);
+ let mut x700: u32 = 0;
+ let mut x701: u32 = 0;
+ let (x700, x701) = fiat_p384_scalar_mulx_u32(x688, 0xffffffff);
+ let mut x702: u32 = 0;
+ let mut x703: u32 = 0;
+ let (x702, x703) = fiat_p384_scalar_mulx_u32(x688, 0xc7634d81);
+ let mut x704: u32 = 0;
+ let mut x705: u32 = 0;
+ let (x704, x705) = fiat_p384_scalar_mulx_u32(x688, 0xf4372ddf);
+ let mut x706: u32 = 0;
+ let mut x707: u32 = 0;
+ let (x706, x707) = fiat_p384_scalar_mulx_u32(x688, 0x581a0db2);
+ let mut x708: u32 = 0;
+ let mut x709: u32 = 0;
+ let (x708, x709) = fiat_p384_scalar_mulx_u32(x688, 0x48b0a77a);
+ let mut x710: u32 = 0;
+ let mut x711: u32 = 0;
+ let (x710, x711) = fiat_p384_scalar_mulx_u32(x688, 0xecec196a);
+ let mut x712: u32 = 0;
+ let mut x713: u32 = 0;
+ let (x712, x713) = fiat_p384_scalar_mulx_u32(x688, 0xccc52973);
+ let mut x714: u32 = 0;
+ let mut x715: fiat_p384_scalar_u1 = 0;
+ let (x714, x715) = fiat_p384_scalar_addcarryx_u32(0x0, x713, x710);
+ let mut x716: u32 = 0;
+ let mut x717: fiat_p384_scalar_u1 = 0;
+ let (x716, x717) = fiat_p384_scalar_addcarryx_u32(x715, x711, x708);
+ let mut x718: u32 = 0;
+ let mut x719: fiat_p384_scalar_u1 = 0;
+ let (x718, x719) = fiat_p384_scalar_addcarryx_u32(x717, x709, x706);
+ let mut x720: u32 = 0;
+ let mut x721: fiat_p384_scalar_u1 = 0;
+ let (x720, x721) = fiat_p384_scalar_addcarryx_u32(x719, x707, x704);
+ let mut x722: u32 = 0;
+ let mut x723: fiat_p384_scalar_u1 = 0;
+ let (x722, x723) = fiat_p384_scalar_addcarryx_u32(x721, x705, x702);
+ let mut x724: u32 = 0;
+ let mut x725: fiat_p384_scalar_u1 = 0;
+ let (x724, x725) = fiat_p384_scalar_addcarryx_u32(x723, x703, x700);
+ let mut x726: u32 = 0;
+ let mut x727: fiat_p384_scalar_u1 = 0;
+ let (x726, x727) = fiat_p384_scalar_addcarryx_u32(x725, x701, x698);
+ let mut x728: u32 = 0;
+ let mut x729: fiat_p384_scalar_u1 = 0;
+ let (x728, x729) = fiat_p384_scalar_addcarryx_u32(x727, x699, x696);
+ let mut x730: u32 = 0;
+ let mut x731: fiat_p384_scalar_u1 = 0;
+ let (x730, x731) = fiat_p384_scalar_addcarryx_u32(x729, x697, x694);
+ let mut x732: u32 = 0;
+ let mut x733: fiat_p384_scalar_u1 = 0;
+ let (x732, x733) = fiat_p384_scalar_addcarryx_u32(x731, x695, x692);
+ let mut x734: u32 = 0;
+ let mut x735: fiat_p384_scalar_u1 = 0;
+ let (x734, x735) = fiat_p384_scalar_addcarryx_u32(x733, x693, x690);
+ let mut x736: u32 = 0;
+ let mut x737: fiat_p384_scalar_u1 = 0;
+ let (x736, x737) = fiat_p384_scalar_addcarryx_u32(0x0, x664, x712);
+ let mut x738: u32 = 0;
+ let mut x739: fiat_p384_scalar_u1 = 0;
+ let (x738, x739) = fiat_p384_scalar_addcarryx_u32(x737, x666, x714);
+ let mut x740: u32 = 0;
+ let mut x741: fiat_p384_scalar_u1 = 0;
+ let (x740, x741) = fiat_p384_scalar_addcarryx_u32(x739, x668, x716);
+ let mut x742: u32 = 0;
+ let mut x743: fiat_p384_scalar_u1 = 0;
+ let (x742, x743) = fiat_p384_scalar_addcarryx_u32(x741, x670, x718);
+ let mut x744: u32 = 0;
+ let mut x745: fiat_p384_scalar_u1 = 0;
+ let (x744, x745) = fiat_p384_scalar_addcarryx_u32(x743, x672, x720);
+ let mut x746: u32 = 0;
+ let mut x747: fiat_p384_scalar_u1 = 0;
+ let (x746, x747) = fiat_p384_scalar_addcarryx_u32(x745, x674, x722);
+ let mut x748: u32 = 0;
+ let mut x749: fiat_p384_scalar_u1 = 0;
+ let (x748, x749) = fiat_p384_scalar_addcarryx_u32(x747, x676, x724);
+ let mut x750: u32 = 0;
+ let mut x751: fiat_p384_scalar_u1 = 0;
+ let (x750, x751) = fiat_p384_scalar_addcarryx_u32(x749, x678, x726);
+ let mut x752: u32 = 0;
+ let mut x753: fiat_p384_scalar_u1 = 0;
+ let (x752, x753) = fiat_p384_scalar_addcarryx_u32(x751, x680, x728);
+ let mut x754: u32 = 0;
+ let mut x755: fiat_p384_scalar_u1 = 0;
+ let (x754, x755) = fiat_p384_scalar_addcarryx_u32(x753, x682, x730);
+ let mut x756: u32 = 0;
+ let mut x757: fiat_p384_scalar_u1 = 0;
+ let (x756, x757) = fiat_p384_scalar_addcarryx_u32(x755, x684, x732);
+ let mut x758: u32 = 0;
+ let mut x759: fiat_p384_scalar_u1 = 0;
+ let (x758, x759) = fiat_p384_scalar_addcarryx_u32(x757, x686, x734);
+ let mut x760: u32 = 0;
+ let mut x761: fiat_p384_scalar_u1 = 0;
+ let (x760, x761) = fiat_p384_scalar_addcarryx_u32(
+ x759,
+ ((x687 as u32) + (x663 as u32)),
+ ((x735 as u32) + x691),
+ );
+ let mut x762: u32 = 0;
+ let mut x763: fiat_p384_scalar_u1 = 0;
+ let (x762, x763) = fiat_p384_scalar_addcarryx_u32(0x0, x738, (arg1[8]));
+ let mut x764: u32 = 0;
+ let mut x765: fiat_p384_scalar_u1 = 0;
+ let (x764, x765) = fiat_p384_scalar_addcarryx_u32(x763, x740, (0x0 as u32));
+ let mut x766: u32 = 0;
+ let mut x767: fiat_p384_scalar_u1 = 0;
+ let (x766, x767) = fiat_p384_scalar_addcarryx_u32(x765, x742, (0x0 as u32));
+ let mut x768: u32 = 0;
+ let mut x769: fiat_p384_scalar_u1 = 0;
+ let (x768, x769) = fiat_p384_scalar_addcarryx_u32(x767, x744, (0x0 as u32));
+ let mut x770: u32 = 0;
+ let mut x771: fiat_p384_scalar_u1 = 0;
+ let (x770, x771) = fiat_p384_scalar_addcarryx_u32(x769, x746, (0x0 as u32));
+ let mut x772: u32 = 0;
+ let mut x773: fiat_p384_scalar_u1 = 0;
+ let (x772, x773) = fiat_p384_scalar_addcarryx_u32(x771, x748, (0x0 as u32));
+ let mut x774: u32 = 0;
+ let mut x775: fiat_p384_scalar_u1 = 0;
+ let (x774, x775) = fiat_p384_scalar_addcarryx_u32(x773, x750, (0x0 as u32));
+ let mut x776: u32 = 0;
+ let mut x777: fiat_p384_scalar_u1 = 0;
+ let (x776, x777) = fiat_p384_scalar_addcarryx_u32(x775, x752, (0x0 as u32));
+ let mut x778: u32 = 0;
+ let mut x779: fiat_p384_scalar_u1 = 0;
+ let (x778, x779) = fiat_p384_scalar_addcarryx_u32(x777, x754, (0x0 as u32));
+ let mut x780: u32 = 0;
+ let mut x781: fiat_p384_scalar_u1 = 0;
+ let (x780, x781) = fiat_p384_scalar_addcarryx_u32(x779, x756, (0x0 as u32));
+ let mut x782: u32 = 0;
+ let mut x783: fiat_p384_scalar_u1 = 0;
+ let (x782, x783) = fiat_p384_scalar_addcarryx_u32(x781, x758, (0x0 as u32));
+ let mut x784: u32 = 0;
+ let mut x785: fiat_p384_scalar_u1 = 0;
+ let (x784, x785) = fiat_p384_scalar_addcarryx_u32(x783, x760, (0x0 as u32));
+ let mut x786: u32 = 0;
+ let mut x787: u32 = 0;
+ let (x786, x787) = fiat_p384_scalar_mulx_u32(x762, 0xe88fdc45);
+ let mut x788: u32 = 0;
+ let mut x789: u32 = 0;
+ let (x788, x789) = fiat_p384_scalar_mulx_u32(x786, 0xffffffff);
+ let mut x790: u32 = 0;
+ let mut x791: u32 = 0;
+ let (x790, x791) = fiat_p384_scalar_mulx_u32(x786, 0xffffffff);
+ let mut x792: u32 = 0;
+ let mut x793: u32 = 0;
+ let (x792, x793) = fiat_p384_scalar_mulx_u32(x786, 0xffffffff);
+ let mut x794: u32 = 0;
+ let mut x795: u32 = 0;
+ let (x794, x795) = fiat_p384_scalar_mulx_u32(x786, 0xffffffff);
+ let mut x796: u32 = 0;
+ let mut x797: u32 = 0;
+ let (x796, x797) = fiat_p384_scalar_mulx_u32(x786, 0xffffffff);
+ let mut x798: u32 = 0;
+ let mut x799: u32 = 0;
+ let (x798, x799) = fiat_p384_scalar_mulx_u32(x786, 0xffffffff);
+ let mut x800: u32 = 0;
+ let mut x801: u32 = 0;
+ let (x800, x801) = fiat_p384_scalar_mulx_u32(x786, 0xc7634d81);
+ let mut x802: u32 = 0;
+ let mut x803: u32 = 0;
+ let (x802, x803) = fiat_p384_scalar_mulx_u32(x786, 0xf4372ddf);
+ let mut x804: u32 = 0;
+ let mut x805: u32 = 0;
+ let (x804, x805) = fiat_p384_scalar_mulx_u32(x786, 0x581a0db2);
+ let mut x806: u32 = 0;
+ let mut x807: u32 = 0;
+ let (x806, x807) = fiat_p384_scalar_mulx_u32(x786, 0x48b0a77a);
+ let mut x808: u32 = 0;
+ let mut x809: u32 = 0;
+ let (x808, x809) = fiat_p384_scalar_mulx_u32(x786, 0xecec196a);
+ let mut x810: u32 = 0;
+ let mut x811: u32 = 0;
+ let (x810, x811) = fiat_p384_scalar_mulx_u32(x786, 0xccc52973);
+ let mut x812: u32 = 0;
+ let mut x813: fiat_p384_scalar_u1 = 0;
+ let (x812, x813) = fiat_p384_scalar_addcarryx_u32(0x0, x811, x808);
+ let mut x814: u32 = 0;
+ let mut x815: fiat_p384_scalar_u1 = 0;
+ let (x814, x815) = fiat_p384_scalar_addcarryx_u32(x813, x809, x806);
+ let mut x816: u32 = 0;
+ let mut x817: fiat_p384_scalar_u1 = 0;
+ let (x816, x817) = fiat_p384_scalar_addcarryx_u32(x815, x807, x804);
+ let mut x818: u32 = 0;
+ let mut x819: fiat_p384_scalar_u1 = 0;
+ let (x818, x819) = fiat_p384_scalar_addcarryx_u32(x817, x805, x802);
+ let mut x820: u32 = 0;
+ let mut x821: fiat_p384_scalar_u1 = 0;
+ let (x820, x821) = fiat_p384_scalar_addcarryx_u32(x819, x803, x800);
+ let mut x822: u32 = 0;
+ let mut x823: fiat_p384_scalar_u1 = 0;
+ let (x822, x823) = fiat_p384_scalar_addcarryx_u32(x821, x801, x798);
+ let mut x824: u32 = 0;
+ let mut x825: fiat_p384_scalar_u1 = 0;
+ let (x824, x825) = fiat_p384_scalar_addcarryx_u32(x823, x799, x796);
+ let mut x826: u32 = 0;
+ let mut x827: fiat_p384_scalar_u1 = 0;
+ let (x826, x827) = fiat_p384_scalar_addcarryx_u32(x825, x797, x794);
+ let mut x828: u32 = 0;
+ let mut x829: fiat_p384_scalar_u1 = 0;
+ let (x828, x829) = fiat_p384_scalar_addcarryx_u32(x827, x795, x792);
+ let mut x830: u32 = 0;
+ let mut x831: fiat_p384_scalar_u1 = 0;
+ let (x830, x831) = fiat_p384_scalar_addcarryx_u32(x829, x793, x790);
+ let mut x832: u32 = 0;
+ let mut x833: fiat_p384_scalar_u1 = 0;
+ let (x832, x833) = fiat_p384_scalar_addcarryx_u32(x831, x791, x788);
+ let mut x834: u32 = 0;
+ let mut x835: fiat_p384_scalar_u1 = 0;
+ let (x834, x835) = fiat_p384_scalar_addcarryx_u32(0x0, x762, x810);
+ let mut x836: u32 = 0;
+ let mut x837: fiat_p384_scalar_u1 = 0;
+ let (x836, x837) = fiat_p384_scalar_addcarryx_u32(x835, x764, x812);
+ let mut x838: u32 = 0;
+ let mut x839: fiat_p384_scalar_u1 = 0;
+ let (x838, x839) = fiat_p384_scalar_addcarryx_u32(x837, x766, x814);
+ let mut x840: u32 = 0;
+ let mut x841: fiat_p384_scalar_u1 = 0;
+ let (x840, x841) = fiat_p384_scalar_addcarryx_u32(x839, x768, x816);
+ let mut x842: u32 = 0;
+ let mut x843: fiat_p384_scalar_u1 = 0;
+ let (x842, x843) = fiat_p384_scalar_addcarryx_u32(x841, x770, x818);
+ let mut x844: u32 = 0;
+ let mut x845: fiat_p384_scalar_u1 = 0;
+ let (x844, x845) = fiat_p384_scalar_addcarryx_u32(x843, x772, x820);
+ let mut x846: u32 = 0;
+ let mut x847: fiat_p384_scalar_u1 = 0;
+ let (x846, x847) = fiat_p384_scalar_addcarryx_u32(x845, x774, x822);
+ let mut x848: u32 = 0;
+ let mut x849: fiat_p384_scalar_u1 = 0;
+ let (x848, x849) = fiat_p384_scalar_addcarryx_u32(x847, x776, x824);
+ let mut x850: u32 = 0;
+ let mut x851: fiat_p384_scalar_u1 = 0;
+ let (x850, x851) = fiat_p384_scalar_addcarryx_u32(x849, x778, x826);
+ let mut x852: u32 = 0;
+ let mut x853: fiat_p384_scalar_u1 = 0;
+ let (x852, x853) = fiat_p384_scalar_addcarryx_u32(x851, x780, x828);
+ let mut x854: u32 = 0;
+ let mut x855: fiat_p384_scalar_u1 = 0;
+ let (x854, x855) = fiat_p384_scalar_addcarryx_u32(x853, x782, x830);
+ let mut x856: u32 = 0;
+ let mut x857: fiat_p384_scalar_u1 = 0;
+ let (x856, x857) = fiat_p384_scalar_addcarryx_u32(x855, x784, x832);
+ let mut x858: u32 = 0;
+ let mut x859: fiat_p384_scalar_u1 = 0;
+ let (x858, x859) = fiat_p384_scalar_addcarryx_u32(
+ x857,
+ ((x785 as u32) + (x761 as u32)),
+ ((x833 as u32) + x789),
+ );
+ let mut x860: u32 = 0;
+ let mut x861: fiat_p384_scalar_u1 = 0;
+ let (x860, x861) = fiat_p384_scalar_addcarryx_u32(0x0, x836, (arg1[9]));
+ let mut x862: u32 = 0;
+ let mut x863: fiat_p384_scalar_u1 = 0;
+ let (x862, x863) = fiat_p384_scalar_addcarryx_u32(x861, x838, (0x0 as u32));
+ let mut x864: u32 = 0;
+ let mut x865: fiat_p384_scalar_u1 = 0;
+ let (x864, x865) = fiat_p384_scalar_addcarryx_u32(x863, x840, (0x0 as u32));
+ let mut x866: u32 = 0;
+ let mut x867: fiat_p384_scalar_u1 = 0;
+ let (x866, x867) = fiat_p384_scalar_addcarryx_u32(x865, x842, (0x0 as u32));
+ let mut x868: u32 = 0;
+ let mut x869: fiat_p384_scalar_u1 = 0;
+ let (x868, x869) = fiat_p384_scalar_addcarryx_u32(x867, x844, (0x0 as u32));
+ let mut x870: u32 = 0;
+ let mut x871: fiat_p384_scalar_u1 = 0;
+ let (x870, x871) = fiat_p384_scalar_addcarryx_u32(x869, x846, (0x0 as u32));
+ let mut x872: u32 = 0;
+ let mut x873: fiat_p384_scalar_u1 = 0;
+ let (x872, x873) = fiat_p384_scalar_addcarryx_u32(x871, x848, (0x0 as u32));
+ let mut x874: u32 = 0;
+ let mut x875: fiat_p384_scalar_u1 = 0;
+ let (x874, x875) = fiat_p384_scalar_addcarryx_u32(x873, x850, (0x0 as u32));
+ let mut x876: u32 = 0;
+ let mut x877: fiat_p384_scalar_u1 = 0;
+ let (x876, x877) = fiat_p384_scalar_addcarryx_u32(x875, x852, (0x0 as u32));
+ let mut x878: u32 = 0;
+ let mut x879: fiat_p384_scalar_u1 = 0;
+ let (x878, x879) = fiat_p384_scalar_addcarryx_u32(x877, x854, (0x0 as u32));
+ let mut x880: u32 = 0;
+ let mut x881: fiat_p384_scalar_u1 = 0;
+ let (x880, x881) = fiat_p384_scalar_addcarryx_u32(x879, x856, (0x0 as u32));
+ let mut x882: u32 = 0;
+ let mut x883: fiat_p384_scalar_u1 = 0;
+ let (x882, x883) = fiat_p384_scalar_addcarryx_u32(x881, x858, (0x0 as u32));
+ let mut x884: u32 = 0;
+ let mut x885: u32 = 0;
+ let (x884, x885) = fiat_p384_scalar_mulx_u32(x860, 0xe88fdc45);
+ let mut x886: u32 = 0;
+ let mut x887: u32 = 0;
+ let (x886, x887) = fiat_p384_scalar_mulx_u32(x884, 0xffffffff);
+ let mut x888: u32 = 0;
+ let mut x889: u32 = 0;
+ let (x888, x889) = fiat_p384_scalar_mulx_u32(x884, 0xffffffff);
+ let mut x890: u32 = 0;
+ let mut x891: u32 = 0;
+ let (x890, x891) = fiat_p384_scalar_mulx_u32(x884, 0xffffffff);
+ let mut x892: u32 = 0;
+ let mut x893: u32 = 0;
+ let (x892, x893) = fiat_p384_scalar_mulx_u32(x884, 0xffffffff);
+ let mut x894: u32 = 0;
+ let mut x895: u32 = 0;
+ let (x894, x895) = fiat_p384_scalar_mulx_u32(x884, 0xffffffff);
+ let mut x896: u32 = 0;
+ let mut x897: u32 = 0;
+ let (x896, x897) = fiat_p384_scalar_mulx_u32(x884, 0xffffffff);
+ let mut x898: u32 = 0;
+ let mut x899: u32 = 0;
+ let (x898, x899) = fiat_p384_scalar_mulx_u32(x884, 0xc7634d81);
+ let mut x900: u32 = 0;
+ let mut x901: u32 = 0;
+ let (x900, x901) = fiat_p384_scalar_mulx_u32(x884, 0xf4372ddf);
+ let mut x902: u32 = 0;
+ let mut x903: u32 = 0;
+ let (x902, x903) = fiat_p384_scalar_mulx_u32(x884, 0x581a0db2);
+ let mut x904: u32 = 0;
+ let mut x905: u32 = 0;
+ let (x904, x905) = fiat_p384_scalar_mulx_u32(x884, 0x48b0a77a);
+ let mut x906: u32 = 0;
+ let mut x907: u32 = 0;
+ let (x906, x907) = fiat_p384_scalar_mulx_u32(x884, 0xecec196a);
+ let mut x908: u32 = 0;
+ let mut x909: u32 = 0;
+ let (x908, x909) = fiat_p384_scalar_mulx_u32(x884, 0xccc52973);
+ let mut x910: u32 = 0;
+ let mut x911: fiat_p384_scalar_u1 = 0;
+ let (x910, x911) = fiat_p384_scalar_addcarryx_u32(0x0, x909, x906);
+ let mut x912: u32 = 0;
+ let mut x913: fiat_p384_scalar_u1 = 0;
+ let (x912, x913) = fiat_p384_scalar_addcarryx_u32(x911, x907, x904);
+ let mut x914: u32 = 0;
+ let mut x915: fiat_p384_scalar_u1 = 0;
+ let (x914, x915) = fiat_p384_scalar_addcarryx_u32(x913, x905, x902);
+ let mut x916: u32 = 0;
+ let mut x917: fiat_p384_scalar_u1 = 0;
+ let (x916, x917) = fiat_p384_scalar_addcarryx_u32(x915, x903, x900);
+ let mut x918: u32 = 0;
+ let mut x919: fiat_p384_scalar_u1 = 0;
+ let (x918, x919) = fiat_p384_scalar_addcarryx_u32(x917, x901, x898);
+ let mut x920: u32 = 0;
+ let mut x921: fiat_p384_scalar_u1 = 0;
+ let (x920, x921) = fiat_p384_scalar_addcarryx_u32(x919, x899, x896);
+ let mut x922: u32 = 0;
+ let mut x923: fiat_p384_scalar_u1 = 0;
+ let (x922, x923) = fiat_p384_scalar_addcarryx_u32(x921, x897, x894);
+ let mut x924: u32 = 0;
+ let mut x925: fiat_p384_scalar_u1 = 0;
+ let (x924, x925) = fiat_p384_scalar_addcarryx_u32(x923, x895, x892);
+ let mut x926: u32 = 0;
+ let mut x927: fiat_p384_scalar_u1 = 0;
+ let (x926, x927) = fiat_p384_scalar_addcarryx_u32(x925, x893, x890);
+ let mut x928: u32 = 0;
+ let mut x929: fiat_p384_scalar_u1 = 0;
+ let (x928, x929) = fiat_p384_scalar_addcarryx_u32(x927, x891, x888);
+ let mut x930: u32 = 0;
+ let mut x931: fiat_p384_scalar_u1 = 0;
+ let (x930, x931) = fiat_p384_scalar_addcarryx_u32(x929, x889, x886);
+ let mut x932: u32 = 0;
+ let mut x933: fiat_p384_scalar_u1 = 0;
+ let (x932, x933) = fiat_p384_scalar_addcarryx_u32(0x0, x860, x908);
+ let mut x934: u32 = 0;
+ let mut x935: fiat_p384_scalar_u1 = 0;
+ let (x934, x935) = fiat_p384_scalar_addcarryx_u32(x933, x862, x910);
+ let mut x936: u32 = 0;
+ let mut x937: fiat_p384_scalar_u1 = 0;
+ let (x936, x937) = fiat_p384_scalar_addcarryx_u32(x935, x864, x912);
+ let mut x938: u32 = 0;
+ let mut x939: fiat_p384_scalar_u1 = 0;
+ let (x938, x939) = fiat_p384_scalar_addcarryx_u32(x937, x866, x914);
+ let mut x940: u32 = 0;
+ let mut x941: fiat_p384_scalar_u1 = 0;
+ let (x940, x941) = fiat_p384_scalar_addcarryx_u32(x939, x868, x916);
+ let mut x942: u32 = 0;
+ let mut x943: fiat_p384_scalar_u1 = 0;
+ let (x942, x943) = fiat_p384_scalar_addcarryx_u32(x941, x870, x918);
+ let mut x944: u32 = 0;
+ let mut x945: fiat_p384_scalar_u1 = 0;
+ let (x944, x945) = fiat_p384_scalar_addcarryx_u32(x943, x872, x920);
+ let mut x946: u32 = 0;
+ let mut x947: fiat_p384_scalar_u1 = 0;
+ let (x946, x947) = fiat_p384_scalar_addcarryx_u32(x945, x874, x922);
+ let mut x948: u32 = 0;
+ let mut x949: fiat_p384_scalar_u1 = 0;
+ let (x948, x949) = fiat_p384_scalar_addcarryx_u32(x947, x876, x924);
+ let mut x950: u32 = 0;
+ let mut x951: fiat_p384_scalar_u1 = 0;
+ let (x950, x951) = fiat_p384_scalar_addcarryx_u32(x949, x878, x926);
+ let mut x952: u32 = 0;
+ let mut x953: fiat_p384_scalar_u1 = 0;
+ let (x952, x953) = fiat_p384_scalar_addcarryx_u32(x951, x880, x928);
+ let mut x954: u32 = 0;
+ let mut x955: fiat_p384_scalar_u1 = 0;
+ let (x954, x955) = fiat_p384_scalar_addcarryx_u32(x953, x882, x930);
+ let mut x956: u32 = 0;
+ let mut x957: fiat_p384_scalar_u1 = 0;
+ let (x956, x957) = fiat_p384_scalar_addcarryx_u32(
+ x955,
+ ((x883 as u32) + (x859 as u32)),
+ ((x931 as u32) + x887),
+ );
+ let mut x958: u32 = 0;
+ let mut x959: fiat_p384_scalar_u1 = 0;
+ let (x958, x959) = fiat_p384_scalar_addcarryx_u32(0x0, x934, (arg1[10]));
+ let mut x960: u32 = 0;
+ let mut x961: fiat_p384_scalar_u1 = 0;
+ let (x960, x961) = fiat_p384_scalar_addcarryx_u32(x959, x936, (0x0 as u32));
+ let mut x962: u32 = 0;
+ let mut x963: fiat_p384_scalar_u1 = 0;
+ let (x962, x963) = fiat_p384_scalar_addcarryx_u32(x961, x938, (0x0 as u32));
+ let mut x964: u32 = 0;
+ let mut x965: fiat_p384_scalar_u1 = 0;
+ let (x964, x965) = fiat_p384_scalar_addcarryx_u32(x963, x940, (0x0 as u32));
+ let mut x966: u32 = 0;
+ let mut x967: fiat_p384_scalar_u1 = 0;
+ let (x966, x967) = fiat_p384_scalar_addcarryx_u32(x965, x942, (0x0 as u32));
+ let mut x968: u32 = 0;
+ let mut x969: fiat_p384_scalar_u1 = 0;
+ let (x968, x969) = fiat_p384_scalar_addcarryx_u32(x967, x944, (0x0 as u32));
+ let mut x970: u32 = 0;
+ let mut x971: fiat_p384_scalar_u1 = 0;
+ let (x970, x971) = fiat_p384_scalar_addcarryx_u32(x969, x946, (0x0 as u32));
+ let mut x972: u32 = 0;
+ let mut x973: fiat_p384_scalar_u1 = 0;
+ let (x972, x973) = fiat_p384_scalar_addcarryx_u32(x971, x948, (0x0 as u32));
+ let mut x974: u32 = 0;
+ let mut x975: fiat_p384_scalar_u1 = 0;
+ let (x974, x975) = fiat_p384_scalar_addcarryx_u32(x973, x950, (0x0 as u32));
+ let mut x976: u32 = 0;
+ let mut x977: fiat_p384_scalar_u1 = 0;
+ let (x976, x977) = fiat_p384_scalar_addcarryx_u32(x975, x952, (0x0 as u32));
+ let mut x978: u32 = 0;
+ let mut x979: fiat_p384_scalar_u1 = 0;
+ let (x978, x979) = fiat_p384_scalar_addcarryx_u32(x977, x954, (0x0 as u32));
+ let mut x980: u32 = 0;
+ let mut x981: fiat_p384_scalar_u1 = 0;
+ let (x980, x981) = fiat_p384_scalar_addcarryx_u32(x979, x956, (0x0 as u32));
+ let mut x982: u32 = 0;
+ let mut x983: u32 = 0;
+ let (x982, x983) = fiat_p384_scalar_mulx_u32(x958, 0xe88fdc45);
+ let mut x984: u32 = 0;
+ let mut x985: u32 = 0;
+ let (x984, x985) = fiat_p384_scalar_mulx_u32(x982, 0xffffffff);
+ let mut x986: u32 = 0;
+ let mut x987: u32 = 0;
+ let (x986, x987) = fiat_p384_scalar_mulx_u32(x982, 0xffffffff);
+ let mut x988: u32 = 0;
+ let mut x989: u32 = 0;
+ let (x988, x989) = fiat_p384_scalar_mulx_u32(x982, 0xffffffff);
+ let mut x990: u32 = 0;
+ let mut x991: u32 = 0;
+ let (x990, x991) = fiat_p384_scalar_mulx_u32(x982, 0xffffffff);
+ let mut x992: u32 = 0;
+ let mut x993: u32 = 0;
+ let (x992, x993) = fiat_p384_scalar_mulx_u32(x982, 0xffffffff);
+ let mut x994: u32 = 0;
+ let mut x995: u32 = 0;
+ let (x994, x995) = fiat_p384_scalar_mulx_u32(x982, 0xffffffff);
+ let mut x996: u32 = 0;
+ let mut x997: u32 = 0;
+ let (x996, x997) = fiat_p384_scalar_mulx_u32(x982, 0xc7634d81);
+ let mut x998: u32 = 0;
+ let mut x999: u32 = 0;
+ let (x998, x999) = fiat_p384_scalar_mulx_u32(x982, 0xf4372ddf);
+ let mut x1000: u32 = 0;
+ let mut x1001: u32 = 0;
+ let (x1000, x1001) = fiat_p384_scalar_mulx_u32(x982, 0x581a0db2);
+ let mut x1002: u32 = 0;
+ let mut x1003: u32 = 0;
+ let (x1002, x1003) = fiat_p384_scalar_mulx_u32(x982, 0x48b0a77a);
+ let mut x1004: u32 = 0;
+ let mut x1005: u32 = 0;
+ let (x1004, x1005) = fiat_p384_scalar_mulx_u32(x982, 0xecec196a);
+ let mut x1006: u32 = 0;
+ let mut x1007: u32 = 0;
+ let (x1006, x1007) = fiat_p384_scalar_mulx_u32(x982, 0xccc52973);
+ let mut x1008: u32 = 0;
+ let mut x1009: fiat_p384_scalar_u1 = 0;
+ let (x1008, x1009) = fiat_p384_scalar_addcarryx_u32(0x0, x1007, x1004);
+ let mut x1010: u32 = 0;
+ let mut x1011: fiat_p384_scalar_u1 = 0;
+ let (x1010, x1011) = fiat_p384_scalar_addcarryx_u32(x1009, x1005, x1002);
+ let mut x1012: u32 = 0;
+ let mut x1013: fiat_p384_scalar_u1 = 0;
+ let (x1012, x1013) = fiat_p384_scalar_addcarryx_u32(x1011, x1003, x1000);
+ let mut x1014: u32 = 0;
+ let mut x1015: fiat_p384_scalar_u1 = 0;
+ let (x1014, x1015) = fiat_p384_scalar_addcarryx_u32(x1013, x1001, x998);
+ let mut x1016: u32 = 0;
+ let mut x1017: fiat_p384_scalar_u1 = 0;
+ let (x1016, x1017) = fiat_p384_scalar_addcarryx_u32(x1015, x999, x996);
+ let mut x1018: u32 = 0;
+ let mut x1019: fiat_p384_scalar_u1 = 0;
+ let (x1018, x1019) = fiat_p384_scalar_addcarryx_u32(x1017, x997, x994);
+ let mut x1020: u32 = 0;
+ let mut x1021: fiat_p384_scalar_u1 = 0;
+ let (x1020, x1021) = fiat_p384_scalar_addcarryx_u32(x1019, x995, x992);
+ let mut x1022: u32 = 0;
+ let mut x1023: fiat_p384_scalar_u1 = 0;
+ let (x1022, x1023) = fiat_p384_scalar_addcarryx_u32(x1021, x993, x990);
+ let mut x1024: u32 = 0;
+ let mut x1025: fiat_p384_scalar_u1 = 0;
+ let (x1024, x1025) = fiat_p384_scalar_addcarryx_u32(x1023, x991, x988);
+ let mut x1026: u32 = 0;
+ let mut x1027: fiat_p384_scalar_u1 = 0;
+ let (x1026, x1027) = fiat_p384_scalar_addcarryx_u32(x1025, x989, x986);
+ let mut x1028: u32 = 0;
+ let mut x1029: fiat_p384_scalar_u1 = 0;
+ let (x1028, x1029) = fiat_p384_scalar_addcarryx_u32(x1027, x987, x984);
+ let mut x1030: u32 = 0;
+ let mut x1031: fiat_p384_scalar_u1 = 0;
+ let (x1030, x1031) = fiat_p384_scalar_addcarryx_u32(0x0, x958, x1006);
+ let mut x1032: u32 = 0;
+ let mut x1033: fiat_p384_scalar_u1 = 0;
+ let (x1032, x1033) = fiat_p384_scalar_addcarryx_u32(x1031, x960, x1008);
+ let mut x1034: u32 = 0;
+ let mut x1035: fiat_p384_scalar_u1 = 0;
+ let (x1034, x1035) = fiat_p384_scalar_addcarryx_u32(x1033, x962, x1010);
+ let mut x1036: u32 = 0;
+ let mut x1037: fiat_p384_scalar_u1 = 0;
+ let (x1036, x1037) = fiat_p384_scalar_addcarryx_u32(x1035, x964, x1012);
+ let mut x1038: u32 = 0;
+ let mut x1039: fiat_p384_scalar_u1 = 0;
+ let (x1038, x1039) = fiat_p384_scalar_addcarryx_u32(x1037, x966, x1014);
+ let mut x1040: u32 = 0;
+ let mut x1041: fiat_p384_scalar_u1 = 0;
+ let (x1040, x1041) = fiat_p384_scalar_addcarryx_u32(x1039, x968, x1016);
+ let mut x1042: u32 = 0;
+ let mut x1043: fiat_p384_scalar_u1 = 0;
+ let (x1042, x1043) = fiat_p384_scalar_addcarryx_u32(x1041, x970, x1018);
+ let mut x1044: u32 = 0;
+ let mut x1045: fiat_p384_scalar_u1 = 0;
+ let (x1044, x1045) = fiat_p384_scalar_addcarryx_u32(x1043, x972, x1020);
+ let mut x1046: u32 = 0;
+ let mut x1047: fiat_p384_scalar_u1 = 0;
+ let (x1046, x1047) = fiat_p384_scalar_addcarryx_u32(x1045, x974, x1022);
+ let mut x1048: u32 = 0;
+ let mut x1049: fiat_p384_scalar_u1 = 0;
+ let (x1048, x1049) = fiat_p384_scalar_addcarryx_u32(x1047, x976, x1024);
+ let mut x1050: u32 = 0;
+ let mut x1051: fiat_p384_scalar_u1 = 0;
+ let (x1050, x1051) = fiat_p384_scalar_addcarryx_u32(x1049, x978, x1026);
+ let mut x1052: u32 = 0;
+ let mut x1053: fiat_p384_scalar_u1 = 0;
+ let (x1052, x1053) = fiat_p384_scalar_addcarryx_u32(x1051, x980, x1028);
+ let mut x1054: u32 = 0;
+ let mut x1055: fiat_p384_scalar_u1 = 0;
+ let (x1054, x1055) = fiat_p384_scalar_addcarryx_u32(
+ x1053,
+ ((x981 as u32) + (x957 as u32)),
+ ((x1029 as u32) + x985),
+ );
+ let mut x1056: u32 = 0;
+ let mut x1057: fiat_p384_scalar_u1 = 0;
+ let (x1056, x1057) = fiat_p384_scalar_addcarryx_u32(0x0, x1032, (arg1[11]));
+ let mut x1058: u32 = 0;
+ let mut x1059: fiat_p384_scalar_u1 = 0;
+ let (x1058, x1059) = fiat_p384_scalar_addcarryx_u32(x1057, x1034, (0x0 as u32));
+ let mut x1060: u32 = 0;
+ let mut x1061: fiat_p384_scalar_u1 = 0;
+ let (x1060, x1061) = fiat_p384_scalar_addcarryx_u32(x1059, x1036, (0x0 as u32));
+ let mut x1062: u32 = 0;
+ let mut x1063: fiat_p384_scalar_u1 = 0;
+ let (x1062, x1063) = fiat_p384_scalar_addcarryx_u32(x1061, x1038, (0x0 as u32));
+ let mut x1064: u32 = 0;
+ let mut x1065: fiat_p384_scalar_u1 = 0;
+ let (x1064, x1065) = fiat_p384_scalar_addcarryx_u32(x1063, x1040, (0x0 as u32));
+ let mut x1066: u32 = 0;
+ let mut x1067: fiat_p384_scalar_u1 = 0;
+ let (x1066, x1067) = fiat_p384_scalar_addcarryx_u32(x1065, x1042, (0x0 as u32));
+ let mut x1068: u32 = 0;
+ let mut x1069: fiat_p384_scalar_u1 = 0;
+ let (x1068, x1069) = fiat_p384_scalar_addcarryx_u32(x1067, x1044, (0x0 as u32));
+ let mut x1070: u32 = 0;
+ let mut x1071: fiat_p384_scalar_u1 = 0;
+ let (x1070, x1071) = fiat_p384_scalar_addcarryx_u32(x1069, x1046, (0x0 as u32));
+ let mut x1072: u32 = 0;
+ let mut x1073: fiat_p384_scalar_u1 = 0;
+ let (x1072, x1073) = fiat_p384_scalar_addcarryx_u32(x1071, x1048, (0x0 as u32));
+ let mut x1074: u32 = 0;
+ let mut x1075: fiat_p384_scalar_u1 = 0;
+ let (x1074, x1075) = fiat_p384_scalar_addcarryx_u32(x1073, x1050, (0x0 as u32));
+ let mut x1076: u32 = 0;
+ let mut x1077: fiat_p384_scalar_u1 = 0;
+ let (x1076, x1077) = fiat_p384_scalar_addcarryx_u32(x1075, x1052, (0x0 as u32));
+ let mut x1078: u32 = 0;
+ let mut x1079: fiat_p384_scalar_u1 = 0;
+ let (x1078, x1079) = fiat_p384_scalar_addcarryx_u32(x1077, x1054, (0x0 as u32));
+ let mut x1080: u32 = 0;
+ let mut x1081: u32 = 0;
+ let (x1080, x1081) = fiat_p384_scalar_mulx_u32(x1056, 0xe88fdc45);
+ let mut x1082: u32 = 0;
+ let mut x1083: u32 = 0;
+ let (x1082, x1083) = fiat_p384_scalar_mulx_u32(x1080, 0xffffffff);
+ let mut x1084: u32 = 0;
+ let mut x1085: u32 = 0;
+ let (x1084, x1085) = fiat_p384_scalar_mulx_u32(x1080, 0xffffffff);
+ let mut x1086: u32 = 0;
+ let mut x1087: u32 = 0;
+ let (x1086, x1087) = fiat_p384_scalar_mulx_u32(x1080, 0xffffffff);
+ let mut x1088: u32 = 0;
+ let mut x1089: u32 = 0;
+ let (x1088, x1089) = fiat_p384_scalar_mulx_u32(x1080, 0xffffffff);
+ let mut x1090: u32 = 0;
+ let mut x1091: u32 = 0;
+ let (x1090, x1091) = fiat_p384_scalar_mulx_u32(x1080, 0xffffffff);
+ let mut x1092: u32 = 0;
+ let mut x1093: u32 = 0;
+ let (x1092, x1093) = fiat_p384_scalar_mulx_u32(x1080, 0xffffffff);
+ let mut x1094: u32 = 0;
+ let mut x1095: u32 = 0;
+ let (x1094, x1095) = fiat_p384_scalar_mulx_u32(x1080, 0xc7634d81);
+ let mut x1096: u32 = 0;
+ let mut x1097: u32 = 0;
+ let (x1096, x1097) = fiat_p384_scalar_mulx_u32(x1080, 0xf4372ddf);
+ let mut x1098: u32 = 0;
+ let mut x1099: u32 = 0;
+ let (x1098, x1099) = fiat_p384_scalar_mulx_u32(x1080, 0x581a0db2);
+ let mut x1100: u32 = 0;
+ let mut x1101: u32 = 0;
+ let (x1100, x1101) = fiat_p384_scalar_mulx_u32(x1080, 0x48b0a77a);
+ let mut x1102: u32 = 0;
+ let mut x1103: u32 = 0;
+ let (x1102, x1103) = fiat_p384_scalar_mulx_u32(x1080, 0xecec196a);
+ let mut x1104: u32 = 0;
+ let mut x1105: u32 = 0;
+ let (x1104, x1105) = fiat_p384_scalar_mulx_u32(x1080, 0xccc52973);
+ let mut x1106: u32 = 0;
+ let mut x1107: fiat_p384_scalar_u1 = 0;
+ let (x1106, x1107) = fiat_p384_scalar_addcarryx_u32(0x0, x1105, x1102);
+ let mut x1108: u32 = 0;
+ let mut x1109: fiat_p384_scalar_u1 = 0;
+ let (x1108, x1109) = fiat_p384_scalar_addcarryx_u32(x1107, x1103, x1100);
+ let mut x1110: u32 = 0;
+ let mut x1111: fiat_p384_scalar_u1 = 0;
+ let (x1110, x1111) = fiat_p384_scalar_addcarryx_u32(x1109, x1101, x1098);
+ let mut x1112: u32 = 0;
+ let mut x1113: fiat_p384_scalar_u1 = 0;
+ let (x1112, x1113) = fiat_p384_scalar_addcarryx_u32(x1111, x1099, x1096);
+ let mut x1114: u32 = 0;
+ let mut x1115: fiat_p384_scalar_u1 = 0;
+ let (x1114, x1115) = fiat_p384_scalar_addcarryx_u32(x1113, x1097, x1094);
+ let mut x1116: u32 = 0;
+ let mut x1117: fiat_p384_scalar_u1 = 0;
+ let (x1116, x1117) = fiat_p384_scalar_addcarryx_u32(x1115, x1095, x1092);
+ let mut x1118: u32 = 0;
+ let mut x1119: fiat_p384_scalar_u1 = 0;
+ let (x1118, x1119) = fiat_p384_scalar_addcarryx_u32(x1117, x1093, x1090);
+ let mut x1120: u32 = 0;
+ let mut x1121: fiat_p384_scalar_u1 = 0;
+ let (x1120, x1121) = fiat_p384_scalar_addcarryx_u32(x1119, x1091, x1088);
+ let mut x1122: u32 = 0;
+ let mut x1123: fiat_p384_scalar_u1 = 0;
+ let (x1122, x1123) = fiat_p384_scalar_addcarryx_u32(x1121, x1089, x1086);
+ let mut x1124: u32 = 0;
+ let mut x1125: fiat_p384_scalar_u1 = 0;
+ let (x1124, x1125) = fiat_p384_scalar_addcarryx_u32(x1123, x1087, x1084);
+ let mut x1126: u32 = 0;
+ let mut x1127: fiat_p384_scalar_u1 = 0;
+ let (x1126, x1127) = fiat_p384_scalar_addcarryx_u32(x1125, x1085, x1082);
+ let mut x1128: u32 = 0;
+ let mut x1129: fiat_p384_scalar_u1 = 0;
+ let (x1128, x1129) = fiat_p384_scalar_addcarryx_u32(0x0, x1056, x1104);
+ let mut x1130: u32 = 0;
+ let mut x1131: fiat_p384_scalar_u1 = 0;
+ let (x1130, x1131) = fiat_p384_scalar_addcarryx_u32(x1129, x1058, x1106);
+ let mut x1132: u32 = 0;
+ let mut x1133: fiat_p384_scalar_u1 = 0;
+ let (x1132, x1133) = fiat_p384_scalar_addcarryx_u32(x1131, x1060, x1108);
+ let mut x1134: u32 = 0;
+ let mut x1135: fiat_p384_scalar_u1 = 0;
+ let (x1134, x1135) = fiat_p384_scalar_addcarryx_u32(x1133, x1062, x1110);
+ let mut x1136: u32 = 0;
+ let mut x1137: fiat_p384_scalar_u1 = 0;
+ let (x1136, x1137) = fiat_p384_scalar_addcarryx_u32(x1135, x1064, x1112);
+ let mut x1138: u32 = 0;
+ let mut x1139: fiat_p384_scalar_u1 = 0;
+ let (x1138, x1139) = fiat_p384_scalar_addcarryx_u32(x1137, x1066, x1114);
+ let mut x1140: u32 = 0;
+ let mut x1141: fiat_p384_scalar_u1 = 0;
+ let (x1140, x1141) = fiat_p384_scalar_addcarryx_u32(x1139, x1068, x1116);
+ let mut x1142: u32 = 0;
+ let mut x1143: fiat_p384_scalar_u1 = 0;
+ let (x1142, x1143) = fiat_p384_scalar_addcarryx_u32(x1141, x1070, x1118);
+ let mut x1144: u32 = 0;
+ let mut x1145: fiat_p384_scalar_u1 = 0;
+ let (x1144, x1145) = fiat_p384_scalar_addcarryx_u32(x1143, x1072, x1120);
+ let mut x1146: u32 = 0;
+ let mut x1147: fiat_p384_scalar_u1 = 0;
+ let (x1146, x1147) = fiat_p384_scalar_addcarryx_u32(x1145, x1074, x1122);
+ let mut x1148: u32 = 0;
+ let mut x1149: fiat_p384_scalar_u1 = 0;
+ let (x1148, x1149) = fiat_p384_scalar_addcarryx_u32(x1147, x1076, x1124);
+ let mut x1150: u32 = 0;
+ let mut x1151: fiat_p384_scalar_u1 = 0;
+ let (x1150, x1151) = fiat_p384_scalar_addcarryx_u32(x1149, x1078, x1126);
+ let mut x1152: u32 = 0;
+ let mut x1153: fiat_p384_scalar_u1 = 0;
+ let (x1152, x1153) = fiat_p384_scalar_addcarryx_u32(
+ x1151,
+ ((x1079 as u32) + (x1055 as u32)),
+ ((x1127 as u32) + x1083),
+ );
+ let mut x1154: u32 = 0;
+ let mut x1155: fiat_p384_scalar_u1 = 0;
+ let (x1154, x1155) = fiat_p384_scalar_subborrowx_u32(0x0, x1130, 0xccc52973);
+ let mut x1156: u32 = 0;
+ let mut x1157: fiat_p384_scalar_u1 = 0;
+ let (x1156, x1157) = fiat_p384_scalar_subborrowx_u32(x1155, x1132, 0xecec196a);
+ let mut x1158: u32 = 0;
+ let mut x1159: fiat_p384_scalar_u1 = 0;
+ let (x1158, x1159) = fiat_p384_scalar_subborrowx_u32(x1157, x1134, 0x48b0a77a);
+ let mut x1160: u32 = 0;
+ let mut x1161: fiat_p384_scalar_u1 = 0;
+ let (x1160, x1161) = fiat_p384_scalar_subborrowx_u32(x1159, x1136, 0x581a0db2);
+ let mut x1162: u32 = 0;
+ let mut x1163: fiat_p384_scalar_u1 = 0;
+ let (x1162, x1163) = fiat_p384_scalar_subborrowx_u32(x1161, x1138, 0xf4372ddf);
+ let mut x1164: u32 = 0;
+ let mut x1165: fiat_p384_scalar_u1 = 0;
+ let (x1164, x1165) = fiat_p384_scalar_subborrowx_u32(x1163, x1140, 0xc7634d81);
+ let mut x1166: u32 = 0;
+ let mut x1167: fiat_p384_scalar_u1 = 0;
+ let (x1166, x1167) = fiat_p384_scalar_subborrowx_u32(x1165, x1142, 0xffffffff);
+ let mut x1168: u32 = 0;
+ let mut x1169: fiat_p384_scalar_u1 = 0;
+ let (x1168, x1169) = fiat_p384_scalar_subborrowx_u32(x1167, x1144, 0xffffffff);
+ let mut x1170: u32 = 0;
+ let mut x1171: fiat_p384_scalar_u1 = 0;
+ let (x1170, x1171) = fiat_p384_scalar_subborrowx_u32(x1169, x1146, 0xffffffff);
+ let mut x1172: u32 = 0;
+ let mut x1173: fiat_p384_scalar_u1 = 0;
+ let (x1172, x1173) = fiat_p384_scalar_subborrowx_u32(x1171, x1148, 0xffffffff);
+ let mut x1174: u32 = 0;
+ let mut x1175: fiat_p384_scalar_u1 = 0;
+ let (x1174, x1175) = fiat_p384_scalar_subborrowx_u32(x1173, x1150, 0xffffffff);
+ let mut x1176: u32 = 0;
+ let mut x1177: fiat_p384_scalar_u1 = 0;
+ let (x1176, x1177) = fiat_p384_scalar_subborrowx_u32(x1175, x1152, 0xffffffff);
+ let mut x1178: u32 = 0;
+ let mut x1179: fiat_p384_scalar_u1 = 0;
+ let (x1178, x1179) = fiat_p384_scalar_subborrowx_u32(x1177, (x1153 as u32), (0x0 as u32));
+ let mut x1180: u32 = 0;
+ let (x1180) = fiat_p384_scalar_cmovznz_u32(x1179, x1154, x1130);
+ let mut x1181: u32 = 0;
+ let (x1181) = fiat_p384_scalar_cmovznz_u32(x1179, x1156, x1132);
+ let mut x1182: u32 = 0;
+ let (x1182) = fiat_p384_scalar_cmovznz_u32(x1179, x1158, x1134);
+ let mut x1183: u32 = 0;
+ let (x1183) = fiat_p384_scalar_cmovznz_u32(x1179, x1160, x1136);
+ let mut x1184: u32 = 0;
+ let (x1184) = fiat_p384_scalar_cmovznz_u32(x1179, x1162, x1138);
+ let mut x1185: u32 = 0;
+ let (x1185) = fiat_p384_scalar_cmovznz_u32(x1179, x1164, x1140);
+ let mut x1186: u32 = 0;
+ let (x1186) = fiat_p384_scalar_cmovznz_u32(x1179, x1166, x1142);
+ let mut x1187: u32 = 0;
+ let (x1187) = fiat_p384_scalar_cmovznz_u32(x1179, x1168, x1144);
+ let mut x1188: u32 = 0;
+ let (x1188) = fiat_p384_scalar_cmovznz_u32(x1179, x1170, x1146);
+ let mut x1189: u32 = 0;
+ let (x1189) = fiat_p384_scalar_cmovznz_u32(x1179, x1172, x1148);
+ let mut x1190: u32 = 0;
+ let (x1190) = fiat_p384_scalar_cmovznz_u32(x1179, x1174, x1150);
+ let mut x1191: u32 = 0;
+ let (x1191) = fiat_p384_scalar_cmovznz_u32(x1179, x1176, x1152);
+ out1[0] = x1180;
+ out1[1] = x1181;
+ out1[2] = x1182;
+ out1[3] = x1183;
+ out1[4] = x1184;
+ out1[5] = x1185;
+ out1[6] = x1186;
+ out1[7] = x1187;
+ out1[8] = x1188;
+ out1[9] = x1189;
+ out1[10] = x1190;
+ out1[11] = x1191;
+ out1
+}
+#[doc = " The function fiat_p384_scalar_to_montgomery translates a field element into the Montgomery domain."]
+#[doc = ""]
+#[doc = " Preconditions:"]
+#[doc = " 0 ≤ eval arg1 < m"]
+#[doc = " Postconditions:"]
+#[doc = " eval (from_montgomery out1) mod m = eval arg1 mod m"]
+#[doc = " 0 ≤ eval out1 < m"]
+#[doc = ""]
+#[inline]
+pub const fn fiat_p384_scalar_to_montgomery(
+ arg1: &fiat_p384_scalar_non_montgomery_domain_field_element,
+) -> fiat_p384_scalar_montgomery_domain_field_element {
+ let mut out1: fiat_p384_scalar_montgomery_domain_field_element = [0; 12];
+ let x1: u32 = (arg1[1]);
+ let x2: u32 = (arg1[2]);
+ let x3: u32 = (arg1[3]);
+ let x4: u32 = (arg1[4]);
+ let x5: u32 = (arg1[5]);
+ let x6: u32 = (arg1[6]);
+ let x7: u32 = (arg1[7]);
+ let x8: u32 = (arg1[8]);
+ let x9: u32 = (arg1[9]);
+ let x10: u32 = (arg1[10]);
+ let x11: u32 = (arg1[11]);
+ let x12: u32 = (arg1[0]);
+ let mut x13: u32 = 0;
+ let mut x14: u32 = 0;
+ let (x13, x14) = fiat_p384_scalar_mulx_u32(x12, 0xc84ee01);
+ let mut x15: u32 = 0;
+ let mut x16: u32 = 0;
+ let (x15, x16) = fiat_p384_scalar_mulx_u32(x12, 0x2b39bf21);
+ let mut x17: u32 = 0;
+ let mut x18: u32 = 0;
+ let (x17, x18) = fiat_p384_scalar_mulx_u32(x12, 0x3fb05b7a);
+ let mut x19: u32 = 0;
+ let mut x20: u32 = 0;
+ let (x19, x20) = fiat_p384_scalar_mulx_u32(x12, 0x28266895);
+ let mut x21: u32 = 0;
+ let mut x22: u32 = 0;
+ let (x21, x22) = fiat_p384_scalar_mulx_u32(x12, 0xd40d4917);
+ let mut x23: u32 = 0;
+ let mut x24: u32 = 0;
+ let (x23, x24) = fiat_p384_scalar_mulx_u32(x12, 0x4aab1cc5);
+ let mut x25: u32 = 0;
+ let mut x26: u32 = 0;
+ let (x25, x26) = fiat_p384_scalar_mulx_u32(x12, 0xbc3e483a);
+ let mut x27: u32 = 0;
+ let mut x28: u32 = 0;
+ let (x27, x28) = fiat_p384_scalar_mulx_u32(x12, 0xfcb82947);
+ let mut x29: u32 = 0;
+ let mut x30: u32 = 0;
+ let (x29, x30) = fiat_p384_scalar_mulx_u32(x12, 0xff3d81e5);
+ let mut x31: u32 = 0;
+ let mut x32: u32 = 0;
+ let (x31, x32) = fiat_p384_scalar_mulx_u32(x12, 0xdf1aa419);
+ let mut x33: u32 = 0;
+ let mut x34: u32 = 0;
+ let (x33, x34) = fiat_p384_scalar_mulx_u32(x12, 0x2d319b24);
+ let mut x35: u32 = 0;
+ let mut x36: u32 = 0;
+ let (x35, x36) = fiat_p384_scalar_mulx_u32(x12, 0x19b409a9);
+ let mut x37: u32 = 0;
+ let mut x38: fiat_p384_scalar_u1 = 0;
+ let (x37, x38) = fiat_p384_scalar_addcarryx_u32(0x0, x36, x33);
+ let mut x39: u32 = 0;
+ let mut x40: fiat_p384_scalar_u1 = 0;
+ let (x39, x40) = fiat_p384_scalar_addcarryx_u32(x38, x34, x31);
+ let mut x41: u32 = 0;
+ let mut x42: fiat_p384_scalar_u1 = 0;
+ let (x41, x42) = fiat_p384_scalar_addcarryx_u32(x40, x32, x29);
+ let mut x43: u32 = 0;
+ let mut x44: fiat_p384_scalar_u1 = 0;
+ let (x43, x44) = fiat_p384_scalar_addcarryx_u32(x42, x30, x27);
+ let mut x45: u32 = 0;
+ let mut x46: fiat_p384_scalar_u1 = 0;
+ let (x45, x46) = fiat_p384_scalar_addcarryx_u32(x44, x28, x25);
+ let mut x47: u32 = 0;
+ let mut x48: fiat_p384_scalar_u1 = 0;
+ let (x47, x48) = fiat_p384_scalar_addcarryx_u32(x46, x26, x23);
+ let mut x49: u32 = 0;
+ let mut x50: fiat_p384_scalar_u1 = 0;
+ let (x49, x50) = fiat_p384_scalar_addcarryx_u32(x48, x24, x21);
+ let mut x51: u32 = 0;
+ let mut x52: fiat_p384_scalar_u1 = 0;
+ let (x51, x52) = fiat_p384_scalar_addcarryx_u32(x50, x22, x19);
+ let mut x53: u32 = 0;
+ let mut x54: fiat_p384_scalar_u1 = 0;
+ let (x53, x54) = fiat_p384_scalar_addcarryx_u32(x52, x20, x17);
+ let mut x55: u32 = 0;
+ let mut x56: fiat_p384_scalar_u1 = 0;
+ let (x55, x56) = fiat_p384_scalar_addcarryx_u32(x54, x18, x15);
+ let mut x57: u32 = 0;
+ let mut x58: fiat_p384_scalar_u1 = 0;
+ let (x57, x58) = fiat_p384_scalar_addcarryx_u32(x56, x16, x13);
+ let mut x59: u32 = 0;
+ let mut x60: u32 = 0;
+ let (x59, x60) = fiat_p384_scalar_mulx_u32(x35, 0xe88fdc45);
+ let mut x61: u32 = 0;
+ let mut x62: u32 = 0;
+ let (x61, x62) = fiat_p384_scalar_mulx_u32(x59, 0xffffffff);
+ let mut x63: u32 = 0;
+ let mut x64: u32 = 0;
+ let (x63, x64) = fiat_p384_scalar_mulx_u32(x59, 0xffffffff);
+ let mut x65: u32 = 0;
+ let mut x66: u32 = 0;
+ let (x65, x66) = fiat_p384_scalar_mulx_u32(x59, 0xffffffff);
+ let mut x67: u32 = 0;
+ let mut x68: u32 = 0;
+ let (x67, x68) = fiat_p384_scalar_mulx_u32(x59, 0xffffffff);
+ let mut x69: u32 = 0;
+ let mut x70: u32 = 0;
+ let (x69, x70) = fiat_p384_scalar_mulx_u32(x59, 0xffffffff);
+ let mut x71: u32 = 0;
+ let mut x72: u32 = 0;
+ let (x71, x72) = fiat_p384_scalar_mulx_u32(x59, 0xffffffff);
+ let mut x73: u32 = 0;
+ let mut x74: u32 = 0;
+ let (x73, x74) = fiat_p384_scalar_mulx_u32(x59, 0xc7634d81);
+ let mut x75: u32 = 0;
+ let mut x76: u32 = 0;
+ let (x75, x76) = fiat_p384_scalar_mulx_u32(x59, 0xf4372ddf);
+ let mut x77: u32 = 0;
+ let mut x78: u32 = 0;
+ let (x77, x78) = fiat_p384_scalar_mulx_u32(x59, 0x581a0db2);
+ let mut x79: u32 = 0;
+ let mut x80: u32 = 0;
+ let (x79, x80) = fiat_p384_scalar_mulx_u32(x59, 0x48b0a77a);
+ let mut x81: u32 = 0;
+ let mut x82: u32 = 0;
+ let (x81, x82) = fiat_p384_scalar_mulx_u32(x59, 0xecec196a);
+ let mut x83: u32 = 0;
+ let mut x84: u32 = 0;
+ let (x83, x84) = fiat_p384_scalar_mulx_u32(x59, 0xccc52973);
+ let mut x85: u32 = 0;
+ let mut x86: fiat_p384_scalar_u1 = 0;
+ let (x85, x86) = fiat_p384_scalar_addcarryx_u32(0x0, x84, x81);
+ let mut x87: u32 = 0;
+ let mut x88: fiat_p384_scalar_u1 = 0;
+ let (x87, x88) = fiat_p384_scalar_addcarryx_u32(x86, x82, x79);
+ let mut x89: u32 = 0;
+ let mut x90: fiat_p384_scalar_u1 = 0;
+ let (x89, x90) = fiat_p384_scalar_addcarryx_u32(x88, x80, x77);
+ let mut x91: u32 = 0;
+ let mut x92: fiat_p384_scalar_u1 = 0;
+ let (x91, x92) = fiat_p384_scalar_addcarryx_u32(x90, x78, x75);
+ let mut x93: u32 = 0;
+ let mut x94: fiat_p384_scalar_u1 = 0;
+ let (x93, x94) = fiat_p384_scalar_addcarryx_u32(x92, x76, x73);
+ let mut x95: u32 = 0;
+ let mut x96: fiat_p384_scalar_u1 = 0;
+ let (x95, x96) = fiat_p384_scalar_addcarryx_u32(x94, x74, x71);
+ let mut x97: u32 = 0;
+ let mut x98: fiat_p384_scalar_u1 = 0;
+ let (x97, x98) = fiat_p384_scalar_addcarryx_u32(x96, x72, x69);
+ let mut x99: u32 = 0;
+ let mut x100: fiat_p384_scalar_u1 = 0;
+ let (x99, x100) = fiat_p384_scalar_addcarryx_u32(x98, x70, x67);
+ let mut x101: u32 = 0;
+ let mut x102: fiat_p384_scalar_u1 = 0;
+ let (x101, x102) = fiat_p384_scalar_addcarryx_u32(x100, x68, x65);
+ let mut x103: u32 = 0;
+ let mut x104: fiat_p384_scalar_u1 = 0;
+ let (x103, x104) = fiat_p384_scalar_addcarryx_u32(x102, x66, x63);
+ let mut x105: u32 = 0;
+ let mut x106: fiat_p384_scalar_u1 = 0;
+ let (x105, x106) = fiat_p384_scalar_addcarryx_u32(x104, x64, x61);
+ let mut x107: u32 = 0;
+ let mut x108: fiat_p384_scalar_u1 = 0;
+ let (x107, x108) = fiat_p384_scalar_addcarryx_u32(0x0, x35, x83);
+ let mut x109: u32 = 0;
+ let mut x110: fiat_p384_scalar_u1 = 0;
+ let (x109, x110) = fiat_p384_scalar_addcarryx_u32(x108, x37, x85);
+ let mut x111: u32 = 0;
+ let mut x112: fiat_p384_scalar_u1 = 0;
+ let (x111, x112) = fiat_p384_scalar_addcarryx_u32(x110, x39, x87);
+ let mut x113: u32 = 0;
+ let mut x114: fiat_p384_scalar_u1 = 0;
+ let (x113, x114) = fiat_p384_scalar_addcarryx_u32(x112, x41, x89);
+ let mut x115: u32 = 0;
+ let mut x116: fiat_p384_scalar_u1 = 0;
+ let (x115, x116) = fiat_p384_scalar_addcarryx_u32(x114, x43, x91);
+ let mut x117: u32 = 0;
+ let mut x118: fiat_p384_scalar_u1 = 0;
+ let (x117, x118) = fiat_p384_scalar_addcarryx_u32(x116, x45, x93);
+ let mut x119: u32 = 0;
+ let mut x120: fiat_p384_scalar_u1 = 0;
+ let (x119, x120) = fiat_p384_scalar_addcarryx_u32(x118, x47, x95);
+ let mut x121: u32 = 0;
+ let mut x122: fiat_p384_scalar_u1 = 0;
+ let (x121, x122) = fiat_p384_scalar_addcarryx_u32(x120, x49, x97);
+ let mut x123: u32 = 0;
+ let mut x124: fiat_p384_scalar_u1 = 0;
+ let (x123, x124) = fiat_p384_scalar_addcarryx_u32(x122, x51, x99);
+ let mut x125: u32 = 0;
+ let mut x126: fiat_p384_scalar_u1 = 0;
+ let (x125, x126) = fiat_p384_scalar_addcarryx_u32(x124, x53, x101);
+ let mut x127: u32 = 0;
+ let mut x128: fiat_p384_scalar_u1 = 0;
+ let (x127, x128) = fiat_p384_scalar_addcarryx_u32(x126, x55, x103);
+ let mut x129: u32 = 0;
+ let mut x130: fiat_p384_scalar_u1 = 0;
+ let (x129, x130) = fiat_p384_scalar_addcarryx_u32(x128, x57, x105);
+ let mut x131: u32 = 0;
+ let mut x132: fiat_p384_scalar_u1 = 0;
+ let (x131, x132) =
+ fiat_p384_scalar_addcarryx_u32(x130, ((x58 as u32) + x14), ((x106 as u32) + x62));
+ let mut x133: u32 = 0;
+ let mut x134: u32 = 0;
+ let (x133, x134) = fiat_p384_scalar_mulx_u32(x1, 0xc84ee01);
+ let mut x135: u32 = 0;
+ let mut x136: u32 = 0;
+ let (x135, x136) = fiat_p384_scalar_mulx_u32(x1, 0x2b39bf21);
+ let mut x137: u32 = 0;
+ let mut x138: u32 = 0;
+ let (x137, x138) = fiat_p384_scalar_mulx_u32(x1, 0x3fb05b7a);
+ let mut x139: u32 = 0;
+ let mut x140: u32 = 0;
+ let (x139, x140) = fiat_p384_scalar_mulx_u32(x1, 0x28266895);
+ let mut x141: u32 = 0;
+ let mut x142: u32 = 0;
+ let (x141, x142) = fiat_p384_scalar_mulx_u32(x1, 0xd40d4917);
+ let mut x143: u32 = 0;
+ let mut x144: u32 = 0;
+ let (x143, x144) = fiat_p384_scalar_mulx_u32(x1, 0x4aab1cc5);
+ let mut x145: u32 = 0;
+ let mut x146: u32 = 0;
+ let (x145, x146) = fiat_p384_scalar_mulx_u32(x1, 0xbc3e483a);
+ let mut x147: u32 = 0;
+ let mut x148: u32 = 0;
+ let (x147, x148) = fiat_p384_scalar_mulx_u32(x1, 0xfcb82947);
+ let mut x149: u32 = 0;
+ let mut x150: u32 = 0;
+ let (x149, x150) = fiat_p384_scalar_mulx_u32(x1, 0xff3d81e5);
+ let mut x151: u32 = 0;
+ let mut x152: u32 = 0;
+ let (x151, x152) = fiat_p384_scalar_mulx_u32(x1, 0xdf1aa419);
+ let mut x153: u32 = 0;
+ let mut x154: u32 = 0;
+ let (x153, x154) = fiat_p384_scalar_mulx_u32(x1, 0x2d319b24);
+ let mut x155: u32 = 0;
+ let mut x156: u32 = 0;
+ let (x155, x156) = fiat_p384_scalar_mulx_u32(x1, 0x19b409a9);
+ let mut x157: u32 = 0;
+ let mut x158: fiat_p384_scalar_u1 = 0;
+ let (x157, x158) = fiat_p384_scalar_addcarryx_u32(0x0, x156, x153);
+ let mut x159: u32 = 0;
+ let mut x160: fiat_p384_scalar_u1 = 0;
+ let (x159, x160) = fiat_p384_scalar_addcarryx_u32(x158, x154, x151);
+ let mut x161: u32 = 0;
+ let mut x162: fiat_p384_scalar_u1 = 0;
+ let (x161, x162) = fiat_p384_scalar_addcarryx_u32(x160, x152, x149);
+ let mut x163: u32 = 0;
+ let mut x164: fiat_p384_scalar_u1 = 0;
+ let (x163, x164) = fiat_p384_scalar_addcarryx_u32(x162, x150, x147);
+ let mut x165: u32 = 0;
+ let mut x166: fiat_p384_scalar_u1 = 0;
+ let (x165, x166) = fiat_p384_scalar_addcarryx_u32(x164, x148, x145);
+ let mut x167: u32 = 0;
+ let mut x168: fiat_p384_scalar_u1 = 0;
+ let (x167, x168) = fiat_p384_scalar_addcarryx_u32(x166, x146, x143);
+ let mut x169: u32 = 0;
+ let mut x170: fiat_p384_scalar_u1 = 0;
+ let (x169, x170) = fiat_p384_scalar_addcarryx_u32(x168, x144, x141);
+ let mut x171: u32 = 0;
+ let mut x172: fiat_p384_scalar_u1 = 0;
+ let (x171, x172) = fiat_p384_scalar_addcarryx_u32(x170, x142, x139);
+ let mut x173: u32 = 0;
+ let mut x174: fiat_p384_scalar_u1 = 0;
+ let (x173, x174) = fiat_p384_scalar_addcarryx_u32(x172, x140, x137);
+ let mut x175: u32 = 0;
+ let mut x176: fiat_p384_scalar_u1 = 0;
+ let (x175, x176) = fiat_p384_scalar_addcarryx_u32(x174, x138, x135);
+ let mut x177: u32 = 0;
+ let mut x178: fiat_p384_scalar_u1 = 0;
+ let (x177, x178) = fiat_p384_scalar_addcarryx_u32(x176, x136, x133);
+ let mut x179: u32 = 0;
+ let mut x180: fiat_p384_scalar_u1 = 0;
+ let (x179, x180) = fiat_p384_scalar_addcarryx_u32(0x0, x109, x155);
+ let mut x181: u32 = 0;
+ let mut x182: fiat_p384_scalar_u1 = 0;
+ let (x181, x182) = fiat_p384_scalar_addcarryx_u32(x180, x111, x157);
+ let mut x183: u32 = 0;
+ let mut x184: fiat_p384_scalar_u1 = 0;
+ let (x183, x184) = fiat_p384_scalar_addcarryx_u32(x182, x113, x159);
+ let mut x185: u32 = 0;
+ let mut x186: fiat_p384_scalar_u1 = 0;
+ let (x185, x186) = fiat_p384_scalar_addcarryx_u32(x184, x115, x161);
+ let mut x187: u32 = 0;
+ let mut x188: fiat_p384_scalar_u1 = 0;
+ let (x187, x188) = fiat_p384_scalar_addcarryx_u32(x186, x117, x163);
+ let mut x189: u32 = 0;
+ let mut x190: fiat_p384_scalar_u1 = 0;
+ let (x189, x190) = fiat_p384_scalar_addcarryx_u32(x188, x119, x165);
+ let mut x191: u32 = 0;
+ let mut x192: fiat_p384_scalar_u1 = 0;
+ let (x191, x192) = fiat_p384_scalar_addcarryx_u32(x190, x121, x167);
+ let mut x193: u32 = 0;
+ let mut x194: fiat_p384_scalar_u1 = 0;
+ let (x193, x194) = fiat_p384_scalar_addcarryx_u32(x192, x123, x169);
+ let mut x195: u32 = 0;
+ let mut x196: fiat_p384_scalar_u1 = 0;
+ let (x195, x196) = fiat_p384_scalar_addcarryx_u32(x194, x125, x171);
+ let mut x197: u32 = 0;
+ let mut x198: fiat_p384_scalar_u1 = 0;
+ let (x197, x198) = fiat_p384_scalar_addcarryx_u32(x196, x127, x173);
+ let mut x199: u32 = 0;
+ let mut x200: fiat_p384_scalar_u1 = 0;
+ let (x199, x200) = fiat_p384_scalar_addcarryx_u32(x198, x129, x175);
+ let mut x201: u32 = 0;
+ let mut x202: fiat_p384_scalar_u1 = 0;
+ let (x201, x202) = fiat_p384_scalar_addcarryx_u32(x200, x131, x177);
+ let mut x203: u32 = 0;
+ let mut x204: u32 = 0;
+ let (x203, x204) = fiat_p384_scalar_mulx_u32(x179, 0xe88fdc45);
+ let mut x205: u32 = 0;
+ let mut x206: u32 = 0;
+ let (x205, x206) = fiat_p384_scalar_mulx_u32(x203, 0xffffffff);
+ let mut x207: u32 = 0;
+ let mut x208: u32 = 0;
+ let (x207, x208) = fiat_p384_scalar_mulx_u32(x203, 0xffffffff);
+ let mut x209: u32 = 0;
+ let mut x210: u32 = 0;
+ let (x209, x210) = fiat_p384_scalar_mulx_u32(x203, 0xffffffff);
+ let mut x211: u32 = 0;
+ let mut x212: u32 = 0;
+ let (x211, x212) = fiat_p384_scalar_mulx_u32(x203, 0xffffffff);
+ let mut x213: u32 = 0;
+ let mut x214: u32 = 0;
+ let (x213, x214) = fiat_p384_scalar_mulx_u32(x203, 0xffffffff);
+ let mut x215: u32 = 0;
+ let mut x216: u32 = 0;
+ let (x215, x216) = fiat_p384_scalar_mulx_u32(x203, 0xffffffff);
+ let mut x217: u32 = 0;
+ let mut x218: u32 = 0;
+ let (x217, x218) = fiat_p384_scalar_mulx_u32(x203, 0xc7634d81);
+ let mut x219: u32 = 0;
+ let mut x220: u32 = 0;
+ let (x219, x220) = fiat_p384_scalar_mulx_u32(x203, 0xf4372ddf);
+ let mut x221: u32 = 0;
+ let mut x222: u32 = 0;
+ let (x221, x222) = fiat_p384_scalar_mulx_u32(x203, 0x581a0db2);
+ let mut x223: u32 = 0;
+ let mut x224: u32 = 0;
+ let (x223, x224) = fiat_p384_scalar_mulx_u32(x203, 0x48b0a77a);
+ let mut x225: u32 = 0;
+ let mut x226: u32 = 0;
+ let (x225, x226) = fiat_p384_scalar_mulx_u32(x203, 0xecec196a);
+ let mut x227: u32 = 0;
+ let mut x228: u32 = 0;
+ let (x227, x228) = fiat_p384_scalar_mulx_u32(x203, 0xccc52973);
+ let mut x229: u32 = 0;
+ let mut x230: fiat_p384_scalar_u1 = 0;
+ let (x229, x230) = fiat_p384_scalar_addcarryx_u32(0x0, x228, x225);
+ let mut x231: u32 = 0;
+ let mut x232: fiat_p384_scalar_u1 = 0;
+ let (x231, x232) = fiat_p384_scalar_addcarryx_u32(x230, x226, x223);
+ let mut x233: u32 = 0;
+ let mut x234: fiat_p384_scalar_u1 = 0;
+ let (x233, x234) = fiat_p384_scalar_addcarryx_u32(x232, x224, x221);
+ let mut x235: u32 = 0;
+ let mut x236: fiat_p384_scalar_u1 = 0;
+ let (x235, x236) = fiat_p384_scalar_addcarryx_u32(x234, x222, x219);
+ let mut x237: u32 = 0;
+ let mut x238: fiat_p384_scalar_u1 = 0;
+ let (x237, x238) = fiat_p384_scalar_addcarryx_u32(x236, x220, x217);
+ let mut x239: u32 = 0;
+ let mut x240: fiat_p384_scalar_u1 = 0;
+ let (x239, x240) = fiat_p384_scalar_addcarryx_u32(x238, x218, x215);
+ let mut x241: u32 = 0;
+ let mut x242: fiat_p384_scalar_u1 = 0;
+ let (x241, x242) = fiat_p384_scalar_addcarryx_u32(x240, x216, x213);
+ let mut x243: u32 = 0;
+ let mut x244: fiat_p384_scalar_u1 = 0;
+ let (x243, x244) = fiat_p384_scalar_addcarryx_u32(x242, x214, x211);
+ let mut x245: u32 = 0;
+ let mut x246: fiat_p384_scalar_u1 = 0;
+ let (x245, x246) = fiat_p384_scalar_addcarryx_u32(x244, x212, x209);
+ let mut x247: u32 = 0;
+ let mut x248: fiat_p384_scalar_u1 = 0;
+ let (x247, x248) = fiat_p384_scalar_addcarryx_u32(x246, x210, x207);
+ let mut x249: u32 = 0;
+ let mut x250: fiat_p384_scalar_u1 = 0;
+ let (x249, x250) = fiat_p384_scalar_addcarryx_u32(x248, x208, x205);
+ let mut x251: u32 = 0;
+ let mut x252: fiat_p384_scalar_u1 = 0;
+ let (x251, x252) = fiat_p384_scalar_addcarryx_u32(0x0, x179, x227);
+ let mut x253: u32 = 0;
+ let mut x254: fiat_p384_scalar_u1 = 0;
+ let (x253, x254) = fiat_p384_scalar_addcarryx_u32(x252, x181, x229);
+ let mut x255: u32 = 0;
+ let mut x256: fiat_p384_scalar_u1 = 0;
+ let (x255, x256) = fiat_p384_scalar_addcarryx_u32(x254, x183, x231);
+ let mut x257: u32 = 0;
+ let mut x258: fiat_p384_scalar_u1 = 0;
+ let (x257, x258) = fiat_p384_scalar_addcarryx_u32(x256, x185, x233);
+ let mut x259: u32 = 0;
+ let mut x260: fiat_p384_scalar_u1 = 0;
+ let (x259, x260) = fiat_p384_scalar_addcarryx_u32(x258, x187, x235);
+ let mut x261: u32 = 0;
+ let mut x262: fiat_p384_scalar_u1 = 0;
+ let (x261, x262) = fiat_p384_scalar_addcarryx_u32(x260, x189, x237);
+ let mut x263: u32 = 0;
+ let mut x264: fiat_p384_scalar_u1 = 0;
+ let (x263, x264) = fiat_p384_scalar_addcarryx_u32(x262, x191, x239);
+ let mut x265: u32 = 0;
+ let mut x266: fiat_p384_scalar_u1 = 0;
+ let (x265, x266) = fiat_p384_scalar_addcarryx_u32(x264, x193, x241);
+ let mut x267: u32 = 0;
+ let mut x268: fiat_p384_scalar_u1 = 0;
+ let (x267, x268) = fiat_p384_scalar_addcarryx_u32(x266, x195, x243);
+ let mut x269: u32 = 0;
+ let mut x270: fiat_p384_scalar_u1 = 0;
+ let (x269, x270) = fiat_p384_scalar_addcarryx_u32(x268, x197, x245);
+ let mut x271: u32 = 0;
+ let mut x272: fiat_p384_scalar_u1 = 0;
+ let (x271, x272) = fiat_p384_scalar_addcarryx_u32(x270, x199, x247);
+ let mut x273: u32 = 0;
+ let mut x274: fiat_p384_scalar_u1 = 0;
+ let (x273, x274) = fiat_p384_scalar_addcarryx_u32(x272, x201, x249);
+ let mut x275: u32 = 0;
+ let mut x276: fiat_p384_scalar_u1 = 0;
+ let (x275, x276) = fiat_p384_scalar_addcarryx_u32(
+ x274,
+ (((x202 as u32) + (x132 as u32)) + ((x178 as u32) + x134)),
+ ((x250 as u32) + x206),
+ );
+ let mut x277: u32 = 0;
+ let mut x278: u32 = 0;
+ let (x277, x278) = fiat_p384_scalar_mulx_u32(x2, 0xc84ee01);
+ let mut x279: u32 = 0;
+ let mut x280: u32 = 0;
+ let (x279, x280) = fiat_p384_scalar_mulx_u32(x2, 0x2b39bf21);
+ let mut x281: u32 = 0;
+ let mut x282: u32 = 0;
+ let (x281, x282) = fiat_p384_scalar_mulx_u32(x2, 0x3fb05b7a);
+ let mut x283: u32 = 0;
+ let mut x284: u32 = 0;
+ let (x283, x284) = fiat_p384_scalar_mulx_u32(x2, 0x28266895);
+ let mut x285: u32 = 0;
+ let mut x286: u32 = 0;
+ let (x285, x286) = fiat_p384_scalar_mulx_u32(x2, 0xd40d4917);
+ let mut x287: u32 = 0;
+ let mut x288: u32 = 0;
+ let (x287, x288) = fiat_p384_scalar_mulx_u32(x2, 0x4aab1cc5);
+ let mut x289: u32 = 0;
+ let mut x290: u32 = 0;
+ let (x289, x290) = fiat_p384_scalar_mulx_u32(x2, 0xbc3e483a);
+ let mut x291: u32 = 0;
+ let mut x292: u32 = 0;
+ let (x291, x292) = fiat_p384_scalar_mulx_u32(x2, 0xfcb82947);
+ let mut x293: u32 = 0;
+ let mut x294: u32 = 0;
+ let (x293, x294) = fiat_p384_scalar_mulx_u32(x2, 0xff3d81e5);
+ let mut x295: u32 = 0;
+ let mut x296: u32 = 0;
+ let (x295, x296) = fiat_p384_scalar_mulx_u32(x2, 0xdf1aa419);
+ let mut x297: u32 = 0;
+ let mut x298: u32 = 0;
+ let (x297, x298) = fiat_p384_scalar_mulx_u32(x2, 0x2d319b24);
+ let mut x299: u32 = 0;
+ let mut x300: u32 = 0;
+ let (x299, x300) = fiat_p384_scalar_mulx_u32(x2, 0x19b409a9);
+ let mut x301: u32 = 0;
+ let mut x302: fiat_p384_scalar_u1 = 0;
+ let (x301, x302) = fiat_p384_scalar_addcarryx_u32(0x0, x300, x297);
+ let mut x303: u32 = 0;
+ let mut x304: fiat_p384_scalar_u1 = 0;
+ let (x303, x304) = fiat_p384_scalar_addcarryx_u32(x302, x298, x295);
+ let mut x305: u32 = 0;
+ let mut x306: fiat_p384_scalar_u1 = 0;
+ let (x305, x306) = fiat_p384_scalar_addcarryx_u32(x304, x296, x293);
+ let mut x307: u32 = 0;
+ let mut x308: fiat_p384_scalar_u1 = 0;
+ let (x307, x308) = fiat_p384_scalar_addcarryx_u32(x306, x294, x291);
+ let mut x309: u32 = 0;
+ let mut x310: fiat_p384_scalar_u1 = 0;
+ let (x309, x310) = fiat_p384_scalar_addcarryx_u32(x308, x292, x289);
+ let mut x311: u32 = 0;
+ let mut x312: fiat_p384_scalar_u1 = 0;
+ let (x311, x312) = fiat_p384_scalar_addcarryx_u32(x310, x290, x287);
+ let mut x313: u32 = 0;
+ let mut x314: fiat_p384_scalar_u1 = 0;
+ let (x313, x314) = fiat_p384_scalar_addcarryx_u32(x312, x288, x285);
+ let mut x315: u32 = 0;
+ let mut x316: fiat_p384_scalar_u1 = 0;
+ let (x315, x316) = fiat_p384_scalar_addcarryx_u32(x314, x286, x283);
+ let mut x317: u32 = 0;
+ let mut x318: fiat_p384_scalar_u1 = 0;
+ let (x317, x318) = fiat_p384_scalar_addcarryx_u32(x316, x284, x281);
+ let mut x319: u32 = 0;
+ let mut x320: fiat_p384_scalar_u1 = 0;
+ let (x319, x320) = fiat_p384_scalar_addcarryx_u32(x318, x282, x279);
+ let mut x321: u32 = 0;
+ let mut x322: fiat_p384_scalar_u1 = 0;
+ let (x321, x322) = fiat_p384_scalar_addcarryx_u32(x320, x280, x277);
+ let mut x323: u32 = 0;
+ let mut x324: fiat_p384_scalar_u1 = 0;
+ let (x323, x324) = fiat_p384_scalar_addcarryx_u32(0x0, x253, x299);
+ let mut x325: u32 = 0;
+ let mut x326: fiat_p384_scalar_u1 = 0;
+ let (x325, x326) = fiat_p384_scalar_addcarryx_u32(x324, x255, x301);
+ let mut x327: u32 = 0;
+ let mut x328: fiat_p384_scalar_u1 = 0;
+ let (x327, x328) = fiat_p384_scalar_addcarryx_u32(x326, x257, x303);
+ let mut x329: u32 = 0;
+ let mut x330: fiat_p384_scalar_u1 = 0;
+ let (x329, x330) = fiat_p384_scalar_addcarryx_u32(x328, x259, x305);
+ let mut x331: u32 = 0;
+ let mut x332: fiat_p384_scalar_u1 = 0;
+ let (x331, x332) = fiat_p384_scalar_addcarryx_u32(x330, x261, x307);
+ let mut x333: u32 = 0;
+ let mut x334: fiat_p384_scalar_u1 = 0;
+ let (x333, x334) = fiat_p384_scalar_addcarryx_u32(x332, x263, x309);
+ let mut x335: u32 = 0;
+ let mut x336: fiat_p384_scalar_u1 = 0;
+ let (x335, x336) = fiat_p384_scalar_addcarryx_u32(x334, x265, x311);
+ let mut x337: u32 = 0;
+ let mut x338: fiat_p384_scalar_u1 = 0;
+ let (x337, x338) = fiat_p384_scalar_addcarryx_u32(x336, x267, x313);
+ let mut x339: u32 = 0;
+ let mut x340: fiat_p384_scalar_u1 = 0;
+ let (x339, x340) = fiat_p384_scalar_addcarryx_u32(x338, x269, x315);
+ let mut x341: u32 = 0;
+ let mut x342: fiat_p384_scalar_u1 = 0;
+ let (x341, x342) = fiat_p384_scalar_addcarryx_u32(x340, x271, x317);
+ let mut x343: u32 = 0;
+ let mut x344: fiat_p384_scalar_u1 = 0;
+ let (x343, x344) = fiat_p384_scalar_addcarryx_u32(x342, x273, x319);
+ let mut x345: u32 = 0;
+ let mut x346: fiat_p384_scalar_u1 = 0;
+ let (x345, x346) = fiat_p384_scalar_addcarryx_u32(x344, x275, x321);
+ let mut x347: u32 = 0;
+ let mut x348: u32 = 0;
+ let (x347, x348) = fiat_p384_scalar_mulx_u32(x323, 0xe88fdc45);
+ let mut x349: u32 = 0;
+ let mut x350: u32 = 0;
+ let (x349, x350) = fiat_p384_scalar_mulx_u32(x347, 0xffffffff);
+ let mut x351: u32 = 0;
+ let mut x352: u32 = 0;
+ let (x351, x352) = fiat_p384_scalar_mulx_u32(x347, 0xffffffff);
+ let mut x353: u32 = 0;
+ let mut x354: u32 = 0;
+ let (x353, x354) = fiat_p384_scalar_mulx_u32(x347, 0xffffffff);
+ let mut x355: u32 = 0;
+ let mut x356: u32 = 0;
+ let (x355, x356) = fiat_p384_scalar_mulx_u32(x347, 0xffffffff);
+ let mut x357: u32 = 0;
+ let mut x358: u32 = 0;
+ let (x357, x358) = fiat_p384_scalar_mulx_u32(x347, 0xffffffff);
+ let mut x359: u32 = 0;
+ let mut x360: u32 = 0;
+ let (x359, x360) = fiat_p384_scalar_mulx_u32(x347, 0xffffffff);
+ let mut x361: u32 = 0;
+ let mut x362: u32 = 0;
+ let (x361, x362) = fiat_p384_scalar_mulx_u32(x347, 0xc7634d81);
+ let mut x363: u32 = 0;
+ let mut x364: u32 = 0;
+ let (x363, x364) = fiat_p384_scalar_mulx_u32(x347, 0xf4372ddf);
+ let mut x365: u32 = 0;
+ let mut x366: u32 = 0;
+ let (x365, x366) = fiat_p384_scalar_mulx_u32(x347, 0x581a0db2);
+ let mut x367: u32 = 0;
+ let mut x368: u32 = 0;
+ let (x367, x368) = fiat_p384_scalar_mulx_u32(x347, 0x48b0a77a);
+ let mut x369: u32 = 0;
+ let mut x370: u32 = 0;
+ let (x369, x370) = fiat_p384_scalar_mulx_u32(x347, 0xecec196a);
+ let mut x371: u32 = 0;
+ let mut x372: u32 = 0;
+ let (x371, x372) = fiat_p384_scalar_mulx_u32(x347, 0xccc52973);
+ let mut x373: u32 = 0;
+ let mut x374: fiat_p384_scalar_u1 = 0;
+ let (x373, x374) = fiat_p384_scalar_addcarryx_u32(0x0, x372, x369);
+ let mut x375: u32 = 0;
+ let mut x376: fiat_p384_scalar_u1 = 0;
+ let (x375, x376) = fiat_p384_scalar_addcarryx_u32(x374, x370, x367);
+ let mut x377: u32 = 0;
+ let mut x378: fiat_p384_scalar_u1 = 0;
+ let (x377, x378) = fiat_p384_scalar_addcarryx_u32(x376, x368, x365);
+ let mut x379: u32 = 0;
+ let mut x380: fiat_p384_scalar_u1 = 0;
+ let (x379, x380) = fiat_p384_scalar_addcarryx_u32(x378, x366, x363);
+ let mut x381: u32 = 0;
+ let mut x382: fiat_p384_scalar_u1 = 0;
+ let (x381, x382) = fiat_p384_scalar_addcarryx_u32(x380, x364, x361);
+ let mut x383: u32 = 0;
+ let mut x384: fiat_p384_scalar_u1 = 0;
+ let (x383, x384) = fiat_p384_scalar_addcarryx_u32(x382, x362, x359);
+ let mut x385: u32 = 0;
+ let mut x386: fiat_p384_scalar_u1 = 0;
+ let (x385, x386) = fiat_p384_scalar_addcarryx_u32(x384, x360, x357);
+ let mut x387: u32 = 0;
+ let mut x388: fiat_p384_scalar_u1 = 0;
+ let (x387, x388) = fiat_p384_scalar_addcarryx_u32(x386, x358, x355);
+ let mut x389: u32 = 0;
+ let mut x390: fiat_p384_scalar_u1 = 0;
+ let (x389, x390) = fiat_p384_scalar_addcarryx_u32(x388, x356, x353);
+ let mut x391: u32 = 0;
+ let mut x392: fiat_p384_scalar_u1 = 0;
+ let (x391, x392) = fiat_p384_scalar_addcarryx_u32(x390, x354, x351);
+ let mut x393: u32 = 0;
+ let mut x394: fiat_p384_scalar_u1 = 0;
+ let (x393, x394) = fiat_p384_scalar_addcarryx_u32(x392, x352, x349);
+ let mut x395: u32 = 0;
+ let mut x396: fiat_p384_scalar_u1 = 0;
+ let (x395, x396) = fiat_p384_scalar_addcarryx_u32(0x0, x323, x371);
+ let mut x397: u32 = 0;
+ let mut x398: fiat_p384_scalar_u1 = 0;
+ let (x397, x398) = fiat_p384_scalar_addcarryx_u32(x396, x325, x373);
+ let mut x399: u32 = 0;
+ let mut x400: fiat_p384_scalar_u1 = 0;
+ let (x399, x400) = fiat_p384_scalar_addcarryx_u32(x398, x327, x375);
+ let mut x401: u32 = 0;
+ let mut x402: fiat_p384_scalar_u1 = 0;
+ let (x401, x402) = fiat_p384_scalar_addcarryx_u32(x400, x329, x377);
+ let mut x403: u32 = 0;
+ let mut x404: fiat_p384_scalar_u1 = 0;
+ let (x403, x404) = fiat_p384_scalar_addcarryx_u32(x402, x331, x379);
+ let mut x405: u32 = 0;
+ let mut x406: fiat_p384_scalar_u1 = 0;
+ let (x405, x406) = fiat_p384_scalar_addcarryx_u32(x404, x333, x381);
+ let mut x407: u32 = 0;
+ let mut x408: fiat_p384_scalar_u1 = 0;
+ let (x407, x408) = fiat_p384_scalar_addcarryx_u32(x406, x335, x383);
+ let mut x409: u32 = 0;
+ let mut x410: fiat_p384_scalar_u1 = 0;
+ let (x409, x410) = fiat_p384_scalar_addcarryx_u32(x408, x337, x385);
+ let mut x411: u32 = 0;
+ let mut x412: fiat_p384_scalar_u1 = 0;
+ let (x411, x412) = fiat_p384_scalar_addcarryx_u32(x410, x339, x387);
+ let mut x413: u32 = 0;
+ let mut x414: fiat_p384_scalar_u1 = 0;
+ let (x413, x414) = fiat_p384_scalar_addcarryx_u32(x412, x341, x389);
+ let mut x415: u32 = 0;
+ let mut x416: fiat_p384_scalar_u1 = 0;
+ let (x415, x416) = fiat_p384_scalar_addcarryx_u32(x414, x343, x391);
+ let mut x417: u32 = 0;
+ let mut x418: fiat_p384_scalar_u1 = 0;
+ let (x417, x418) = fiat_p384_scalar_addcarryx_u32(x416, x345, x393);
+ let mut x419: u32 = 0;
+ let mut x420: fiat_p384_scalar_u1 = 0;
+ let (x419, x420) = fiat_p384_scalar_addcarryx_u32(
+ x418,
+ (((x346 as u32) + (x276 as u32)) + ((x322 as u32) + x278)),
+ ((x394 as u32) + x350),
+ );
+ let mut x421: u32 = 0;
+ let mut x422: u32 = 0;
+ let (x421, x422) = fiat_p384_scalar_mulx_u32(x3, 0xc84ee01);
+ let mut x423: u32 = 0;
+ let mut x424: u32 = 0;
+ let (x423, x424) = fiat_p384_scalar_mulx_u32(x3, 0x2b39bf21);
+ let mut x425: u32 = 0;
+ let mut x426: u32 = 0;
+ let (x425, x426) = fiat_p384_scalar_mulx_u32(x3, 0x3fb05b7a);
+ let mut x427: u32 = 0;
+ let mut x428: u32 = 0;
+ let (x427, x428) = fiat_p384_scalar_mulx_u32(x3, 0x28266895);
+ let mut x429: u32 = 0;
+ let mut x430: u32 = 0;
+ let (x429, x430) = fiat_p384_scalar_mulx_u32(x3, 0xd40d4917);
+ let mut x431: u32 = 0;
+ let mut x432: u32 = 0;
+ let (x431, x432) = fiat_p384_scalar_mulx_u32(x3, 0x4aab1cc5);
+ let mut x433: u32 = 0;
+ let mut x434: u32 = 0;
+ let (x433, x434) = fiat_p384_scalar_mulx_u32(x3, 0xbc3e483a);
+ let mut x435: u32 = 0;
+ let mut x436: u32 = 0;
+ let (x435, x436) = fiat_p384_scalar_mulx_u32(x3, 0xfcb82947);
+ let mut x437: u32 = 0;
+ let mut x438: u32 = 0;
+ let (x437, x438) = fiat_p384_scalar_mulx_u32(x3, 0xff3d81e5);
+ let mut x439: u32 = 0;
+ let mut x440: u32 = 0;
+ let (x439, x440) = fiat_p384_scalar_mulx_u32(x3, 0xdf1aa419);
+ let mut x441: u32 = 0;
+ let mut x442: u32 = 0;
+ let (x441, x442) = fiat_p384_scalar_mulx_u32(x3, 0x2d319b24);
+ let mut x443: u32 = 0;
+ let mut x444: u32 = 0;
+ let (x443, x444) = fiat_p384_scalar_mulx_u32(x3, 0x19b409a9);
+ let mut x445: u32 = 0;
+ let mut x446: fiat_p384_scalar_u1 = 0;
+ let (x445, x446) = fiat_p384_scalar_addcarryx_u32(0x0, x444, x441);
+ let mut x447: u32 = 0;
+ let mut x448: fiat_p384_scalar_u1 = 0;
+ let (x447, x448) = fiat_p384_scalar_addcarryx_u32(x446, x442, x439);
+ let mut x449: u32 = 0;
+ let mut x450: fiat_p384_scalar_u1 = 0;
+ let (x449, x450) = fiat_p384_scalar_addcarryx_u32(x448, x440, x437);
+ let mut x451: u32 = 0;
+ let mut x452: fiat_p384_scalar_u1 = 0;
+ let (x451, x452) = fiat_p384_scalar_addcarryx_u32(x450, x438, x435);
+ let mut x453: u32 = 0;
+ let mut x454: fiat_p384_scalar_u1 = 0;
+ let (x453, x454) = fiat_p384_scalar_addcarryx_u32(x452, x436, x433);
+ let mut x455: u32 = 0;
+ let mut x456: fiat_p384_scalar_u1 = 0;
+ let (x455, x456) = fiat_p384_scalar_addcarryx_u32(x454, x434, x431);
+ let mut x457: u32 = 0;
+ let mut x458: fiat_p384_scalar_u1 = 0;
+ let (x457, x458) = fiat_p384_scalar_addcarryx_u32(x456, x432, x429);
+ let mut x459: u32 = 0;
+ let mut x460: fiat_p384_scalar_u1 = 0;
+ let (x459, x460) = fiat_p384_scalar_addcarryx_u32(x458, x430, x427);
+ let mut x461: u32 = 0;
+ let mut x462: fiat_p384_scalar_u1 = 0;
+ let (x461, x462) = fiat_p384_scalar_addcarryx_u32(x460, x428, x425);
+ let mut x463: u32 = 0;
+ let mut x464: fiat_p384_scalar_u1 = 0;
+ let (x463, x464) = fiat_p384_scalar_addcarryx_u32(x462, x426, x423);
+ let mut x465: u32 = 0;
+ let mut x466: fiat_p384_scalar_u1 = 0;
+ let (x465, x466) = fiat_p384_scalar_addcarryx_u32(x464, x424, x421);
+ let mut x467: u32 = 0;
+ let mut x468: fiat_p384_scalar_u1 = 0;
+ let (x467, x468) = fiat_p384_scalar_addcarryx_u32(0x0, x397, x443);
+ let mut x469: u32 = 0;
+ let mut x470: fiat_p384_scalar_u1 = 0;
+ let (x469, x470) = fiat_p384_scalar_addcarryx_u32(x468, x399, x445);
+ let mut x471: u32 = 0;
+ let mut x472: fiat_p384_scalar_u1 = 0;
+ let (x471, x472) = fiat_p384_scalar_addcarryx_u32(x470, x401, x447);
+ let mut x473: u32 = 0;
+ let mut x474: fiat_p384_scalar_u1 = 0;
+ let (x473, x474) = fiat_p384_scalar_addcarryx_u32(x472, x403, x449);
+ let mut x475: u32 = 0;
+ let mut x476: fiat_p384_scalar_u1 = 0;
+ let (x475, x476) = fiat_p384_scalar_addcarryx_u32(x474, x405, x451);
+ let mut x477: u32 = 0;
+ let mut x478: fiat_p384_scalar_u1 = 0;
+ let (x477, x478) = fiat_p384_scalar_addcarryx_u32(x476, x407, x453);
+ let mut x479: u32 = 0;
+ let mut x480: fiat_p384_scalar_u1 = 0;
+ let (x479, x480) = fiat_p384_scalar_addcarryx_u32(x478, x409, x455);
+ let mut x481: u32 = 0;
+ let mut x482: fiat_p384_scalar_u1 = 0;
+ let (x481, x482) = fiat_p384_scalar_addcarryx_u32(x480, x411, x457);
+ let mut x483: u32 = 0;
+ let mut x484: fiat_p384_scalar_u1 = 0;
+ let (x483, x484) = fiat_p384_scalar_addcarryx_u32(x482, x413, x459);
+ let mut x485: u32 = 0;
+ let mut x486: fiat_p384_scalar_u1 = 0;
+ let (x485, x486) = fiat_p384_scalar_addcarryx_u32(x484, x415, x461);
+ let mut x487: u32 = 0;
+ let mut x488: fiat_p384_scalar_u1 = 0;
+ let (x487, x488) = fiat_p384_scalar_addcarryx_u32(x486, x417, x463);
+ let mut x489: u32 = 0;
+ let mut x490: fiat_p384_scalar_u1 = 0;
+ let (x489, x490) = fiat_p384_scalar_addcarryx_u32(x488, x419, x465);
+ let mut x491: u32 = 0;
+ let mut x492: u32 = 0;
+ let (x491, x492) = fiat_p384_scalar_mulx_u32(x467, 0xe88fdc45);
+ let mut x493: u32 = 0;
+ let mut x494: u32 = 0;
+ let (x493, x494) = fiat_p384_scalar_mulx_u32(x491, 0xffffffff);
+ let mut x495: u32 = 0;
+ let mut x496: u32 = 0;
+ let (x495, x496) = fiat_p384_scalar_mulx_u32(x491, 0xffffffff);
+ let mut x497: u32 = 0;
+ let mut x498: u32 = 0;
+ let (x497, x498) = fiat_p384_scalar_mulx_u32(x491, 0xffffffff);
+ let mut x499: u32 = 0;
+ let mut x500: u32 = 0;
+ let (x499, x500) = fiat_p384_scalar_mulx_u32(x491, 0xffffffff);
+ let mut x501: u32 = 0;
+ let mut x502: u32 = 0;
+ let (x501, x502) = fiat_p384_scalar_mulx_u32(x491, 0xffffffff);
+ let mut x503: u32 = 0;
+ let mut x504: u32 = 0;
+ let (x503, x504) = fiat_p384_scalar_mulx_u32(x491, 0xffffffff);
+ let mut x505: u32 = 0;
+ let mut x506: u32 = 0;
+ let (x505, x506) = fiat_p384_scalar_mulx_u32(x491, 0xc7634d81);
+ let mut x507: u32 = 0;
+ let mut x508: u32 = 0;
+ let (x507, x508) = fiat_p384_scalar_mulx_u32(x491, 0xf4372ddf);
+ let mut x509: u32 = 0;
+ let mut x510: u32 = 0;
+ let (x509, x510) = fiat_p384_scalar_mulx_u32(x491, 0x581a0db2);
+ let mut x511: u32 = 0;
+ let mut x512: u32 = 0;
+ let (x511, x512) = fiat_p384_scalar_mulx_u32(x491, 0x48b0a77a);
+ let mut x513: u32 = 0;
+ let mut x514: u32 = 0;
+ let (x513, x514) = fiat_p384_scalar_mulx_u32(x491, 0xecec196a);
+ let mut x515: u32 = 0;
+ let mut x516: u32 = 0;
+ let (x515, x516) = fiat_p384_scalar_mulx_u32(x491, 0xccc52973);
+ let mut x517: u32 = 0;
+ let mut x518: fiat_p384_scalar_u1 = 0;
+ let (x517, x518) = fiat_p384_scalar_addcarryx_u32(0x0, x516, x513);
+ let mut x519: u32 = 0;
+ let mut x520: fiat_p384_scalar_u1 = 0;
+ let (x519, x520) = fiat_p384_scalar_addcarryx_u32(x518, x514, x511);
+ let mut x521: u32 = 0;
+ let mut x522: fiat_p384_scalar_u1 = 0;
+ let (x521, x522) = fiat_p384_scalar_addcarryx_u32(x520, x512, x509);
+ let mut x523: u32 = 0;
+ let mut x524: fiat_p384_scalar_u1 = 0;
+ let (x523, x524) = fiat_p384_scalar_addcarryx_u32(x522, x510, x507);
+ let mut x525: u32 = 0;
+ let mut x526: fiat_p384_scalar_u1 = 0;
+ let (x525, x526) = fiat_p384_scalar_addcarryx_u32(x524, x508, x505);
+ let mut x527: u32 = 0;
+ let mut x528: fiat_p384_scalar_u1 = 0;
+ let (x527, x528) = fiat_p384_scalar_addcarryx_u32(x526, x506, x503);
+ let mut x529: u32 = 0;
+ let mut x530: fiat_p384_scalar_u1 = 0;
+ let (x529, x530) = fiat_p384_scalar_addcarryx_u32(x528, x504, x501);
+ let mut x531: u32 = 0;
+ let mut x532: fiat_p384_scalar_u1 = 0;
+ let (x531, x532) = fiat_p384_scalar_addcarryx_u32(x530, x502, x499);
+ let mut x533: u32 = 0;
+ let mut x534: fiat_p384_scalar_u1 = 0;
+ let (x533, x534) = fiat_p384_scalar_addcarryx_u32(x532, x500, x497);
+ let mut x535: u32 = 0;
+ let mut x536: fiat_p384_scalar_u1 = 0;
+ let (x535, x536) = fiat_p384_scalar_addcarryx_u32(x534, x498, x495);
+ let mut x537: u32 = 0;
+ let mut x538: fiat_p384_scalar_u1 = 0;
+ let (x537, x538) = fiat_p384_scalar_addcarryx_u32(x536, x496, x493);
+ let mut x539: u32 = 0;
+ let mut x540: fiat_p384_scalar_u1 = 0;
+ let (x539, x540) = fiat_p384_scalar_addcarryx_u32(0x0, x467, x515);
+ let mut x541: u32 = 0;
+ let mut x542: fiat_p384_scalar_u1 = 0;
+ let (x541, x542) = fiat_p384_scalar_addcarryx_u32(x540, x469, x517);
+ let mut x543: u32 = 0;
+ let mut x544: fiat_p384_scalar_u1 = 0;
+ let (x543, x544) = fiat_p384_scalar_addcarryx_u32(x542, x471, x519);
+ let mut x545: u32 = 0;
+ let mut x546: fiat_p384_scalar_u1 = 0;
+ let (x545, x546) = fiat_p384_scalar_addcarryx_u32(x544, x473, x521);
+ let mut x547: u32 = 0;
+ let mut x548: fiat_p384_scalar_u1 = 0;
+ let (x547, x548) = fiat_p384_scalar_addcarryx_u32(x546, x475, x523);
+ let mut x549: u32 = 0;
+ let mut x550: fiat_p384_scalar_u1 = 0;
+ let (x549, x550) = fiat_p384_scalar_addcarryx_u32(x548, x477, x525);
+ let mut x551: u32 = 0;
+ let mut x552: fiat_p384_scalar_u1 = 0;
+ let (x551, x552) = fiat_p384_scalar_addcarryx_u32(x550, x479, x527);
+ let mut x553: u32 = 0;
+ let mut x554: fiat_p384_scalar_u1 = 0;
+ let (x553, x554) = fiat_p384_scalar_addcarryx_u32(x552, x481, x529);
+ let mut x555: u32 = 0;
+ let mut x556: fiat_p384_scalar_u1 = 0;
+ let (x555, x556) = fiat_p384_scalar_addcarryx_u32(x554, x483, x531);
+ let mut x557: u32 = 0;
+ let mut x558: fiat_p384_scalar_u1 = 0;
+ let (x557, x558) = fiat_p384_scalar_addcarryx_u32(x556, x485, x533);
+ let mut x559: u32 = 0;
+ let mut x560: fiat_p384_scalar_u1 = 0;
+ let (x559, x560) = fiat_p384_scalar_addcarryx_u32(x558, x487, x535);
+ let mut x561: u32 = 0;
+ let mut x562: fiat_p384_scalar_u1 = 0;
+ let (x561, x562) = fiat_p384_scalar_addcarryx_u32(x560, x489, x537);
+ let mut x563: u32 = 0;
+ let mut x564: fiat_p384_scalar_u1 = 0;
+ let (x563, x564) = fiat_p384_scalar_addcarryx_u32(
+ x562,
+ (((x490 as u32) + (x420 as u32)) + ((x466 as u32) + x422)),
+ ((x538 as u32) + x494),
+ );
+ let mut x565: u32 = 0;
+ let mut x566: u32 = 0;
+ let (x565, x566) = fiat_p384_scalar_mulx_u32(x4, 0xc84ee01);
+ let mut x567: u32 = 0;
+ let mut x568: u32 = 0;
+ let (x567, x568) = fiat_p384_scalar_mulx_u32(x4, 0x2b39bf21);
+ let mut x569: u32 = 0;
+ let mut x570: u32 = 0;
+ let (x569, x570) = fiat_p384_scalar_mulx_u32(x4, 0x3fb05b7a);
+ let mut x571: u32 = 0;
+ let mut x572: u32 = 0;
+ let (x571, x572) = fiat_p384_scalar_mulx_u32(x4, 0x28266895);
+ let mut x573: u32 = 0;
+ let mut x574: u32 = 0;
+ let (x573, x574) = fiat_p384_scalar_mulx_u32(x4, 0xd40d4917);
+ let mut x575: u32 = 0;
+ let mut x576: u32 = 0;
+ let (x575, x576) = fiat_p384_scalar_mulx_u32(x4, 0x4aab1cc5);
+ let mut x577: u32 = 0;
+ let mut x578: u32 = 0;
+ let (x577, x578) = fiat_p384_scalar_mulx_u32(x4, 0xbc3e483a);
+ let mut x579: u32 = 0;
+ let mut x580: u32 = 0;
+ let (x579, x580) = fiat_p384_scalar_mulx_u32(x4, 0xfcb82947);
+ let mut x581: u32 = 0;
+ let mut x582: u32 = 0;
+ let (x581, x582) = fiat_p384_scalar_mulx_u32(x4, 0xff3d81e5);
+ let mut x583: u32 = 0;
+ let mut x584: u32 = 0;
+ let (x583, x584) = fiat_p384_scalar_mulx_u32(x4, 0xdf1aa419);
+ let mut x585: u32 = 0;
+ let mut x586: u32 = 0;
+ let (x585, x586) = fiat_p384_scalar_mulx_u32(x4, 0x2d319b24);
+ let mut x587: u32 = 0;
+ let mut x588: u32 = 0;
+ let (x587, x588) = fiat_p384_scalar_mulx_u32(x4, 0x19b409a9);
+ let mut x589: u32 = 0;
+ let mut x590: fiat_p384_scalar_u1 = 0;
+ let (x589, x590) = fiat_p384_scalar_addcarryx_u32(0x0, x588, x585);
+ let mut x591: u32 = 0;
+ let mut x592: fiat_p384_scalar_u1 = 0;
+ let (x591, x592) = fiat_p384_scalar_addcarryx_u32(x590, x586, x583);
+ let mut x593: u32 = 0;
+ let mut x594: fiat_p384_scalar_u1 = 0;
+ let (x593, x594) = fiat_p384_scalar_addcarryx_u32(x592, x584, x581);
+ let mut x595: u32 = 0;
+ let mut x596: fiat_p384_scalar_u1 = 0;
+ let (x595, x596) = fiat_p384_scalar_addcarryx_u32(x594, x582, x579);
+ let mut x597: u32 = 0;
+ let mut x598: fiat_p384_scalar_u1 = 0;
+ let (x597, x598) = fiat_p384_scalar_addcarryx_u32(x596, x580, x577);
+ let mut x599: u32 = 0;
+ let mut x600: fiat_p384_scalar_u1 = 0;
+ let (x599, x600) = fiat_p384_scalar_addcarryx_u32(x598, x578, x575);
+ let mut x601: u32 = 0;
+ let mut x602: fiat_p384_scalar_u1 = 0;
+ let (x601, x602) = fiat_p384_scalar_addcarryx_u32(x600, x576, x573);
+ let mut x603: u32 = 0;
+ let mut x604: fiat_p384_scalar_u1 = 0;
+ let (x603, x604) = fiat_p384_scalar_addcarryx_u32(x602, x574, x571);
+ let mut x605: u32 = 0;
+ let mut x606: fiat_p384_scalar_u1 = 0;
+ let (x605, x606) = fiat_p384_scalar_addcarryx_u32(x604, x572, x569);
+ let mut x607: u32 = 0;
+ let mut x608: fiat_p384_scalar_u1 = 0;
+ let (x607, x608) = fiat_p384_scalar_addcarryx_u32(x606, x570, x567);
+ let mut x609: u32 = 0;
+ let mut x610: fiat_p384_scalar_u1 = 0;
+ let (x609, x610) = fiat_p384_scalar_addcarryx_u32(x608, x568, x565);
+ let mut x611: u32 = 0;
+ let mut x612: fiat_p384_scalar_u1 = 0;
+ let (x611, x612) = fiat_p384_scalar_addcarryx_u32(0x0, x541, x587);
+ let mut x613: u32 = 0;
+ let mut x614: fiat_p384_scalar_u1 = 0;
+ let (x613, x614) = fiat_p384_scalar_addcarryx_u32(x612, x543, x589);
+ let mut x615: u32 = 0;
+ let mut x616: fiat_p384_scalar_u1 = 0;
+ let (x615, x616) = fiat_p384_scalar_addcarryx_u32(x614, x545, x591);
+ let mut x617: u32 = 0;
+ let mut x618: fiat_p384_scalar_u1 = 0;
+ let (x617, x618) = fiat_p384_scalar_addcarryx_u32(x616, x547, x593);
+ let mut x619: u32 = 0;
+ let mut x620: fiat_p384_scalar_u1 = 0;
+ let (x619, x620) = fiat_p384_scalar_addcarryx_u32(x618, x549, x595);
+ let mut x621: u32 = 0;
+ let mut x622: fiat_p384_scalar_u1 = 0;
+ let (x621, x622) = fiat_p384_scalar_addcarryx_u32(x620, x551, x597);
+ let mut x623: u32 = 0;
+ let mut x624: fiat_p384_scalar_u1 = 0;
+ let (x623, x624) = fiat_p384_scalar_addcarryx_u32(x622, x553, x599);
+ let mut x625: u32 = 0;
+ let mut x626: fiat_p384_scalar_u1 = 0;
+ let (x625, x626) = fiat_p384_scalar_addcarryx_u32(x624, x555, x601);
+ let mut x627: u32 = 0;
+ let mut x628: fiat_p384_scalar_u1 = 0;
+ let (x627, x628) = fiat_p384_scalar_addcarryx_u32(x626, x557, x603);
+ let mut x629: u32 = 0;
+ let mut x630: fiat_p384_scalar_u1 = 0;
+ let (x629, x630) = fiat_p384_scalar_addcarryx_u32(x628, x559, x605);
+ let mut x631: u32 = 0;
+ let mut x632: fiat_p384_scalar_u1 = 0;
+ let (x631, x632) = fiat_p384_scalar_addcarryx_u32(x630, x561, x607);
+ let mut x633: u32 = 0;
+ let mut x634: fiat_p384_scalar_u1 = 0;
+ let (x633, x634) = fiat_p384_scalar_addcarryx_u32(x632, x563, x609);
+ let mut x635: u32 = 0;
+ let mut x636: u32 = 0;
+ let (x635, x636) = fiat_p384_scalar_mulx_u32(x611, 0xe88fdc45);
+ let mut x637: u32 = 0;
+ let mut x638: u32 = 0;
+ let (x637, x638) = fiat_p384_scalar_mulx_u32(x635, 0xffffffff);
+ let mut x639: u32 = 0;
+ let mut x640: u32 = 0;
+ let (x639, x640) = fiat_p384_scalar_mulx_u32(x635, 0xffffffff);
+ let mut x641: u32 = 0;
+ let mut x642: u32 = 0;
+ let (x641, x642) = fiat_p384_scalar_mulx_u32(x635, 0xffffffff);
+ let mut x643: u32 = 0;
+ let mut x644: u32 = 0;
+ let (x643, x644) = fiat_p384_scalar_mulx_u32(x635, 0xffffffff);
+ let mut x645: u32 = 0;
+ let mut x646: u32 = 0;
+ let (x645, x646) = fiat_p384_scalar_mulx_u32(x635, 0xffffffff);
+ let mut x647: u32 = 0;
+ let mut x648: u32 = 0;
+ let (x647, x648) = fiat_p384_scalar_mulx_u32(x635, 0xffffffff);
+ let mut x649: u32 = 0;
+ let mut x650: u32 = 0;
+ let (x649, x650) = fiat_p384_scalar_mulx_u32(x635, 0xc7634d81);
+ let mut x651: u32 = 0;
+ let mut x652: u32 = 0;
+ let (x651, x652) = fiat_p384_scalar_mulx_u32(x635, 0xf4372ddf);
+ let mut x653: u32 = 0;
+ let mut x654: u32 = 0;
+ let (x653, x654) = fiat_p384_scalar_mulx_u32(x635, 0x581a0db2);
+ let mut x655: u32 = 0;
+ let mut x656: u32 = 0;
+ let (x655, x656) = fiat_p384_scalar_mulx_u32(x635, 0x48b0a77a);
+ let mut x657: u32 = 0;
+ let mut x658: u32 = 0;
+ let (x657, x658) = fiat_p384_scalar_mulx_u32(x635, 0xecec196a);
+ let mut x659: u32 = 0;
+ let mut x660: u32 = 0;
+ let (x659, x660) = fiat_p384_scalar_mulx_u32(x635, 0xccc52973);
+ let mut x661: u32 = 0;
+ let mut x662: fiat_p384_scalar_u1 = 0;
+ let (x661, x662) = fiat_p384_scalar_addcarryx_u32(0x0, x660, x657);
+ let mut x663: u32 = 0;
+ let mut x664: fiat_p384_scalar_u1 = 0;
+ let (x663, x664) = fiat_p384_scalar_addcarryx_u32(x662, x658, x655);
+ let mut x665: u32 = 0;
+ let mut x666: fiat_p384_scalar_u1 = 0;
+ let (x665, x666) = fiat_p384_scalar_addcarryx_u32(x664, x656, x653);
+ let mut x667: u32 = 0;
+ let mut x668: fiat_p384_scalar_u1 = 0;
+ let (x667, x668) = fiat_p384_scalar_addcarryx_u32(x666, x654, x651);
+ let mut x669: u32 = 0;
+ let mut x670: fiat_p384_scalar_u1 = 0;
+ let (x669, x670) = fiat_p384_scalar_addcarryx_u32(x668, x652, x649);
+ let mut x671: u32 = 0;
+ let mut x672: fiat_p384_scalar_u1 = 0;
+ let (x671, x672) = fiat_p384_scalar_addcarryx_u32(x670, x650, x647);
+ let mut x673: u32 = 0;
+ let mut x674: fiat_p384_scalar_u1 = 0;
+ let (x673, x674) = fiat_p384_scalar_addcarryx_u32(x672, x648, x645);
+ let mut x675: u32 = 0;
+ let mut x676: fiat_p384_scalar_u1 = 0;
+ let (x675, x676) = fiat_p384_scalar_addcarryx_u32(x674, x646, x643);
+ let mut x677: u32 = 0;
+ let mut x678: fiat_p384_scalar_u1 = 0;
+ let (x677, x678) = fiat_p384_scalar_addcarryx_u32(x676, x644, x641);
+ let mut x679: u32 = 0;
+ let mut x680: fiat_p384_scalar_u1 = 0;
+ let (x679, x680) = fiat_p384_scalar_addcarryx_u32(x678, x642, x639);
+ let mut x681: u32 = 0;
+ let mut x682: fiat_p384_scalar_u1 = 0;
+ let (x681, x682) = fiat_p384_scalar_addcarryx_u32(x680, x640, x637);
+ let mut x683: u32 = 0;
+ let mut x684: fiat_p384_scalar_u1 = 0;
+ let (x683, x684) = fiat_p384_scalar_addcarryx_u32(0x0, x611, x659);
+ let mut x685: u32 = 0;
+ let mut x686: fiat_p384_scalar_u1 = 0;
+ let (x685, x686) = fiat_p384_scalar_addcarryx_u32(x684, x613, x661);
+ let mut x687: u32 = 0;
+ let mut x688: fiat_p384_scalar_u1 = 0;
+ let (x687, x688) = fiat_p384_scalar_addcarryx_u32(x686, x615, x663);
+ let mut x689: u32 = 0;
+ let mut x690: fiat_p384_scalar_u1 = 0;
+ let (x689, x690) = fiat_p384_scalar_addcarryx_u32(x688, x617, x665);
+ let mut x691: u32 = 0;
+ let mut x692: fiat_p384_scalar_u1 = 0;
+ let (x691, x692) = fiat_p384_scalar_addcarryx_u32(x690, x619, x667);
+ let mut x693: u32 = 0;
+ let mut x694: fiat_p384_scalar_u1 = 0;
+ let (x693, x694) = fiat_p384_scalar_addcarryx_u32(x692, x621, x669);
+ let mut x695: u32 = 0;
+ let mut x696: fiat_p384_scalar_u1 = 0;
+ let (x695, x696) = fiat_p384_scalar_addcarryx_u32(x694, x623, x671);
+ let mut x697: u32 = 0;
+ let mut x698: fiat_p384_scalar_u1 = 0;
+ let (x697, x698) = fiat_p384_scalar_addcarryx_u32(x696, x625, x673);
+ let mut x699: u32 = 0;
+ let mut x700: fiat_p384_scalar_u1 = 0;
+ let (x699, x700) = fiat_p384_scalar_addcarryx_u32(x698, x627, x675);
+ let mut x701: u32 = 0;
+ let mut x702: fiat_p384_scalar_u1 = 0;
+ let (x701, x702) = fiat_p384_scalar_addcarryx_u32(x700, x629, x677);
+ let mut x703: u32 = 0;
+ let mut x704: fiat_p384_scalar_u1 = 0;
+ let (x703, x704) = fiat_p384_scalar_addcarryx_u32(x702, x631, x679);
+ let mut x705: u32 = 0;
+ let mut x706: fiat_p384_scalar_u1 = 0;
+ let (x705, x706) = fiat_p384_scalar_addcarryx_u32(x704, x633, x681);
+ let mut x707: u32 = 0;
+ let mut x708: fiat_p384_scalar_u1 = 0;
+ let (x707, x708) = fiat_p384_scalar_addcarryx_u32(
+ x706,
+ (((x634 as u32) + (x564 as u32)) + ((x610 as u32) + x566)),
+ ((x682 as u32) + x638),
+ );
+ let mut x709: u32 = 0;
+ let mut x710: u32 = 0;
+ let (x709, x710) = fiat_p384_scalar_mulx_u32(x5, 0xc84ee01);
+ let mut x711: u32 = 0;
+ let mut x712: u32 = 0;
+ let (x711, x712) = fiat_p384_scalar_mulx_u32(x5, 0x2b39bf21);
+ let mut x713: u32 = 0;
+ let mut x714: u32 = 0;
+ let (x713, x714) = fiat_p384_scalar_mulx_u32(x5, 0x3fb05b7a);
+ let mut x715: u32 = 0;
+ let mut x716: u32 = 0;
+ let (x715, x716) = fiat_p384_scalar_mulx_u32(x5, 0x28266895);
+ let mut x717: u32 = 0;
+ let mut x718: u32 = 0;
+ let (x717, x718) = fiat_p384_scalar_mulx_u32(x5, 0xd40d4917);
+ let mut x719: u32 = 0;
+ let mut x720: u32 = 0;
+ let (x719, x720) = fiat_p384_scalar_mulx_u32(x5, 0x4aab1cc5);
+ let mut x721: u32 = 0;
+ let mut x722: u32 = 0;
+ let (x721, x722) = fiat_p384_scalar_mulx_u32(x5, 0xbc3e483a);
+ let mut x723: u32 = 0;
+ let mut x724: u32 = 0;
+ let (x723, x724) = fiat_p384_scalar_mulx_u32(x5, 0xfcb82947);
+ let mut x725: u32 = 0;
+ let mut x726: u32 = 0;
+ let (x725, x726) = fiat_p384_scalar_mulx_u32(x5, 0xff3d81e5);
+ let mut x727: u32 = 0;
+ let mut x728: u32 = 0;
+ let (x727, x728) = fiat_p384_scalar_mulx_u32(x5, 0xdf1aa419);
+ let mut x729: u32 = 0;
+ let mut x730: u32 = 0;
+ let (x729, x730) = fiat_p384_scalar_mulx_u32(x5, 0x2d319b24);
+ let mut x731: u32 = 0;
+ let mut x732: u32 = 0;
+ let (x731, x732) = fiat_p384_scalar_mulx_u32(x5, 0x19b409a9);
+ let mut x733: u32 = 0;
+ let mut x734: fiat_p384_scalar_u1 = 0;
+ let (x733, x734) = fiat_p384_scalar_addcarryx_u32(0x0, x732, x729);
+ let mut x735: u32 = 0;
+ let mut x736: fiat_p384_scalar_u1 = 0;
+ let (x735, x736) = fiat_p384_scalar_addcarryx_u32(x734, x730, x727);
+ let mut x737: u32 = 0;
+ let mut x738: fiat_p384_scalar_u1 = 0;
+ let (x737, x738) = fiat_p384_scalar_addcarryx_u32(x736, x728, x725);
+ let mut x739: u32 = 0;
+ let mut x740: fiat_p384_scalar_u1 = 0;
+ let (x739, x740) = fiat_p384_scalar_addcarryx_u32(x738, x726, x723);
+ let mut x741: u32 = 0;
+ let mut x742: fiat_p384_scalar_u1 = 0;
+ let (x741, x742) = fiat_p384_scalar_addcarryx_u32(x740, x724, x721);
+ let mut x743: u32 = 0;
+ let mut x744: fiat_p384_scalar_u1 = 0;
+ let (x743, x744) = fiat_p384_scalar_addcarryx_u32(x742, x722, x719);
+ let mut x745: u32 = 0;
+ let mut x746: fiat_p384_scalar_u1 = 0;
+ let (x745, x746) = fiat_p384_scalar_addcarryx_u32(x744, x720, x717);
+ let mut x747: u32 = 0;
+ let mut x748: fiat_p384_scalar_u1 = 0;
+ let (x747, x748) = fiat_p384_scalar_addcarryx_u32(x746, x718, x715);
+ let mut x749: u32 = 0;
+ let mut x750: fiat_p384_scalar_u1 = 0;
+ let (x749, x750) = fiat_p384_scalar_addcarryx_u32(x748, x716, x713);
+ let mut x751: u32 = 0;
+ let mut x752: fiat_p384_scalar_u1 = 0;
+ let (x751, x752) = fiat_p384_scalar_addcarryx_u32(x750, x714, x711);
+ let mut x753: u32 = 0;
+ let mut x754: fiat_p384_scalar_u1 = 0;
+ let (x753, x754) = fiat_p384_scalar_addcarryx_u32(x752, x712, x709);
+ let mut x755: u32 = 0;
+ let mut x756: fiat_p384_scalar_u1 = 0;
+ let (x755, x756) = fiat_p384_scalar_addcarryx_u32(0x0, x685, x731);
+ let mut x757: u32 = 0;
+ let mut x758: fiat_p384_scalar_u1 = 0;
+ let (x757, x758) = fiat_p384_scalar_addcarryx_u32(x756, x687, x733);
+ let mut x759: u32 = 0;
+ let mut x760: fiat_p384_scalar_u1 = 0;
+ let (x759, x760) = fiat_p384_scalar_addcarryx_u32(x758, x689, x735);
+ let mut x761: u32 = 0;
+ let mut x762: fiat_p384_scalar_u1 = 0;
+ let (x761, x762) = fiat_p384_scalar_addcarryx_u32(x760, x691, x737);
+ let mut x763: u32 = 0;
+ let mut x764: fiat_p384_scalar_u1 = 0;
+ let (x763, x764) = fiat_p384_scalar_addcarryx_u32(x762, x693, x739);
+ let mut x765: u32 = 0;
+ let mut x766: fiat_p384_scalar_u1 = 0;
+ let (x765, x766) = fiat_p384_scalar_addcarryx_u32(x764, x695, x741);
+ let mut x767: u32 = 0;
+ let mut x768: fiat_p384_scalar_u1 = 0;
+ let (x767, x768) = fiat_p384_scalar_addcarryx_u32(x766, x697, x743);
+ let mut x769: u32 = 0;
+ let mut x770: fiat_p384_scalar_u1 = 0;
+ let (x769, x770) = fiat_p384_scalar_addcarryx_u32(x768, x699, x745);
+ let mut x771: u32 = 0;
+ let mut x772: fiat_p384_scalar_u1 = 0;
+ let (x771, x772) = fiat_p384_scalar_addcarryx_u32(x770, x701, x747);
+ let mut x773: u32 = 0;
+ let mut x774: fiat_p384_scalar_u1 = 0;
+ let (x773, x774) = fiat_p384_scalar_addcarryx_u32(x772, x703, x749);
+ let mut x775: u32 = 0;
+ let mut x776: fiat_p384_scalar_u1 = 0;
+ let (x775, x776) = fiat_p384_scalar_addcarryx_u32(x774, x705, x751);
+ let mut x777: u32 = 0;
+ let mut x778: fiat_p384_scalar_u1 = 0;
+ let (x777, x778) = fiat_p384_scalar_addcarryx_u32(x776, x707, x753);
+ let mut x779: u32 = 0;
+ let mut x780: u32 = 0;
+ let (x779, x780) = fiat_p384_scalar_mulx_u32(x755, 0xe88fdc45);
+ let mut x781: u32 = 0;
+ let mut x782: u32 = 0;
+ let (x781, x782) = fiat_p384_scalar_mulx_u32(x779, 0xffffffff);
+ let mut x783: u32 = 0;
+ let mut x784: u32 = 0;
+ let (x783, x784) = fiat_p384_scalar_mulx_u32(x779, 0xffffffff);
+ let mut x785: u32 = 0;
+ let mut x786: u32 = 0;
+ let (x785, x786) = fiat_p384_scalar_mulx_u32(x779, 0xffffffff);
+ let mut x787: u32 = 0;
+ let mut x788: u32 = 0;
+ let (x787, x788) = fiat_p384_scalar_mulx_u32(x779, 0xffffffff);
+ let mut x789: u32 = 0;
+ let mut x790: u32 = 0;
+ let (x789, x790) = fiat_p384_scalar_mulx_u32(x779, 0xffffffff);
+ let mut x791: u32 = 0;
+ let mut x792: u32 = 0;
+ let (x791, x792) = fiat_p384_scalar_mulx_u32(x779, 0xffffffff);
+ let mut x793: u32 = 0;
+ let mut x794: u32 = 0;
+ let (x793, x794) = fiat_p384_scalar_mulx_u32(x779, 0xc7634d81);
+ let mut x795: u32 = 0;
+ let mut x796: u32 = 0;
+ let (x795, x796) = fiat_p384_scalar_mulx_u32(x779, 0xf4372ddf);
+ let mut x797: u32 = 0;
+ let mut x798: u32 = 0;
+ let (x797, x798) = fiat_p384_scalar_mulx_u32(x779, 0x581a0db2);
+ let mut x799: u32 = 0;
+ let mut x800: u32 = 0;
+ let (x799, x800) = fiat_p384_scalar_mulx_u32(x779, 0x48b0a77a);
+ let mut x801: u32 = 0;
+ let mut x802: u32 = 0;
+ let (x801, x802) = fiat_p384_scalar_mulx_u32(x779, 0xecec196a);
+ let mut x803: u32 = 0;
+ let mut x804: u32 = 0;
+ let (x803, x804) = fiat_p384_scalar_mulx_u32(x779, 0xccc52973);
+ let mut x805: u32 = 0;
+ let mut x806: fiat_p384_scalar_u1 = 0;
+ let (x805, x806) = fiat_p384_scalar_addcarryx_u32(0x0, x804, x801);
+ let mut x807: u32 = 0;
+ let mut x808: fiat_p384_scalar_u1 = 0;
+ let (x807, x808) = fiat_p384_scalar_addcarryx_u32(x806, x802, x799);
+ let mut x809: u32 = 0;
+ let mut x810: fiat_p384_scalar_u1 = 0;
+ let (x809, x810) = fiat_p384_scalar_addcarryx_u32(x808, x800, x797);
+ let mut x811: u32 = 0;
+ let mut x812: fiat_p384_scalar_u1 = 0;
+ let (x811, x812) = fiat_p384_scalar_addcarryx_u32(x810, x798, x795);
+ let mut x813: u32 = 0;
+ let mut x814: fiat_p384_scalar_u1 = 0;
+ let (x813, x814) = fiat_p384_scalar_addcarryx_u32(x812, x796, x793);
+ let mut x815: u32 = 0;
+ let mut x816: fiat_p384_scalar_u1 = 0;
+ let (x815, x816) = fiat_p384_scalar_addcarryx_u32(x814, x794, x791);
+ let mut x817: u32 = 0;
+ let mut x818: fiat_p384_scalar_u1 = 0;
+ let (x817, x818) = fiat_p384_scalar_addcarryx_u32(x816, x792, x789);
+ let mut x819: u32 = 0;
+ let mut x820: fiat_p384_scalar_u1 = 0;
+ let (x819, x820) = fiat_p384_scalar_addcarryx_u32(x818, x790, x787);
+ let mut x821: u32 = 0;
+ let mut x822: fiat_p384_scalar_u1 = 0;
+ let (x821, x822) = fiat_p384_scalar_addcarryx_u32(x820, x788, x785);
+ let mut x823: u32 = 0;
+ let mut x824: fiat_p384_scalar_u1 = 0;
+ let (x823, x824) = fiat_p384_scalar_addcarryx_u32(x822, x786, x783);
+ let mut x825: u32 = 0;
+ let mut x826: fiat_p384_scalar_u1 = 0;
+ let (x825, x826) = fiat_p384_scalar_addcarryx_u32(x824, x784, x781);
+ let mut x827: u32 = 0;
+ let mut x828: fiat_p384_scalar_u1 = 0;
+ let (x827, x828) = fiat_p384_scalar_addcarryx_u32(0x0, x755, x803);
+ let mut x829: u32 = 0;
+ let mut x830: fiat_p384_scalar_u1 = 0;
+ let (x829, x830) = fiat_p384_scalar_addcarryx_u32(x828, x757, x805);
+ let mut x831: u32 = 0;
+ let mut x832: fiat_p384_scalar_u1 = 0;
+ let (x831, x832) = fiat_p384_scalar_addcarryx_u32(x830, x759, x807);
+ let mut x833: u32 = 0;
+ let mut x834: fiat_p384_scalar_u1 = 0;
+ let (x833, x834) = fiat_p384_scalar_addcarryx_u32(x832, x761, x809);
+ let mut x835: u32 = 0;
+ let mut x836: fiat_p384_scalar_u1 = 0;
+ let (x835, x836) = fiat_p384_scalar_addcarryx_u32(x834, x763, x811);
+ let mut x837: u32 = 0;
+ let mut x838: fiat_p384_scalar_u1 = 0;
+ let (x837, x838) = fiat_p384_scalar_addcarryx_u32(x836, x765, x813);
+ let mut x839: u32 = 0;
+ let mut x840: fiat_p384_scalar_u1 = 0;
+ let (x839, x840) = fiat_p384_scalar_addcarryx_u32(x838, x767, x815);
+ let mut x841: u32 = 0;
+ let mut x842: fiat_p384_scalar_u1 = 0;
+ let (x841, x842) = fiat_p384_scalar_addcarryx_u32(x840, x769, x817);
+ let mut x843: u32 = 0;
+ let mut x844: fiat_p384_scalar_u1 = 0;
+ let (x843, x844) = fiat_p384_scalar_addcarryx_u32(x842, x771, x819);
+ let mut x845: u32 = 0;
+ let mut x846: fiat_p384_scalar_u1 = 0;
+ let (x845, x846) = fiat_p384_scalar_addcarryx_u32(x844, x773, x821);
+ let mut x847: u32 = 0;
+ let mut x848: fiat_p384_scalar_u1 = 0;
+ let (x847, x848) = fiat_p384_scalar_addcarryx_u32(x846, x775, x823);
+ let mut x849: u32 = 0;
+ let mut x850: fiat_p384_scalar_u1 = 0;
+ let (x849, x850) = fiat_p384_scalar_addcarryx_u32(x848, x777, x825);
+ let mut x851: u32 = 0;
+ let mut x852: fiat_p384_scalar_u1 = 0;
+ let (x851, x852) = fiat_p384_scalar_addcarryx_u32(
+ x850,
+ (((x778 as u32) + (x708 as u32)) + ((x754 as u32) + x710)),
+ ((x826 as u32) + x782),
+ );
+ let mut x853: u32 = 0;
+ let mut x854: u32 = 0;
+ let (x853, x854) = fiat_p384_scalar_mulx_u32(x6, 0xc84ee01);
+ let mut x855: u32 = 0;
+ let mut x856: u32 = 0;
+ let (x855, x856) = fiat_p384_scalar_mulx_u32(x6, 0x2b39bf21);
+ let mut x857: u32 = 0;
+ let mut x858: u32 = 0;
+ let (x857, x858) = fiat_p384_scalar_mulx_u32(x6, 0x3fb05b7a);
+ let mut x859: u32 = 0;
+ let mut x860: u32 = 0;
+ let (x859, x860) = fiat_p384_scalar_mulx_u32(x6, 0x28266895);
+ let mut x861: u32 = 0;
+ let mut x862: u32 = 0;
+ let (x861, x862) = fiat_p384_scalar_mulx_u32(x6, 0xd40d4917);
+ let mut x863: u32 = 0;
+ let mut x864: u32 = 0;
+ let (x863, x864) = fiat_p384_scalar_mulx_u32(x6, 0x4aab1cc5);
+ let mut x865: u32 = 0;
+ let mut x866: u32 = 0;
+ let (x865, x866) = fiat_p384_scalar_mulx_u32(x6, 0xbc3e483a);
+ let mut x867: u32 = 0;
+ let mut x868: u32 = 0;
+ let (x867, x868) = fiat_p384_scalar_mulx_u32(x6, 0xfcb82947);
+ let mut x869: u32 = 0;
+ let mut x870: u32 = 0;
+ let (x869, x870) = fiat_p384_scalar_mulx_u32(x6, 0xff3d81e5);
+ let mut x871: u32 = 0;
+ let mut x872: u32 = 0;
+ let (x871, x872) = fiat_p384_scalar_mulx_u32(x6, 0xdf1aa419);
+ let mut x873: u32 = 0;
+ let mut x874: u32 = 0;
+ let (x873, x874) = fiat_p384_scalar_mulx_u32(x6, 0x2d319b24);
+ let mut x875: u32 = 0;
+ let mut x876: u32 = 0;
+ let (x875, x876) = fiat_p384_scalar_mulx_u32(x6, 0x19b409a9);
+ let mut x877: u32 = 0;
+ let mut x878: fiat_p384_scalar_u1 = 0;
+ let (x877, x878) = fiat_p384_scalar_addcarryx_u32(0x0, x876, x873);
+ let mut x879: u32 = 0;
+ let mut x880: fiat_p384_scalar_u1 = 0;
+ let (x879, x880) = fiat_p384_scalar_addcarryx_u32(x878, x874, x871);
+ let mut x881: u32 = 0;
+ let mut x882: fiat_p384_scalar_u1 = 0;
+ let (x881, x882) = fiat_p384_scalar_addcarryx_u32(x880, x872, x869);
+ let mut x883: u32 = 0;
+ let mut x884: fiat_p384_scalar_u1 = 0;
+ let (x883, x884) = fiat_p384_scalar_addcarryx_u32(x882, x870, x867);
+ let mut x885: u32 = 0;
+ let mut x886: fiat_p384_scalar_u1 = 0;
+ let (x885, x886) = fiat_p384_scalar_addcarryx_u32(x884, x868, x865);
+ let mut x887: u32 = 0;
+ let mut x888: fiat_p384_scalar_u1 = 0;
+ let (x887, x888) = fiat_p384_scalar_addcarryx_u32(x886, x866, x863);
+ let mut x889: u32 = 0;
+ let mut x890: fiat_p384_scalar_u1 = 0;
+ let (x889, x890) = fiat_p384_scalar_addcarryx_u32(x888, x864, x861);
+ let mut x891: u32 = 0;
+ let mut x892: fiat_p384_scalar_u1 = 0;
+ let (x891, x892) = fiat_p384_scalar_addcarryx_u32(x890, x862, x859);
+ let mut x893: u32 = 0;
+ let mut x894: fiat_p384_scalar_u1 = 0;
+ let (x893, x894) = fiat_p384_scalar_addcarryx_u32(x892, x860, x857);
+ let mut x895: u32 = 0;
+ let mut x896: fiat_p384_scalar_u1 = 0;
+ let (x895, x896) = fiat_p384_scalar_addcarryx_u32(x894, x858, x855);
+ let mut x897: u32 = 0;
+ let mut x898: fiat_p384_scalar_u1 = 0;
+ let (x897, x898) = fiat_p384_scalar_addcarryx_u32(x896, x856, x853);
+ let mut x899: u32 = 0;
+ let mut x900: fiat_p384_scalar_u1 = 0;
+ let (x899, x900) = fiat_p384_scalar_addcarryx_u32(0x0, x829, x875);
+ let mut x901: u32 = 0;
+ let mut x902: fiat_p384_scalar_u1 = 0;
+ let (x901, x902) = fiat_p384_scalar_addcarryx_u32(x900, x831, x877);
+ let mut x903: u32 = 0;
+ let mut x904: fiat_p384_scalar_u1 = 0;
+ let (x903, x904) = fiat_p384_scalar_addcarryx_u32(x902, x833, x879);
+ let mut x905: u32 = 0;
+ let mut x906: fiat_p384_scalar_u1 = 0;
+ let (x905, x906) = fiat_p384_scalar_addcarryx_u32(x904, x835, x881);
+ let mut x907: u32 = 0;
+ let mut x908: fiat_p384_scalar_u1 = 0;
+ let (x907, x908) = fiat_p384_scalar_addcarryx_u32(x906, x837, x883);
+ let mut x909: u32 = 0;
+ let mut x910: fiat_p384_scalar_u1 = 0;
+ let (x909, x910) = fiat_p384_scalar_addcarryx_u32(x908, x839, x885);
+ let mut x911: u32 = 0;
+ let mut x912: fiat_p384_scalar_u1 = 0;
+ let (x911, x912) = fiat_p384_scalar_addcarryx_u32(x910, x841, x887);
+ let mut x913: u32 = 0;
+ let mut x914: fiat_p384_scalar_u1 = 0;
+ let (x913, x914) = fiat_p384_scalar_addcarryx_u32(x912, x843, x889);
+ let mut x915: u32 = 0;
+ let mut x916: fiat_p384_scalar_u1 = 0;
+ let (x915, x916) = fiat_p384_scalar_addcarryx_u32(x914, x845, x891);
+ let mut x917: u32 = 0;
+ let mut x918: fiat_p384_scalar_u1 = 0;
+ let (x917, x918) = fiat_p384_scalar_addcarryx_u32(x916, x847, x893);
+ let mut x919: u32 = 0;
+ let mut x920: fiat_p384_scalar_u1 = 0;
+ let (x919, x920) = fiat_p384_scalar_addcarryx_u32(x918, x849, x895);
+ let mut x921: u32 = 0;
+ let mut x922: fiat_p384_scalar_u1 = 0;
+ let (x921, x922) = fiat_p384_scalar_addcarryx_u32(x920, x851, x897);
+ let mut x923: u32 = 0;
+ let mut x924: u32 = 0;
+ let (x923, x924) = fiat_p384_scalar_mulx_u32(x899, 0xe88fdc45);
+ let mut x925: u32 = 0;
+ let mut x926: u32 = 0;
+ let (x925, x926) = fiat_p384_scalar_mulx_u32(x923, 0xffffffff);
+ let mut x927: u32 = 0;
+ let mut x928: u32 = 0;
+ let (x927, x928) = fiat_p384_scalar_mulx_u32(x923, 0xffffffff);
+ let mut x929: u32 = 0;
+ let mut x930: u32 = 0;
+ let (x929, x930) = fiat_p384_scalar_mulx_u32(x923, 0xffffffff);
+ let mut x931: u32 = 0;
+ let mut x932: u32 = 0;
+ let (x931, x932) = fiat_p384_scalar_mulx_u32(x923, 0xffffffff);
+ let mut x933: u32 = 0;
+ let mut x934: u32 = 0;
+ let (x933, x934) = fiat_p384_scalar_mulx_u32(x923, 0xffffffff);
+ let mut x935: u32 = 0;
+ let mut x936: u32 = 0;
+ let (x935, x936) = fiat_p384_scalar_mulx_u32(x923, 0xffffffff);
+ let mut x937: u32 = 0;
+ let mut x938: u32 = 0;
+ let (x937, x938) = fiat_p384_scalar_mulx_u32(x923, 0xc7634d81);
+ let mut x939: u32 = 0;
+ let mut x940: u32 = 0;
+ let (x939, x940) = fiat_p384_scalar_mulx_u32(x923, 0xf4372ddf);
+ let mut x941: u32 = 0;
+ let mut x942: u32 = 0;
+ let (x941, x942) = fiat_p384_scalar_mulx_u32(x923, 0x581a0db2);
+ let mut x943: u32 = 0;
+ let mut x944: u32 = 0;
+ let (x943, x944) = fiat_p384_scalar_mulx_u32(x923, 0x48b0a77a);
+ let mut x945: u32 = 0;
+ let mut x946: u32 = 0;
+ let (x945, x946) = fiat_p384_scalar_mulx_u32(x923, 0xecec196a);
+ let mut x947: u32 = 0;
+ let mut x948: u32 = 0;
+ let (x947, x948) = fiat_p384_scalar_mulx_u32(x923, 0xccc52973);
+ let mut x949: u32 = 0;
+ let mut x950: fiat_p384_scalar_u1 = 0;
+ let (x949, x950) = fiat_p384_scalar_addcarryx_u32(0x0, x948, x945);
+ let mut x951: u32 = 0;
+ let mut x952: fiat_p384_scalar_u1 = 0;
+ let (x951, x952) = fiat_p384_scalar_addcarryx_u32(x950, x946, x943);
+ let mut x953: u32 = 0;
+ let mut x954: fiat_p384_scalar_u1 = 0;
+ let (x953, x954) = fiat_p384_scalar_addcarryx_u32(x952, x944, x941);
+ let mut x955: u32 = 0;
+ let mut x956: fiat_p384_scalar_u1 = 0;
+ let (x955, x956) = fiat_p384_scalar_addcarryx_u32(x954, x942, x939);
+ let mut x957: u32 = 0;
+ let mut x958: fiat_p384_scalar_u1 = 0;
+ let (x957, x958) = fiat_p384_scalar_addcarryx_u32(x956, x940, x937);
+ let mut x959: u32 = 0;
+ let mut x960: fiat_p384_scalar_u1 = 0;
+ let (x959, x960) = fiat_p384_scalar_addcarryx_u32(x958, x938, x935);
+ let mut x961: u32 = 0;
+ let mut x962: fiat_p384_scalar_u1 = 0;
+ let (x961, x962) = fiat_p384_scalar_addcarryx_u32(x960, x936, x933);
+ let mut x963: u32 = 0;
+ let mut x964: fiat_p384_scalar_u1 = 0;
+ let (x963, x964) = fiat_p384_scalar_addcarryx_u32(x962, x934, x931);
+ let mut x965: u32 = 0;
+ let mut x966: fiat_p384_scalar_u1 = 0;
+ let (x965, x966) = fiat_p384_scalar_addcarryx_u32(x964, x932, x929);
+ let mut x967: u32 = 0;
+ let mut x968: fiat_p384_scalar_u1 = 0;
+ let (x967, x968) = fiat_p384_scalar_addcarryx_u32(x966, x930, x927);
+ let mut x969: u32 = 0;
+ let mut x970: fiat_p384_scalar_u1 = 0;
+ let (x969, x970) = fiat_p384_scalar_addcarryx_u32(x968, x928, x925);
+ let mut x971: u32 = 0;
+ let mut x972: fiat_p384_scalar_u1 = 0;
+ let (x971, x972) = fiat_p384_scalar_addcarryx_u32(0x0, x899, x947);
+ let mut x973: u32 = 0;
+ let mut x974: fiat_p384_scalar_u1 = 0;
+ let (x973, x974) = fiat_p384_scalar_addcarryx_u32(x972, x901, x949);
+ let mut x975: u32 = 0;
+ let mut x976: fiat_p384_scalar_u1 = 0;
+ let (x975, x976) = fiat_p384_scalar_addcarryx_u32(x974, x903, x951);
+ let mut x977: u32 = 0;
+ let mut x978: fiat_p384_scalar_u1 = 0;
+ let (x977, x978) = fiat_p384_scalar_addcarryx_u32(x976, x905, x953);
+ let mut x979: u32 = 0;
+ let mut x980: fiat_p384_scalar_u1 = 0;
+ let (x979, x980) = fiat_p384_scalar_addcarryx_u32(x978, x907, x955);
+ let mut x981: u32 = 0;
+ let mut x982: fiat_p384_scalar_u1 = 0;
+ let (x981, x982) = fiat_p384_scalar_addcarryx_u32(x980, x909, x957);
+ let mut x983: u32 = 0;
+ let mut x984: fiat_p384_scalar_u1 = 0;
+ let (x983, x984) = fiat_p384_scalar_addcarryx_u32(x982, x911, x959);
+ let mut x985: u32 = 0;
+ let mut x986: fiat_p384_scalar_u1 = 0;
+ let (x985, x986) = fiat_p384_scalar_addcarryx_u32(x984, x913, x961);
+ let mut x987: u32 = 0;
+ let mut x988: fiat_p384_scalar_u1 = 0;
+ let (x987, x988) = fiat_p384_scalar_addcarryx_u32(x986, x915, x963);
+ let mut x989: u32 = 0;
+ let mut x990: fiat_p384_scalar_u1 = 0;
+ let (x989, x990) = fiat_p384_scalar_addcarryx_u32(x988, x917, x965);
+ let mut x991: u32 = 0;
+ let mut x992: fiat_p384_scalar_u1 = 0;
+ let (x991, x992) = fiat_p384_scalar_addcarryx_u32(x990, x919, x967);
+ let mut x993: u32 = 0;
+ let mut x994: fiat_p384_scalar_u1 = 0;
+ let (x993, x994) = fiat_p384_scalar_addcarryx_u32(x992, x921, x969);
+ let mut x995: u32 = 0;
+ let mut x996: fiat_p384_scalar_u1 = 0;
+ let (x995, x996) = fiat_p384_scalar_addcarryx_u32(
+ x994,
+ (((x922 as u32) + (x852 as u32)) + ((x898 as u32) + x854)),
+ ((x970 as u32) + x926),
+ );
+ let mut x997: u32 = 0;
+ let mut x998: u32 = 0;
+ let (x997, x998) = fiat_p384_scalar_mulx_u32(x7, 0xc84ee01);
+ let mut x999: u32 = 0;
+ let mut x1000: u32 = 0;
+ let (x999, x1000) = fiat_p384_scalar_mulx_u32(x7, 0x2b39bf21);
+ let mut x1001: u32 = 0;
+ let mut x1002: u32 = 0;
+ let (x1001, x1002) = fiat_p384_scalar_mulx_u32(x7, 0x3fb05b7a);
+ let mut x1003: u32 = 0;
+ let mut x1004: u32 = 0;
+ let (x1003, x1004) = fiat_p384_scalar_mulx_u32(x7, 0x28266895);
+ let mut x1005: u32 = 0;
+ let mut x1006: u32 = 0;
+ let (x1005, x1006) = fiat_p384_scalar_mulx_u32(x7, 0xd40d4917);
+ let mut x1007: u32 = 0;
+ let mut x1008: u32 = 0;
+ let (x1007, x1008) = fiat_p384_scalar_mulx_u32(x7, 0x4aab1cc5);
+ let mut x1009: u32 = 0;
+ let mut x1010: u32 = 0;
+ let (x1009, x1010) = fiat_p384_scalar_mulx_u32(x7, 0xbc3e483a);
+ let mut x1011: u32 = 0;
+ let mut x1012: u32 = 0;
+ let (x1011, x1012) = fiat_p384_scalar_mulx_u32(x7, 0xfcb82947);
+ let mut x1013: u32 = 0;
+ let mut x1014: u32 = 0;
+ let (x1013, x1014) = fiat_p384_scalar_mulx_u32(x7, 0xff3d81e5);
+ let mut x1015: u32 = 0;
+ let mut x1016: u32 = 0;
+ let (x1015, x1016) = fiat_p384_scalar_mulx_u32(x7, 0xdf1aa419);
+ let mut x1017: u32 = 0;
+ let mut x1018: u32 = 0;
+ let (x1017, x1018) = fiat_p384_scalar_mulx_u32(x7, 0x2d319b24);
+ let mut x1019: u32 = 0;
+ let mut x1020: u32 = 0;
+ let (x1019, x1020) = fiat_p384_scalar_mulx_u32(x7, 0x19b409a9);
+ let mut x1021: u32 = 0;
+ let mut x1022: fiat_p384_scalar_u1 = 0;
+ let (x1021, x1022) = fiat_p384_scalar_addcarryx_u32(0x0, x1020, x1017);
+ let mut x1023: u32 = 0;
+ let mut x1024: fiat_p384_scalar_u1 = 0;
+ let (x1023, x1024) = fiat_p384_scalar_addcarryx_u32(x1022, x1018, x1015);
+ let mut x1025: u32 = 0;
+ let mut x1026: fiat_p384_scalar_u1 = 0;
+ let (x1025, x1026) = fiat_p384_scalar_addcarryx_u32(x1024, x1016, x1013);
+ let mut x1027: u32 = 0;
+ let mut x1028: fiat_p384_scalar_u1 = 0;
+ let (x1027, x1028) = fiat_p384_scalar_addcarryx_u32(x1026, x1014, x1011);
+ let mut x1029: u32 = 0;
+ let mut x1030: fiat_p384_scalar_u1 = 0;
+ let (x1029, x1030) = fiat_p384_scalar_addcarryx_u32(x1028, x1012, x1009);
+ let mut x1031: u32 = 0;
+ let mut x1032: fiat_p384_scalar_u1 = 0;
+ let (x1031, x1032) = fiat_p384_scalar_addcarryx_u32(x1030, x1010, x1007);
+ let mut x1033: u32 = 0;
+ let mut x1034: fiat_p384_scalar_u1 = 0;
+ let (x1033, x1034) = fiat_p384_scalar_addcarryx_u32(x1032, x1008, x1005);
+ let mut x1035: u32 = 0;
+ let mut x1036: fiat_p384_scalar_u1 = 0;
+ let (x1035, x1036) = fiat_p384_scalar_addcarryx_u32(x1034, x1006, x1003);
+ let mut x1037: u32 = 0;
+ let mut x1038: fiat_p384_scalar_u1 = 0;
+ let (x1037, x1038) = fiat_p384_scalar_addcarryx_u32(x1036, x1004, x1001);
+ let mut x1039: u32 = 0;
+ let mut x1040: fiat_p384_scalar_u1 = 0;
+ let (x1039, x1040) = fiat_p384_scalar_addcarryx_u32(x1038, x1002, x999);
+ let mut x1041: u32 = 0;
+ let mut x1042: fiat_p384_scalar_u1 = 0;
+ let (x1041, x1042) = fiat_p384_scalar_addcarryx_u32(x1040, x1000, x997);
+ let mut x1043: u32 = 0;
+ let mut x1044: fiat_p384_scalar_u1 = 0;
+ let (x1043, x1044) = fiat_p384_scalar_addcarryx_u32(0x0, x973, x1019);
+ let mut x1045: u32 = 0;
+ let mut x1046: fiat_p384_scalar_u1 = 0;
+ let (x1045, x1046) = fiat_p384_scalar_addcarryx_u32(x1044, x975, x1021);
+ let mut x1047: u32 = 0;
+ let mut x1048: fiat_p384_scalar_u1 = 0;
+ let (x1047, x1048) = fiat_p384_scalar_addcarryx_u32(x1046, x977, x1023);
+ let mut x1049: u32 = 0;
+ let mut x1050: fiat_p384_scalar_u1 = 0;
+ let (x1049, x1050) = fiat_p384_scalar_addcarryx_u32(x1048, x979, x1025);
+ let mut x1051: u32 = 0;
+ let mut x1052: fiat_p384_scalar_u1 = 0;
+ let (x1051, x1052) = fiat_p384_scalar_addcarryx_u32(x1050, x981, x1027);
+ let mut x1053: u32 = 0;
+ let mut x1054: fiat_p384_scalar_u1 = 0;
+ let (x1053, x1054) = fiat_p384_scalar_addcarryx_u32(x1052, x983, x1029);
+ let mut x1055: u32 = 0;
+ let mut x1056: fiat_p384_scalar_u1 = 0;
+ let (x1055, x1056) = fiat_p384_scalar_addcarryx_u32(x1054, x985, x1031);
+ let mut x1057: u32 = 0;
+ let mut x1058: fiat_p384_scalar_u1 = 0;
+ let (x1057, x1058) = fiat_p384_scalar_addcarryx_u32(x1056, x987, x1033);
+ let mut x1059: u32 = 0;
+ let mut x1060: fiat_p384_scalar_u1 = 0;
+ let (x1059, x1060) = fiat_p384_scalar_addcarryx_u32(x1058, x989, x1035);
+ let mut x1061: u32 = 0;
+ let mut x1062: fiat_p384_scalar_u1 = 0;
+ let (x1061, x1062) = fiat_p384_scalar_addcarryx_u32(x1060, x991, x1037);
+ let mut x1063: u32 = 0;
+ let mut x1064: fiat_p384_scalar_u1 = 0;
+ let (x1063, x1064) = fiat_p384_scalar_addcarryx_u32(x1062, x993, x1039);
+ let mut x1065: u32 = 0;
+ let mut x1066: fiat_p384_scalar_u1 = 0;
+ let (x1065, x1066) = fiat_p384_scalar_addcarryx_u32(x1064, x995, x1041);
+ let mut x1067: u32 = 0;
+ let mut x1068: u32 = 0;
+ let (x1067, x1068) = fiat_p384_scalar_mulx_u32(x1043, 0xe88fdc45);
+ let mut x1069: u32 = 0;
+ let mut x1070: u32 = 0;
+ let (x1069, x1070) = fiat_p384_scalar_mulx_u32(x1067, 0xffffffff);
+ let mut x1071: u32 = 0;
+ let mut x1072: u32 = 0;
+ let (x1071, x1072) = fiat_p384_scalar_mulx_u32(x1067, 0xffffffff);
+ let mut x1073: u32 = 0;
+ let mut x1074: u32 = 0;
+ let (x1073, x1074) = fiat_p384_scalar_mulx_u32(x1067, 0xffffffff);
+ let mut x1075: u32 = 0;
+ let mut x1076: u32 = 0;
+ let (x1075, x1076) = fiat_p384_scalar_mulx_u32(x1067, 0xffffffff);
+ let mut x1077: u32 = 0;
+ let mut x1078: u32 = 0;
+ let (x1077, x1078) = fiat_p384_scalar_mulx_u32(x1067, 0xffffffff);
+ let mut x1079: u32 = 0;
+ let mut x1080: u32 = 0;
+ let (x1079, x1080) = fiat_p384_scalar_mulx_u32(x1067, 0xffffffff);
+ let mut x1081: u32 = 0;
+ let mut x1082: u32 = 0;
+ let (x1081, x1082) = fiat_p384_scalar_mulx_u32(x1067, 0xc7634d81);
+ let mut x1083: u32 = 0;
+ let mut x1084: u32 = 0;
+ let (x1083, x1084) = fiat_p384_scalar_mulx_u32(x1067, 0xf4372ddf);
+ let mut x1085: u32 = 0;
+ let mut x1086: u32 = 0;
+ let (x1085, x1086) = fiat_p384_scalar_mulx_u32(x1067, 0x581a0db2);
+ let mut x1087: u32 = 0;
+ let mut x1088: u32 = 0;
+ let (x1087, x1088) = fiat_p384_scalar_mulx_u32(x1067, 0x48b0a77a);
+ let mut x1089: u32 = 0;
+ let mut x1090: u32 = 0;
+ let (x1089, x1090) = fiat_p384_scalar_mulx_u32(x1067, 0xecec196a);
+ let mut x1091: u32 = 0;
+ let mut x1092: u32 = 0;
+ let (x1091, x1092) = fiat_p384_scalar_mulx_u32(x1067, 0xccc52973);
+ let mut x1093: u32 = 0;
+ let mut x1094: fiat_p384_scalar_u1 = 0;
+ let (x1093, x1094) = fiat_p384_scalar_addcarryx_u32(0x0, x1092, x1089);
+ let mut x1095: u32 = 0;
+ let mut x1096: fiat_p384_scalar_u1 = 0;
+ let (x1095, x1096) = fiat_p384_scalar_addcarryx_u32(x1094, x1090, x1087);
+ let mut x1097: u32 = 0;
+ let mut x1098: fiat_p384_scalar_u1 = 0;
+ let (x1097, x1098) = fiat_p384_scalar_addcarryx_u32(x1096, x1088, x1085);
+ let mut x1099: u32 = 0;
+ let mut x1100: fiat_p384_scalar_u1 = 0;
+ let (x1099, x1100) = fiat_p384_scalar_addcarryx_u32(x1098, x1086, x1083);
+ let mut x1101: u32 = 0;
+ let mut x1102: fiat_p384_scalar_u1 = 0;
+ let (x1101, x1102) = fiat_p384_scalar_addcarryx_u32(x1100, x1084, x1081);
+ let mut x1103: u32 = 0;
+ let mut x1104: fiat_p384_scalar_u1 = 0;
+ let (x1103, x1104) = fiat_p384_scalar_addcarryx_u32(x1102, x1082, x1079);
+ let mut x1105: u32 = 0;
+ let mut x1106: fiat_p384_scalar_u1 = 0;
+ let (x1105, x1106) = fiat_p384_scalar_addcarryx_u32(x1104, x1080, x1077);
+ let mut x1107: u32 = 0;
+ let mut x1108: fiat_p384_scalar_u1 = 0;
+ let (x1107, x1108) = fiat_p384_scalar_addcarryx_u32(x1106, x1078, x1075);
+ let mut x1109: u32 = 0;
+ let mut x1110: fiat_p384_scalar_u1 = 0;
+ let (x1109, x1110) = fiat_p384_scalar_addcarryx_u32(x1108, x1076, x1073);
+ let mut x1111: u32 = 0;
+ let mut x1112: fiat_p384_scalar_u1 = 0;
+ let (x1111, x1112) = fiat_p384_scalar_addcarryx_u32(x1110, x1074, x1071);
+ let mut x1113: u32 = 0;
+ let mut x1114: fiat_p384_scalar_u1 = 0;
+ let (x1113, x1114) = fiat_p384_scalar_addcarryx_u32(x1112, x1072, x1069);
+ let mut x1115: u32 = 0;
+ let mut x1116: fiat_p384_scalar_u1 = 0;
+ let (x1115, x1116) = fiat_p384_scalar_addcarryx_u32(0x0, x1043, x1091);
+ let mut x1117: u32 = 0;
+ let mut x1118: fiat_p384_scalar_u1 = 0;
+ let (x1117, x1118) = fiat_p384_scalar_addcarryx_u32(x1116, x1045, x1093);
+ let mut x1119: u32 = 0;
+ let mut x1120: fiat_p384_scalar_u1 = 0;
+ let (x1119, x1120) = fiat_p384_scalar_addcarryx_u32(x1118, x1047, x1095);
+ let mut x1121: u32 = 0;
+ let mut x1122: fiat_p384_scalar_u1 = 0;
+ let (x1121, x1122) = fiat_p384_scalar_addcarryx_u32(x1120, x1049, x1097);
+ let mut x1123: u32 = 0;
+ let mut x1124: fiat_p384_scalar_u1 = 0;
+ let (x1123, x1124) = fiat_p384_scalar_addcarryx_u32(x1122, x1051, x1099);
+ let mut x1125: u32 = 0;
+ let mut x1126: fiat_p384_scalar_u1 = 0;
+ let (x1125, x1126) = fiat_p384_scalar_addcarryx_u32(x1124, x1053, x1101);
+ let mut x1127: u32 = 0;
+ let mut x1128: fiat_p384_scalar_u1 = 0;
+ let (x1127, x1128) = fiat_p384_scalar_addcarryx_u32(x1126, x1055, x1103);
+ let mut x1129: u32 = 0;
+ let mut x1130: fiat_p384_scalar_u1 = 0;
+ let (x1129, x1130) = fiat_p384_scalar_addcarryx_u32(x1128, x1057, x1105);
+ let mut x1131: u32 = 0;
+ let mut x1132: fiat_p384_scalar_u1 = 0;
+ let (x1131, x1132) = fiat_p384_scalar_addcarryx_u32(x1130, x1059, x1107);
+ let mut x1133: u32 = 0;
+ let mut x1134: fiat_p384_scalar_u1 = 0;
+ let (x1133, x1134) = fiat_p384_scalar_addcarryx_u32(x1132, x1061, x1109);
+ let mut x1135: u32 = 0;
+ let mut x1136: fiat_p384_scalar_u1 = 0;
+ let (x1135, x1136) = fiat_p384_scalar_addcarryx_u32(x1134, x1063, x1111);
+ let mut x1137: u32 = 0;
+ let mut x1138: fiat_p384_scalar_u1 = 0;
+ let (x1137, x1138) = fiat_p384_scalar_addcarryx_u32(x1136, x1065, x1113);
+ let mut x1139: u32 = 0;
+ let mut x1140: fiat_p384_scalar_u1 = 0;
+ let (x1139, x1140) = fiat_p384_scalar_addcarryx_u32(
+ x1138,
+ (((x1066 as u32) + (x996 as u32)) + ((x1042 as u32) + x998)),
+ ((x1114 as u32) + x1070),
+ );
+ let mut x1141: u32 = 0;
+ let mut x1142: u32 = 0;
+ let (x1141, x1142) = fiat_p384_scalar_mulx_u32(x8, 0xc84ee01);
+ let mut x1143: u32 = 0;
+ let mut x1144: u32 = 0;
+ let (x1143, x1144) = fiat_p384_scalar_mulx_u32(x8, 0x2b39bf21);
+ let mut x1145: u32 = 0;
+ let mut x1146: u32 = 0;
+ let (x1145, x1146) = fiat_p384_scalar_mulx_u32(x8, 0x3fb05b7a);
+ let mut x1147: u32 = 0;
+ let mut x1148: u32 = 0;
+ let (x1147, x1148) = fiat_p384_scalar_mulx_u32(x8, 0x28266895);
+ let mut x1149: u32 = 0;
+ let mut x1150: u32 = 0;
+ let (x1149, x1150) = fiat_p384_scalar_mulx_u32(x8, 0xd40d4917);
+ let mut x1151: u32 = 0;
+ let mut x1152: u32 = 0;
+ let (x1151, x1152) = fiat_p384_scalar_mulx_u32(x8, 0x4aab1cc5);
+ let mut x1153: u32 = 0;
+ let mut x1154: u32 = 0;
+ let (x1153, x1154) = fiat_p384_scalar_mulx_u32(x8, 0xbc3e483a);
+ let mut x1155: u32 = 0;
+ let mut x1156: u32 = 0;
+ let (x1155, x1156) = fiat_p384_scalar_mulx_u32(x8, 0xfcb82947);
+ let mut x1157: u32 = 0;
+ let mut x1158: u32 = 0;
+ let (x1157, x1158) = fiat_p384_scalar_mulx_u32(x8, 0xff3d81e5);
+ let mut x1159: u32 = 0;
+ let mut x1160: u32 = 0;
+ let (x1159, x1160) = fiat_p384_scalar_mulx_u32(x8, 0xdf1aa419);
+ let mut x1161: u32 = 0;
+ let mut x1162: u32 = 0;
+ let (x1161, x1162) = fiat_p384_scalar_mulx_u32(x8, 0x2d319b24);
+ let mut x1163: u32 = 0;
+ let mut x1164: u32 = 0;
+ let (x1163, x1164) = fiat_p384_scalar_mulx_u32(x8, 0x19b409a9);
+ let mut x1165: u32 = 0;
+ let mut x1166: fiat_p384_scalar_u1 = 0;
+ let (x1165, x1166) = fiat_p384_scalar_addcarryx_u32(0x0, x1164, x1161);
+ let mut x1167: u32 = 0;
+ let mut x1168: fiat_p384_scalar_u1 = 0;
+ let (x1167, x1168) = fiat_p384_scalar_addcarryx_u32(x1166, x1162, x1159);
+ let mut x1169: u32 = 0;
+ let mut x1170: fiat_p384_scalar_u1 = 0;
+ let (x1169, x1170) = fiat_p384_scalar_addcarryx_u32(x1168, x1160, x1157);
+ let mut x1171: u32 = 0;
+ let mut x1172: fiat_p384_scalar_u1 = 0;
+ let (x1171, x1172) = fiat_p384_scalar_addcarryx_u32(x1170, x1158, x1155);
+ let mut x1173: u32 = 0;
+ let mut x1174: fiat_p384_scalar_u1 = 0;
+ let (x1173, x1174) = fiat_p384_scalar_addcarryx_u32(x1172, x1156, x1153);
+ let mut x1175: u32 = 0;
+ let mut x1176: fiat_p384_scalar_u1 = 0;
+ let (x1175, x1176) = fiat_p384_scalar_addcarryx_u32(x1174, x1154, x1151);
+ let mut x1177: u32 = 0;
+ let mut x1178: fiat_p384_scalar_u1 = 0;
+ let (x1177, x1178) = fiat_p384_scalar_addcarryx_u32(x1176, x1152, x1149);
+ let mut x1179: u32 = 0;
+ let mut x1180: fiat_p384_scalar_u1 = 0;
+ let (x1179, x1180) = fiat_p384_scalar_addcarryx_u32(x1178, x1150, x1147);
+ let mut x1181: u32 = 0;
+ let mut x1182: fiat_p384_scalar_u1 = 0;
+ let (x1181, x1182) = fiat_p384_scalar_addcarryx_u32(x1180, x1148, x1145);
+ let mut x1183: u32 = 0;
+ let mut x1184: fiat_p384_scalar_u1 = 0;
+ let (x1183, x1184) = fiat_p384_scalar_addcarryx_u32(x1182, x1146, x1143);
+ let mut x1185: u32 = 0;
+ let mut x1186: fiat_p384_scalar_u1 = 0;
+ let (x1185, x1186) = fiat_p384_scalar_addcarryx_u32(x1184, x1144, x1141);
+ let mut x1187: u32 = 0;
+ let mut x1188: fiat_p384_scalar_u1 = 0;
+ let (x1187, x1188) = fiat_p384_scalar_addcarryx_u32(0x0, x1117, x1163);
+ let mut x1189: u32 = 0;
+ let mut x1190: fiat_p384_scalar_u1 = 0;
+ let (x1189, x1190) = fiat_p384_scalar_addcarryx_u32(x1188, x1119, x1165);
+ let mut x1191: u32 = 0;
+ let mut x1192: fiat_p384_scalar_u1 = 0;
+ let (x1191, x1192) = fiat_p384_scalar_addcarryx_u32(x1190, x1121, x1167);
+ let mut x1193: u32 = 0;
+ let mut x1194: fiat_p384_scalar_u1 = 0;
+ let (x1193, x1194) = fiat_p384_scalar_addcarryx_u32(x1192, x1123, x1169);
+ let mut x1195: u32 = 0;
+ let mut x1196: fiat_p384_scalar_u1 = 0;
+ let (x1195, x1196) = fiat_p384_scalar_addcarryx_u32(x1194, x1125, x1171);
+ let mut x1197: u32 = 0;
+ let mut x1198: fiat_p384_scalar_u1 = 0;
+ let (x1197, x1198) = fiat_p384_scalar_addcarryx_u32(x1196, x1127, x1173);
+ let mut x1199: u32 = 0;
+ let mut x1200: fiat_p384_scalar_u1 = 0;
+ let (x1199, x1200) = fiat_p384_scalar_addcarryx_u32(x1198, x1129, x1175);
+ let mut x1201: u32 = 0;
+ let mut x1202: fiat_p384_scalar_u1 = 0;
+ let (x1201, x1202) = fiat_p384_scalar_addcarryx_u32(x1200, x1131, x1177);
+ let mut x1203: u32 = 0;
+ let mut x1204: fiat_p384_scalar_u1 = 0;
+ let (x1203, x1204) = fiat_p384_scalar_addcarryx_u32(x1202, x1133, x1179);
+ let mut x1205: u32 = 0;
+ let mut x1206: fiat_p384_scalar_u1 = 0;
+ let (x1205, x1206) = fiat_p384_scalar_addcarryx_u32(x1204, x1135, x1181);
+ let mut x1207: u32 = 0;
+ let mut x1208: fiat_p384_scalar_u1 = 0;
+ let (x1207, x1208) = fiat_p384_scalar_addcarryx_u32(x1206, x1137, x1183);
+ let mut x1209: u32 = 0;
+ let mut x1210: fiat_p384_scalar_u1 = 0;
+ let (x1209, x1210) = fiat_p384_scalar_addcarryx_u32(x1208, x1139, x1185);
+ let mut x1211: u32 = 0;
+ let mut x1212: u32 = 0;
+ let (x1211, x1212) = fiat_p384_scalar_mulx_u32(x1187, 0xe88fdc45);
+ let mut x1213: u32 = 0;
+ let mut x1214: u32 = 0;
+ let (x1213, x1214) = fiat_p384_scalar_mulx_u32(x1211, 0xffffffff);
+ let mut x1215: u32 = 0;
+ let mut x1216: u32 = 0;
+ let (x1215, x1216) = fiat_p384_scalar_mulx_u32(x1211, 0xffffffff);
+ let mut x1217: u32 = 0;
+ let mut x1218: u32 = 0;
+ let (x1217, x1218) = fiat_p384_scalar_mulx_u32(x1211, 0xffffffff);
+ let mut x1219: u32 = 0;
+ let mut x1220: u32 = 0;
+ let (x1219, x1220) = fiat_p384_scalar_mulx_u32(x1211, 0xffffffff);
+ let mut x1221: u32 = 0;
+ let mut x1222: u32 = 0;
+ let (x1221, x1222) = fiat_p384_scalar_mulx_u32(x1211, 0xffffffff);
+ let mut x1223: u32 = 0;
+ let mut x1224: u32 = 0;
+ let (x1223, x1224) = fiat_p384_scalar_mulx_u32(x1211, 0xffffffff);
+ let mut x1225: u32 = 0;
+ let mut x1226: u32 = 0;
+ let (x1225, x1226) = fiat_p384_scalar_mulx_u32(x1211, 0xc7634d81);
+ let mut x1227: u32 = 0;
+ let mut x1228: u32 = 0;
+ let (x1227, x1228) = fiat_p384_scalar_mulx_u32(x1211, 0xf4372ddf);
+ let mut x1229: u32 = 0;
+ let mut x1230: u32 = 0;
+ let (x1229, x1230) = fiat_p384_scalar_mulx_u32(x1211, 0x581a0db2);
+ let mut x1231: u32 = 0;
+ let mut x1232: u32 = 0;
+ let (x1231, x1232) = fiat_p384_scalar_mulx_u32(x1211, 0x48b0a77a);
+ let mut x1233: u32 = 0;
+ let mut x1234: u32 = 0;
+ let (x1233, x1234) = fiat_p384_scalar_mulx_u32(x1211, 0xecec196a);
+ let mut x1235: u32 = 0;
+ let mut x1236: u32 = 0;
+ let (x1235, x1236) = fiat_p384_scalar_mulx_u32(x1211, 0xccc52973);
+ let mut x1237: u32 = 0;
+ let mut x1238: fiat_p384_scalar_u1 = 0;
+ let (x1237, x1238) = fiat_p384_scalar_addcarryx_u32(0x0, x1236, x1233);
+ let mut x1239: u32 = 0;
+ let mut x1240: fiat_p384_scalar_u1 = 0;
+ let (x1239, x1240) = fiat_p384_scalar_addcarryx_u32(x1238, x1234, x1231);
+ let mut x1241: u32 = 0;
+ let mut x1242: fiat_p384_scalar_u1 = 0;
+ let (x1241, x1242) = fiat_p384_scalar_addcarryx_u32(x1240, x1232, x1229);
+ let mut x1243: u32 = 0;
+ let mut x1244: fiat_p384_scalar_u1 = 0;
+ let (x1243, x1244) = fiat_p384_scalar_addcarryx_u32(x1242, x1230, x1227);
+ let mut x1245: u32 = 0;
+ let mut x1246: fiat_p384_scalar_u1 = 0;
+ let (x1245, x1246) = fiat_p384_scalar_addcarryx_u32(x1244, x1228, x1225);
+ let mut x1247: u32 = 0;
+ let mut x1248: fiat_p384_scalar_u1 = 0;
+ let (x1247, x1248) = fiat_p384_scalar_addcarryx_u32(x1246, x1226, x1223);
+ let mut x1249: u32 = 0;
+ let mut x1250: fiat_p384_scalar_u1 = 0;
+ let (x1249, x1250) = fiat_p384_scalar_addcarryx_u32(x1248, x1224, x1221);
+ let mut x1251: u32 = 0;
+ let mut x1252: fiat_p384_scalar_u1 = 0;
+ let (x1251, x1252) = fiat_p384_scalar_addcarryx_u32(x1250, x1222, x1219);
+ let mut x1253: u32 = 0;
+ let mut x1254: fiat_p384_scalar_u1 = 0;
+ let (x1253, x1254) = fiat_p384_scalar_addcarryx_u32(x1252, x1220, x1217);
+ let mut x1255: u32 = 0;
+ let mut x1256: fiat_p384_scalar_u1 = 0;
+ let (x1255, x1256) = fiat_p384_scalar_addcarryx_u32(x1254, x1218, x1215);
+ let mut x1257: u32 = 0;
+ let mut x1258: fiat_p384_scalar_u1 = 0;
+ let (x1257, x1258) = fiat_p384_scalar_addcarryx_u32(x1256, x1216, x1213);
+ let mut x1259: u32 = 0;
+ let mut x1260: fiat_p384_scalar_u1 = 0;
+ let (x1259, x1260) = fiat_p384_scalar_addcarryx_u32(0x0, x1187, x1235);
+ let mut x1261: u32 = 0;
+ let mut x1262: fiat_p384_scalar_u1 = 0;
+ let (x1261, x1262) = fiat_p384_scalar_addcarryx_u32(x1260, x1189, x1237);
+ let mut x1263: u32 = 0;
+ let mut x1264: fiat_p384_scalar_u1 = 0;
+ let (x1263, x1264) = fiat_p384_scalar_addcarryx_u32(x1262, x1191, x1239);
+ let mut x1265: u32 = 0;
+ let mut x1266: fiat_p384_scalar_u1 = 0;
+ let (x1265, x1266) = fiat_p384_scalar_addcarryx_u32(x1264, x1193, x1241);
+ let mut x1267: u32 = 0;
+ let mut x1268: fiat_p384_scalar_u1 = 0;
+ let (x1267, x1268) = fiat_p384_scalar_addcarryx_u32(x1266, x1195, x1243);
+ let mut x1269: u32 = 0;
+ let mut x1270: fiat_p384_scalar_u1 = 0;
+ let (x1269, x1270) = fiat_p384_scalar_addcarryx_u32(x1268, x1197, x1245);
+ let mut x1271: u32 = 0;
+ let mut x1272: fiat_p384_scalar_u1 = 0;
+ let (x1271, x1272) = fiat_p384_scalar_addcarryx_u32(x1270, x1199, x1247);
+ let mut x1273: u32 = 0;
+ let mut x1274: fiat_p384_scalar_u1 = 0;
+ let (x1273, x1274) = fiat_p384_scalar_addcarryx_u32(x1272, x1201, x1249);
+ let mut x1275: u32 = 0;
+ let mut x1276: fiat_p384_scalar_u1 = 0;
+ let (x1275, x1276) = fiat_p384_scalar_addcarryx_u32(x1274, x1203, x1251);
+ let mut x1277: u32 = 0;
+ let mut x1278: fiat_p384_scalar_u1 = 0;
+ let (x1277, x1278) = fiat_p384_scalar_addcarryx_u32(x1276, x1205, x1253);
+ let mut x1279: u32 = 0;
+ let mut x1280: fiat_p384_scalar_u1 = 0;
+ let (x1279, x1280) = fiat_p384_scalar_addcarryx_u32(x1278, x1207, x1255);
+ let mut x1281: u32 = 0;
+ let mut x1282: fiat_p384_scalar_u1 = 0;
+ let (x1281, x1282) = fiat_p384_scalar_addcarryx_u32(x1280, x1209, x1257);
+ let mut x1283: u32 = 0;
+ let mut x1284: fiat_p384_scalar_u1 = 0;
+ let (x1283, x1284) = fiat_p384_scalar_addcarryx_u32(
+ x1282,
+ (((x1210 as u32) + (x1140 as u32)) + ((x1186 as u32) + x1142)),
+ ((x1258 as u32) + x1214),
+ );
+ let mut x1285: u32 = 0;
+ let mut x1286: u32 = 0;
+ let (x1285, x1286) = fiat_p384_scalar_mulx_u32(x9, 0xc84ee01);
+ let mut x1287: u32 = 0;
+ let mut x1288: u32 = 0;
+ let (x1287, x1288) = fiat_p384_scalar_mulx_u32(x9, 0x2b39bf21);
+ let mut x1289: u32 = 0;
+ let mut x1290: u32 = 0;
+ let (x1289, x1290) = fiat_p384_scalar_mulx_u32(x9, 0x3fb05b7a);
+ let mut x1291: u32 = 0;
+ let mut x1292: u32 = 0;
+ let (x1291, x1292) = fiat_p384_scalar_mulx_u32(x9, 0x28266895);
+ let mut x1293: u32 = 0;
+ let mut x1294: u32 = 0;
+ let (x1293, x1294) = fiat_p384_scalar_mulx_u32(x9, 0xd40d4917);
+ let mut x1295: u32 = 0;
+ let mut x1296: u32 = 0;
+ let (x1295, x1296) = fiat_p384_scalar_mulx_u32(x9, 0x4aab1cc5);
+ let mut x1297: u32 = 0;
+ let mut x1298: u32 = 0;
+ let (x1297, x1298) = fiat_p384_scalar_mulx_u32(x9, 0xbc3e483a);
+ let mut x1299: u32 = 0;
+ let mut x1300: u32 = 0;
+ let (x1299, x1300) = fiat_p384_scalar_mulx_u32(x9, 0xfcb82947);
+ let mut x1301: u32 = 0;
+ let mut x1302: u32 = 0;
+ let (x1301, x1302) = fiat_p384_scalar_mulx_u32(x9, 0xff3d81e5);
+ let mut x1303: u32 = 0;
+ let mut x1304: u32 = 0;
+ let (x1303, x1304) = fiat_p384_scalar_mulx_u32(x9, 0xdf1aa419);
+ let mut x1305: u32 = 0;
+ let mut x1306: u32 = 0;
+ let (x1305, x1306) = fiat_p384_scalar_mulx_u32(x9, 0x2d319b24);
+ let mut x1307: u32 = 0;
+ let mut x1308: u32 = 0;
+ let (x1307, x1308) = fiat_p384_scalar_mulx_u32(x9, 0x19b409a9);
+ let mut x1309: u32 = 0;
+ let mut x1310: fiat_p384_scalar_u1 = 0;
+ let (x1309, x1310) = fiat_p384_scalar_addcarryx_u32(0x0, x1308, x1305);
+ let mut x1311: u32 = 0;
+ let mut x1312: fiat_p384_scalar_u1 = 0;
+ let (x1311, x1312) = fiat_p384_scalar_addcarryx_u32(x1310, x1306, x1303);
+ let mut x1313: u32 = 0;
+ let mut x1314: fiat_p384_scalar_u1 = 0;
+ let (x1313, x1314) = fiat_p384_scalar_addcarryx_u32(x1312, x1304, x1301);
+ let mut x1315: u32 = 0;
+ let mut x1316: fiat_p384_scalar_u1 = 0;
+ let (x1315, x1316) = fiat_p384_scalar_addcarryx_u32(x1314, x1302, x1299);
+ let mut x1317: u32 = 0;
+ let mut x1318: fiat_p384_scalar_u1 = 0;
+ let (x1317, x1318) = fiat_p384_scalar_addcarryx_u32(x1316, x1300, x1297);
+ let mut x1319: u32 = 0;
+ let mut x1320: fiat_p384_scalar_u1 = 0;
+ let (x1319, x1320) = fiat_p384_scalar_addcarryx_u32(x1318, x1298, x1295);
+ let mut x1321: u32 = 0;
+ let mut x1322: fiat_p384_scalar_u1 = 0;
+ let (x1321, x1322) = fiat_p384_scalar_addcarryx_u32(x1320, x1296, x1293);
+ let mut x1323: u32 = 0;
+ let mut x1324: fiat_p384_scalar_u1 = 0;
+ let (x1323, x1324) = fiat_p384_scalar_addcarryx_u32(x1322, x1294, x1291);
+ let mut x1325: u32 = 0;
+ let mut x1326: fiat_p384_scalar_u1 = 0;
+ let (x1325, x1326) = fiat_p384_scalar_addcarryx_u32(x1324, x1292, x1289);
+ let mut x1327: u32 = 0;
+ let mut x1328: fiat_p384_scalar_u1 = 0;
+ let (x1327, x1328) = fiat_p384_scalar_addcarryx_u32(x1326, x1290, x1287);
+ let mut x1329: u32 = 0;
+ let mut x1330: fiat_p384_scalar_u1 = 0;
+ let (x1329, x1330) = fiat_p384_scalar_addcarryx_u32(x1328, x1288, x1285);
+ let mut x1331: u32 = 0;
+ let mut x1332: fiat_p384_scalar_u1 = 0;
+ let (x1331, x1332) = fiat_p384_scalar_addcarryx_u32(0x0, x1261, x1307);
+ let mut x1333: u32 = 0;
+ let mut x1334: fiat_p384_scalar_u1 = 0;
+ let (x1333, x1334) = fiat_p384_scalar_addcarryx_u32(x1332, x1263, x1309);
+ let mut x1335: u32 = 0;
+ let mut x1336: fiat_p384_scalar_u1 = 0;
+ let (x1335, x1336) = fiat_p384_scalar_addcarryx_u32(x1334, x1265, x1311);
+ let mut x1337: u32 = 0;
+ let mut x1338: fiat_p384_scalar_u1 = 0;
+ let (x1337, x1338) = fiat_p384_scalar_addcarryx_u32(x1336, x1267, x1313);
+ let mut x1339: u32 = 0;
+ let mut x1340: fiat_p384_scalar_u1 = 0;
+ let (x1339, x1340) = fiat_p384_scalar_addcarryx_u32(x1338, x1269, x1315);
+ let mut x1341: u32 = 0;
+ let mut x1342: fiat_p384_scalar_u1 = 0;
+ let (x1341, x1342) = fiat_p384_scalar_addcarryx_u32(x1340, x1271, x1317);
+ let mut x1343: u32 = 0;
+ let mut x1344: fiat_p384_scalar_u1 = 0;
+ let (x1343, x1344) = fiat_p384_scalar_addcarryx_u32(x1342, x1273, x1319);
+ let mut x1345: u32 = 0;
+ let mut x1346: fiat_p384_scalar_u1 = 0;
+ let (x1345, x1346) = fiat_p384_scalar_addcarryx_u32(x1344, x1275, x1321);
+ let mut x1347: u32 = 0;
+ let mut x1348: fiat_p384_scalar_u1 = 0;
+ let (x1347, x1348) = fiat_p384_scalar_addcarryx_u32(x1346, x1277, x1323);
+ let mut x1349: u32 = 0;
+ let mut x1350: fiat_p384_scalar_u1 = 0;
+ let (x1349, x1350) = fiat_p384_scalar_addcarryx_u32(x1348, x1279, x1325);
+ let mut x1351: u32 = 0;
+ let mut x1352: fiat_p384_scalar_u1 = 0;
+ let (x1351, x1352) = fiat_p384_scalar_addcarryx_u32(x1350, x1281, x1327);
+ let mut x1353: u32 = 0;
+ let mut x1354: fiat_p384_scalar_u1 = 0;
+ let (x1353, x1354) = fiat_p384_scalar_addcarryx_u32(x1352, x1283, x1329);
+ let mut x1355: u32 = 0;
+ let mut x1356: u32 = 0;
+ let (x1355, x1356) = fiat_p384_scalar_mulx_u32(x1331, 0xe88fdc45);
+ let mut x1357: u32 = 0;
+ let mut x1358: u32 = 0;
+ let (x1357, x1358) = fiat_p384_scalar_mulx_u32(x1355, 0xffffffff);
+ let mut x1359: u32 = 0;
+ let mut x1360: u32 = 0;
+ let (x1359, x1360) = fiat_p384_scalar_mulx_u32(x1355, 0xffffffff);
+ let mut x1361: u32 = 0;
+ let mut x1362: u32 = 0;
+ let (x1361, x1362) = fiat_p384_scalar_mulx_u32(x1355, 0xffffffff);
+ let mut x1363: u32 = 0;
+ let mut x1364: u32 = 0;
+ let (x1363, x1364) = fiat_p384_scalar_mulx_u32(x1355, 0xffffffff);
+ let mut x1365: u32 = 0;
+ let mut x1366: u32 = 0;
+ let (x1365, x1366) = fiat_p384_scalar_mulx_u32(x1355, 0xffffffff);
+ let mut x1367: u32 = 0;
+ let mut x1368: u32 = 0;
+ let (x1367, x1368) = fiat_p384_scalar_mulx_u32(x1355, 0xffffffff);
+ let mut x1369: u32 = 0;
+ let mut x1370: u32 = 0;
+ let (x1369, x1370) = fiat_p384_scalar_mulx_u32(x1355, 0xc7634d81);
+ let mut x1371: u32 = 0;
+ let mut x1372: u32 = 0;
+ let (x1371, x1372) = fiat_p384_scalar_mulx_u32(x1355, 0xf4372ddf);
+ let mut x1373: u32 = 0;
+ let mut x1374: u32 = 0;
+ let (x1373, x1374) = fiat_p384_scalar_mulx_u32(x1355, 0x581a0db2);
+ let mut x1375: u32 = 0;
+ let mut x1376: u32 = 0;
+ let (x1375, x1376) = fiat_p384_scalar_mulx_u32(x1355, 0x48b0a77a);
+ let mut x1377: u32 = 0;
+ let mut x1378: u32 = 0;
+ let (x1377, x1378) = fiat_p384_scalar_mulx_u32(x1355, 0xecec196a);
+ let mut x1379: u32 = 0;
+ let mut x1380: u32 = 0;
+ let (x1379, x1380) = fiat_p384_scalar_mulx_u32(x1355, 0xccc52973);
+ let mut x1381: u32 = 0;
+ let mut x1382: fiat_p384_scalar_u1 = 0;
+ let (x1381, x1382) = fiat_p384_scalar_addcarryx_u32(0x0, x1380, x1377);
+ let mut x1383: u32 = 0;
+ let mut x1384: fiat_p384_scalar_u1 = 0;
+ let (x1383, x1384) = fiat_p384_scalar_addcarryx_u32(x1382, x1378, x1375);
+ let mut x1385: u32 = 0;
+ let mut x1386: fiat_p384_scalar_u1 = 0;
+ let (x1385, x1386) = fiat_p384_scalar_addcarryx_u32(x1384, x1376, x1373);
+ let mut x1387: u32 = 0;
+ let mut x1388: fiat_p384_scalar_u1 = 0;
+ let (x1387, x1388) = fiat_p384_scalar_addcarryx_u32(x1386, x1374, x1371);
+ let mut x1389: u32 = 0;
+ let mut x1390: fiat_p384_scalar_u1 = 0;
+ let (x1389, x1390) = fiat_p384_scalar_addcarryx_u32(x1388, x1372, x1369);
+ let mut x1391: u32 = 0;
+ let mut x1392: fiat_p384_scalar_u1 = 0;
+ let (x1391, x1392) = fiat_p384_scalar_addcarryx_u32(x1390, x1370, x1367);
+ let mut x1393: u32 = 0;
+ let mut x1394: fiat_p384_scalar_u1 = 0;
+ let (x1393, x1394) = fiat_p384_scalar_addcarryx_u32(x1392, x1368, x1365);
+ let mut x1395: u32 = 0;
+ let mut x1396: fiat_p384_scalar_u1 = 0;
+ let (x1395, x1396) = fiat_p384_scalar_addcarryx_u32(x1394, x1366, x1363);
+ let mut x1397: u32 = 0;
+ let mut x1398: fiat_p384_scalar_u1 = 0;
+ let (x1397, x1398) = fiat_p384_scalar_addcarryx_u32(x1396, x1364, x1361);
+ let mut x1399: u32 = 0;
+ let mut x1400: fiat_p384_scalar_u1 = 0;
+ let (x1399, x1400) = fiat_p384_scalar_addcarryx_u32(x1398, x1362, x1359);
+ let mut x1401: u32 = 0;
+ let mut x1402: fiat_p384_scalar_u1 = 0;
+ let (x1401, x1402) = fiat_p384_scalar_addcarryx_u32(x1400, x1360, x1357);
+ let mut x1403: u32 = 0;
+ let mut x1404: fiat_p384_scalar_u1 = 0;
+ let (x1403, x1404) = fiat_p384_scalar_addcarryx_u32(0x0, x1331, x1379);
+ let mut x1405: u32 = 0;
+ let mut x1406: fiat_p384_scalar_u1 = 0;
+ let (x1405, x1406) = fiat_p384_scalar_addcarryx_u32(x1404, x1333, x1381);
+ let mut x1407: u32 = 0;
+ let mut x1408: fiat_p384_scalar_u1 = 0;
+ let (x1407, x1408) = fiat_p384_scalar_addcarryx_u32(x1406, x1335, x1383);
+ let mut x1409: u32 = 0;
+ let mut x1410: fiat_p384_scalar_u1 = 0;
+ let (x1409, x1410) = fiat_p384_scalar_addcarryx_u32(x1408, x1337, x1385);
+ let mut x1411: u32 = 0;
+ let mut x1412: fiat_p384_scalar_u1 = 0;
+ let (x1411, x1412) = fiat_p384_scalar_addcarryx_u32(x1410, x1339, x1387);
+ let mut x1413: u32 = 0;
+ let mut x1414: fiat_p384_scalar_u1 = 0;
+ let (x1413, x1414) = fiat_p384_scalar_addcarryx_u32(x1412, x1341, x1389);
+ let mut x1415: u32 = 0;
+ let mut x1416: fiat_p384_scalar_u1 = 0;
+ let (x1415, x1416) = fiat_p384_scalar_addcarryx_u32(x1414, x1343, x1391);
+ let mut x1417: u32 = 0;
+ let mut x1418: fiat_p384_scalar_u1 = 0;
+ let (x1417, x1418) = fiat_p384_scalar_addcarryx_u32(x1416, x1345, x1393);
+ let mut x1419: u32 = 0;
+ let mut x1420: fiat_p384_scalar_u1 = 0;
+ let (x1419, x1420) = fiat_p384_scalar_addcarryx_u32(x1418, x1347, x1395);
+ let mut x1421: u32 = 0;
+ let mut x1422: fiat_p384_scalar_u1 = 0;
+ let (x1421, x1422) = fiat_p384_scalar_addcarryx_u32(x1420, x1349, x1397);
+ let mut x1423: u32 = 0;
+ let mut x1424: fiat_p384_scalar_u1 = 0;
+ let (x1423, x1424) = fiat_p384_scalar_addcarryx_u32(x1422, x1351, x1399);
+ let mut x1425: u32 = 0;
+ let mut x1426: fiat_p384_scalar_u1 = 0;
+ let (x1425, x1426) = fiat_p384_scalar_addcarryx_u32(x1424, x1353, x1401);
+ let mut x1427: u32 = 0;
+ let mut x1428: fiat_p384_scalar_u1 = 0;
+ let (x1427, x1428) = fiat_p384_scalar_addcarryx_u32(
+ x1426,
+ (((x1354 as u32) + (x1284 as u32)) + ((x1330 as u32) + x1286)),
+ ((x1402 as u32) + x1358),
+ );
+ let mut x1429: u32 = 0;
+ let mut x1430: u32 = 0;
+ let (x1429, x1430) = fiat_p384_scalar_mulx_u32(x10, 0xc84ee01);
+ let mut x1431: u32 = 0;
+ let mut x1432: u32 = 0;
+ let (x1431, x1432) = fiat_p384_scalar_mulx_u32(x10, 0x2b39bf21);
+ let mut x1433: u32 = 0;
+ let mut x1434: u32 = 0;
+ let (x1433, x1434) = fiat_p384_scalar_mulx_u32(x10, 0x3fb05b7a);
+ let mut x1435: u32 = 0;
+ let mut x1436: u32 = 0;
+ let (x1435, x1436) = fiat_p384_scalar_mulx_u32(x10, 0x28266895);
+ let mut x1437: u32 = 0;
+ let mut x1438: u32 = 0;
+ let (x1437, x1438) = fiat_p384_scalar_mulx_u32(x10, 0xd40d4917);
+ let mut x1439: u32 = 0;
+ let mut x1440: u32 = 0;
+ let (x1439, x1440) = fiat_p384_scalar_mulx_u32(x10, 0x4aab1cc5);
+ let mut x1441: u32 = 0;
+ let mut x1442: u32 = 0;
+ let (x1441, x1442) = fiat_p384_scalar_mulx_u32(x10, 0xbc3e483a);
+ let mut x1443: u32 = 0;
+ let mut x1444: u32 = 0;
+ let (x1443, x1444) = fiat_p384_scalar_mulx_u32(x10, 0xfcb82947);
+ let mut x1445: u32 = 0;
+ let mut x1446: u32 = 0;
+ let (x1445, x1446) = fiat_p384_scalar_mulx_u32(x10, 0xff3d81e5);
+ let mut x1447: u32 = 0;
+ let mut x1448: u32 = 0;
+ let (x1447, x1448) = fiat_p384_scalar_mulx_u32(x10, 0xdf1aa419);
+ let mut x1449: u32 = 0;
+ let mut x1450: u32 = 0;
+ let (x1449, x1450) = fiat_p384_scalar_mulx_u32(x10, 0x2d319b24);
+ let mut x1451: u32 = 0;
+ let mut x1452: u32 = 0;
+ let (x1451, x1452) = fiat_p384_scalar_mulx_u32(x10, 0x19b409a9);
+ let mut x1453: u32 = 0;
+ let mut x1454: fiat_p384_scalar_u1 = 0;
+ let (x1453, x1454) = fiat_p384_scalar_addcarryx_u32(0x0, x1452, x1449);
+ let mut x1455: u32 = 0;
+ let mut x1456: fiat_p384_scalar_u1 = 0;
+ let (x1455, x1456) = fiat_p384_scalar_addcarryx_u32(x1454, x1450, x1447);
+ let mut x1457: u32 = 0;
+ let mut x1458: fiat_p384_scalar_u1 = 0;
+ let (x1457, x1458) = fiat_p384_scalar_addcarryx_u32(x1456, x1448, x1445);
+ let mut x1459: u32 = 0;
+ let mut x1460: fiat_p384_scalar_u1 = 0;
+ let (x1459, x1460) = fiat_p384_scalar_addcarryx_u32(x1458, x1446, x1443);
+ let mut x1461: u32 = 0;
+ let mut x1462: fiat_p384_scalar_u1 = 0;
+ let (x1461, x1462) = fiat_p384_scalar_addcarryx_u32(x1460, x1444, x1441);
+ let mut x1463: u32 = 0;
+ let mut x1464: fiat_p384_scalar_u1 = 0;
+ let (x1463, x1464) = fiat_p384_scalar_addcarryx_u32(x1462, x1442, x1439);
+ let mut x1465: u32 = 0;
+ let mut x1466: fiat_p384_scalar_u1 = 0;
+ let (x1465, x1466) = fiat_p384_scalar_addcarryx_u32(x1464, x1440, x1437);
+ let mut x1467: u32 = 0;
+ let mut x1468: fiat_p384_scalar_u1 = 0;
+ let (x1467, x1468) = fiat_p384_scalar_addcarryx_u32(x1466, x1438, x1435);
+ let mut x1469: u32 = 0;
+ let mut x1470: fiat_p384_scalar_u1 = 0;
+ let (x1469, x1470) = fiat_p384_scalar_addcarryx_u32(x1468, x1436, x1433);
+ let mut x1471: u32 = 0;
+ let mut x1472: fiat_p384_scalar_u1 = 0;
+ let (x1471, x1472) = fiat_p384_scalar_addcarryx_u32(x1470, x1434, x1431);
+ let mut x1473: u32 = 0;
+ let mut x1474: fiat_p384_scalar_u1 = 0;
+ let (x1473, x1474) = fiat_p384_scalar_addcarryx_u32(x1472, x1432, x1429);
+ let mut x1475: u32 = 0;
+ let mut x1476: fiat_p384_scalar_u1 = 0;
+ let (x1475, x1476) = fiat_p384_scalar_addcarryx_u32(0x0, x1405, x1451);
+ let mut x1477: u32 = 0;
+ let mut x1478: fiat_p384_scalar_u1 = 0;
+ let (x1477, x1478) = fiat_p384_scalar_addcarryx_u32(x1476, x1407, x1453);
+ let mut x1479: u32 = 0;
+ let mut x1480: fiat_p384_scalar_u1 = 0;
+ let (x1479, x1480) = fiat_p384_scalar_addcarryx_u32(x1478, x1409, x1455);
+ let mut x1481: u32 = 0;
+ let mut x1482: fiat_p384_scalar_u1 = 0;
+ let (x1481, x1482) = fiat_p384_scalar_addcarryx_u32(x1480, x1411, x1457);
+ let mut x1483: u32 = 0;
+ let mut x1484: fiat_p384_scalar_u1 = 0;
+ let (x1483, x1484) = fiat_p384_scalar_addcarryx_u32(x1482, x1413, x1459);
+ let mut x1485: u32 = 0;
+ let mut x1486: fiat_p384_scalar_u1 = 0;
+ let (x1485, x1486) = fiat_p384_scalar_addcarryx_u32(x1484, x1415, x1461);
+ let mut x1487: u32 = 0;
+ let mut x1488: fiat_p384_scalar_u1 = 0;
+ let (x1487, x1488) = fiat_p384_scalar_addcarryx_u32(x1486, x1417, x1463);
+ let mut x1489: u32 = 0;
+ let mut x1490: fiat_p384_scalar_u1 = 0;
+ let (x1489, x1490) = fiat_p384_scalar_addcarryx_u32(x1488, x1419, x1465);
+ let mut x1491: u32 = 0;
+ let mut x1492: fiat_p384_scalar_u1 = 0;
+ let (x1491, x1492) = fiat_p384_scalar_addcarryx_u32(x1490, x1421, x1467);
+ let mut x1493: u32 = 0;
+ let mut x1494: fiat_p384_scalar_u1 = 0;
+ let (x1493, x1494) = fiat_p384_scalar_addcarryx_u32(x1492, x1423, x1469);
+ let mut x1495: u32 = 0;
+ let mut x1496: fiat_p384_scalar_u1 = 0;
+ let (x1495, x1496) = fiat_p384_scalar_addcarryx_u32(x1494, x1425, x1471);
+ let mut x1497: u32 = 0;
+ let mut x1498: fiat_p384_scalar_u1 = 0;
+ let (x1497, x1498) = fiat_p384_scalar_addcarryx_u32(x1496, x1427, x1473);
+ let mut x1499: u32 = 0;
+ let mut x1500: u32 = 0;
+ let (x1499, x1500) = fiat_p384_scalar_mulx_u32(x1475, 0xe88fdc45);
+ let mut x1501: u32 = 0;
+ let mut x1502: u32 = 0;
+ let (x1501, x1502) = fiat_p384_scalar_mulx_u32(x1499, 0xffffffff);
+ let mut x1503: u32 = 0;
+ let mut x1504: u32 = 0;
+ let (x1503, x1504) = fiat_p384_scalar_mulx_u32(x1499, 0xffffffff);
+ let mut x1505: u32 = 0;
+ let mut x1506: u32 = 0;
+ let (x1505, x1506) = fiat_p384_scalar_mulx_u32(x1499, 0xffffffff);
+ let mut x1507: u32 = 0;
+ let mut x1508: u32 = 0;
+ let (x1507, x1508) = fiat_p384_scalar_mulx_u32(x1499, 0xffffffff);
+ let mut x1509: u32 = 0;
+ let mut x1510: u32 = 0;
+ let (x1509, x1510) = fiat_p384_scalar_mulx_u32(x1499, 0xffffffff);
+ let mut x1511: u32 = 0;
+ let mut x1512: u32 = 0;
+ let (x1511, x1512) = fiat_p384_scalar_mulx_u32(x1499, 0xffffffff);
+ let mut x1513: u32 = 0;
+ let mut x1514: u32 = 0;
+ let (x1513, x1514) = fiat_p384_scalar_mulx_u32(x1499, 0xc7634d81);
+ let mut x1515: u32 = 0;
+ let mut x1516: u32 = 0;
+ let (x1515, x1516) = fiat_p384_scalar_mulx_u32(x1499, 0xf4372ddf);
+ let mut x1517: u32 = 0;
+ let mut x1518: u32 = 0;
+ let (x1517, x1518) = fiat_p384_scalar_mulx_u32(x1499, 0x581a0db2);
+ let mut x1519: u32 = 0;
+ let mut x1520: u32 = 0;
+ let (x1519, x1520) = fiat_p384_scalar_mulx_u32(x1499, 0x48b0a77a);
+ let mut x1521: u32 = 0;
+ let mut x1522: u32 = 0;
+ let (x1521, x1522) = fiat_p384_scalar_mulx_u32(x1499, 0xecec196a);
+ let mut x1523: u32 = 0;
+ let mut x1524: u32 = 0;
+ let (x1523, x1524) = fiat_p384_scalar_mulx_u32(x1499, 0xccc52973);
+ let mut x1525: u32 = 0;
+ let mut x1526: fiat_p384_scalar_u1 = 0;
+ let (x1525, x1526) = fiat_p384_scalar_addcarryx_u32(0x0, x1524, x1521);
+ let mut x1527: u32 = 0;
+ let mut x1528: fiat_p384_scalar_u1 = 0;
+ let (x1527, x1528) = fiat_p384_scalar_addcarryx_u32(x1526, x1522, x1519);
+ let mut x1529: u32 = 0;
+ let mut x1530: fiat_p384_scalar_u1 = 0;
+ let (x1529, x1530) = fiat_p384_scalar_addcarryx_u32(x1528, x1520, x1517);
+ let mut x1531: u32 = 0;
+ let mut x1532: fiat_p384_scalar_u1 = 0;
+ let (x1531, x1532) = fiat_p384_scalar_addcarryx_u32(x1530, x1518, x1515);
+ let mut x1533: u32 = 0;
+ let mut x1534: fiat_p384_scalar_u1 = 0;
+ let (x1533, x1534) = fiat_p384_scalar_addcarryx_u32(x1532, x1516, x1513);
+ let mut x1535: u32 = 0;
+ let mut x1536: fiat_p384_scalar_u1 = 0;
+ let (x1535, x1536) = fiat_p384_scalar_addcarryx_u32(x1534, x1514, x1511);
+ let mut x1537: u32 = 0;
+ let mut x1538: fiat_p384_scalar_u1 = 0;
+ let (x1537, x1538) = fiat_p384_scalar_addcarryx_u32(x1536, x1512, x1509);
+ let mut x1539: u32 = 0;
+ let mut x1540: fiat_p384_scalar_u1 = 0;
+ let (x1539, x1540) = fiat_p384_scalar_addcarryx_u32(x1538, x1510, x1507);
+ let mut x1541: u32 = 0;
+ let mut x1542: fiat_p384_scalar_u1 = 0;
+ let (x1541, x1542) = fiat_p384_scalar_addcarryx_u32(x1540, x1508, x1505);
+ let mut x1543: u32 = 0;
+ let mut x1544: fiat_p384_scalar_u1 = 0;
+ let (x1543, x1544) = fiat_p384_scalar_addcarryx_u32(x1542, x1506, x1503);
+ let mut x1545: u32 = 0;
+ let mut x1546: fiat_p384_scalar_u1 = 0;
+ let (x1545, x1546) = fiat_p384_scalar_addcarryx_u32(x1544, x1504, x1501);
+ let mut x1547: u32 = 0;
+ let mut x1548: fiat_p384_scalar_u1 = 0;
+ let (x1547, x1548) = fiat_p384_scalar_addcarryx_u32(0x0, x1475, x1523);
+ let mut x1549: u32 = 0;
+ let mut x1550: fiat_p384_scalar_u1 = 0;
+ let (x1549, x1550) = fiat_p384_scalar_addcarryx_u32(x1548, x1477, x1525);
+ let mut x1551: u32 = 0;
+ let mut x1552: fiat_p384_scalar_u1 = 0;
+ let (x1551, x1552) = fiat_p384_scalar_addcarryx_u32(x1550, x1479, x1527);
+ let mut x1553: u32 = 0;
+ let mut x1554: fiat_p384_scalar_u1 = 0;
+ let (x1553, x1554) = fiat_p384_scalar_addcarryx_u32(x1552, x1481, x1529);
+ let mut x1555: u32 = 0;
+ let mut x1556: fiat_p384_scalar_u1 = 0;
+ let (x1555, x1556) = fiat_p384_scalar_addcarryx_u32(x1554, x1483, x1531);
+ let mut x1557: u32 = 0;
+ let mut x1558: fiat_p384_scalar_u1 = 0;
+ let (x1557, x1558) = fiat_p384_scalar_addcarryx_u32(x1556, x1485, x1533);
+ let mut x1559: u32 = 0;
+ let mut x1560: fiat_p384_scalar_u1 = 0;
+ let (x1559, x1560) = fiat_p384_scalar_addcarryx_u32(x1558, x1487, x1535);
+ let mut x1561: u32 = 0;
+ let mut x1562: fiat_p384_scalar_u1 = 0;
+ let (x1561, x1562) = fiat_p384_scalar_addcarryx_u32(x1560, x1489, x1537);
+ let mut x1563: u32 = 0;
+ let mut x1564: fiat_p384_scalar_u1 = 0;
+ let (x1563, x1564) = fiat_p384_scalar_addcarryx_u32(x1562, x1491, x1539);
+ let mut x1565: u32 = 0;
+ let mut x1566: fiat_p384_scalar_u1 = 0;
+ let (x1565, x1566) = fiat_p384_scalar_addcarryx_u32(x1564, x1493, x1541);
+ let mut x1567: u32 = 0;
+ let mut x1568: fiat_p384_scalar_u1 = 0;
+ let (x1567, x1568) = fiat_p384_scalar_addcarryx_u32(x1566, x1495, x1543);
+ let mut x1569: u32 = 0;
+ let mut x1570: fiat_p384_scalar_u1 = 0;
+ let (x1569, x1570) = fiat_p384_scalar_addcarryx_u32(x1568, x1497, x1545);
+ let mut x1571: u32 = 0;
+ let mut x1572: fiat_p384_scalar_u1 = 0;
+ let (x1571, x1572) = fiat_p384_scalar_addcarryx_u32(
+ x1570,
+ (((x1498 as u32) + (x1428 as u32)) + ((x1474 as u32) + x1430)),
+ ((x1546 as u32) + x1502),
+ );
+ let mut x1573: u32 = 0;
+ let mut x1574: u32 = 0;
+ let (x1573, x1574) = fiat_p384_scalar_mulx_u32(x11, 0xc84ee01);
+ let mut x1575: u32 = 0;
+ let mut x1576: u32 = 0;
+ let (x1575, x1576) = fiat_p384_scalar_mulx_u32(x11, 0x2b39bf21);
+ let mut x1577: u32 = 0;
+ let mut x1578: u32 = 0;
+ let (x1577, x1578) = fiat_p384_scalar_mulx_u32(x11, 0x3fb05b7a);
+ let mut x1579: u32 = 0;
+ let mut x1580: u32 = 0;
+ let (x1579, x1580) = fiat_p384_scalar_mulx_u32(x11, 0x28266895);
+ let mut x1581: u32 = 0;
+ let mut x1582: u32 = 0;
+ let (x1581, x1582) = fiat_p384_scalar_mulx_u32(x11, 0xd40d4917);
+ let mut x1583: u32 = 0;
+ let mut x1584: u32 = 0;
+ let (x1583, x1584) = fiat_p384_scalar_mulx_u32(x11, 0x4aab1cc5);
+ let mut x1585: u32 = 0;
+ let mut x1586: u32 = 0;
+ let (x1585, x1586) = fiat_p384_scalar_mulx_u32(x11, 0xbc3e483a);
+ let mut x1587: u32 = 0;
+ let mut x1588: u32 = 0;
+ let (x1587, x1588) = fiat_p384_scalar_mulx_u32(x11, 0xfcb82947);
+ let mut x1589: u32 = 0;
+ let mut x1590: u32 = 0;
+ let (x1589, x1590) = fiat_p384_scalar_mulx_u32(x11, 0xff3d81e5);
+ let mut x1591: u32 = 0;
+ let mut x1592: u32 = 0;
+ let (x1591, x1592) = fiat_p384_scalar_mulx_u32(x11, 0xdf1aa419);
+ let mut x1593: u32 = 0;
+ let mut x1594: u32 = 0;
+ let (x1593, x1594) = fiat_p384_scalar_mulx_u32(x11, 0x2d319b24);
+ let mut x1595: u32 = 0;
+ let mut x1596: u32 = 0;
+ let (x1595, x1596) = fiat_p384_scalar_mulx_u32(x11, 0x19b409a9);
+ let mut x1597: u32 = 0;
+ let mut x1598: fiat_p384_scalar_u1 = 0;
+ let (x1597, x1598) = fiat_p384_scalar_addcarryx_u32(0x0, x1596, x1593);
+ let mut x1599: u32 = 0;
+ let mut x1600: fiat_p384_scalar_u1 = 0;
+ let (x1599, x1600) = fiat_p384_scalar_addcarryx_u32(x1598, x1594, x1591);
+ let mut x1601: u32 = 0;
+ let mut x1602: fiat_p384_scalar_u1 = 0;
+ let (x1601, x1602) = fiat_p384_scalar_addcarryx_u32(x1600, x1592, x1589);
+ let mut x1603: u32 = 0;
+ let mut x1604: fiat_p384_scalar_u1 = 0;
+ let (x1603, x1604) = fiat_p384_scalar_addcarryx_u32(x1602, x1590, x1587);
+ let mut x1605: u32 = 0;
+ let mut x1606: fiat_p384_scalar_u1 = 0;
+ let (x1605, x1606) = fiat_p384_scalar_addcarryx_u32(x1604, x1588, x1585);
+ let mut x1607: u32 = 0;
+ let mut x1608: fiat_p384_scalar_u1 = 0;
+ let (x1607, x1608) = fiat_p384_scalar_addcarryx_u32(x1606, x1586, x1583);
+ let mut x1609: u32 = 0;
+ let mut x1610: fiat_p384_scalar_u1 = 0;
+ let (x1609, x1610) = fiat_p384_scalar_addcarryx_u32(x1608, x1584, x1581);
+ let mut x1611: u32 = 0;
+ let mut x1612: fiat_p384_scalar_u1 = 0;
+ let (x1611, x1612) = fiat_p384_scalar_addcarryx_u32(x1610, x1582, x1579);
+ let mut x1613: u32 = 0;
+ let mut x1614: fiat_p384_scalar_u1 = 0;
+ let (x1613, x1614) = fiat_p384_scalar_addcarryx_u32(x1612, x1580, x1577);
+ let mut x1615: u32 = 0;
+ let mut x1616: fiat_p384_scalar_u1 = 0;
+ let (x1615, x1616) = fiat_p384_scalar_addcarryx_u32(x1614, x1578, x1575);
+ let mut x1617: u32 = 0;
+ let mut x1618: fiat_p384_scalar_u1 = 0;
+ let (x1617, x1618) = fiat_p384_scalar_addcarryx_u32(x1616, x1576, x1573);
+ let mut x1619: u32 = 0;
+ let mut x1620: fiat_p384_scalar_u1 = 0;
+ let (x1619, x1620) = fiat_p384_scalar_addcarryx_u32(0x0, x1549, x1595);
+ let mut x1621: u32 = 0;
+ let mut x1622: fiat_p384_scalar_u1 = 0;
+ let (x1621, x1622) = fiat_p384_scalar_addcarryx_u32(x1620, x1551, x1597);
+ let mut x1623: u32 = 0;
+ let mut x1624: fiat_p384_scalar_u1 = 0;
+ let (x1623, x1624) = fiat_p384_scalar_addcarryx_u32(x1622, x1553, x1599);
+ let mut x1625: u32 = 0;
+ let mut x1626: fiat_p384_scalar_u1 = 0;
+ let (x1625, x1626) = fiat_p384_scalar_addcarryx_u32(x1624, x1555, x1601);
+ let mut x1627: u32 = 0;
+ let mut x1628: fiat_p384_scalar_u1 = 0;
+ let (x1627, x1628) = fiat_p384_scalar_addcarryx_u32(x1626, x1557, x1603);
+ let mut x1629: u32 = 0;
+ let mut x1630: fiat_p384_scalar_u1 = 0;
+ let (x1629, x1630) = fiat_p384_scalar_addcarryx_u32(x1628, x1559, x1605);
+ let mut x1631: u32 = 0;
+ let mut x1632: fiat_p384_scalar_u1 = 0;
+ let (x1631, x1632) = fiat_p384_scalar_addcarryx_u32(x1630, x1561, x1607);
+ let mut x1633: u32 = 0;
+ let mut x1634: fiat_p384_scalar_u1 = 0;
+ let (x1633, x1634) = fiat_p384_scalar_addcarryx_u32(x1632, x1563, x1609);
+ let mut x1635: u32 = 0;
+ let mut x1636: fiat_p384_scalar_u1 = 0;
+ let (x1635, x1636) = fiat_p384_scalar_addcarryx_u32(x1634, x1565, x1611);
+ let mut x1637: u32 = 0;
+ let mut x1638: fiat_p384_scalar_u1 = 0;
+ let (x1637, x1638) = fiat_p384_scalar_addcarryx_u32(x1636, x1567, x1613);
+ let mut x1639: u32 = 0;
+ let mut x1640: fiat_p384_scalar_u1 = 0;
+ let (x1639, x1640) = fiat_p384_scalar_addcarryx_u32(x1638, x1569, x1615);
+ let mut x1641: u32 = 0;
+ let mut x1642: fiat_p384_scalar_u1 = 0;
+ let (x1641, x1642) = fiat_p384_scalar_addcarryx_u32(x1640, x1571, x1617);
+ let mut x1643: u32 = 0;
+ let mut x1644: u32 = 0;
+ let (x1643, x1644) = fiat_p384_scalar_mulx_u32(x1619, 0xe88fdc45);
+ let mut x1645: u32 = 0;
+ let mut x1646: u32 = 0;
+ let (x1645, x1646) = fiat_p384_scalar_mulx_u32(x1643, 0xffffffff);
+ let mut x1647: u32 = 0;
+ let mut x1648: u32 = 0;
+ let (x1647, x1648) = fiat_p384_scalar_mulx_u32(x1643, 0xffffffff);
+ let mut x1649: u32 = 0;
+ let mut x1650: u32 = 0;
+ let (x1649, x1650) = fiat_p384_scalar_mulx_u32(x1643, 0xffffffff);
+ let mut x1651: u32 = 0;
+ let mut x1652: u32 = 0;
+ let (x1651, x1652) = fiat_p384_scalar_mulx_u32(x1643, 0xffffffff);
+ let mut x1653: u32 = 0;
+ let mut x1654: u32 = 0;
+ let (x1653, x1654) = fiat_p384_scalar_mulx_u32(x1643, 0xffffffff);
+ let mut x1655: u32 = 0;
+ let mut x1656: u32 = 0;
+ let (x1655, x1656) = fiat_p384_scalar_mulx_u32(x1643, 0xffffffff);
+ let mut x1657: u32 = 0;
+ let mut x1658: u32 = 0;
+ let (x1657, x1658) = fiat_p384_scalar_mulx_u32(x1643, 0xc7634d81);
+ let mut x1659: u32 = 0;
+ let mut x1660: u32 = 0;
+ let (x1659, x1660) = fiat_p384_scalar_mulx_u32(x1643, 0xf4372ddf);
+ let mut x1661: u32 = 0;
+ let mut x1662: u32 = 0;
+ let (x1661, x1662) = fiat_p384_scalar_mulx_u32(x1643, 0x581a0db2);
+ let mut x1663: u32 = 0;
+ let mut x1664: u32 = 0;
+ let (x1663, x1664) = fiat_p384_scalar_mulx_u32(x1643, 0x48b0a77a);
+ let mut x1665: u32 = 0;
+ let mut x1666: u32 = 0;
+ let (x1665, x1666) = fiat_p384_scalar_mulx_u32(x1643, 0xecec196a);
+ let mut x1667: u32 = 0;
+ let mut x1668: u32 = 0;
+ let (x1667, x1668) = fiat_p384_scalar_mulx_u32(x1643, 0xccc52973);
+ let mut x1669: u32 = 0;
+ let mut x1670: fiat_p384_scalar_u1 = 0;
+ let (x1669, x1670) = fiat_p384_scalar_addcarryx_u32(0x0, x1668, x1665);
+ let mut x1671: u32 = 0;
+ let mut x1672: fiat_p384_scalar_u1 = 0;
+ let (x1671, x1672) = fiat_p384_scalar_addcarryx_u32(x1670, x1666, x1663);
+ let mut x1673: u32 = 0;
+ let mut x1674: fiat_p384_scalar_u1 = 0;
+ let (x1673, x1674) = fiat_p384_scalar_addcarryx_u32(x1672, x1664, x1661);
+ let mut x1675: u32 = 0;
+ let mut x1676: fiat_p384_scalar_u1 = 0;
+ let (x1675, x1676) = fiat_p384_scalar_addcarryx_u32(x1674, x1662, x1659);
+ let mut x1677: u32 = 0;
+ let mut x1678: fiat_p384_scalar_u1 = 0;
+ let (x1677, x1678) = fiat_p384_scalar_addcarryx_u32(x1676, x1660, x1657);
+ let mut x1679: u32 = 0;
+ let mut x1680: fiat_p384_scalar_u1 = 0;
+ let (x1679, x1680) = fiat_p384_scalar_addcarryx_u32(x1678, x1658, x1655);
+ let mut x1681: u32 = 0;
+ let mut x1682: fiat_p384_scalar_u1 = 0;
+ let (x1681, x1682) = fiat_p384_scalar_addcarryx_u32(x1680, x1656, x1653);
+ let mut x1683: u32 = 0;
+ let mut x1684: fiat_p384_scalar_u1 = 0;
+ let (x1683, x1684) = fiat_p384_scalar_addcarryx_u32(x1682, x1654, x1651);
+ let mut x1685: u32 = 0;
+ let mut x1686: fiat_p384_scalar_u1 = 0;
+ let (x1685, x1686) = fiat_p384_scalar_addcarryx_u32(x1684, x1652, x1649);
+ let mut x1687: u32 = 0;
+ let mut x1688: fiat_p384_scalar_u1 = 0;
+ let (x1687, x1688) = fiat_p384_scalar_addcarryx_u32(x1686, x1650, x1647);
+ let mut x1689: u32 = 0;
+ let mut x1690: fiat_p384_scalar_u1 = 0;
+ let (x1689, x1690) = fiat_p384_scalar_addcarryx_u32(x1688, x1648, x1645);
+ let mut x1691: u32 = 0;
+ let mut x1692: fiat_p384_scalar_u1 = 0;
+ let (x1691, x1692) = fiat_p384_scalar_addcarryx_u32(0x0, x1619, x1667);
+ let mut x1693: u32 = 0;
+ let mut x1694: fiat_p384_scalar_u1 = 0;
+ let (x1693, x1694) = fiat_p384_scalar_addcarryx_u32(x1692, x1621, x1669);
+ let mut x1695: u32 = 0;
+ let mut x1696: fiat_p384_scalar_u1 = 0;
+ let (x1695, x1696) = fiat_p384_scalar_addcarryx_u32(x1694, x1623, x1671);
+ let mut x1697: u32 = 0;
+ let mut x1698: fiat_p384_scalar_u1 = 0;
+ let (x1697, x1698) = fiat_p384_scalar_addcarryx_u32(x1696, x1625, x1673);
+ let mut x1699: u32 = 0;
+ let mut x1700: fiat_p384_scalar_u1 = 0;
+ let (x1699, x1700) = fiat_p384_scalar_addcarryx_u32(x1698, x1627, x1675);
+ let mut x1701: u32 = 0;
+ let mut x1702: fiat_p384_scalar_u1 = 0;
+ let (x1701, x1702) = fiat_p384_scalar_addcarryx_u32(x1700, x1629, x1677);
+ let mut x1703: u32 = 0;
+ let mut x1704: fiat_p384_scalar_u1 = 0;
+ let (x1703, x1704) = fiat_p384_scalar_addcarryx_u32(x1702, x1631, x1679);
+ let mut x1705: u32 = 0;
+ let mut x1706: fiat_p384_scalar_u1 = 0;
+ let (x1705, x1706) = fiat_p384_scalar_addcarryx_u32(x1704, x1633, x1681);
+ let mut x1707: u32 = 0;
+ let mut x1708: fiat_p384_scalar_u1 = 0;
+ let (x1707, x1708) = fiat_p384_scalar_addcarryx_u32(x1706, x1635, x1683);
+ let mut x1709: u32 = 0;
+ let mut x1710: fiat_p384_scalar_u1 = 0;
+ let (x1709, x1710) = fiat_p384_scalar_addcarryx_u32(x1708, x1637, x1685);
+ let mut x1711: u32 = 0;
+ let mut x1712: fiat_p384_scalar_u1 = 0;
+ let (x1711, x1712) = fiat_p384_scalar_addcarryx_u32(x1710, x1639, x1687);
+ let mut x1713: u32 = 0;
+ let mut x1714: fiat_p384_scalar_u1 = 0;
+ let (x1713, x1714) = fiat_p384_scalar_addcarryx_u32(x1712, x1641, x1689);
+ let mut x1715: u32 = 0;
+ let mut x1716: fiat_p384_scalar_u1 = 0;
+ let (x1715, x1716) = fiat_p384_scalar_addcarryx_u32(
+ x1714,
+ (((x1642 as u32) + (x1572 as u32)) + ((x1618 as u32) + x1574)),
+ ((x1690 as u32) + x1646),
+ );
+ let mut x1717: u32 = 0;
+ let mut x1718: fiat_p384_scalar_u1 = 0;
+ let (x1717, x1718) = fiat_p384_scalar_subborrowx_u32(0x0, x1693, 0xccc52973);
+ let mut x1719: u32 = 0;
+ let mut x1720: fiat_p384_scalar_u1 = 0;
+ let (x1719, x1720) = fiat_p384_scalar_subborrowx_u32(x1718, x1695, 0xecec196a);
+ let mut x1721: u32 = 0;
+ let mut x1722: fiat_p384_scalar_u1 = 0;
+ let (x1721, x1722) = fiat_p384_scalar_subborrowx_u32(x1720, x1697, 0x48b0a77a);
+ let mut x1723: u32 = 0;
+ let mut x1724: fiat_p384_scalar_u1 = 0;
+ let (x1723, x1724) = fiat_p384_scalar_subborrowx_u32(x1722, x1699, 0x581a0db2);
+ let mut x1725: u32 = 0;
+ let mut x1726: fiat_p384_scalar_u1 = 0;
+ let (x1725, x1726) = fiat_p384_scalar_subborrowx_u32(x1724, x1701, 0xf4372ddf);
+ let mut x1727: u32 = 0;
+ let mut x1728: fiat_p384_scalar_u1 = 0;
+ let (x1727, x1728) = fiat_p384_scalar_subborrowx_u32(x1726, x1703, 0xc7634d81);
+ let mut x1729: u32 = 0;
+ let mut x1730: fiat_p384_scalar_u1 = 0;
+ let (x1729, x1730) = fiat_p384_scalar_subborrowx_u32(x1728, x1705, 0xffffffff);
+ let mut x1731: u32 = 0;
+ let mut x1732: fiat_p384_scalar_u1 = 0;
+ let (x1731, x1732) = fiat_p384_scalar_subborrowx_u32(x1730, x1707, 0xffffffff);
+ let mut x1733: u32 = 0;
+ let mut x1734: fiat_p384_scalar_u1 = 0;
+ let (x1733, x1734) = fiat_p384_scalar_subborrowx_u32(x1732, x1709, 0xffffffff);
+ let mut x1735: u32 = 0;
+ let mut x1736: fiat_p384_scalar_u1 = 0;
+ let (x1735, x1736) = fiat_p384_scalar_subborrowx_u32(x1734, x1711, 0xffffffff);
+ let mut x1737: u32 = 0;
+ let mut x1738: fiat_p384_scalar_u1 = 0;
+ let (x1737, x1738) = fiat_p384_scalar_subborrowx_u32(x1736, x1713, 0xffffffff);
+ let mut x1739: u32 = 0;
+ let mut x1740: fiat_p384_scalar_u1 = 0;
+ let (x1739, x1740) = fiat_p384_scalar_subborrowx_u32(x1738, x1715, 0xffffffff);
+ let mut x1741: u32 = 0;
+ let mut x1742: fiat_p384_scalar_u1 = 0;
+ let (x1741, x1742) = fiat_p384_scalar_subborrowx_u32(x1740, (x1716 as u32), (0x0 as u32));
+ let mut x1743: u32 = 0;
+ let (x1743) = fiat_p384_scalar_cmovznz_u32(x1742, x1717, x1693);
+ let mut x1744: u32 = 0;
+ let (x1744) = fiat_p384_scalar_cmovznz_u32(x1742, x1719, x1695);
+ let mut x1745: u32 = 0;
+ let (x1745) = fiat_p384_scalar_cmovznz_u32(x1742, x1721, x1697);
+ let mut x1746: u32 = 0;
+ let (x1746) = fiat_p384_scalar_cmovznz_u32(x1742, x1723, x1699);
+ let mut x1747: u32 = 0;
+ let (x1747) = fiat_p384_scalar_cmovznz_u32(x1742, x1725, x1701);
+ let mut x1748: u32 = 0;
+ let (x1748) = fiat_p384_scalar_cmovznz_u32(x1742, x1727, x1703);
+ let mut x1749: u32 = 0;
+ let (x1749) = fiat_p384_scalar_cmovznz_u32(x1742, x1729, x1705);
+ let mut x1750: u32 = 0;
+ let (x1750) = fiat_p384_scalar_cmovznz_u32(x1742, x1731, x1707);
+ let mut x1751: u32 = 0;
+ let (x1751) = fiat_p384_scalar_cmovznz_u32(x1742, x1733, x1709);
+ let mut x1752: u32 = 0;
+ let (x1752) = fiat_p384_scalar_cmovznz_u32(x1742, x1735, x1711);
+ let mut x1753: u32 = 0;
+ let (x1753) = fiat_p384_scalar_cmovznz_u32(x1742, x1737, x1713);
+ let mut x1754: u32 = 0;
+ let (x1754) = fiat_p384_scalar_cmovznz_u32(x1742, x1739, x1715);
+ out1[0] = x1743;
+ out1[1] = x1744;
+ out1[2] = x1745;
+ out1[3] = x1746;
+ out1[4] = x1747;
+ out1[5] = x1748;
+ out1[6] = x1749;
+ out1[7] = x1750;
+ out1[8] = x1751;
+ out1[9] = x1752;
+ out1[10] = x1753;
+ out1[11] = x1754;
+ out1
+}
+#[doc = " The function fiat_p384_scalar_nonzero outputs a single non-zero word if the input is non-zero and zero otherwise."]
+#[doc = ""]
+#[doc = " Preconditions:"]
+#[doc = " 0 ≤ eval arg1 < m"]
+#[doc = " Postconditions:"]
+#[doc = " out1 = 0 ↔ eval (from_montgomery arg1) mod m = 0"]
+#[doc = ""]
+#[doc = " Input Bounds:"]
+#[doc = " arg1: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]]"]
+#[doc = " Output Bounds:"]
+#[doc = " out1: [0x0 ~> 0xffffffff]"]
+#[inline]
+pub const fn fiat_p384_scalar_nonzero(arg1: &[u32; 12]) -> u32 {
+ let mut out1: u32 = 0;
+ let x1: u32 = ((arg1[0])
+ | ((arg1[1])
+ | ((arg1[2])
+ | ((arg1[3])
+ | ((arg1[4])
+ | ((arg1[5])
+ | ((arg1[6])
+ | ((arg1[7])
+ | ((arg1[8]) | ((arg1[9]) | ((arg1[10]) | (arg1[11]))))))))))));
+ out1 = x1;
+ out1
+}
+#[doc = " The function fiat_p384_scalar_selectznz is a multi-limb conditional select."]
+#[doc = ""]
+#[doc = " Postconditions:"]
+#[doc = " out1 = (if arg1 = 0 then arg2 else arg3)"]
+#[doc = ""]
+#[doc = " Input Bounds:"]
+#[doc = " arg1: [0x0 ~> 0x1]"]
+#[doc = " arg2: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]]"]
+#[doc = " arg3: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]]"]
+#[doc = " Output Bounds:"]
+#[doc = " out1: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]]"]
+#[inline]
+pub const fn fiat_p384_scalar_selectznz(
+ arg1: fiat_p384_scalar_u1,
+ arg2: &[u32; 12],
+ arg3: &[u32; 12],
+) -> [u32; 12] {
+ let mut out1: [u32; 12] = [0; 12];
+ let mut x1: u32 = 0;
+ let (x1) = fiat_p384_scalar_cmovznz_u32(arg1, (arg2[0]), (arg3[0]));
+ let mut x2: u32 = 0;
+ let (x2) = fiat_p384_scalar_cmovznz_u32(arg1, (arg2[1]), (arg3[1]));
+ let mut x3: u32 = 0;
+ let (x3) = fiat_p384_scalar_cmovznz_u32(arg1, (arg2[2]), (arg3[2]));
+ let mut x4: u32 = 0;
+ let (x4) = fiat_p384_scalar_cmovznz_u32(arg1, (arg2[3]), (arg3[3]));
+ let mut x5: u32 = 0;
+ let (x5) = fiat_p384_scalar_cmovznz_u32(arg1, (arg2[4]), (arg3[4]));
+ let mut x6: u32 = 0;
+ let (x6) = fiat_p384_scalar_cmovznz_u32(arg1, (arg2[5]), (arg3[5]));
+ let mut x7: u32 = 0;
+ let (x7) = fiat_p384_scalar_cmovznz_u32(arg1, (arg2[6]), (arg3[6]));
+ let mut x8: u32 = 0;
+ let (x8) = fiat_p384_scalar_cmovznz_u32(arg1, (arg2[7]), (arg3[7]));
+ let mut x9: u32 = 0;
+ let (x9) = fiat_p384_scalar_cmovznz_u32(arg1, (arg2[8]), (arg3[8]));
+ let mut x10: u32 = 0;
+ let (x10) = fiat_p384_scalar_cmovznz_u32(arg1, (arg2[9]), (arg3[9]));
+ let mut x11: u32 = 0;
+ let (x11) = fiat_p384_scalar_cmovznz_u32(arg1, (arg2[10]), (arg3[10]));
+ let mut x12: u32 = 0;
+ let (x12) = fiat_p384_scalar_cmovznz_u32(arg1, (arg2[11]), (arg3[11]));
+ 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;
+ out1[9] = x10;
+ out1[10] = x11;
+ out1[11] = x12;
+ out1
+}
+#[doc = " The function fiat_p384_scalar_to_bytes serializes a field element NOT in the Montgomery domain to bytes in little-endian order."]
+#[doc = ""]
+#[doc = " Preconditions:"]
+#[doc = " 0 ≤ eval arg1 < m"]
+#[doc = " Postconditions:"]
+#[doc = " out1 = map (λ x, ⌊((eval arg1 mod m) mod 2^(8 * (x + 1))) / 2^(8 * x)⌋) [0..47]"]
+#[doc = ""]
+#[doc = " Input Bounds:"]
+#[doc = " arg1: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]]"]
+#[doc = " Output Bounds:"]
+#[doc = " 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]]"]
+#[inline]
+pub const fn fiat_p384_scalar_to_bytes(arg1: &[u32; 12]) -> [u8; 48] {
+ let mut out1: [u8; 48] = [0; 48];
+ let x1: u32 = (arg1[11]);
+ let x2: u32 = (arg1[10]);
+ let x3: u32 = (arg1[9]);
+ let x4: u32 = (arg1[8]);
+ let x5: u32 = (arg1[7]);
+ let x6: u32 = (arg1[6]);
+ let x7: u32 = (arg1[5]);
+ let x8: u32 = (arg1[4]);
+ let x9: u32 = (arg1[3]);
+ let x10: u32 = (arg1[2]);
+ let x11: u32 = (arg1[1]);
+ let x12: u32 = (arg1[0]);
+ let x13: u8 = ((x12 & (0xff as u32)) as u8);
+ let x14: u32 = (x12 >> 8);
+ let x15: u8 = ((x14 & (0xff as u32)) as u8);
+ let x16: u32 = (x14 >> 8);
+ let x17: u8 = ((x16 & (0xff as u32)) as u8);
+ let x18: u8 = ((x16 >> 8) as u8);
+ let x19: u8 = ((x11 & (0xff as u32)) as u8);
+ let x20: u32 = (x11 >> 8);
+ let x21: u8 = ((x20 & (0xff as u32)) as u8);
+ let x22: u32 = (x20 >> 8);
+ let x23: u8 = ((x22 & (0xff as u32)) as u8);
+ let x24: u8 = ((x22 >> 8) as u8);
+ let x25: u8 = ((x10 & (0xff as u32)) as u8);
+ let x26: u32 = (x10 >> 8);
+ let x27: u8 = ((x26 & (0xff as u32)) as u8);
+ let x28: u32 = (x26 >> 8);
+ let x29: u8 = ((x28 & (0xff as u32)) as u8);
+ let x30: u8 = ((x28 >> 8) as u8);
+ let x31: u8 = ((x9 & (0xff as u32)) as u8);
+ let x32: u32 = (x9 >> 8);
+ let x33: u8 = ((x32 & (0xff as u32)) as u8);
+ let x34: u32 = (x32 >> 8);
+ let x35: u8 = ((x34 & (0xff as u32)) as u8);
+ let x36: u8 = ((x34 >> 8) as u8);
+ let x37: u8 = ((x8 & (0xff as u32)) as u8);
+ let x38: u32 = (x8 >> 8);
+ let x39: u8 = ((x38 & (0xff as u32)) as u8);
+ let x40: u32 = (x38 >> 8);
+ let x41: u8 = ((x40 & (0xff as u32)) as u8);
+ let x42: u8 = ((x40 >> 8) as u8);
+ let x43: u8 = ((x7 & (0xff as u32)) as u8);
+ let x44: u32 = (x7 >> 8);
+ let x45: u8 = ((x44 & (0xff as u32)) as u8);
+ let x46: u32 = (x44 >> 8);
+ let x47: u8 = ((x46 & (0xff as u32)) as u8);
+ let x48: u8 = ((x46 >> 8) as u8);
+ let x49: u8 = ((x6 & (0xff as u32)) as u8);
+ let x50: u32 = (x6 >> 8);
+ let x51: u8 = ((x50 & (0xff as u32)) as u8);
+ let x52: u32 = (x50 >> 8);
+ let x53: u8 = ((x52 & (0xff as u32)) as u8);
+ let x54: u8 = ((x52 >> 8) as u8);
+ let x55: u8 = ((x5 & (0xff as u32)) as u8);
+ let x56: u32 = (x5 >> 8);
+ let x57: u8 = ((x56 & (0xff as u32)) as u8);
+ let x58: u32 = (x56 >> 8);
+ let x59: u8 = ((x58 & (0xff as u32)) as u8);
+ let x60: u8 = ((x58 >> 8) as u8);
+ let x61: u8 = ((x4 & (0xff as u32)) as u8);
+ let x62: u32 = (x4 >> 8);
+ let x63: u8 = ((x62 & (0xff as u32)) as u8);
+ let x64: u32 = (x62 >> 8);
+ let x65: u8 = ((x64 & (0xff as u32)) as u8);
+ let x66: u8 = ((x64 >> 8) as u8);
+ let x67: u8 = ((x3 & (0xff as u32)) as u8);
+ let x68: u32 = (x3 >> 8);
+ let x69: u8 = ((x68 & (0xff as u32)) as u8);
+ let x70: u32 = (x68 >> 8);
+ let x71: u8 = ((x70 & (0xff as u32)) as u8);
+ let x72: u8 = ((x70 >> 8) as u8);
+ let x73: u8 = ((x2 & (0xff as u32)) as u8);
+ let x74: u32 = (x2 >> 8);
+ let x75: u8 = ((x74 & (0xff as u32)) as u8);
+ let x76: u32 = (x74 >> 8);
+ let x77: u8 = ((x76 & (0xff as u32)) as u8);
+ let x78: u8 = ((x76 >> 8) as u8);
+ let x79: u8 = ((x1 & (0xff as u32)) as u8);
+ let x80: u32 = (x1 >> 8);
+ let x81: u8 = ((x80 & (0xff as u32)) as u8);
+ let x82: u32 = (x80 >> 8);
+ let x83: u8 = ((x82 & (0xff as u32)) as u8);
+ let x84: u8 = ((x82 >> 8) as u8);
+ out1[0] = x13;
+ out1[1] = x15;
+ out1[2] = x17;
+ out1[3] = x18;
+ out1[4] = x19;
+ out1[5] = x21;
+ out1[6] = x23;
+ out1[7] = x24;
+ out1[8] = x25;
+ out1[9] = x27;
+ out1[10] = x29;
+ out1[11] = x30;
+ out1[12] = x31;
+ out1[13] = x33;
+ out1[14] = x35;
+ out1[15] = x36;
+ out1[16] = x37;
+ out1[17] = x39;
+ out1[18] = x41;
+ out1[19] = x42;
+ out1[20] = x43;
+ out1[21] = x45;
+ out1[22] = x47;
+ out1[23] = x48;
+ out1[24] = x49;
+ out1[25] = x51;
+ out1[26] = x53;
+ out1[27] = x54;
+ out1[28] = x55;
+ out1[29] = x57;
+ out1[30] = x59;
+ out1[31] = x60;
+ out1[32] = x61;
+ out1[33] = x63;
+ out1[34] = x65;
+ out1[35] = x66;
+ out1[36] = x67;
+ out1[37] = x69;
+ out1[38] = x71;
+ out1[39] = x72;
+ out1[40] = x73;
+ out1[41] = x75;
+ out1[42] = x77;
+ out1[43] = x78;
+ out1[44] = x79;
+ out1[45] = x81;
+ out1[46] = x83;
+ out1[47] = x84;
+ out1
+}
+#[doc = " The function fiat_p384_scalar_from_bytes deserializes a field element NOT in the Montgomery domain from bytes in little-endian order."]
+#[doc = ""]
+#[doc = " Preconditions:"]
+#[doc = " 0 ≤ bytes_eval arg1 < m"]
+#[doc = " Postconditions:"]
+#[doc = " eval out1 mod m = bytes_eval arg1 mod m"]
+#[doc = " 0 ≤ eval out1 < m"]
+#[doc = ""]
+#[doc = " Input Bounds:"]
+#[doc = " 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]]"]
+#[doc = " Output Bounds:"]
+#[doc = " out1: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]]"]
+#[inline]
+pub const fn fiat_p384_scalar_from_bytes(arg1: &[u8; 48]) -> [u32; 12] {
+ let mut out1: [u32; 12] = [0; 12];
+ let x1: u32 = (((arg1[47]) as u32) << 24);
+ let x2: u32 = (((arg1[46]) as u32) << 16);
+ let x3: u32 = (((arg1[45]) as u32) << 8);
+ let x4: u8 = (arg1[44]);
+ let x5: u32 = (((arg1[43]) as u32) << 24);
+ let x6: u32 = (((arg1[42]) as u32) << 16);
+ let x7: u32 = (((arg1[41]) as u32) << 8);
+ let x8: u8 = (arg1[40]);
+ let x9: u32 = (((arg1[39]) as u32) << 24);
+ let x10: u32 = (((arg1[38]) as u32) << 16);
+ let x11: u32 = (((arg1[37]) as u32) << 8);
+ let x12: u8 = (arg1[36]);
+ let x13: u32 = (((arg1[35]) as u32) << 24);
+ let x14: u32 = (((arg1[34]) as u32) << 16);
+ let x15: u32 = (((arg1[33]) as u32) << 8);
+ let x16: u8 = (arg1[32]);
+ let x17: u32 = (((arg1[31]) as u32) << 24);
+ let x18: u32 = (((arg1[30]) as u32) << 16);
+ let x19: u32 = (((arg1[29]) as u32) << 8);
+ let x20: u8 = (arg1[28]);
+ let x21: u32 = (((arg1[27]) as u32) << 24);
+ let x22: u32 = (((arg1[26]) as u32) << 16);
+ let x23: u32 = (((arg1[25]) as u32) << 8);
+ let x24: u8 = (arg1[24]);
+ let x25: u32 = (((arg1[23]) as u32) << 24);
+ let x26: u32 = (((arg1[22]) as u32) << 16);
+ let x27: u32 = (((arg1[21]) as u32) << 8);
+ let x28: u8 = (arg1[20]);
+ let x29: u32 = (((arg1[19]) as u32) << 24);
+ let x30: u32 = (((arg1[18]) as u32) << 16);
+ let x31: u32 = (((arg1[17]) as u32) << 8);
+ let x32: u8 = (arg1[16]);
+ let x33: u32 = (((arg1[15]) as u32) << 24);
+ let x34: u32 = (((arg1[14]) as u32) << 16);
+ let x35: u32 = (((arg1[13]) as u32) << 8);
+ let x36: u8 = (arg1[12]);
+ let x37: u32 = (((arg1[11]) as u32) << 24);
+ let x38: u32 = (((arg1[10]) as u32) << 16);
+ let x39: u32 = (((arg1[9]) as u32) << 8);
+ let x40: u8 = (arg1[8]);
+ let x41: u32 = (((arg1[7]) as u32) << 24);
+ let x42: u32 = (((arg1[6]) as u32) << 16);
+ let x43: u32 = (((arg1[5]) as u32) << 8);
+ let x44: u8 = (arg1[4]);
+ let x45: u32 = (((arg1[3]) as u32) << 24);
+ let x46: u32 = (((arg1[2]) as u32) << 16);
+ let x47: u32 = (((arg1[1]) as u32) << 8);
+ let x48: u8 = (arg1[0]);
+ let x49: u32 = (x47 + (x48 as u32));
+ let x50: u32 = (x46 + x49);
+ let x51: u32 = (x45 + x50);
+ let x52: u32 = (x43 + (x44 as u32));
+ let x53: u32 = (x42 + x52);
+ let x54: u32 = (x41 + x53);
+ let x55: u32 = (x39 + (x40 as u32));
+ let x56: u32 = (x38 + x55);
+ let x57: u32 = (x37 + x56);
+ let x58: u32 = (x35 + (x36 as u32));
+ let x59: u32 = (x34 + x58);
+ let x60: u32 = (x33 + x59);
+ let x61: u32 = (x31 + (x32 as u32));
+ let x62: u32 = (x30 + x61);
+ let x63: u32 = (x29 + x62);
+ let x64: u32 = (x27 + (x28 as u32));
+ let x65: u32 = (x26 + x64);
+ let x66: u32 = (x25 + x65);
+ let x67: u32 = (x23 + (x24 as u32));
+ let x68: u32 = (x22 + x67);
+ let x69: u32 = (x21 + x68);
+ let x70: u32 = (x19 + (x20 as u32));
+ let x71: u32 = (x18 + x70);
+ let x72: u32 = (x17 + x71);
+ let x73: u32 = (x15 + (x16 as u32));
+ let x74: u32 = (x14 + x73);
+ let x75: u32 = (x13 + x74);
+ let x76: u32 = (x11 + (x12 as u32));
+ let x77: u32 = (x10 + x76);
+ let x78: u32 = (x9 + x77);
+ let x79: u32 = (x7 + (x8 as u32));
+ let x80: u32 = (x6 + x79);
+ let x81: u32 = (x5 + x80);
+ let x82: u32 = (x3 + (x4 as u32));
+ let x83: u32 = (x2 + x82);
+ let x84: u32 = (x1 + x83);
+ out1[0] = x51;
+ out1[1] = x54;
+ out1[2] = x57;
+ out1[3] = x60;
+ out1[4] = x63;
+ out1[5] = x66;
+ out1[6] = x69;
+ out1[7] = x72;
+ out1[8] = x75;
+ out1[9] = x78;
+ out1[10] = x81;
+ out1[11] = x84;
+ out1
+}
+#[doc = " The function fiat_p384_scalar_set_one returns the field element one in the Montgomery domain."]
+#[doc = ""]
+#[doc = " Postconditions:"]
+#[doc = " eval (from_montgomery out1) mod m = 1 mod m"]
+#[doc = " 0 ≤ eval out1 < m"]
+#[doc = ""]
+#[inline]
+pub const fn fiat_p384_scalar_set_one() -> fiat_p384_scalar_montgomery_domain_field_element {
+ let mut out1: fiat_p384_scalar_montgomery_domain_field_element = [0; 12];
+ out1[0] = 0x333ad68d;
+ out1[1] = 0x1313e695;
+ out1[2] = 0xb74f5885;
+ out1[3] = 0xa7e5f24d;
+ out1[4] = 0xbc8d220;
+ out1[5] = 0x389cb27e;
+ out1[6] = (0x0 as u32);
+ out1[7] = (0x0 as u32);
+ out1[8] = (0x0 as u32);
+ out1[9] = (0x0 as u32);
+ out1[10] = (0x0 as u32);
+ out1[11] = (0x0 as u32);
+ out1
+}
+#[doc = " The function fiat_p384_scalar_msat returns the saturated representation of the prime modulus."]
+#[doc = ""]
+#[doc = " Postconditions:"]
+#[doc = " twos_complement_eval out1 = m"]
+#[doc = " 0 ≤ eval out1 < m"]
+#[doc = ""]
+#[doc = " Output Bounds:"]
+#[doc = " out1: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]]"]
+#[inline]
+pub const fn fiat_p384_scalar_msat() -> [u32; 13] {
+ let mut out1: [u32; 13] = [0; 13];
+ out1[0] = 0xccc52973;
+ out1[1] = 0xecec196a;
+ out1[2] = 0x48b0a77a;
+ out1[3] = 0x581a0db2;
+ out1[4] = 0xf4372ddf;
+ out1[5] = 0xc7634d81;
+ out1[6] = 0xffffffff;
+ out1[7] = 0xffffffff;
+ out1[8] = 0xffffffff;
+ out1[9] = 0xffffffff;
+ out1[10] = 0xffffffff;
+ out1[11] = 0xffffffff;
+ out1[12] = (0x0 as u32);
+ out1
+}
+#[doc = " The function fiat_p384_scalar_divstep computes a divstep."]
+#[doc = ""]
+#[doc = " Preconditions:"]
+#[doc = " 0 ≤ eval arg4 < m"]
+#[doc = " 0 ≤ eval arg5 < m"]
+#[doc = " Postconditions:"]
+#[doc = " out1 = (if 0 < arg1 ∧ (twos_complement_eval arg3) is odd then 1 - arg1 else 1 + arg1)"]
+#[doc = " twos_complement_eval out2 = (if 0 < arg1 ∧ (twos_complement_eval arg3) is odd then twos_complement_eval arg3 else twos_complement_eval arg2)"]
+#[doc = " twos_complement_eval out3 = (if 0 < arg1 ∧ (twos_complement_eval arg3) is odd then ⌊(twos_complement_eval arg3 - twos_complement_eval arg2) / 2⌋ else ⌊(twos_complement_eval arg3 + (twos_complement_eval arg3 mod 2) * twos_complement_eval arg2) / 2⌋)"]
+#[doc = " eval (from_montgomery out4) mod m = (if 0 < arg1 ∧ (twos_complement_eval arg3) is odd then (2 * eval (from_montgomery arg5)) mod m else (2 * eval (from_montgomery arg4)) mod m)"]
+#[doc = " eval (from_montgomery out5) mod m = (if 0 < arg1 ∧ (twos_complement_eval arg3) is odd then (eval (from_montgomery arg4) - eval (from_montgomery arg4)) mod m else (eval (from_montgomery arg5) + (twos_complement_eval arg3 mod 2) * eval (from_montgomery arg4)) mod m)"]
+#[doc = " 0 ≤ eval out5 < m"]
+#[doc = " 0 ≤ eval out5 < m"]
+#[doc = " 0 ≤ eval out2 < m"]
+#[doc = " 0 ≤ eval out3 < m"]
+#[doc = ""]
+#[doc = " Input Bounds:"]
+#[doc = " arg1: [0x0 ~> 0xffffffff]"]
+#[doc = " arg2: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]]"]
+#[doc = " arg3: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]]"]
+#[doc = " arg4: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]]"]
+#[doc = " arg5: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]]"]
+#[doc = " Output Bounds:"]
+#[doc = " out1: [0x0 ~> 0xffffffff]"]
+#[doc = " out2: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]]"]
+#[doc = " out3: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]]"]
+#[doc = " out4: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]]"]
+#[doc = " out5: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]]"]
+#[inline]
+pub const fn fiat_p384_scalar_divstep(
+ arg1: u32,
+ arg2: &[u32; 13],
+ arg3: &[u32; 13],
+ arg4: &[u32; 12],
+ arg5: &[u32; 12],
+) -> (u32, [u32; 13], [u32; 13], [u32; 12], [u32; 12]) {
+ let mut out1: u32 = 0;
+ let mut out2: [u32; 13] = [0; 13];
+ let mut out3: [u32; 13] = [0; 13];
+ let mut out4: [u32; 12] = [0; 12];
+ let mut out5: [u32; 12] = [0; 12];
+ let mut x1: u32 = 0;
+ let mut x2: fiat_p384_scalar_u1 = 0;
+ let (x1, x2) = fiat_p384_scalar_addcarryx_u32(0x0, (!arg1), (0x1 as u32));
+ let x3: fiat_p384_scalar_u1 =
+ (((x1 >> 31) as fiat_p384_scalar_u1) & (((arg3[0]) & (0x1 as u32)) as fiat_p384_scalar_u1));
+ let mut x4: u32 = 0;
+ let mut x5: fiat_p384_scalar_u1 = 0;
+ let (x4, x5) = fiat_p384_scalar_addcarryx_u32(0x0, (!arg1), (0x1 as u32));
+ let mut x6: u32 = 0;
+ let (x6) = fiat_p384_scalar_cmovznz_u32(x3, arg1, x4);
+ let mut x7: u32 = 0;
+ let (x7) = fiat_p384_scalar_cmovznz_u32(x3, (arg2[0]), (arg3[0]));
+ let mut x8: u32 = 0;
+ let (x8) = fiat_p384_scalar_cmovznz_u32(x3, (arg2[1]), (arg3[1]));
+ let mut x9: u32 = 0;
+ let (x9) = fiat_p384_scalar_cmovznz_u32(x3, (arg2[2]), (arg3[2]));
+ let mut x10: u32 = 0;
+ let (x10) = fiat_p384_scalar_cmovznz_u32(x3, (arg2[3]), (arg3[3]));
+ let mut x11: u32 = 0;
+ let (x11) = fiat_p384_scalar_cmovznz_u32(x3, (arg2[4]), (arg3[4]));
+ let mut x12: u32 = 0;
+ let (x12) = fiat_p384_scalar_cmovznz_u32(x3, (arg2[5]), (arg3[5]));
+ let mut x13: u32 = 0;
+ let (x13) = fiat_p384_scalar_cmovznz_u32(x3, (arg2[6]), (arg3[6]));
+ let mut x14: u32 = 0;
+ let (x14) = fiat_p384_scalar_cmovznz_u32(x3, (arg2[7]), (arg3[7]));
+ let mut x15: u32 = 0;
+ let (x15) = fiat_p384_scalar_cmovznz_u32(x3, (arg2[8]), (arg3[8]));
+ let mut x16: u32 = 0;
+ let (x16) = fiat_p384_scalar_cmovznz_u32(x3, (arg2[9]), (arg3[9]));
+ let mut x17: u32 = 0;
+ let (x17) = fiat_p384_scalar_cmovznz_u32(x3, (arg2[10]), (arg3[10]));
+ let mut x18: u32 = 0;
+ let (x18) = fiat_p384_scalar_cmovznz_u32(x3, (arg2[11]), (arg3[11]));
+ let mut x19: u32 = 0;
+ let (x19) = fiat_p384_scalar_cmovznz_u32(x3, (arg2[12]), (arg3[12]));
+ let mut x20: u32 = 0;
+ let mut x21: fiat_p384_scalar_u1 = 0;
+ let (x20, x21) = fiat_p384_scalar_addcarryx_u32(0x0, (0x1 as u32), (!(arg2[0])));
+ let mut x22: u32 = 0;
+ let mut x23: fiat_p384_scalar_u1 = 0;
+ let (x22, x23) = fiat_p384_scalar_addcarryx_u32(x21, (0x0 as u32), (!(arg2[1])));
+ let mut x24: u32 = 0;
+ let mut x25: fiat_p384_scalar_u1 = 0;
+ let (x24, x25) = fiat_p384_scalar_addcarryx_u32(x23, (0x0 as u32), (!(arg2[2])));
+ let mut x26: u32 = 0;
+ let mut x27: fiat_p384_scalar_u1 = 0;
+ let (x26, x27) = fiat_p384_scalar_addcarryx_u32(x25, (0x0 as u32), (!(arg2[3])));
+ let mut x28: u32 = 0;
+ let mut x29: fiat_p384_scalar_u1 = 0;
+ let (x28, x29) = fiat_p384_scalar_addcarryx_u32(x27, (0x0 as u32), (!(arg2[4])));
+ let mut x30: u32 = 0;
+ let mut x31: fiat_p384_scalar_u1 = 0;
+ let (x30, x31) = fiat_p384_scalar_addcarryx_u32(x29, (0x0 as u32), (!(arg2[5])));
+ let mut x32: u32 = 0;
+ let mut x33: fiat_p384_scalar_u1 = 0;
+ let (x32, x33) = fiat_p384_scalar_addcarryx_u32(x31, (0x0 as u32), (!(arg2[6])));
+ let mut x34: u32 = 0;
+ let mut x35: fiat_p384_scalar_u1 = 0;
+ let (x34, x35) = fiat_p384_scalar_addcarryx_u32(x33, (0x0 as u32), (!(arg2[7])));
+ let mut x36: u32 = 0;
+ let mut x37: fiat_p384_scalar_u1 = 0;
+ let (x36, x37) = fiat_p384_scalar_addcarryx_u32(x35, (0x0 as u32), (!(arg2[8])));
+ let mut x38: u32 = 0;
+ let mut x39: fiat_p384_scalar_u1 = 0;
+ let (x38, x39) = fiat_p384_scalar_addcarryx_u32(x37, (0x0 as u32), (!(arg2[9])));
+ let mut x40: u32 = 0;
+ let mut x41: fiat_p384_scalar_u1 = 0;
+ let (x40, x41) = fiat_p384_scalar_addcarryx_u32(x39, (0x0 as u32), (!(arg2[10])));
+ let mut x42: u32 = 0;
+ let mut x43: fiat_p384_scalar_u1 = 0;
+ let (x42, x43) = fiat_p384_scalar_addcarryx_u32(x41, (0x0 as u32), (!(arg2[11])));
+ let mut x44: u32 = 0;
+ let mut x45: fiat_p384_scalar_u1 = 0;
+ let (x44, x45) = fiat_p384_scalar_addcarryx_u32(x43, (0x0 as u32), (!(arg2[12])));
+ let mut x46: u32 = 0;
+ let (x46) = fiat_p384_scalar_cmovznz_u32(x3, (arg3[0]), x20);
+ let mut x47: u32 = 0;
+ let (x47) = fiat_p384_scalar_cmovznz_u32(x3, (arg3[1]), x22);
+ let mut x48: u32 = 0;
+ let (x48) = fiat_p384_scalar_cmovznz_u32(x3, (arg3[2]), x24);
+ let mut x49: u32 = 0;
+ let (x49) = fiat_p384_scalar_cmovznz_u32(x3, (arg3[3]), x26);
+ let mut x50: u32 = 0;
+ let (x50) = fiat_p384_scalar_cmovznz_u32(x3, (arg3[4]), x28);
+ let mut x51: u32 = 0;
+ let (x51) = fiat_p384_scalar_cmovznz_u32(x3, (arg3[5]), x30);
+ let mut x52: u32 = 0;
+ let (x52) = fiat_p384_scalar_cmovznz_u32(x3, (arg3[6]), x32);
+ let mut x53: u32 = 0;
+ let (x53) = fiat_p384_scalar_cmovznz_u32(x3, (arg3[7]), x34);
+ let mut x54: u32 = 0;
+ let (x54) = fiat_p384_scalar_cmovznz_u32(x3, (arg3[8]), x36);
+ let mut x55: u32 = 0;
+ let (x55) = fiat_p384_scalar_cmovznz_u32(x3, (arg3[9]), x38);
+ let mut x56: u32 = 0;
+ let (x56) = fiat_p384_scalar_cmovznz_u32(x3, (arg3[10]), x40);
+ let mut x57: u32 = 0;
+ let (x57) = fiat_p384_scalar_cmovznz_u32(x3, (arg3[11]), x42);
+ let mut x58: u32 = 0;
+ let (x58) = fiat_p384_scalar_cmovznz_u32(x3, (arg3[12]), x44);
+ let mut x59: u32 = 0;
+ let (x59) = fiat_p384_scalar_cmovznz_u32(x3, (arg4[0]), (arg5[0]));
+ let mut x60: u32 = 0;
+ let (x60) = fiat_p384_scalar_cmovznz_u32(x3, (arg4[1]), (arg5[1]));
+ let mut x61: u32 = 0;
+ let (x61) = fiat_p384_scalar_cmovznz_u32(x3, (arg4[2]), (arg5[2]));
+ let mut x62: u32 = 0;
+ let (x62) = fiat_p384_scalar_cmovznz_u32(x3, (arg4[3]), (arg5[3]));
+ let mut x63: u32 = 0;
+ let (x63) = fiat_p384_scalar_cmovznz_u32(x3, (arg4[4]), (arg5[4]));
+ let mut x64: u32 = 0;
+ let (x64) = fiat_p384_scalar_cmovznz_u32(x3, (arg4[5]), (arg5[5]));
+ let mut x65: u32 = 0;
+ let (x65) = fiat_p384_scalar_cmovznz_u32(x3, (arg4[6]), (arg5[6]));
+ let mut x66: u32 = 0;
+ let (x66) = fiat_p384_scalar_cmovznz_u32(x3, (arg4[7]), (arg5[7]));
+ let mut x67: u32 = 0;
+ let (x67) = fiat_p384_scalar_cmovznz_u32(x3, (arg4[8]), (arg5[8]));
+ let mut x68: u32 = 0;
+ let (x68) = fiat_p384_scalar_cmovznz_u32(x3, (arg4[9]), (arg5[9]));
+ let mut x69: u32 = 0;
+ let (x69) = fiat_p384_scalar_cmovznz_u32(x3, (arg4[10]), (arg5[10]));
+ let mut x70: u32 = 0;
+ let (x70) = fiat_p384_scalar_cmovznz_u32(x3, (arg4[11]), (arg5[11]));
+ let mut x71: u32 = 0;
+ let mut x72: fiat_p384_scalar_u1 = 0;
+ let (x71, x72) = fiat_p384_scalar_addcarryx_u32(0x0, x59, x59);
+ let mut x73: u32 = 0;
+ let mut x74: fiat_p384_scalar_u1 = 0;
+ let (x73, x74) = fiat_p384_scalar_addcarryx_u32(x72, x60, x60);
+ let mut x75: u32 = 0;
+ let mut x76: fiat_p384_scalar_u1 = 0;
+ let (x75, x76) = fiat_p384_scalar_addcarryx_u32(x74, x61, x61);
+ let mut x77: u32 = 0;
+ let mut x78: fiat_p384_scalar_u1 = 0;
+ let (x77, x78) = fiat_p384_scalar_addcarryx_u32(x76, x62, x62);
+ let mut x79: u32 = 0;
+ let mut x80: fiat_p384_scalar_u1 = 0;
+ let (x79, x80) = fiat_p384_scalar_addcarryx_u32(x78, x63, x63);
+ let mut x81: u32 = 0;
+ let mut x82: fiat_p384_scalar_u1 = 0;
+ let (x81, x82) = fiat_p384_scalar_addcarryx_u32(x80, x64, x64);
+ let mut x83: u32 = 0;
+ let mut x84: fiat_p384_scalar_u1 = 0;
+ let (x83, x84) = fiat_p384_scalar_addcarryx_u32(x82, x65, x65);
+ let mut x85: u32 = 0;
+ let mut x86: fiat_p384_scalar_u1 = 0;
+ let (x85, x86) = fiat_p384_scalar_addcarryx_u32(x84, x66, x66);
+ let mut x87: u32 = 0;
+ let mut x88: fiat_p384_scalar_u1 = 0;
+ let (x87, x88) = fiat_p384_scalar_addcarryx_u32(x86, x67, x67);
+ let mut x89: u32 = 0;
+ let mut x90: fiat_p384_scalar_u1 = 0;
+ let (x89, x90) = fiat_p384_scalar_addcarryx_u32(x88, x68, x68);
+ let mut x91: u32 = 0;
+ let mut x92: fiat_p384_scalar_u1 = 0;
+ let (x91, x92) = fiat_p384_scalar_addcarryx_u32(x90, x69, x69);
+ let mut x93: u32 = 0;
+ let mut x94: fiat_p384_scalar_u1 = 0;
+ let (x93, x94) = fiat_p384_scalar_addcarryx_u32(x92, x70, x70);
+ let mut x95: u32 = 0;
+ let mut x96: fiat_p384_scalar_u1 = 0;
+ let (x95, x96) = fiat_p384_scalar_subborrowx_u32(0x0, x71, 0xccc52973);
+ let mut x97: u32 = 0;
+ let mut x98: fiat_p384_scalar_u1 = 0;
+ let (x97, x98) = fiat_p384_scalar_subborrowx_u32(x96, x73, 0xecec196a);
+ let mut x99: u32 = 0;
+ let mut x100: fiat_p384_scalar_u1 = 0;
+ let (x99, x100) = fiat_p384_scalar_subborrowx_u32(x98, x75, 0x48b0a77a);
+ let mut x101: u32 = 0;
+ let mut x102: fiat_p384_scalar_u1 = 0;
+ let (x101, x102) = fiat_p384_scalar_subborrowx_u32(x100, x77, 0x581a0db2);
+ let mut x103: u32 = 0;
+ let mut x104: fiat_p384_scalar_u1 = 0;
+ let (x103, x104) = fiat_p384_scalar_subborrowx_u32(x102, x79, 0xf4372ddf);
+ let mut x105: u32 = 0;
+ let mut x106: fiat_p384_scalar_u1 = 0;
+ let (x105, x106) = fiat_p384_scalar_subborrowx_u32(x104, x81, 0xc7634d81);
+ let mut x107: u32 = 0;
+ let mut x108: fiat_p384_scalar_u1 = 0;
+ let (x107, x108) = fiat_p384_scalar_subborrowx_u32(x106, x83, 0xffffffff);
+ let mut x109: u32 = 0;
+ let mut x110: fiat_p384_scalar_u1 = 0;
+ let (x109, x110) = fiat_p384_scalar_subborrowx_u32(x108, x85, 0xffffffff);
+ let mut x111: u32 = 0;
+ let mut x112: fiat_p384_scalar_u1 = 0;
+ let (x111, x112) = fiat_p384_scalar_subborrowx_u32(x110, x87, 0xffffffff);
+ let mut x113: u32 = 0;
+ let mut x114: fiat_p384_scalar_u1 = 0;
+ let (x113, x114) = fiat_p384_scalar_subborrowx_u32(x112, x89, 0xffffffff);
+ let mut x115: u32 = 0;
+ let mut x116: fiat_p384_scalar_u1 = 0;
+ let (x115, x116) = fiat_p384_scalar_subborrowx_u32(x114, x91, 0xffffffff);
+ let mut x117: u32 = 0;
+ let mut x118: fiat_p384_scalar_u1 = 0;
+ let (x117, x118) = fiat_p384_scalar_subborrowx_u32(x116, x93, 0xffffffff);
+ let mut x119: u32 = 0;
+ let mut x120: fiat_p384_scalar_u1 = 0;
+ let (x119, x120) = fiat_p384_scalar_subborrowx_u32(x118, (x94 as u32), (0x0 as u32));
+ let x121: u32 = (arg4[11]);
+ let x122: u32 = (arg4[10]);
+ let x123: u32 = (arg4[9]);
+ let x124: u32 = (arg4[8]);
+ let x125: u32 = (arg4[7]);
+ let x126: u32 = (arg4[6]);
+ let x127: u32 = (arg4[5]);
+ let x128: u32 = (arg4[4]);
+ let x129: u32 = (arg4[3]);
+ let x130: u32 = (arg4[2]);
+ let x131: u32 = (arg4[1]);
+ let x132: u32 = (arg4[0]);
+ let mut x133: u32 = 0;
+ let mut x134: fiat_p384_scalar_u1 = 0;
+ let (x133, x134) = fiat_p384_scalar_subborrowx_u32(0x0, (0x0 as u32), x132);
+ let mut x135: u32 = 0;
+ let mut x136: fiat_p384_scalar_u1 = 0;
+ let (x135, x136) = fiat_p384_scalar_subborrowx_u32(x134, (0x0 as u32), x131);
+ let mut x137: u32 = 0;
+ let mut x138: fiat_p384_scalar_u1 = 0;
+ let (x137, x138) = fiat_p384_scalar_subborrowx_u32(x136, (0x0 as u32), x130);
+ let mut x139: u32 = 0;
+ let mut x140: fiat_p384_scalar_u1 = 0;
+ let (x139, x140) = fiat_p384_scalar_subborrowx_u32(x138, (0x0 as u32), x129);
+ let mut x141: u32 = 0;
+ let mut x142: fiat_p384_scalar_u1 = 0;
+ let (x141, x142) = fiat_p384_scalar_subborrowx_u32(x140, (0x0 as u32), x128);
+ let mut x143: u32 = 0;
+ let mut x144: fiat_p384_scalar_u1 = 0;
+ let (x143, x144) = fiat_p384_scalar_subborrowx_u32(x142, (0x0 as u32), x127);
+ let mut x145: u32 = 0;
+ let mut x146: fiat_p384_scalar_u1 = 0;
+ let (x145, x146) = fiat_p384_scalar_subborrowx_u32(x144, (0x0 as u32), x126);
+ let mut x147: u32 = 0;
+ let mut x148: fiat_p384_scalar_u1 = 0;
+ let (x147, x148) = fiat_p384_scalar_subborrowx_u32(x146, (0x0 as u32), x125);
+ let mut x149: u32 = 0;
+ let mut x150: fiat_p384_scalar_u1 = 0;
+ let (x149, x150) = fiat_p384_scalar_subborrowx_u32(x148, (0x0 as u32), x124);
+ let mut x151: u32 = 0;
+ let mut x152: fiat_p384_scalar_u1 = 0;
+ let (x151, x152) = fiat_p384_scalar_subborrowx_u32(x150, (0x0 as u32), x123);
+ let mut x153: u32 = 0;
+ let mut x154: fiat_p384_scalar_u1 = 0;
+ let (x153, x154) = fiat_p384_scalar_subborrowx_u32(x152, (0x0 as u32), x122);
+ let mut x155: u32 = 0;
+ let mut x156: fiat_p384_scalar_u1 = 0;
+ let (x155, x156) = fiat_p384_scalar_subborrowx_u32(x154, (0x0 as u32), x121);
+ let mut x157: u32 = 0;
+ let (x157) = fiat_p384_scalar_cmovznz_u32(x156, (0x0 as u32), 0xffffffff);
+ let mut x158: u32 = 0;
+ let mut x159: fiat_p384_scalar_u1 = 0;
+ let (x158, x159) = fiat_p384_scalar_addcarryx_u32(0x0, x133, (x157 & 0xccc52973));
+ let mut x160: u32 = 0;
+ let mut x161: fiat_p384_scalar_u1 = 0;
+ let (x160, x161) = fiat_p384_scalar_addcarryx_u32(x159, x135, (x157 & 0xecec196a));
+ let mut x162: u32 = 0;
+ let mut x163: fiat_p384_scalar_u1 = 0;
+ let (x162, x163) = fiat_p384_scalar_addcarryx_u32(x161, x137, (x157 & 0x48b0a77a));
+ let mut x164: u32 = 0;
+ let mut x165: fiat_p384_scalar_u1 = 0;
+ let (x164, x165) = fiat_p384_scalar_addcarryx_u32(x163, x139, (x157 & 0x581a0db2));
+ let mut x166: u32 = 0;
+ let mut x167: fiat_p384_scalar_u1 = 0;
+ let (x166, x167) = fiat_p384_scalar_addcarryx_u32(x165, x141, (x157 & 0xf4372ddf));
+ let mut x168: u32 = 0;
+ let mut x169: fiat_p384_scalar_u1 = 0;
+ let (x168, x169) = fiat_p384_scalar_addcarryx_u32(x167, x143, (x157 & 0xc7634d81));
+ let mut x170: u32 = 0;
+ let mut x171: fiat_p384_scalar_u1 = 0;
+ let (x170, x171) = fiat_p384_scalar_addcarryx_u32(x169, x145, x157);
+ let mut x172: u32 = 0;
+ let mut x173: fiat_p384_scalar_u1 = 0;
+ let (x172, x173) = fiat_p384_scalar_addcarryx_u32(x171, x147, x157);
+ let mut x174: u32 = 0;
+ let mut x175: fiat_p384_scalar_u1 = 0;
+ let (x174, x175) = fiat_p384_scalar_addcarryx_u32(x173, x149, x157);
+ let mut x176: u32 = 0;
+ let mut x177: fiat_p384_scalar_u1 = 0;
+ let (x176, x177) = fiat_p384_scalar_addcarryx_u32(x175, x151, x157);
+ let mut x178: u32 = 0;
+ let mut x179: fiat_p384_scalar_u1 = 0;
+ let (x178, x179) = fiat_p384_scalar_addcarryx_u32(x177, x153, x157);
+ let mut x180: u32 = 0;
+ let mut x181: fiat_p384_scalar_u1 = 0;
+ let (x180, x181) = fiat_p384_scalar_addcarryx_u32(x179, x155, x157);
+ let mut x182: u32 = 0;
+ let (x182) = fiat_p384_scalar_cmovznz_u32(x3, (arg5[0]), x158);
+ let mut x183: u32 = 0;
+ let (x183) = fiat_p384_scalar_cmovznz_u32(x3, (arg5[1]), x160);
+ let mut x184: u32 = 0;
+ let (x184) = fiat_p384_scalar_cmovznz_u32(x3, (arg5[2]), x162);
+ let mut x185: u32 = 0;
+ let (x185) = fiat_p384_scalar_cmovznz_u32(x3, (arg5[3]), x164);
+ let mut x186: u32 = 0;
+ let (x186) = fiat_p384_scalar_cmovznz_u32(x3, (arg5[4]), x166);
+ let mut x187: u32 = 0;
+ let (x187) = fiat_p384_scalar_cmovznz_u32(x3, (arg5[5]), x168);
+ let mut x188: u32 = 0;
+ let (x188) = fiat_p384_scalar_cmovznz_u32(x3, (arg5[6]), x170);
+ let mut x189: u32 = 0;
+ let (x189) = fiat_p384_scalar_cmovznz_u32(x3, (arg5[7]), x172);
+ let mut x190: u32 = 0;
+ let (x190) = fiat_p384_scalar_cmovznz_u32(x3, (arg5[8]), x174);
+ let mut x191: u32 = 0;
+ let (x191) = fiat_p384_scalar_cmovznz_u32(x3, (arg5[9]), x176);
+ let mut x192: u32 = 0;
+ let (x192) = fiat_p384_scalar_cmovznz_u32(x3, (arg5[10]), x178);
+ let mut x193: u32 = 0;
+ let (x193) = fiat_p384_scalar_cmovznz_u32(x3, (arg5[11]), x180);
+ let x194: fiat_p384_scalar_u1 = ((x46 & (0x1 as u32)) as fiat_p384_scalar_u1);
+ let mut x195: u32 = 0;
+ let (x195) = fiat_p384_scalar_cmovznz_u32(x194, (0x0 as u32), x7);
+ let mut x196: u32 = 0;
+ let (x196) = fiat_p384_scalar_cmovznz_u32(x194, (0x0 as u32), x8);
+ let mut x197: u32 = 0;
+ let (x197) = fiat_p384_scalar_cmovznz_u32(x194, (0x0 as u32), x9);
+ let mut x198: u32 = 0;
+ let (x198) = fiat_p384_scalar_cmovznz_u32(x194, (0x0 as u32), x10);
+ let mut x199: u32 = 0;
+ let (x199) = fiat_p384_scalar_cmovznz_u32(x194, (0x0 as u32), x11);
+ let mut x200: u32 = 0;
+ let (x200) = fiat_p384_scalar_cmovznz_u32(x194, (0x0 as u32), x12);
+ let mut x201: u32 = 0;
+ let (x201) = fiat_p384_scalar_cmovznz_u32(x194, (0x0 as u32), x13);
+ let mut x202: u32 = 0;
+ let (x202) = fiat_p384_scalar_cmovznz_u32(x194, (0x0 as u32), x14);
+ let mut x203: u32 = 0;
+ let (x203) = fiat_p384_scalar_cmovznz_u32(x194, (0x0 as u32), x15);
+ let mut x204: u32 = 0;
+ let (x204) = fiat_p384_scalar_cmovznz_u32(x194, (0x0 as u32), x16);
+ let mut x205: u32 = 0;
+ let (x205) = fiat_p384_scalar_cmovznz_u32(x194, (0x0 as u32), x17);
+ let mut x206: u32 = 0;
+ let (x206) = fiat_p384_scalar_cmovznz_u32(x194, (0x0 as u32), x18);
+ let mut x207: u32 = 0;
+ let (x207) = fiat_p384_scalar_cmovznz_u32(x194, (0x0 as u32), x19);
+ let mut x208: u32 = 0;
+ let mut x209: fiat_p384_scalar_u1 = 0;
+ let (x208, x209) = fiat_p384_scalar_addcarryx_u32(0x0, x46, x195);
+ let mut x210: u32 = 0;
+ let mut x211: fiat_p384_scalar_u1 = 0;
+ let (x210, x211) = fiat_p384_scalar_addcarryx_u32(x209, x47, x196);
+ let mut x212: u32 = 0;
+ let mut x213: fiat_p384_scalar_u1 = 0;
+ let (x212, x213) = fiat_p384_scalar_addcarryx_u32(x211, x48, x197);
+ let mut x214: u32 = 0;
+ let mut x215: fiat_p384_scalar_u1 = 0;
+ let (x214, x215) = fiat_p384_scalar_addcarryx_u32(x213, x49, x198);
+ let mut x216: u32 = 0;
+ let mut x217: fiat_p384_scalar_u1 = 0;
+ let (x216, x217) = fiat_p384_scalar_addcarryx_u32(x215, x50, x199);
+ let mut x218: u32 = 0;
+ let mut x219: fiat_p384_scalar_u1 = 0;
+ let (x218, x219) = fiat_p384_scalar_addcarryx_u32(x217, x51, x200);
+ let mut x220: u32 = 0;
+ let mut x221: fiat_p384_scalar_u1 = 0;
+ let (x220, x221) = fiat_p384_scalar_addcarryx_u32(x219, x52, x201);
+ let mut x222: u32 = 0;
+ let mut x223: fiat_p384_scalar_u1 = 0;
+ let (x222, x223) = fiat_p384_scalar_addcarryx_u32(x221, x53, x202);
+ let mut x224: u32 = 0;
+ let mut x225: fiat_p384_scalar_u1 = 0;
+ let (x224, x225) = fiat_p384_scalar_addcarryx_u32(x223, x54, x203);
+ let mut x226: u32 = 0;
+ let mut x227: fiat_p384_scalar_u1 = 0;
+ let (x226, x227) = fiat_p384_scalar_addcarryx_u32(x225, x55, x204);
+ let mut x228: u32 = 0;
+ let mut x229: fiat_p384_scalar_u1 = 0;
+ let (x228, x229) = fiat_p384_scalar_addcarryx_u32(x227, x56, x205);
+ let mut x230: u32 = 0;
+ let mut x231: fiat_p384_scalar_u1 = 0;
+ let (x230, x231) = fiat_p384_scalar_addcarryx_u32(x229, x57, x206);
+ let mut x232: u32 = 0;
+ let mut x233: fiat_p384_scalar_u1 = 0;
+ let (x232, x233) = fiat_p384_scalar_addcarryx_u32(x231, x58, x207);
+ let mut x234: u32 = 0;
+ let (x234) = fiat_p384_scalar_cmovznz_u32(x194, (0x0 as u32), x59);
+ let mut x235: u32 = 0;
+ let (x235) = fiat_p384_scalar_cmovznz_u32(x194, (0x0 as u32), x60);
+ let mut x236: u32 = 0;
+ let (x236) = fiat_p384_scalar_cmovznz_u32(x194, (0x0 as u32), x61);
+ let mut x237: u32 = 0;
+ let (x237) = fiat_p384_scalar_cmovznz_u32(x194, (0x0 as u32), x62);
+ let mut x238: u32 = 0;
+ let (x238) = fiat_p384_scalar_cmovznz_u32(x194, (0x0 as u32), x63);
+ let mut x239: u32 = 0;
+ let (x239) = fiat_p384_scalar_cmovznz_u32(x194, (0x0 as u32), x64);
+ let mut x240: u32 = 0;
+ let (x240) = fiat_p384_scalar_cmovznz_u32(x194, (0x0 as u32), x65);
+ let mut x241: u32 = 0;
+ let (x241) = fiat_p384_scalar_cmovznz_u32(x194, (0x0 as u32), x66);
+ let mut x242: u32 = 0;
+ let (x242) = fiat_p384_scalar_cmovznz_u32(x194, (0x0 as u32), x67);
+ let mut x243: u32 = 0;
+ let (x243) = fiat_p384_scalar_cmovznz_u32(x194, (0x0 as u32), x68);
+ let mut x244: u32 = 0;
+ let (x244) = fiat_p384_scalar_cmovznz_u32(x194, (0x0 as u32), x69);
+ let mut x245: u32 = 0;
+ let (x245) = fiat_p384_scalar_cmovznz_u32(x194, (0x0 as u32), x70);
+ let mut x246: u32 = 0;
+ let mut x247: fiat_p384_scalar_u1 = 0;
+ let (x246, x247) = fiat_p384_scalar_addcarryx_u32(0x0, x182, x234);
+ let mut x248: u32 = 0;
+ let mut x249: fiat_p384_scalar_u1 = 0;
+ let (x248, x249) = fiat_p384_scalar_addcarryx_u32(x247, x183, x235);
+ let mut x250: u32 = 0;
+ let mut x251: fiat_p384_scalar_u1 = 0;
+ let (x250, x251) = fiat_p384_scalar_addcarryx_u32(x249, x184, x236);
+ let mut x252: u32 = 0;
+ let mut x253: fiat_p384_scalar_u1 = 0;
+ let (x252, x253) = fiat_p384_scalar_addcarryx_u32(x251, x185, x237);
+ let mut x254: u32 = 0;
+ let mut x255: fiat_p384_scalar_u1 = 0;
+ let (x254, x255) = fiat_p384_scalar_addcarryx_u32(x253, x186, x238);
+ let mut x256: u32 = 0;
+ let mut x257: fiat_p384_scalar_u1 = 0;
+ let (x256, x257) = fiat_p384_scalar_addcarryx_u32(x255, x187, x239);
+ let mut x258: u32 = 0;
+ let mut x259: fiat_p384_scalar_u1 = 0;
+ let (x258, x259) = fiat_p384_scalar_addcarryx_u32(x257, x188, x240);
+ let mut x260: u32 = 0;
+ let mut x261: fiat_p384_scalar_u1 = 0;
+ let (x260, x261) = fiat_p384_scalar_addcarryx_u32(x259, x189, x241);
+ let mut x262: u32 = 0;
+ let mut x263: fiat_p384_scalar_u1 = 0;
+ let (x262, x263) = fiat_p384_scalar_addcarryx_u32(x261, x190, x242);
+ let mut x264: u32 = 0;
+ let mut x265: fiat_p384_scalar_u1 = 0;
+ let (x264, x265) = fiat_p384_scalar_addcarryx_u32(x263, x191, x243);
+ let mut x266: u32 = 0;
+ let mut x267: fiat_p384_scalar_u1 = 0;
+ let (x266, x267) = fiat_p384_scalar_addcarryx_u32(x265, x192, x244);
+ let mut x268: u32 = 0;
+ let mut x269: fiat_p384_scalar_u1 = 0;
+ let (x268, x269) = fiat_p384_scalar_addcarryx_u32(x267, x193, x245);
+ let mut x270: u32 = 0;
+ let mut x271: fiat_p384_scalar_u1 = 0;
+ let (x270, x271) = fiat_p384_scalar_subborrowx_u32(0x0, x246, 0xccc52973);
+ let mut x272: u32 = 0;
+ let mut x273: fiat_p384_scalar_u1 = 0;
+ let (x272, x273) = fiat_p384_scalar_subborrowx_u32(x271, x248, 0xecec196a);
+ let mut x274: u32 = 0;
+ let mut x275: fiat_p384_scalar_u1 = 0;
+ let (x274, x275) = fiat_p384_scalar_subborrowx_u32(x273, x250, 0x48b0a77a);
+ let mut x276: u32 = 0;
+ let mut x277: fiat_p384_scalar_u1 = 0;
+ let (x276, x277) = fiat_p384_scalar_subborrowx_u32(x275, x252, 0x581a0db2);
+ let mut x278: u32 = 0;
+ let mut x279: fiat_p384_scalar_u1 = 0;
+ let (x278, x279) = fiat_p384_scalar_subborrowx_u32(x277, x254, 0xf4372ddf);
+ let mut x280: u32 = 0;
+ let mut x281: fiat_p384_scalar_u1 = 0;
+ let (x280, x281) = fiat_p384_scalar_subborrowx_u32(x279, x256, 0xc7634d81);
+ let mut x282: u32 = 0;
+ let mut x283: fiat_p384_scalar_u1 = 0;
+ let (x282, x283) = fiat_p384_scalar_subborrowx_u32(x281, x258, 0xffffffff);
+ let mut x284: u32 = 0;
+ let mut x285: fiat_p384_scalar_u1 = 0;
+ let (x284, x285) = fiat_p384_scalar_subborrowx_u32(x283, x260, 0xffffffff);
+ let mut x286: u32 = 0;
+ let mut x287: fiat_p384_scalar_u1 = 0;
+ let (x286, x287) = fiat_p384_scalar_subborrowx_u32(x285, x262, 0xffffffff);
+ let mut x288: u32 = 0;
+ let mut x289: fiat_p384_scalar_u1 = 0;
+ let (x288, x289) = fiat_p384_scalar_subborrowx_u32(x287, x264, 0xffffffff);
+ let mut x290: u32 = 0;
+ let mut x291: fiat_p384_scalar_u1 = 0;
+ let (x290, x291) = fiat_p384_scalar_subborrowx_u32(x289, x266, 0xffffffff);
+ let mut x292: u32 = 0;
+ let mut x293: fiat_p384_scalar_u1 = 0;
+ let (x292, x293) = fiat_p384_scalar_subborrowx_u32(x291, x268, 0xffffffff);
+ let mut x294: u32 = 0;
+ let mut x295: fiat_p384_scalar_u1 = 0;
+ let (x294, x295) = fiat_p384_scalar_subborrowx_u32(x293, (x269 as u32), (0x0 as u32));
+ let mut x296: u32 = 0;
+ let mut x297: fiat_p384_scalar_u1 = 0;
+ let (x296, x297) = fiat_p384_scalar_addcarryx_u32(0x0, x6, (0x1 as u32));
+ let x298: u32 = ((x208 >> 1) | ((x210 << 31) & 0xffffffff));
+ let x299: u32 = ((x210 >> 1) | ((x212 << 31) & 0xffffffff));
+ let x300: u32 = ((x212 >> 1) | ((x214 << 31) & 0xffffffff));
+ let x301: u32 = ((x214 >> 1) | ((x216 << 31) & 0xffffffff));
+ let x302: u32 = ((x216 >> 1) | ((x218 << 31) & 0xffffffff));
+ let x303: u32 = ((x218 >> 1) | ((x220 << 31) & 0xffffffff));
+ let x304: u32 = ((x220 >> 1) | ((x222 << 31) & 0xffffffff));
+ let x305: u32 = ((x222 >> 1) | ((x224 << 31) & 0xffffffff));
+ let x306: u32 = ((x224 >> 1) | ((x226 << 31) & 0xffffffff));
+ let x307: u32 = ((x226 >> 1) | ((x228 << 31) & 0xffffffff));
+ let x308: u32 = ((x228 >> 1) | ((x230 << 31) & 0xffffffff));
+ let x309: u32 = ((x230 >> 1) | ((x232 << 31) & 0xffffffff));
+ let x310: u32 = ((x232 & 0x80000000) | (x232 >> 1));
+ let mut x311: u32 = 0;
+ let (x311) = fiat_p384_scalar_cmovznz_u32(x120, x95, x71);
+ let mut x312: u32 = 0;
+ let (x312) = fiat_p384_scalar_cmovznz_u32(x120, x97, x73);
+ let mut x313: u32 = 0;
+ let (x313) = fiat_p384_scalar_cmovznz_u32(x120, x99, x75);
+ let mut x314: u32 = 0;
+ let (x314) = fiat_p384_scalar_cmovznz_u32(x120, x101, x77);
+ let mut x315: u32 = 0;
+ let (x315) = fiat_p384_scalar_cmovznz_u32(x120, x103, x79);
+ let mut x316: u32 = 0;
+ let (x316) = fiat_p384_scalar_cmovznz_u32(x120, x105, x81);
+ let mut x317: u32 = 0;
+ let (x317) = fiat_p384_scalar_cmovznz_u32(x120, x107, x83);
+ let mut x318: u32 = 0;
+ let (x318) = fiat_p384_scalar_cmovznz_u32(x120, x109, x85);
+ let mut x319: u32 = 0;
+ let (x319) = fiat_p384_scalar_cmovznz_u32(x120, x111, x87);
+ let mut x320: u32 = 0;
+ let (x320) = fiat_p384_scalar_cmovznz_u32(x120, x113, x89);
+ let mut x321: u32 = 0;
+ let (x321) = fiat_p384_scalar_cmovznz_u32(x120, x115, x91);
+ let mut x322: u32 = 0;
+ let (x322) = fiat_p384_scalar_cmovznz_u32(x120, x117, x93);
+ let mut x323: u32 = 0;
+ let (x323) = fiat_p384_scalar_cmovznz_u32(x295, x270, x246);
+ let mut x324: u32 = 0;
+ let (x324) = fiat_p384_scalar_cmovznz_u32(x295, x272, x248);
+ let mut x325: u32 = 0;
+ let (x325) = fiat_p384_scalar_cmovznz_u32(x295, x274, x250);
+ let mut x326: u32 = 0;
+ let (x326) = fiat_p384_scalar_cmovznz_u32(x295, x276, x252);
+ let mut x327: u32 = 0;
+ let (x327) = fiat_p384_scalar_cmovznz_u32(x295, x278, x254);
+ let mut x328: u32 = 0;
+ let (x328) = fiat_p384_scalar_cmovznz_u32(x295, x280, x256);
+ let mut x329: u32 = 0;
+ let (x329) = fiat_p384_scalar_cmovznz_u32(x295, x282, x258);
+ let mut x330: u32 = 0;
+ let (x330) = fiat_p384_scalar_cmovznz_u32(x295, x284, x260);
+ let mut x331: u32 = 0;
+ let (x331) = fiat_p384_scalar_cmovznz_u32(x295, x286, x262);
+ let mut x332: u32 = 0;
+ let (x332) = fiat_p384_scalar_cmovznz_u32(x295, x288, x264);
+ let mut x333: u32 = 0;
+ let (x333) = fiat_p384_scalar_cmovznz_u32(x295, x290, x266);
+ let mut x334: u32 = 0;
+ let (x334) = fiat_p384_scalar_cmovznz_u32(x295, x292, x268);
+ out1 = x296;
+ out2[0] = x7;
+ out2[1] = x8;
+ out2[2] = x9;
+ out2[3] = x10;
+ out2[4] = x11;
+ out2[5] = x12;
+ out2[6] = x13;
+ out2[7] = x14;
+ out2[8] = x15;
+ out2[9] = x16;
+ out2[10] = x17;
+ out2[11] = x18;
+ out2[12] = x19;
+ out3[0] = x298;
+ out3[1] = x299;
+ out3[2] = x300;
+ out3[3] = x301;
+ out3[4] = x302;
+ out3[5] = x303;
+ out3[6] = x304;
+ out3[7] = x305;
+ out3[8] = x306;
+ out3[9] = x307;
+ out3[10] = x308;
+ out3[11] = x309;
+ out3[12] = x310;
+ out4[0] = x311;
+ out4[1] = x312;
+ out4[2] = x313;
+ out4[3] = x314;
+ out4[4] = x315;
+ out4[5] = x316;
+ out4[6] = x317;
+ out4[7] = x318;
+ out4[8] = x319;
+ out4[9] = x320;
+ out4[10] = x321;
+ out4[11] = x322;
+ out5[0] = x323;
+ out5[1] = x324;
+ out5[2] = x325;
+ out5[3] = x326;
+ out5[4] = x327;
+ out5[5] = x328;
+ out5[6] = x329;
+ out5[7] = x330;
+ out5[8] = x331;
+ out5[9] = x332;
+ out5[10] = x333;
+ out5[11] = x334;
+ (out1, out2, out3, out4, out5)
+}
+#[doc = " The function fiat_p384_scalar_divstep_precomp returns the precomputed value for Bernstein-Yang-inversion (in montgomery form)."]
+#[doc = ""]
+#[doc = " Postconditions:"]
+#[doc = " eval (from_montgomery out1) = ⌊(m - 1) / 2⌋^(if ⌊log2 m⌋ + 1 < 46 then ⌊(49 * (⌊log2 m⌋ + 1) + 80) / 17⌋ else ⌊(49 * (⌊log2 m⌋ + 1) + 57) / 17⌋)"]
+#[doc = " 0 ≤ eval out1 < m"]
+#[doc = ""]
+#[doc = " Output Bounds:"]
+#[doc = " out1: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]]"]
+#[inline]
+pub const fn fiat_p384_scalar_divstep_precomp() -> [u32; 12] {
+ let mut out1: [u32; 12] = [0; 12];
+ out1[0] = 0xe6045b6a;
+ out1[1] = 0x49589ae0;
+ out1[2] = 0x870040ed;
+ out1[3] = 0x3c9a5352;
+ out1[4] = 0x977dc242;
+ out1[5] = 0xdacb097e;
+ out1[6] = 0xd1ecbe36;
+ out1[7] = 0xb5ab30a6;
+ out1[8] = 0x1f959973;
+ out1[9] = 0x97d7a108;
+ out1[10] = 0xd27192bc;
+ out1[11] = 0x2ba012f8;
+ out1
+}
diff --git a/vendor/p384/src/arithmetic/scalar/p384_scalar_64.rs b/vendor/p384/src/arithmetic/scalar/p384_scalar_64.rs
new file mode 100644
index 000000000..5b4773170
--- /dev/null
+++ b/vendor/p384/src/arithmetic/scalar/p384_scalar_64.rs
@@ -0,0 +1,3782 @@
+#![doc = " fiat-crypto output postprocessed by fiat-constify: https://github.com/rustcrypto/utils"]
+#![doc = " Autogenerated: './word_by_word_montgomery' --lang Rust --inline p384_scalar"]
+#![doc = " 64 39402006196394479212279040100143613805079739270465446667946905279627659399113263569398956308152294913554433653942643"]
+#![doc = " curve description: p384_scalar"]
+#![doc = " machine_wordsize = 64 (from \"64\")"]
+#![doc = " requested operations: (all)"]
+#![doc = " m = 0xffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52973 (from \"39402006196394479212279040100143613805079739270465446667946905279627659399113263569398956308152294913554433653942643\")"]
+#![doc = ""]
+#![doc = " NOTE: In addition to the bounds specified above each function, all"]
+#![doc = " functions synthesized for this Montgomery arithmetic require the"]
+#![doc = " input to be strictly less than the prime modulus (m), and also"]
+#![doc = " require the input to be in the unique saturated representation."]
+#![doc = " All functions also ensure that these two properties are true of"]
+#![doc = " return values."]
+#![doc = ""]
+#![doc = " Computed values:"]
+#![doc = " eval z = z[0] + (z[1] << 64) + (z[2] << 128) + (z[3] << 192) + (z[4] <<"]
+#![doc = " 256) + (z[5] << 0x140) bytes_eval z = z[0] + (z[1] << 8) + (z[2] << 16) +"]
+#![doc = " (z[3] << 24) + (z[4] << 32) + (z[5] << 40) + (z[6] << 48) + (z[7] << 56) +"]
+#![doc = " (z[8] << 64) + (z[9] << 72) + (z[10] << 80) + (z[11] << 88) + (z[12] << 96)"]
+#![doc = " + (z[13] << 104) + (z[14] << 112) + (z[15] << 120) + (z[16] << 128) + (z[17]"]
+#![doc = " << 136) + (z[18] << 144) + (z[19] << 152) + (z[20] << 160) + (z[21] << 168)"]
+#![doc = " + (z[22] << 176) + (z[23] << 184) + (z[24] << 192) + (z[25] << 200) + (z[26]"]
+#![doc = " << 208) + (z[27] << 216) + (z[28] << 224) + (z[29] << 232) + (z[30] << 240)"]
+#![doc = " + (z[31] << 248) + (z[32] << 256) + (z[33] << 0x108) + (z[34] << 0x110) +"]
+#![doc = " (z[35] << 0x118) + (z[36] << 0x120) + (z[37] << 0x128) + (z[38] << 0x130) +"]
+#![doc = " (z[39] << 0x138) + (z[40] << 0x140) + (z[41] << 0x148) + (z[42] << 0x150) +"]
+#![doc = " (z[43] << 0x158) + (z[44] << 0x160) + (z[45] << 0x168) + (z[46] << 0x170) +"]
+#![doc = " (z[47] << 0x178) twos_complement_eval z = let x1 := z[0] + (z[1] << 64) +"]
+#![doc = " (z[2] << 128) + (z[3] << 192) + (z[4] << 256) + (z[5] << 0x140) in"]
+#![doc = " if x1 & (2^384-1) < 2^383 then x1 & (2^384-1)"]
+#![doc = " else (x1 & (2^384-1)) - 2^384"]
+#![allow(unused_parens)]
+#![allow(non_camel_case_types)]
+#![allow(
+ dead_code,
+ rustdoc::bare_urls,
+ rustdoc::broken_intra_doc_links,
+ unused_assignments,
+ unused_mut,
+ unused_variables
+)]
+pub type fiat_p384_scalar_u1 = u8;
+pub type fiat_p384_scalar_i1 = i8;
+pub type fiat_p384_scalar_i2 = i8;
+pub type fiat_p384_scalar_montgomery_domain_field_element = [u64; 6];
+pub type fiat_p384_scalar_non_montgomery_domain_field_element = [u64; 6];
+#[doc = " The function fiat_p384_scalar_addcarryx_u64 is an addition with carry."]
+#[doc = ""]
+#[doc = " Postconditions:"]
+#[doc = " out1 = (arg1 + arg2 + arg3) mod 2^64"]
+#[doc = " out2 = ⌊(arg1 + arg2 + arg3) / 2^64⌋"]
+#[doc = ""]
+#[doc = " Input Bounds:"]
+#[doc = " arg1: [0x0 ~> 0x1]"]
+#[doc = " arg2: [0x0 ~> 0xffffffffffffffff]"]
+#[doc = " arg3: [0x0 ~> 0xffffffffffffffff]"]
+#[doc = " Output Bounds:"]
+#[doc = " out1: [0x0 ~> 0xffffffffffffffff]"]
+#[doc = " out2: [0x0 ~> 0x1]"]
+#[inline]
+pub const fn fiat_p384_scalar_addcarryx_u64(
+ arg1: fiat_p384_scalar_u1,
+ arg2: u64,
+ arg3: u64,
+) -> (u64, fiat_p384_scalar_u1) {
+ let mut out1: u64 = 0;
+ let mut out2: fiat_p384_scalar_u1 = 0;
+ let x1: u128 = (((arg1 as u128) + (arg2 as u128)) + (arg3 as u128));
+ let x2: u64 = ((x1 & 0xffffffffffffffff_u128) as u64);
+ let x3: fiat_p384_scalar_u1 = ((x1 >> 64) as fiat_p384_scalar_u1);
+ out1 = x2;
+ out2 = x3;
+ (out1, out2)
+}
+#[doc = " The function fiat_p384_scalar_subborrowx_u64 is a subtraction with borrow."]
+#[doc = ""]
+#[doc = " Postconditions:"]
+#[doc = " out1 = (-arg1 + arg2 + -arg3) mod 2^64"]
+#[doc = " out2 = -⌊(-arg1 + arg2 + -arg3) / 2^64⌋"]
+#[doc = ""]
+#[doc = " Input Bounds:"]
+#[doc = " arg1: [0x0 ~> 0x1]"]
+#[doc = " arg2: [0x0 ~> 0xffffffffffffffff]"]
+#[doc = " arg3: [0x0 ~> 0xffffffffffffffff]"]
+#[doc = " Output Bounds:"]
+#[doc = " out1: [0x0 ~> 0xffffffffffffffff]"]
+#[doc = " out2: [0x0 ~> 0x1]"]
+#[inline]
+pub const fn fiat_p384_scalar_subborrowx_u64(
+ arg1: fiat_p384_scalar_u1,
+ arg2: u64,
+ arg3: u64,
+) -> (u64, fiat_p384_scalar_u1) {
+ let mut out1: u64 = 0;
+ let mut out2: fiat_p384_scalar_u1 = 0;
+ let x1: i128 = (((arg2 as i128) - (arg1 as i128)) - (arg3 as i128));
+ let x2: fiat_p384_scalar_i1 = ((x1 >> 64) as fiat_p384_scalar_i1);
+ let x3: u64 = ((x1 & 0xffffffffffffffff_i128) as u64);
+ out1 = x3;
+ out2 = (((0x0 as fiat_p384_scalar_i2) - (x2 as fiat_p384_scalar_i2)) as fiat_p384_scalar_u1);
+ (out1, out2)
+}
+#[doc = " The function fiat_p384_scalar_mulx_u64 is a multiplication, returning the"]
+#[doc = " full double-width result."]
+#[doc = ""]
+#[doc = " Postconditions:"]
+#[doc = " out1 = (arg1 * arg2) mod 2^64"]
+#[doc = " out2 = ⌊arg1 * arg2 / 2^64⌋"]
+#[doc = ""]
+#[doc = " Input Bounds:"]
+#[doc = " arg1: [0x0 ~> 0xffffffffffffffff]"]
+#[doc = " arg2: [0x0 ~> 0xffffffffffffffff]"]
+#[doc = " Output Bounds:"]
+#[doc = " out1: [0x0 ~> 0xffffffffffffffff]"]
+#[doc = " out2: [0x0 ~> 0xffffffffffffffff]"]
+#[inline]
+pub const fn fiat_p384_scalar_mulx_u64(arg1: u64, arg2: u64) -> (u64, u64) {
+ let mut out1: u64 = 0;
+ let mut out2: u64 = 0;
+ let x1: u128 = ((arg1 as u128) * (arg2 as u128));
+ let x2: u64 = ((x1 & 0xffffffffffffffff_u128) as u64);
+ let x3: u64 = ((x1 >> 64) as u64);
+ out1 = x2;
+ out2 = x3;
+ (out1, out2)
+}
+#[doc = " The function fiat_p384_scalar_cmovznz_u64 is a single-word conditional move."]
+#[doc = ""]
+#[doc = " Postconditions:"]
+#[doc = " out1 = (if arg1 = 0 then arg2 else arg3)"]
+#[doc = ""]
+#[doc = " Input Bounds:"]
+#[doc = " arg1: [0x0 ~> 0x1]"]
+#[doc = " arg2: [0x0 ~> 0xffffffffffffffff]"]
+#[doc = " arg3: [0x0 ~> 0xffffffffffffffff]"]
+#[doc = " Output Bounds:"]
+#[doc = " out1: [0x0 ~> 0xffffffffffffffff]"]
+#[inline]
+pub const fn fiat_p384_scalar_cmovznz_u64(arg1: fiat_p384_scalar_u1, arg2: u64, arg3: u64) -> u64 {
+ let mut out1: u64 = 0;
+ let x1: fiat_p384_scalar_u1 = (!(!arg1));
+ let x2: u64 = ((((((0x0 as fiat_p384_scalar_i2) - (x1 as fiat_p384_scalar_i2))
+ as fiat_p384_scalar_i1) as i128)
+ & 0xffffffffffffffff_i128) as u64);
+ let x3: u64 = ((x2 & arg3) | ((!x2) & arg2));
+ out1 = x3;
+ out1
+}
+#[doc = " The function fiat_p384_scalar_mul multiplies two field elements in the"]
+#[doc = " Montgomery domain."]
+#[doc = ""]
+#[doc = " Preconditions:"]
+#[doc = " 0 ≤ eval arg1 < m"]
+#[doc = " 0 ≤ eval arg2 < m"]
+#[doc = " Postconditions:"]
+#[doc = " eval (from_montgomery out1) mod m = (eval (from_montgomery arg1) * eval"]
+#[doc = " (from_montgomery arg2)) mod m 0 ≤ eval out1 < m"]
+#[inline]
+pub const fn fiat_p384_scalar_mul(
+ arg1: &fiat_p384_scalar_montgomery_domain_field_element,
+ arg2: &fiat_p384_scalar_montgomery_domain_field_element,
+) -> fiat_p384_scalar_montgomery_domain_field_element {
+ let mut out1: fiat_p384_scalar_montgomery_domain_field_element = [0; 6];
+ let x1: u64 = (arg1[1]);
+ let x2: u64 = (arg1[2]);
+ let x3: u64 = (arg1[3]);
+ let x4: u64 = (arg1[4]);
+ let x5: u64 = (arg1[5]);
+ let x6: u64 = (arg1[0]);
+ let mut x7: u64 = 0;
+ let mut x8: u64 = 0;
+ let (x7, x8) = fiat_p384_scalar_mulx_u64(x6, (arg2[5]));
+ let mut x9: u64 = 0;
+ let mut x10: u64 = 0;
+ let (x9, x10) = fiat_p384_scalar_mulx_u64(x6, (arg2[4]));
+ let mut x11: u64 = 0;
+ let mut x12: u64 = 0;
+ let (x11, x12) = fiat_p384_scalar_mulx_u64(x6, (arg2[3]));
+ let mut x13: u64 = 0;
+ let mut x14: u64 = 0;
+ let (x13, x14) = fiat_p384_scalar_mulx_u64(x6, (arg2[2]));
+ let mut x15: u64 = 0;
+ let mut x16: u64 = 0;
+ let (x15, x16) = fiat_p384_scalar_mulx_u64(x6, (arg2[1]));
+ let mut x17: u64 = 0;
+ let mut x18: u64 = 0;
+ let (x17, x18) = fiat_p384_scalar_mulx_u64(x6, (arg2[0]));
+ let mut x19: u64 = 0;
+ let mut x20: fiat_p384_scalar_u1 = 0;
+ let (x19, x20) = fiat_p384_scalar_addcarryx_u64(0x0, x18, x15);
+ let mut x21: u64 = 0;
+ let mut x22: fiat_p384_scalar_u1 = 0;
+ let (x21, x22) = fiat_p384_scalar_addcarryx_u64(x20, x16, x13);
+ let mut x23: u64 = 0;
+ let mut x24: fiat_p384_scalar_u1 = 0;
+ let (x23, x24) = fiat_p384_scalar_addcarryx_u64(x22, x14, x11);
+ let mut x25: u64 = 0;
+ let mut x26: fiat_p384_scalar_u1 = 0;
+ let (x25, x26) = fiat_p384_scalar_addcarryx_u64(x24, x12, x9);
+ let mut x27: u64 = 0;
+ let mut x28: fiat_p384_scalar_u1 = 0;
+ let (x27, x28) = fiat_p384_scalar_addcarryx_u64(x26, x10, x7);
+ let x29: u64 = ((x28 as u64) + x8);
+ let mut x30: u64 = 0;
+ let mut x31: u64 = 0;
+ let (x30, x31) = fiat_p384_scalar_mulx_u64(x17, 0x6ed46089e88fdc45);
+ let mut x32: u64 = 0;
+ let mut x33: u64 = 0;
+ let (x32, x33) = fiat_p384_scalar_mulx_u64(x30, 0xffffffffffffffff);
+ let mut x34: u64 = 0;
+ let mut x35: u64 = 0;
+ let (x34, x35) = fiat_p384_scalar_mulx_u64(x30, 0xffffffffffffffff);
+ let mut x36: u64 = 0;
+ let mut x37: u64 = 0;
+ let (x36, x37) = fiat_p384_scalar_mulx_u64(x30, 0xffffffffffffffff);
+ let mut x38: u64 = 0;
+ let mut x39: u64 = 0;
+ let (x38, x39) = fiat_p384_scalar_mulx_u64(x30, 0xc7634d81f4372ddf);
+ let mut x40: u64 = 0;
+ let mut x41: u64 = 0;
+ let (x40, x41) = fiat_p384_scalar_mulx_u64(x30, 0x581a0db248b0a77a);
+ let mut x42: u64 = 0;
+ let mut x43: u64 = 0;
+ let (x42, x43) = fiat_p384_scalar_mulx_u64(x30, 0xecec196accc52973);
+ let mut x44: u64 = 0;
+ let mut x45: fiat_p384_scalar_u1 = 0;
+ let (x44, x45) = fiat_p384_scalar_addcarryx_u64(0x0, x43, x40);
+ let mut x46: u64 = 0;
+ let mut x47: fiat_p384_scalar_u1 = 0;
+ let (x46, x47) = fiat_p384_scalar_addcarryx_u64(x45, x41, x38);
+ let mut x48: u64 = 0;
+ let mut x49: fiat_p384_scalar_u1 = 0;
+ let (x48, x49) = fiat_p384_scalar_addcarryx_u64(x47, x39, x36);
+ let mut x50: u64 = 0;
+ let mut x51: fiat_p384_scalar_u1 = 0;
+ let (x50, x51) = fiat_p384_scalar_addcarryx_u64(x49, x37, x34);
+ let mut x52: u64 = 0;
+ let mut x53: fiat_p384_scalar_u1 = 0;
+ let (x52, x53) = fiat_p384_scalar_addcarryx_u64(x51, x35, x32);
+ let x54: u64 = ((x53 as u64) + x33);
+ let mut x55: u64 = 0;
+ let mut x56: fiat_p384_scalar_u1 = 0;
+ let (x55, x56) = fiat_p384_scalar_addcarryx_u64(0x0, x17, x42);
+ let mut x57: u64 = 0;
+ let mut x58: fiat_p384_scalar_u1 = 0;
+ let (x57, x58) = fiat_p384_scalar_addcarryx_u64(x56, x19, x44);
+ let mut x59: u64 = 0;
+ let mut x60: fiat_p384_scalar_u1 = 0;
+ let (x59, x60) = fiat_p384_scalar_addcarryx_u64(x58, x21, x46);
+ let mut x61: u64 = 0;
+ let mut x62: fiat_p384_scalar_u1 = 0;
+ let (x61, x62) = fiat_p384_scalar_addcarryx_u64(x60, x23, x48);
+ let mut x63: u64 = 0;
+ let mut x64: fiat_p384_scalar_u1 = 0;
+ let (x63, x64) = fiat_p384_scalar_addcarryx_u64(x62, x25, x50);
+ let mut x65: u64 = 0;
+ let mut x66: fiat_p384_scalar_u1 = 0;
+ let (x65, x66) = fiat_p384_scalar_addcarryx_u64(x64, x27, x52);
+ let mut x67: u64 = 0;
+ let mut x68: fiat_p384_scalar_u1 = 0;
+ let (x67, x68) = fiat_p384_scalar_addcarryx_u64(x66, x29, x54);
+ let mut x69: u64 = 0;
+ let mut x70: u64 = 0;
+ let (x69, x70) = fiat_p384_scalar_mulx_u64(x1, (arg2[5]));
+ let mut x71: u64 = 0;
+ let mut x72: u64 = 0;
+ let (x71, x72) = fiat_p384_scalar_mulx_u64(x1, (arg2[4]));
+ let mut x73: u64 = 0;
+ let mut x74: u64 = 0;
+ let (x73, x74) = fiat_p384_scalar_mulx_u64(x1, (arg2[3]));
+ let mut x75: u64 = 0;
+ let mut x76: u64 = 0;
+ let (x75, x76) = fiat_p384_scalar_mulx_u64(x1, (arg2[2]));
+ let mut x77: u64 = 0;
+ let mut x78: u64 = 0;
+ let (x77, x78) = fiat_p384_scalar_mulx_u64(x1, (arg2[1]));
+ let mut x79: u64 = 0;
+ let mut x80: u64 = 0;
+ let (x79, x80) = fiat_p384_scalar_mulx_u64(x1, (arg2[0]));
+ let mut x81: u64 = 0;
+ let mut x82: fiat_p384_scalar_u1 = 0;
+ let (x81, x82) = fiat_p384_scalar_addcarryx_u64(0x0, x80, x77);
+ let mut x83: u64 = 0;
+ let mut x84: fiat_p384_scalar_u1 = 0;
+ let (x83, x84) = fiat_p384_scalar_addcarryx_u64(x82, x78, x75);
+ let mut x85: u64 = 0;
+ let mut x86: fiat_p384_scalar_u1 = 0;
+ let (x85, x86) = fiat_p384_scalar_addcarryx_u64(x84, x76, x73);
+ let mut x87: u64 = 0;
+ let mut x88: fiat_p384_scalar_u1 = 0;
+ let (x87, x88) = fiat_p384_scalar_addcarryx_u64(x86, x74, x71);
+ let mut x89: u64 = 0;
+ let mut x90: fiat_p384_scalar_u1 = 0;
+ let (x89, x90) = fiat_p384_scalar_addcarryx_u64(x88, x72, x69);
+ let x91: u64 = ((x90 as u64) + x70);
+ let mut x92: u64 = 0;
+ let mut x93: fiat_p384_scalar_u1 = 0;
+ let (x92, x93) = fiat_p384_scalar_addcarryx_u64(0x0, x57, x79);
+ let mut x94: u64 = 0;
+ let mut x95: fiat_p384_scalar_u1 = 0;
+ let (x94, x95) = fiat_p384_scalar_addcarryx_u64(x93, x59, x81);
+ let mut x96: u64 = 0;
+ let mut x97: fiat_p384_scalar_u1 = 0;
+ let (x96, x97) = fiat_p384_scalar_addcarryx_u64(x95, x61, x83);
+ let mut x98: u64 = 0;
+ let mut x99: fiat_p384_scalar_u1 = 0;
+ let (x98, x99) = fiat_p384_scalar_addcarryx_u64(x97, x63, x85);
+ let mut x100: u64 = 0;
+ let mut x101: fiat_p384_scalar_u1 = 0;
+ let (x100, x101) = fiat_p384_scalar_addcarryx_u64(x99, x65, x87);
+ let mut x102: u64 = 0;
+ let mut x103: fiat_p384_scalar_u1 = 0;
+ let (x102, x103) = fiat_p384_scalar_addcarryx_u64(x101, x67, x89);
+ let mut x104: u64 = 0;
+ let mut x105: fiat_p384_scalar_u1 = 0;
+ let (x104, x105) = fiat_p384_scalar_addcarryx_u64(x103, (x68 as u64), x91);
+ let mut x106: u64 = 0;
+ let mut x107: u64 = 0;
+ let (x106, x107) = fiat_p384_scalar_mulx_u64(x92, 0x6ed46089e88fdc45);
+ let mut x108: u64 = 0;
+ let mut x109: u64 = 0;
+ let (x108, x109) = fiat_p384_scalar_mulx_u64(x106, 0xffffffffffffffff);
+ let mut x110: u64 = 0;
+ let mut x111: u64 = 0;
+ let (x110, x111) = fiat_p384_scalar_mulx_u64(x106, 0xffffffffffffffff);
+ let mut x112: u64 = 0;
+ let mut x113: u64 = 0;
+ let (x112, x113) = fiat_p384_scalar_mulx_u64(x106, 0xffffffffffffffff);
+ let mut x114: u64 = 0;
+ let mut x115: u64 = 0;
+ let (x114, x115) = fiat_p384_scalar_mulx_u64(x106, 0xc7634d81f4372ddf);
+ let mut x116: u64 = 0;
+ let mut x117: u64 = 0;
+ let (x116, x117) = fiat_p384_scalar_mulx_u64(x106, 0x581a0db248b0a77a);
+ let mut x118: u64 = 0;
+ let mut x119: u64 = 0;
+ let (x118, x119) = fiat_p384_scalar_mulx_u64(x106, 0xecec196accc52973);
+ let mut x120: u64 = 0;
+ let mut x121: fiat_p384_scalar_u1 = 0;
+ let (x120, x121) = fiat_p384_scalar_addcarryx_u64(0x0, x119, x116);
+ let mut x122: u64 = 0;
+ let mut x123: fiat_p384_scalar_u1 = 0;
+ let (x122, x123) = fiat_p384_scalar_addcarryx_u64(x121, x117, x114);
+ let mut x124: u64 = 0;
+ let mut x125: fiat_p384_scalar_u1 = 0;
+ let (x124, x125) = fiat_p384_scalar_addcarryx_u64(x123, x115, x112);
+ let mut x126: u64 = 0;
+ let mut x127: fiat_p384_scalar_u1 = 0;
+ let (x126, x127) = fiat_p384_scalar_addcarryx_u64(x125, x113, x110);
+ let mut x128: u64 = 0;
+ let mut x129: fiat_p384_scalar_u1 = 0;
+ let (x128, x129) = fiat_p384_scalar_addcarryx_u64(x127, x111, x108);
+ let x130: u64 = ((x129 as u64) + x109);
+ let mut x131: u64 = 0;
+ let mut x132: fiat_p384_scalar_u1 = 0;
+ let (x131, x132) = fiat_p384_scalar_addcarryx_u64(0x0, x92, x118);
+ let mut x133: u64 = 0;
+ let mut x134: fiat_p384_scalar_u1 = 0;
+ let (x133, x134) = fiat_p384_scalar_addcarryx_u64(x132, x94, x120);
+ let mut x135: u64 = 0;
+ let mut x136: fiat_p384_scalar_u1 = 0;
+ let (x135, x136) = fiat_p384_scalar_addcarryx_u64(x134, x96, x122);
+ let mut x137: u64 = 0;
+ let mut x138: fiat_p384_scalar_u1 = 0;
+ let (x137, x138) = fiat_p384_scalar_addcarryx_u64(x136, x98, x124);
+ let mut x139: u64 = 0;
+ let mut x140: fiat_p384_scalar_u1 = 0;
+ let (x139, x140) = fiat_p384_scalar_addcarryx_u64(x138, x100, x126);
+ let mut x141: u64 = 0;
+ let mut x142: fiat_p384_scalar_u1 = 0;
+ let (x141, x142) = fiat_p384_scalar_addcarryx_u64(x140, x102, x128);
+ let mut x143: u64 = 0;
+ let mut x144: fiat_p384_scalar_u1 = 0;
+ let (x143, x144) = fiat_p384_scalar_addcarryx_u64(x142, x104, x130);
+ let x145: u64 = ((x144 as u64) + (x105 as u64));
+ let mut x146: u64 = 0;
+ let mut x147: u64 = 0;
+ let (x146, x147) = fiat_p384_scalar_mulx_u64(x2, (arg2[5]));
+ let mut x148: u64 = 0;
+ let mut x149: u64 = 0;
+ let (x148, x149) = fiat_p384_scalar_mulx_u64(x2, (arg2[4]));
+ let mut x150: u64 = 0;
+ let mut x151: u64 = 0;
+ let (x150, x151) = fiat_p384_scalar_mulx_u64(x2, (arg2[3]));
+ let mut x152: u64 = 0;
+ let mut x153: u64 = 0;
+ let (x152, x153) = fiat_p384_scalar_mulx_u64(x2, (arg2[2]));
+ let mut x154: u64 = 0;
+ let mut x155: u64 = 0;
+ let (x154, x155) = fiat_p384_scalar_mulx_u64(x2, (arg2[1]));
+ let mut x156: u64 = 0;
+ let mut x157: u64 = 0;
+ let (x156, x157) = fiat_p384_scalar_mulx_u64(x2, (arg2[0]));
+ let mut x158: u64 = 0;
+ let mut x159: fiat_p384_scalar_u1 = 0;
+ let (x158, x159) = fiat_p384_scalar_addcarryx_u64(0x0, x157, x154);
+ let mut x160: u64 = 0;
+ let mut x161: fiat_p384_scalar_u1 = 0;
+ let (x160, x161) = fiat_p384_scalar_addcarryx_u64(x159, x155, x152);
+ let mut x162: u64 = 0;
+ let mut x163: fiat_p384_scalar_u1 = 0;
+ let (x162, x163) = fiat_p384_scalar_addcarryx_u64(x161, x153, x150);
+ let mut x164: u64 = 0;
+ let mut x165: fiat_p384_scalar_u1 = 0;
+ let (x164, x165) = fiat_p384_scalar_addcarryx_u64(x163, x151, x148);
+ let mut x166: u64 = 0;
+ let mut x167: fiat_p384_scalar_u1 = 0;
+ let (x166, x167) = fiat_p384_scalar_addcarryx_u64(x165, x149, x146);
+ let x168: u64 = ((x167 as u64) + x147);
+ let mut x169: u64 = 0;
+ let mut x170: fiat_p384_scalar_u1 = 0;
+ let (x169, x170) = fiat_p384_scalar_addcarryx_u64(0x0, x133, x156);
+ let mut x171: u64 = 0;
+ let mut x172: fiat_p384_scalar_u1 = 0;
+ let (x171, x172) = fiat_p384_scalar_addcarryx_u64(x170, x135, x158);
+ let mut x173: u64 = 0;
+ let mut x174: fiat_p384_scalar_u1 = 0;
+ let (x173, x174) = fiat_p384_scalar_addcarryx_u64(x172, x137, x160);
+ let mut x175: u64 = 0;
+ let mut x176: fiat_p384_scalar_u1 = 0;
+ let (x175, x176) = fiat_p384_scalar_addcarryx_u64(x174, x139, x162);
+ let mut x177: u64 = 0;
+ let mut x178: fiat_p384_scalar_u1 = 0;
+ let (x177, x178) = fiat_p384_scalar_addcarryx_u64(x176, x141, x164);
+ let mut x179: u64 = 0;
+ let mut x180: fiat_p384_scalar_u1 = 0;
+ let (x179, x180) = fiat_p384_scalar_addcarryx_u64(x178, x143, x166);
+ let mut x181: u64 = 0;
+ let mut x182: fiat_p384_scalar_u1 = 0;
+ let (x181, x182) = fiat_p384_scalar_addcarryx_u64(x180, x145, x168);
+ let mut x183: u64 = 0;
+ let mut x184: u64 = 0;
+ let (x183, x184) = fiat_p384_scalar_mulx_u64(x169, 0x6ed46089e88fdc45);
+ let mut x185: u64 = 0;
+ let mut x186: u64 = 0;
+ let (x185, x186) = fiat_p384_scalar_mulx_u64(x183, 0xffffffffffffffff);
+ let mut x187: u64 = 0;
+ let mut x188: u64 = 0;
+ let (x187, x188) = fiat_p384_scalar_mulx_u64(x183, 0xffffffffffffffff);
+ let mut x189: u64 = 0;
+ let mut x190: u64 = 0;
+ let (x189, x190) = fiat_p384_scalar_mulx_u64(x183, 0xffffffffffffffff);
+ let mut x191: u64 = 0;
+ let mut x192: u64 = 0;
+ let (x191, x192) = fiat_p384_scalar_mulx_u64(x183, 0xc7634d81f4372ddf);
+ let mut x193: u64 = 0;
+ let mut x194: u64 = 0;
+ let (x193, x194) = fiat_p384_scalar_mulx_u64(x183, 0x581a0db248b0a77a);
+ let mut x195: u64 = 0;
+ let mut x196: u64 = 0;
+ let (x195, x196) = fiat_p384_scalar_mulx_u64(x183, 0xecec196accc52973);
+ let mut x197: u64 = 0;
+ let mut x198: fiat_p384_scalar_u1 = 0;
+ let (x197, x198) = fiat_p384_scalar_addcarryx_u64(0x0, x196, x193);
+ let mut x199: u64 = 0;
+ let mut x200: fiat_p384_scalar_u1 = 0;
+ let (x199, x200) = fiat_p384_scalar_addcarryx_u64(x198, x194, x191);
+ let mut x201: u64 = 0;
+ let mut x202: fiat_p384_scalar_u1 = 0;
+ let (x201, x202) = fiat_p384_scalar_addcarryx_u64(x200, x192, x189);
+ let mut x203: u64 = 0;
+ let mut x204: fiat_p384_scalar_u1 = 0;
+ let (x203, x204) = fiat_p384_scalar_addcarryx_u64(x202, x190, x187);
+ let mut x205: u64 = 0;
+ let mut x206: fiat_p384_scalar_u1 = 0;
+ let (x205, x206) = fiat_p384_scalar_addcarryx_u64(x204, x188, x185);
+ let x207: u64 = ((x206 as u64) + x186);
+ let mut x208: u64 = 0;
+ let mut x209: fiat_p384_scalar_u1 = 0;
+ let (x208, x209) = fiat_p384_scalar_addcarryx_u64(0x0, x169, x195);
+ let mut x210: u64 = 0;
+ let mut x211: fiat_p384_scalar_u1 = 0;
+ let (x210, x211) = fiat_p384_scalar_addcarryx_u64(x209, x171, x197);
+ let mut x212: u64 = 0;
+ let mut x213: fiat_p384_scalar_u1 = 0;
+ let (x212, x213) = fiat_p384_scalar_addcarryx_u64(x211, x173, x199);
+ let mut x214: u64 = 0;
+ let mut x215: fiat_p384_scalar_u1 = 0;
+ let (x214, x215) = fiat_p384_scalar_addcarryx_u64(x213, x175, x201);
+ let mut x216: u64 = 0;
+ let mut x217: fiat_p384_scalar_u1 = 0;
+ let (x216, x217) = fiat_p384_scalar_addcarryx_u64(x215, x177, x203);
+ let mut x218: u64 = 0;
+ let mut x219: fiat_p384_scalar_u1 = 0;
+ let (x218, x219) = fiat_p384_scalar_addcarryx_u64(x217, x179, x205);
+ let mut x220: u64 = 0;
+ let mut x221: fiat_p384_scalar_u1 = 0;
+ let (x220, x221) = fiat_p384_scalar_addcarryx_u64(x219, x181, x207);
+ let x222: u64 = ((x221 as u64) + (x182 as u64));
+ let mut x223: u64 = 0;
+ let mut x224: u64 = 0;
+ let (x223, x224) = fiat_p384_scalar_mulx_u64(x3, (arg2[5]));
+ let mut x225: u64 = 0;
+ let mut x226: u64 = 0;
+ let (x225, x226) = fiat_p384_scalar_mulx_u64(x3, (arg2[4]));
+ let mut x227: u64 = 0;
+ let mut x228: u64 = 0;
+ let (x227, x228) = fiat_p384_scalar_mulx_u64(x3, (arg2[3]));
+ let mut x229: u64 = 0;
+ let mut x230: u64 = 0;
+ let (x229, x230) = fiat_p384_scalar_mulx_u64(x3, (arg2[2]));
+ let mut x231: u64 = 0;
+ let mut x232: u64 = 0;
+ let (x231, x232) = fiat_p384_scalar_mulx_u64(x3, (arg2[1]));
+ let mut x233: u64 = 0;
+ let mut x234: u64 = 0;
+ let (x233, x234) = fiat_p384_scalar_mulx_u64(x3, (arg2[0]));
+ let mut x235: u64 = 0;
+ let mut x236: fiat_p384_scalar_u1 = 0;
+ let (x235, x236) = fiat_p384_scalar_addcarryx_u64(0x0, x234, x231);
+ let mut x237: u64 = 0;
+ let mut x238: fiat_p384_scalar_u1 = 0;
+ let (x237, x238) = fiat_p384_scalar_addcarryx_u64(x236, x232, x229);
+ let mut x239: u64 = 0;
+ let mut x240: fiat_p384_scalar_u1 = 0;
+ let (x239, x240) = fiat_p384_scalar_addcarryx_u64(x238, x230, x227);
+ let mut x241: u64 = 0;
+ let mut x242: fiat_p384_scalar_u1 = 0;
+ let (x241, x242) = fiat_p384_scalar_addcarryx_u64(x240, x228, x225);
+ let mut x243: u64 = 0;
+ let mut x244: fiat_p384_scalar_u1 = 0;
+ let (x243, x244) = fiat_p384_scalar_addcarryx_u64(x242, x226, x223);
+ let x245: u64 = ((x244 as u64) + x224);
+ let mut x246: u64 = 0;
+ let mut x247: fiat_p384_scalar_u1 = 0;
+ let (x246, x247) = fiat_p384_scalar_addcarryx_u64(0x0, x210, x233);
+ let mut x248: u64 = 0;
+ let mut x249: fiat_p384_scalar_u1 = 0;
+ let (x248, x249) = fiat_p384_scalar_addcarryx_u64(x247, x212, x235);
+ let mut x250: u64 = 0;
+ let mut x251: fiat_p384_scalar_u1 = 0;
+ let (x250, x251) = fiat_p384_scalar_addcarryx_u64(x249, x214, x237);
+ let mut x252: u64 = 0;
+ let mut x253: fiat_p384_scalar_u1 = 0;
+ let (x252, x253) = fiat_p384_scalar_addcarryx_u64(x251, x216, x239);
+ let mut x254: u64 = 0;
+ let mut x255: fiat_p384_scalar_u1 = 0;
+ let (x254, x255) = fiat_p384_scalar_addcarryx_u64(x253, x218, x241);
+ let mut x256: u64 = 0;
+ let mut x257: fiat_p384_scalar_u1 = 0;
+ let (x256, x257) = fiat_p384_scalar_addcarryx_u64(x255, x220, x243);
+ let mut x258: u64 = 0;
+ let mut x259: fiat_p384_scalar_u1 = 0;
+ let (x258, x259) = fiat_p384_scalar_addcarryx_u64(x257, x222, x245);
+ let mut x260: u64 = 0;
+ let mut x261: u64 = 0;
+ let (x260, x261) = fiat_p384_scalar_mulx_u64(x246, 0x6ed46089e88fdc45);
+ let mut x262: u64 = 0;
+ let mut x263: u64 = 0;
+ let (x262, x263) = fiat_p384_scalar_mulx_u64(x260, 0xffffffffffffffff);
+ let mut x264: u64 = 0;
+ let mut x265: u64 = 0;
+ let (x264, x265) = fiat_p384_scalar_mulx_u64(x260, 0xffffffffffffffff);
+ let mut x266: u64 = 0;
+ let mut x267: u64 = 0;
+ let (x266, x267) = fiat_p384_scalar_mulx_u64(x260, 0xffffffffffffffff);
+ let mut x268: u64 = 0;
+ let mut x269: u64 = 0;
+ let (x268, x269) = fiat_p384_scalar_mulx_u64(x260, 0xc7634d81f4372ddf);
+ let mut x270: u64 = 0;
+ let mut x271: u64 = 0;
+ let (x270, x271) = fiat_p384_scalar_mulx_u64(x260, 0x581a0db248b0a77a);
+ let mut x272: u64 = 0;
+ let mut x273: u64 = 0;
+ let (x272, x273) = fiat_p384_scalar_mulx_u64(x260, 0xecec196accc52973);
+ let mut x274: u64 = 0;
+ let mut x275: fiat_p384_scalar_u1 = 0;
+ let (x274, x275) = fiat_p384_scalar_addcarryx_u64(0x0, x273, x270);
+ let mut x276: u64 = 0;
+ let mut x277: fiat_p384_scalar_u1 = 0;
+ let (x276, x277) = fiat_p384_scalar_addcarryx_u64(x275, x271, x268);
+ let mut x278: u64 = 0;
+ let mut x279: fiat_p384_scalar_u1 = 0;
+ let (x278, x279) = fiat_p384_scalar_addcarryx_u64(x277, x269, x266);
+ let mut x280: u64 = 0;
+ let mut x281: fiat_p384_scalar_u1 = 0;
+ let (x280, x281) = fiat_p384_scalar_addcarryx_u64(x279, x267, x264);
+ let mut x282: u64 = 0;
+ let mut x283: fiat_p384_scalar_u1 = 0;
+ let (x282, x283) = fiat_p384_scalar_addcarryx_u64(x281, x265, x262);
+ let x284: u64 = ((x283 as u64) + x263);
+ let mut x285: u64 = 0;
+ let mut x286: fiat_p384_scalar_u1 = 0;
+ let (x285, x286) = fiat_p384_scalar_addcarryx_u64(0x0, x246, x272);
+ let mut x287: u64 = 0;
+ let mut x288: fiat_p384_scalar_u1 = 0;
+ let (x287, x288) = fiat_p384_scalar_addcarryx_u64(x286, x248, x274);
+ let mut x289: u64 = 0;
+ let mut x290: fiat_p384_scalar_u1 = 0;
+ let (x289, x290) = fiat_p384_scalar_addcarryx_u64(x288, x250, x276);
+ let mut x291: u64 = 0;
+ let mut x292: fiat_p384_scalar_u1 = 0;
+ let (x291, x292) = fiat_p384_scalar_addcarryx_u64(x290, x252, x278);
+ let mut x293: u64 = 0;
+ let mut x294: fiat_p384_scalar_u1 = 0;
+ let (x293, x294) = fiat_p384_scalar_addcarryx_u64(x292, x254, x280);
+ let mut x295: u64 = 0;
+ let mut x296: fiat_p384_scalar_u1 = 0;
+ let (x295, x296) = fiat_p384_scalar_addcarryx_u64(x294, x256, x282);
+ let mut x297: u64 = 0;
+ let mut x298: fiat_p384_scalar_u1 = 0;
+ let (x297, x298) = fiat_p384_scalar_addcarryx_u64(x296, x258, x284);
+ let x299: u64 = ((x298 as u64) + (x259 as u64));
+ let mut x300: u64 = 0;
+ let mut x301: u64 = 0;
+ let (x300, x301) = fiat_p384_scalar_mulx_u64(x4, (arg2[5]));
+ let mut x302: u64 = 0;
+ let mut x303: u64 = 0;
+ let (x302, x303) = fiat_p384_scalar_mulx_u64(x4, (arg2[4]));
+ let mut x304: u64 = 0;
+ let mut x305: u64 = 0;
+ let (x304, x305) = fiat_p384_scalar_mulx_u64(x4, (arg2[3]));
+ let mut x306: u64 = 0;
+ let mut x307: u64 = 0;
+ let (x306, x307) = fiat_p384_scalar_mulx_u64(x4, (arg2[2]));
+ let mut x308: u64 = 0;
+ let mut x309: u64 = 0;
+ let (x308, x309) = fiat_p384_scalar_mulx_u64(x4, (arg2[1]));
+ let mut x310: u64 = 0;
+ let mut x311: u64 = 0;
+ let (x310, x311) = fiat_p384_scalar_mulx_u64(x4, (arg2[0]));
+ let mut x312: u64 = 0;
+ let mut x313: fiat_p384_scalar_u1 = 0;
+ let (x312, x313) = fiat_p384_scalar_addcarryx_u64(0x0, x311, x308);
+ let mut x314: u64 = 0;
+ let mut x315: fiat_p384_scalar_u1 = 0;
+ let (x314, x315) = fiat_p384_scalar_addcarryx_u64(x313, x309, x306);
+ let mut x316: u64 = 0;
+ let mut x317: fiat_p384_scalar_u1 = 0;
+ let (x316, x317) = fiat_p384_scalar_addcarryx_u64(x315, x307, x304);
+ let mut x318: u64 = 0;
+ let mut x319: fiat_p384_scalar_u1 = 0;
+ let (x318, x319) = fiat_p384_scalar_addcarryx_u64(x317, x305, x302);
+ let mut x320: u64 = 0;
+ let mut x321: fiat_p384_scalar_u1 = 0;
+ let (x320, x321) = fiat_p384_scalar_addcarryx_u64(x319, x303, x300);
+ let x322: u64 = ((x321 as u64) + x301);
+ let mut x323: u64 = 0;
+ let mut x324: fiat_p384_scalar_u1 = 0;
+ let (x323, x324) = fiat_p384_scalar_addcarryx_u64(0x0, x287, x310);
+ let mut x325: u64 = 0;
+ let mut x326: fiat_p384_scalar_u1 = 0;
+ let (x325, x326) = fiat_p384_scalar_addcarryx_u64(x324, x289, x312);
+ let mut x327: u64 = 0;
+ let mut x328: fiat_p384_scalar_u1 = 0;
+ let (x327, x328) = fiat_p384_scalar_addcarryx_u64(x326, x291, x314);
+ let mut x329: u64 = 0;
+ let mut x330: fiat_p384_scalar_u1 = 0;
+ let (x329, x330) = fiat_p384_scalar_addcarryx_u64(x328, x293, x316);
+ let mut x331: u64 = 0;
+ let mut x332: fiat_p384_scalar_u1 = 0;
+ let (x331, x332) = fiat_p384_scalar_addcarryx_u64(x330, x295, x318);
+ let mut x333: u64 = 0;
+ let mut x334: fiat_p384_scalar_u1 = 0;
+ let (x333, x334) = fiat_p384_scalar_addcarryx_u64(x332, x297, x320);
+ let mut x335: u64 = 0;
+ let mut x336: fiat_p384_scalar_u1 = 0;
+ let (x335, x336) = fiat_p384_scalar_addcarryx_u64(x334, x299, x322);
+ let mut x337: u64 = 0;
+ let mut x338: u64 = 0;
+ let (x337, x338) = fiat_p384_scalar_mulx_u64(x323, 0x6ed46089e88fdc45);
+ let mut x339: u64 = 0;
+ let mut x340: u64 = 0;
+ let (x339, x340) = fiat_p384_scalar_mulx_u64(x337, 0xffffffffffffffff);
+ let mut x341: u64 = 0;
+ let mut x342: u64 = 0;
+ let (x341, x342) = fiat_p384_scalar_mulx_u64(x337, 0xffffffffffffffff);
+ let mut x343: u64 = 0;
+ let mut x344: u64 = 0;
+ let (x343, x344) = fiat_p384_scalar_mulx_u64(x337, 0xffffffffffffffff);
+ let mut x345: u64 = 0;
+ let mut x346: u64 = 0;
+ let (x345, x346) = fiat_p384_scalar_mulx_u64(x337, 0xc7634d81f4372ddf);
+ let mut x347: u64 = 0;
+ let mut x348: u64 = 0;
+ let (x347, x348) = fiat_p384_scalar_mulx_u64(x337, 0x581a0db248b0a77a);
+ let mut x349: u64 = 0;
+ let mut x350: u64 = 0;
+ let (x349, x350) = fiat_p384_scalar_mulx_u64(x337, 0xecec196accc52973);
+ let mut x351: u64 = 0;
+ let mut x352: fiat_p384_scalar_u1 = 0;
+ let (x351, x352) = fiat_p384_scalar_addcarryx_u64(0x0, x350, x347);
+ let mut x353: u64 = 0;
+ let mut x354: fiat_p384_scalar_u1 = 0;
+ let (x353, x354) = fiat_p384_scalar_addcarryx_u64(x352, x348, x345);
+ let mut x355: u64 = 0;
+ let mut x356: fiat_p384_scalar_u1 = 0;
+ let (x355, x356) = fiat_p384_scalar_addcarryx_u64(x354, x346, x343);
+ let mut x357: u64 = 0;
+ let mut x358: fiat_p384_scalar_u1 = 0;
+ let (x357, x358) = fiat_p384_scalar_addcarryx_u64(x356, x344, x341);
+ let mut x359: u64 = 0;
+ let mut x360: fiat_p384_scalar_u1 = 0;
+ let (x359, x360) = fiat_p384_scalar_addcarryx_u64(x358, x342, x339);
+ let x361: u64 = ((x360 as u64) + x340);
+ let mut x362: u64 = 0;
+ let mut x363: fiat_p384_scalar_u1 = 0;
+ let (x362, x363) = fiat_p384_scalar_addcarryx_u64(0x0, x323, x349);
+ let mut x364: u64 = 0;
+ let mut x365: fiat_p384_scalar_u1 = 0;
+ let (x364, x365) = fiat_p384_scalar_addcarryx_u64(x363, x325, x351);
+ let mut x366: u64 = 0;
+ let mut x367: fiat_p384_scalar_u1 = 0;
+ let (x366, x367) = fiat_p384_scalar_addcarryx_u64(x365, x327, x353);
+ let mut x368: u64 = 0;
+ let mut x369: fiat_p384_scalar_u1 = 0;
+ let (x368, x369) = fiat_p384_scalar_addcarryx_u64(x367, x329, x355);
+ let mut x370: u64 = 0;
+ let mut x371: fiat_p384_scalar_u1 = 0;
+ let (x370, x371) = fiat_p384_scalar_addcarryx_u64(x369, x331, x357);
+ let mut x372: u64 = 0;
+ let mut x373: fiat_p384_scalar_u1 = 0;
+ let (x372, x373) = fiat_p384_scalar_addcarryx_u64(x371, x333, x359);
+ let mut x374: u64 = 0;
+ let mut x375: fiat_p384_scalar_u1 = 0;
+ let (x374, x375) = fiat_p384_scalar_addcarryx_u64(x373, x335, x361);
+ let x376: u64 = ((x375 as u64) + (x336 as u64));
+ let mut x377: u64 = 0;
+ let mut x378: u64 = 0;
+ let (x377, x378) = fiat_p384_scalar_mulx_u64(x5, (arg2[5]));
+ let mut x379: u64 = 0;
+ let mut x380: u64 = 0;
+ let (x379, x380) = fiat_p384_scalar_mulx_u64(x5, (arg2[4]));
+ let mut x381: u64 = 0;
+ let mut x382: u64 = 0;
+ let (x381, x382) = fiat_p384_scalar_mulx_u64(x5, (arg2[3]));
+ let mut x383: u64 = 0;
+ let mut x384: u64 = 0;
+ let (x383, x384) = fiat_p384_scalar_mulx_u64(x5, (arg2[2]));
+ let mut x385: u64 = 0;
+ let mut x386: u64 = 0;
+ let (x385, x386) = fiat_p384_scalar_mulx_u64(x5, (arg2[1]));
+ let mut x387: u64 = 0;
+ let mut x388: u64 = 0;
+ let (x387, x388) = fiat_p384_scalar_mulx_u64(x5, (arg2[0]));
+ let mut x389: u64 = 0;
+ let mut x390: fiat_p384_scalar_u1 = 0;
+ let (x389, x390) = fiat_p384_scalar_addcarryx_u64(0x0, x388, x385);
+ let mut x391: u64 = 0;
+ let mut x392: fiat_p384_scalar_u1 = 0;
+ let (x391, x392) = fiat_p384_scalar_addcarryx_u64(x390, x386, x383);
+ let mut x393: u64 = 0;
+ let mut x394: fiat_p384_scalar_u1 = 0;
+ let (x393, x394) = fiat_p384_scalar_addcarryx_u64(x392, x384, x381);
+ let mut x395: u64 = 0;
+ let mut x396: fiat_p384_scalar_u1 = 0;
+ let (x395, x396) = fiat_p384_scalar_addcarryx_u64(x394, x382, x379);
+ let mut x397: u64 = 0;
+ let mut x398: fiat_p384_scalar_u1 = 0;
+ let (x397, x398) = fiat_p384_scalar_addcarryx_u64(x396, x380, x377);
+ let x399: u64 = ((x398 as u64) + x378);
+ let mut x400: u64 = 0;
+ let mut x401: fiat_p384_scalar_u1 = 0;
+ let (x400, x401) = fiat_p384_scalar_addcarryx_u64(0x0, x364, x387);
+ let mut x402: u64 = 0;
+ let mut x403: fiat_p384_scalar_u1 = 0;
+ let (x402, x403) = fiat_p384_scalar_addcarryx_u64(x401, x366, x389);
+ let mut x404: u64 = 0;
+ let mut x405: fiat_p384_scalar_u1 = 0;
+ let (x404, x405) = fiat_p384_scalar_addcarryx_u64(x403, x368, x391);
+ let mut x406: u64 = 0;
+ let mut x407: fiat_p384_scalar_u1 = 0;
+ let (x406, x407) = fiat_p384_scalar_addcarryx_u64(x405, x370, x393);
+ let mut x408: u64 = 0;
+ let mut x409: fiat_p384_scalar_u1 = 0;
+ let (x408, x409) = fiat_p384_scalar_addcarryx_u64(x407, x372, x395);
+ let mut x410: u64 = 0;
+ let mut x411: fiat_p384_scalar_u1 = 0;
+ let (x410, x411) = fiat_p384_scalar_addcarryx_u64(x409, x374, x397);
+ let mut x412: u64 = 0;
+ let mut x413: fiat_p384_scalar_u1 = 0;
+ let (x412, x413) = fiat_p384_scalar_addcarryx_u64(x411, x376, x399);
+ let mut x414: u64 = 0;
+ let mut x415: u64 = 0;
+ let (x414, x415) = fiat_p384_scalar_mulx_u64(x400, 0x6ed46089e88fdc45);
+ let mut x416: u64 = 0;
+ let mut x417: u64 = 0;
+ let (x416, x417) = fiat_p384_scalar_mulx_u64(x414, 0xffffffffffffffff);
+ let mut x418: u64 = 0;
+ let mut x419: u64 = 0;
+ let (x418, x419) = fiat_p384_scalar_mulx_u64(x414, 0xffffffffffffffff);
+ let mut x420: u64 = 0;
+ let mut x421: u64 = 0;
+ let (x420, x421) = fiat_p384_scalar_mulx_u64(x414, 0xffffffffffffffff);
+ let mut x422: u64 = 0;
+ let mut x423: u64 = 0;
+ let (x422, x423) = fiat_p384_scalar_mulx_u64(x414, 0xc7634d81f4372ddf);
+ let mut x424: u64 = 0;
+ let mut x425: u64 = 0;
+ let (x424, x425) = fiat_p384_scalar_mulx_u64(x414, 0x581a0db248b0a77a);
+ let mut x426: u64 = 0;
+ let mut x427: u64 = 0;
+ let (x426, x427) = fiat_p384_scalar_mulx_u64(x414, 0xecec196accc52973);
+ let mut x428: u64 = 0;
+ let mut x429: fiat_p384_scalar_u1 = 0;
+ let (x428, x429) = fiat_p384_scalar_addcarryx_u64(0x0, x427, x424);
+ let mut x430: u64 = 0;
+ let mut x431: fiat_p384_scalar_u1 = 0;
+ let (x430, x431) = fiat_p384_scalar_addcarryx_u64(x429, x425, x422);
+ let mut x432: u64 = 0;
+ let mut x433: fiat_p384_scalar_u1 = 0;
+ let (x432, x433) = fiat_p384_scalar_addcarryx_u64(x431, x423, x420);
+ let mut x434: u64 = 0;
+ let mut x435: fiat_p384_scalar_u1 = 0;
+ let (x434, x435) = fiat_p384_scalar_addcarryx_u64(x433, x421, x418);
+ let mut x436: u64 = 0;
+ let mut x437: fiat_p384_scalar_u1 = 0;
+ let (x436, x437) = fiat_p384_scalar_addcarryx_u64(x435, x419, x416);
+ let x438: u64 = ((x437 as u64) + x417);
+ let mut x439: u64 = 0;
+ let mut x440: fiat_p384_scalar_u1 = 0;
+ let (x439, x440) = fiat_p384_scalar_addcarryx_u64(0x0, x400, x426);
+ let mut x441: u64 = 0;
+ let mut x442: fiat_p384_scalar_u1 = 0;
+ let (x441, x442) = fiat_p384_scalar_addcarryx_u64(x440, x402, x428);
+ let mut x443: u64 = 0;
+ let mut x444: fiat_p384_scalar_u1 = 0;
+ let (x443, x444) = fiat_p384_scalar_addcarryx_u64(x442, x404, x430);
+ let mut x445: u64 = 0;
+ let mut x446: fiat_p384_scalar_u1 = 0;
+ let (x445, x446) = fiat_p384_scalar_addcarryx_u64(x444, x406, x432);
+ let mut x447: u64 = 0;
+ let mut x448: fiat_p384_scalar_u1 = 0;
+ let (x447, x448) = fiat_p384_scalar_addcarryx_u64(x446, x408, x434);
+ let mut x449: u64 = 0;
+ let mut x450: fiat_p384_scalar_u1 = 0;
+ let (x449, x450) = fiat_p384_scalar_addcarryx_u64(x448, x410, x436);
+ let mut x451: u64 = 0;
+ let mut x452: fiat_p384_scalar_u1 = 0;
+ let (x451, x452) = fiat_p384_scalar_addcarryx_u64(x450, x412, x438);
+ let x453: u64 = ((x452 as u64) + (x413 as u64));
+ let mut x454: u64 = 0;
+ let mut x455: fiat_p384_scalar_u1 = 0;
+ let (x454, x455) = fiat_p384_scalar_subborrowx_u64(0x0, x441, 0xecec196accc52973);
+ let mut x456: u64 = 0;
+ let mut x457: fiat_p384_scalar_u1 = 0;
+ let (x456, x457) = fiat_p384_scalar_subborrowx_u64(x455, x443, 0x581a0db248b0a77a);
+ let mut x458: u64 = 0;
+ let mut x459: fiat_p384_scalar_u1 = 0;
+ let (x458, x459) = fiat_p384_scalar_subborrowx_u64(x457, x445, 0xc7634d81f4372ddf);
+ let mut x460: u64 = 0;
+ let mut x461: fiat_p384_scalar_u1 = 0;
+ let (x460, x461) = fiat_p384_scalar_subborrowx_u64(x459, x447, 0xffffffffffffffff);
+ let mut x462: u64 = 0;
+ let mut x463: fiat_p384_scalar_u1 = 0;
+ let (x462, x463) = fiat_p384_scalar_subborrowx_u64(x461, x449, 0xffffffffffffffff);
+ let mut x464: u64 = 0;
+ let mut x465: fiat_p384_scalar_u1 = 0;
+ let (x464, x465) = fiat_p384_scalar_subborrowx_u64(x463, x451, 0xffffffffffffffff);
+ let mut x466: u64 = 0;
+ let mut x467: fiat_p384_scalar_u1 = 0;
+ let (x466, x467) = fiat_p384_scalar_subborrowx_u64(x465, x453, 0x0_u64);
+ let mut x468: u64 = 0;
+ let (x468) = fiat_p384_scalar_cmovznz_u64(x467, x454, x441);
+ let mut x469: u64 = 0;
+ let (x469) = fiat_p384_scalar_cmovznz_u64(x467, x456, x443);
+ let mut x470: u64 = 0;
+ let (x470) = fiat_p384_scalar_cmovznz_u64(x467, x458, x445);
+ let mut x471: u64 = 0;
+ let (x471) = fiat_p384_scalar_cmovznz_u64(x467, x460, x447);
+ let mut x472: u64 = 0;
+ let (x472) = fiat_p384_scalar_cmovznz_u64(x467, x462, x449);
+ let mut x473: u64 = 0;
+ let (x473) = fiat_p384_scalar_cmovznz_u64(x467, x464, x451);
+ out1[0] = x468;
+ out1[1] = x469;
+ out1[2] = x470;
+ out1[3] = x471;
+ out1[4] = x472;
+ out1[5] = x473;
+ out1
+}
+#[doc = " The function fiat_p384_scalar_square squares a field element in the"]
+#[doc = " Montgomery domain."]
+#[doc = ""]
+#[doc = " Preconditions:"]
+#[doc = " 0 ≤ eval arg1 < m"]
+#[doc = " Postconditions:"]
+#[doc = " eval (from_montgomery out1) mod m = (eval (from_montgomery arg1) * eval"]
+#[doc = " (from_montgomery arg1)) mod m 0 ≤ eval out1 < m"]
+#[inline]
+pub const fn fiat_p384_scalar_square(
+ arg1: &fiat_p384_scalar_montgomery_domain_field_element,
+) -> fiat_p384_scalar_montgomery_domain_field_element {
+ let mut out1: fiat_p384_scalar_montgomery_domain_field_element = [0; 6];
+ let x1: u64 = (arg1[1]);
+ let x2: u64 = (arg1[2]);
+ let x3: u64 = (arg1[3]);
+ let x4: u64 = (arg1[4]);
+ let x5: u64 = (arg1[5]);
+ let x6: u64 = (arg1[0]);
+ let mut x7: u64 = 0;
+ let mut x8: u64 = 0;
+ let (x7, x8) = fiat_p384_scalar_mulx_u64(x6, (arg1[5]));
+ let mut x9: u64 = 0;
+ let mut x10: u64 = 0;
+ let (x9, x10) = fiat_p384_scalar_mulx_u64(x6, (arg1[4]));
+ let mut x11: u64 = 0;
+ let mut x12: u64 = 0;
+ let (x11, x12) = fiat_p384_scalar_mulx_u64(x6, (arg1[3]));
+ let mut x13: u64 = 0;
+ let mut x14: u64 = 0;
+ let (x13, x14) = fiat_p384_scalar_mulx_u64(x6, (arg1[2]));
+ let mut x15: u64 = 0;
+ let mut x16: u64 = 0;
+ let (x15, x16) = fiat_p384_scalar_mulx_u64(x6, (arg1[1]));
+ let mut x17: u64 = 0;
+ let mut x18: u64 = 0;
+ let (x17, x18) = fiat_p384_scalar_mulx_u64(x6, (arg1[0]));
+ let mut x19: u64 = 0;
+ let mut x20: fiat_p384_scalar_u1 = 0;
+ let (x19, x20) = fiat_p384_scalar_addcarryx_u64(0x0, x18, x15);
+ let mut x21: u64 = 0;
+ let mut x22: fiat_p384_scalar_u1 = 0;
+ let (x21, x22) = fiat_p384_scalar_addcarryx_u64(x20, x16, x13);
+ let mut x23: u64 = 0;
+ let mut x24: fiat_p384_scalar_u1 = 0;
+ let (x23, x24) = fiat_p384_scalar_addcarryx_u64(x22, x14, x11);
+ let mut x25: u64 = 0;
+ let mut x26: fiat_p384_scalar_u1 = 0;
+ let (x25, x26) = fiat_p384_scalar_addcarryx_u64(x24, x12, x9);
+ let mut x27: u64 = 0;
+ let mut x28: fiat_p384_scalar_u1 = 0;
+ let (x27, x28) = fiat_p384_scalar_addcarryx_u64(x26, x10, x7);
+ let x29: u64 = ((x28 as u64) + x8);
+ let mut x30: u64 = 0;
+ let mut x31: u64 = 0;
+ let (x30, x31) = fiat_p384_scalar_mulx_u64(x17, 0x6ed46089e88fdc45);
+ let mut x32: u64 = 0;
+ let mut x33: u64 = 0;
+ let (x32, x33) = fiat_p384_scalar_mulx_u64(x30, 0xffffffffffffffff);
+ let mut x34: u64 = 0;
+ let mut x35: u64 = 0;
+ let (x34, x35) = fiat_p384_scalar_mulx_u64(x30, 0xffffffffffffffff);
+ let mut x36: u64 = 0;
+ let mut x37: u64 = 0;
+ let (x36, x37) = fiat_p384_scalar_mulx_u64(x30, 0xffffffffffffffff);
+ let mut x38: u64 = 0;
+ let mut x39: u64 = 0;
+ let (x38, x39) = fiat_p384_scalar_mulx_u64(x30, 0xc7634d81f4372ddf);
+ let mut x40: u64 = 0;
+ let mut x41: u64 = 0;
+ let (x40, x41) = fiat_p384_scalar_mulx_u64(x30, 0x581a0db248b0a77a);
+ let mut x42: u64 = 0;
+ let mut x43: u64 = 0;
+ let (x42, x43) = fiat_p384_scalar_mulx_u64(x30, 0xecec196accc52973);
+ let mut x44: u64 = 0;
+ let mut x45: fiat_p384_scalar_u1 = 0;
+ let (x44, x45) = fiat_p384_scalar_addcarryx_u64(0x0, x43, x40);
+ let mut x46: u64 = 0;
+ let mut x47: fiat_p384_scalar_u1 = 0;
+ let (x46, x47) = fiat_p384_scalar_addcarryx_u64(x45, x41, x38);
+ let mut x48: u64 = 0;
+ let mut x49: fiat_p384_scalar_u1 = 0;
+ let (x48, x49) = fiat_p384_scalar_addcarryx_u64(x47, x39, x36);
+ let mut x50: u64 = 0;
+ let mut x51: fiat_p384_scalar_u1 = 0;
+ let (x50, x51) = fiat_p384_scalar_addcarryx_u64(x49, x37, x34);
+ let mut x52: u64 = 0;
+ let mut x53: fiat_p384_scalar_u1 = 0;
+ let (x52, x53) = fiat_p384_scalar_addcarryx_u64(x51, x35, x32);
+ let x54: u64 = ((x53 as u64) + x33);
+ let mut x55: u64 = 0;
+ let mut x56: fiat_p384_scalar_u1 = 0;
+ let (x55, x56) = fiat_p384_scalar_addcarryx_u64(0x0, x17, x42);
+ let mut x57: u64 = 0;
+ let mut x58: fiat_p384_scalar_u1 = 0;
+ let (x57, x58) = fiat_p384_scalar_addcarryx_u64(x56, x19, x44);
+ let mut x59: u64 = 0;
+ let mut x60: fiat_p384_scalar_u1 = 0;
+ let (x59, x60) = fiat_p384_scalar_addcarryx_u64(x58, x21, x46);
+ let mut x61: u64 = 0;
+ let mut x62: fiat_p384_scalar_u1 = 0;
+ let (x61, x62) = fiat_p384_scalar_addcarryx_u64(x60, x23, x48);
+ let mut x63: u64 = 0;
+ let mut x64: fiat_p384_scalar_u1 = 0;
+ let (x63, x64) = fiat_p384_scalar_addcarryx_u64(x62, x25, x50);
+ let mut x65: u64 = 0;
+ let mut x66: fiat_p384_scalar_u1 = 0;
+ let (x65, x66) = fiat_p384_scalar_addcarryx_u64(x64, x27, x52);
+ let mut x67: u64 = 0;
+ let mut x68: fiat_p384_scalar_u1 = 0;
+ let (x67, x68) = fiat_p384_scalar_addcarryx_u64(x66, x29, x54);
+ let mut x69: u64 = 0;
+ let mut x70: u64 = 0;
+ let (x69, x70) = fiat_p384_scalar_mulx_u64(x1, (arg1[5]));
+ let mut x71: u64 = 0;
+ let mut x72: u64 = 0;
+ let (x71, x72) = fiat_p384_scalar_mulx_u64(x1, (arg1[4]));
+ let mut x73: u64 = 0;
+ let mut x74: u64 = 0;
+ let (x73, x74) = fiat_p384_scalar_mulx_u64(x1, (arg1[3]));
+ let mut x75: u64 = 0;
+ let mut x76: u64 = 0;
+ let (x75, x76) = fiat_p384_scalar_mulx_u64(x1, (arg1[2]));
+ let mut x77: u64 = 0;
+ let mut x78: u64 = 0;
+ let (x77, x78) = fiat_p384_scalar_mulx_u64(x1, (arg1[1]));
+ let mut x79: u64 = 0;
+ let mut x80: u64 = 0;
+ let (x79, x80) = fiat_p384_scalar_mulx_u64(x1, (arg1[0]));
+ let mut x81: u64 = 0;
+ let mut x82: fiat_p384_scalar_u1 = 0;
+ let (x81, x82) = fiat_p384_scalar_addcarryx_u64(0x0, x80, x77);
+ let mut x83: u64 = 0;
+ let mut x84: fiat_p384_scalar_u1 = 0;
+ let (x83, x84) = fiat_p384_scalar_addcarryx_u64(x82, x78, x75);
+ let mut x85: u64 = 0;
+ let mut x86: fiat_p384_scalar_u1 = 0;
+ let (x85, x86) = fiat_p384_scalar_addcarryx_u64(x84, x76, x73);
+ let mut x87: u64 = 0;
+ let mut x88: fiat_p384_scalar_u1 = 0;
+ let (x87, x88) = fiat_p384_scalar_addcarryx_u64(x86, x74, x71);
+ let mut x89: u64 = 0;
+ let mut x90: fiat_p384_scalar_u1 = 0;
+ let (x89, x90) = fiat_p384_scalar_addcarryx_u64(x88, x72, x69);
+ let x91: u64 = ((x90 as u64) + x70);
+ let mut x92: u64 = 0;
+ let mut x93: fiat_p384_scalar_u1 = 0;
+ let (x92, x93) = fiat_p384_scalar_addcarryx_u64(0x0, x57, x79);
+ let mut x94: u64 = 0;
+ let mut x95: fiat_p384_scalar_u1 = 0;
+ let (x94, x95) = fiat_p384_scalar_addcarryx_u64(x93, x59, x81);
+ let mut x96: u64 = 0;
+ let mut x97: fiat_p384_scalar_u1 = 0;
+ let (x96, x97) = fiat_p384_scalar_addcarryx_u64(x95, x61, x83);
+ let mut x98: u64 = 0;
+ let mut x99: fiat_p384_scalar_u1 = 0;
+ let (x98, x99) = fiat_p384_scalar_addcarryx_u64(x97, x63, x85);
+ let mut x100: u64 = 0;
+ let mut x101: fiat_p384_scalar_u1 = 0;
+ let (x100, x101) = fiat_p384_scalar_addcarryx_u64(x99, x65, x87);
+ let mut x102: u64 = 0;
+ let mut x103: fiat_p384_scalar_u1 = 0;
+ let (x102, x103) = fiat_p384_scalar_addcarryx_u64(x101, x67, x89);
+ let mut x104: u64 = 0;
+ let mut x105: fiat_p384_scalar_u1 = 0;
+ let (x104, x105) = fiat_p384_scalar_addcarryx_u64(x103, (x68 as u64), x91);
+ let mut x106: u64 = 0;
+ let mut x107: u64 = 0;
+ let (x106, x107) = fiat_p384_scalar_mulx_u64(x92, 0x6ed46089e88fdc45);
+ let mut x108: u64 = 0;
+ let mut x109: u64 = 0;
+ let (x108, x109) = fiat_p384_scalar_mulx_u64(x106, 0xffffffffffffffff);
+ let mut x110: u64 = 0;
+ let mut x111: u64 = 0;
+ let (x110, x111) = fiat_p384_scalar_mulx_u64(x106, 0xffffffffffffffff);
+ let mut x112: u64 = 0;
+ let mut x113: u64 = 0;
+ let (x112, x113) = fiat_p384_scalar_mulx_u64(x106, 0xffffffffffffffff);
+ let mut x114: u64 = 0;
+ let mut x115: u64 = 0;
+ let (x114, x115) = fiat_p384_scalar_mulx_u64(x106, 0xc7634d81f4372ddf);
+ let mut x116: u64 = 0;
+ let mut x117: u64 = 0;
+ let (x116, x117) = fiat_p384_scalar_mulx_u64(x106, 0x581a0db248b0a77a);
+ let mut x118: u64 = 0;
+ let mut x119: u64 = 0;
+ let (x118, x119) = fiat_p384_scalar_mulx_u64(x106, 0xecec196accc52973);
+ let mut x120: u64 = 0;
+ let mut x121: fiat_p384_scalar_u1 = 0;
+ let (x120, x121) = fiat_p384_scalar_addcarryx_u64(0x0, x119, x116);
+ let mut x122: u64 = 0;
+ let mut x123: fiat_p384_scalar_u1 = 0;
+ let (x122, x123) = fiat_p384_scalar_addcarryx_u64(x121, x117, x114);
+ let mut x124: u64 = 0;
+ let mut x125: fiat_p384_scalar_u1 = 0;
+ let (x124, x125) = fiat_p384_scalar_addcarryx_u64(x123, x115, x112);
+ let mut x126: u64 = 0;
+ let mut x127: fiat_p384_scalar_u1 = 0;
+ let (x126, x127) = fiat_p384_scalar_addcarryx_u64(x125, x113, x110);
+ let mut x128: u64 = 0;
+ let mut x129: fiat_p384_scalar_u1 = 0;
+ let (x128, x129) = fiat_p384_scalar_addcarryx_u64(x127, x111, x108);
+ let x130: u64 = ((x129 as u64) + x109);
+ let mut x131: u64 = 0;
+ let mut x132: fiat_p384_scalar_u1 = 0;
+ let (x131, x132) = fiat_p384_scalar_addcarryx_u64(0x0, x92, x118);
+ let mut x133: u64 = 0;
+ let mut x134: fiat_p384_scalar_u1 = 0;
+ let (x133, x134) = fiat_p384_scalar_addcarryx_u64(x132, x94, x120);
+ let mut x135: u64 = 0;
+ let mut x136: fiat_p384_scalar_u1 = 0;
+ let (x135, x136) = fiat_p384_scalar_addcarryx_u64(x134, x96, x122);
+ let mut x137: u64 = 0;
+ let mut x138: fiat_p384_scalar_u1 = 0;
+ let (x137, x138) = fiat_p384_scalar_addcarryx_u64(x136, x98, x124);
+ let mut x139: u64 = 0;
+ let mut x140: fiat_p384_scalar_u1 = 0;
+ let (x139, x140) = fiat_p384_scalar_addcarryx_u64(x138, x100, x126);
+ let mut x141: u64 = 0;
+ let mut x142: fiat_p384_scalar_u1 = 0;
+ let (x141, x142) = fiat_p384_scalar_addcarryx_u64(x140, x102, x128);
+ let mut x143: u64 = 0;
+ let mut x144: fiat_p384_scalar_u1 = 0;
+ let (x143, x144) = fiat_p384_scalar_addcarryx_u64(x142, x104, x130);
+ let x145: u64 = ((x144 as u64) + (x105 as u64));
+ let mut x146: u64 = 0;
+ let mut x147: u64 = 0;
+ let (x146, x147) = fiat_p384_scalar_mulx_u64(x2, (arg1[5]));
+ let mut x148: u64 = 0;
+ let mut x149: u64 = 0;
+ let (x148, x149) = fiat_p384_scalar_mulx_u64(x2, (arg1[4]));
+ let mut x150: u64 = 0;
+ let mut x151: u64 = 0;
+ let (x150, x151) = fiat_p384_scalar_mulx_u64(x2, (arg1[3]));
+ let mut x152: u64 = 0;
+ let mut x153: u64 = 0;
+ let (x152, x153) = fiat_p384_scalar_mulx_u64(x2, (arg1[2]));
+ let mut x154: u64 = 0;
+ let mut x155: u64 = 0;
+ let (x154, x155) = fiat_p384_scalar_mulx_u64(x2, (arg1[1]));
+ let mut x156: u64 = 0;
+ let mut x157: u64 = 0;
+ let (x156, x157) = fiat_p384_scalar_mulx_u64(x2, (arg1[0]));
+ let mut x158: u64 = 0;
+ let mut x159: fiat_p384_scalar_u1 = 0;
+ let (x158, x159) = fiat_p384_scalar_addcarryx_u64(0x0, x157, x154);
+ let mut x160: u64 = 0;
+ let mut x161: fiat_p384_scalar_u1 = 0;
+ let (x160, x161) = fiat_p384_scalar_addcarryx_u64(x159, x155, x152);
+ let mut x162: u64 = 0;
+ let mut x163: fiat_p384_scalar_u1 = 0;
+ let (x162, x163) = fiat_p384_scalar_addcarryx_u64(x161, x153, x150);
+ let mut x164: u64 = 0;
+ let mut x165: fiat_p384_scalar_u1 = 0;
+ let (x164, x165) = fiat_p384_scalar_addcarryx_u64(x163, x151, x148);
+ let mut x166: u64 = 0;
+ let mut x167: fiat_p384_scalar_u1 = 0;
+ let (x166, x167) = fiat_p384_scalar_addcarryx_u64(x165, x149, x146);
+ let x168: u64 = ((x167 as u64) + x147);
+ let mut x169: u64 = 0;
+ let mut x170: fiat_p384_scalar_u1 = 0;
+ let (x169, x170) = fiat_p384_scalar_addcarryx_u64(0x0, x133, x156);
+ let mut x171: u64 = 0;
+ let mut x172: fiat_p384_scalar_u1 = 0;
+ let (x171, x172) = fiat_p384_scalar_addcarryx_u64(x170, x135, x158);
+ let mut x173: u64 = 0;
+ let mut x174: fiat_p384_scalar_u1 = 0;
+ let (x173, x174) = fiat_p384_scalar_addcarryx_u64(x172, x137, x160);
+ let mut x175: u64 = 0;
+ let mut x176: fiat_p384_scalar_u1 = 0;
+ let (x175, x176) = fiat_p384_scalar_addcarryx_u64(x174, x139, x162);
+ let mut x177: u64 = 0;
+ let mut x178: fiat_p384_scalar_u1 = 0;
+ let (x177, x178) = fiat_p384_scalar_addcarryx_u64(x176, x141, x164);
+ let mut x179: u64 = 0;
+ let mut x180: fiat_p384_scalar_u1 = 0;
+ let (x179, x180) = fiat_p384_scalar_addcarryx_u64(x178, x143, x166);
+ let mut x181: u64 = 0;
+ let mut x182: fiat_p384_scalar_u1 = 0;
+ let (x181, x182) = fiat_p384_scalar_addcarryx_u64(x180, x145, x168);
+ let mut x183: u64 = 0;
+ let mut x184: u64 = 0;
+ let (x183, x184) = fiat_p384_scalar_mulx_u64(x169, 0x6ed46089e88fdc45);
+ let mut x185: u64 = 0;
+ let mut x186: u64 = 0;
+ let (x185, x186) = fiat_p384_scalar_mulx_u64(x183, 0xffffffffffffffff);
+ let mut x187: u64 = 0;
+ let mut x188: u64 = 0;
+ let (x187, x188) = fiat_p384_scalar_mulx_u64(x183, 0xffffffffffffffff);
+ let mut x189: u64 = 0;
+ let mut x190: u64 = 0;
+ let (x189, x190) = fiat_p384_scalar_mulx_u64(x183, 0xffffffffffffffff);
+ let mut x191: u64 = 0;
+ let mut x192: u64 = 0;
+ let (x191, x192) = fiat_p384_scalar_mulx_u64(x183, 0xc7634d81f4372ddf);
+ let mut x193: u64 = 0;
+ let mut x194: u64 = 0;
+ let (x193, x194) = fiat_p384_scalar_mulx_u64(x183, 0x581a0db248b0a77a);
+ let mut x195: u64 = 0;
+ let mut x196: u64 = 0;
+ let (x195, x196) = fiat_p384_scalar_mulx_u64(x183, 0xecec196accc52973);
+ let mut x197: u64 = 0;
+ let mut x198: fiat_p384_scalar_u1 = 0;
+ let (x197, x198) = fiat_p384_scalar_addcarryx_u64(0x0, x196, x193);
+ let mut x199: u64 = 0;
+ let mut x200: fiat_p384_scalar_u1 = 0;
+ let (x199, x200) = fiat_p384_scalar_addcarryx_u64(x198, x194, x191);
+ let mut x201: u64 = 0;
+ let mut x202: fiat_p384_scalar_u1 = 0;
+ let (x201, x202) = fiat_p384_scalar_addcarryx_u64(x200, x192, x189);
+ let mut x203: u64 = 0;
+ let mut x204: fiat_p384_scalar_u1 = 0;
+ let (x203, x204) = fiat_p384_scalar_addcarryx_u64(x202, x190, x187);
+ let mut x205: u64 = 0;
+ let mut x206: fiat_p384_scalar_u1 = 0;
+ let (x205, x206) = fiat_p384_scalar_addcarryx_u64(x204, x188, x185);
+ let x207: u64 = ((x206 as u64) + x186);
+ let mut x208: u64 = 0;
+ let mut x209: fiat_p384_scalar_u1 = 0;
+ let (x208, x209) = fiat_p384_scalar_addcarryx_u64(0x0, x169, x195);
+ let mut x210: u64 = 0;
+ let mut x211: fiat_p384_scalar_u1 = 0;
+ let (x210, x211) = fiat_p384_scalar_addcarryx_u64(x209, x171, x197);
+ let mut x212: u64 = 0;
+ let mut x213: fiat_p384_scalar_u1 = 0;
+ let (x212, x213) = fiat_p384_scalar_addcarryx_u64(x211, x173, x199);
+ let mut x214: u64 = 0;
+ let mut x215: fiat_p384_scalar_u1 = 0;
+ let (x214, x215) = fiat_p384_scalar_addcarryx_u64(x213, x175, x201);
+ let mut x216: u64 = 0;
+ let mut x217: fiat_p384_scalar_u1 = 0;
+ let (x216, x217) = fiat_p384_scalar_addcarryx_u64(x215, x177, x203);
+ let mut x218: u64 = 0;
+ let mut x219: fiat_p384_scalar_u1 = 0;
+ let (x218, x219) = fiat_p384_scalar_addcarryx_u64(x217, x179, x205);
+ let mut x220: u64 = 0;
+ let mut x221: fiat_p384_scalar_u1 = 0;
+ let (x220, x221) = fiat_p384_scalar_addcarryx_u64(x219, x181, x207);
+ let x222: u64 = ((x221 as u64) + (x182 as u64));
+ let mut x223: u64 = 0;
+ let mut x224: u64 = 0;
+ let (x223, x224) = fiat_p384_scalar_mulx_u64(x3, (arg1[5]));
+ let mut x225: u64 = 0;
+ let mut x226: u64 = 0;
+ let (x225, x226) = fiat_p384_scalar_mulx_u64(x3, (arg1[4]));
+ let mut x227: u64 = 0;
+ let mut x228: u64 = 0;
+ let (x227, x228) = fiat_p384_scalar_mulx_u64(x3, (arg1[3]));
+ let mut x229: u64 = 0;
+ let mut x230: u64 = 0;
+ let (x229, x230) = fiat_p384_scalar_mulx_u64(x3, (arg1[2]));
+ let mut x231: u64 = 0;
+ let mut x232: u64 = 0;
+ let (x231, x232) = fiat_p384_scalar_mulx_u64(x3, (arg1[1]));
+ let mut x233: u64 = 0;
+ let mut x234: u64 = 0;
+ let (x233, x234) = fiat_p384_scalar_mulx_u64(x3, (arg1[0]));
+ let mut x235: u64 = 0;
+ let mut x236: fiat_p384_scalar_u1 = 0;
+ let (x235, x236) = fiat_p384_scalar_addcarryx_u64(0x0, x234, x231);
+ let mut x237: u64 = 0;
+ let mut x238: fiat_p384_scalar_u1 = 0;
+ let (x237, x238) = fiat_p384_scalar_addcarryx_u64(x236, x232, x229);
+ let mut x239: u64 = 0;
+ let mut x240: fiat_p384_scalar_u1 = 0;
+ let (x239, x240) = fiat_p384_scalar_addcarryx_u64(x238, x230, x227);
+ let mut x241: u64 = 0;
+ let mut x242: fiat_p384_scalar_u1 = 0;
+ let (x241, x242) = fiat_p384_scalar_addcarryx_u64(x240, x228, x225);
+ let mut x243: u64 = 0;
+ let mut x244: fiat_p384_scalar_u1 = 0;
+ let (x243, x244) = fiat_p384_scalar_addcarryx_u64(x242, x226, x223);
+ let x245: u64 = ((x244 as u64) + x224);
+ let mut x246: u64 = 0;
+ let mut x247: fiat_p384_scalar_u1 = 0;
+ let (x246, x247) = fiat_p384_scalar_addcarryx_u64(0x0, x210, x233);
+ let mut x248: u64 = 0;
+ let mut x249: fiat_p384_scalar_u1 = 0;
+ let (x248, x249) = fiat_p384_scalar_addcarryx_u64(x247, x212, x235);
+ let mut x250: u64 = 0;
+ let mut x251: fiat_p384_scalar_u1 = 0;
+ let (x250, x251) = fiat_p384_scalar_addcarryx_u64(x249, x214, x237);
+ let mut x252: u64 = 0;
+ let mut x253: fiat_p384_scalar_u1 = 0;
+ let (x252, x253) = fiat_p384_scalar_addcarryx_u64(x251, x216, x239);
+ let mut x254: u64 = 0;
+ let mut x255: fiat_p384_scalar_u1 = 0;
+ let (x254, x255) = fiat_p384_scalar_addcarryx_u64(x253, x218, x241);
+ let mut x256: u64 = 0;
+ let mut x257: fiat_p384_scalar_u1 = 0;
+ let (x256, x257) = fiat_p384_scalar_addcarryx_u64(x255, x220, x243);
+ let mut x258: u64 = 0;
+ let mut x259: fiat_p384_scalar_u1 = 0;
+ let (x258, x259) = fiat_p384_scalar_addcarryx_u64(x257, x222, x245);
+ let mut x260: u64 = 0;
+ let mut x261: u64 = 0;
+ let (x260, x261) = fiat_p384_scalar_mulx_u64(x246, 0x6ed46089e88fdc45);
+ let mut x262: u64 = 0;
+ let mut x263: u64 = 0;
+ let (x262, x263) = fiat_p384_scalar_mulx_u64(x260, 0xffffffffffffffff);
+ let mut x264: u64 = 0;
+ let mut x265: u64 = 0;
+ let (x264, x265) = fiat_p384_scalar_mulx_u64(x260, 0xffffffffffffffff);
+ let mut x266: u64 = 0;
+ let mut x267: u64 = 0;
+ let (x266, x267) = fiat_p384_scalar_mulx_u64(x260, 0xffffffffffffffff);
+ let mut x268: u64 = 0;
+ let mut x269: u64 = 0;
+ let (x268, x269) = fiat_p384_scalar_mulx_u64(x260, 0xc7634d81f4372ddf);
+ let mut x270: u64 = 0;
+ let mut x271: u64 = 0;
+ let (x270, x271) = fiat_p384_scalar_mulx_u64(x260, 0x581a0db248b0a77a);
+ let mut x272: u64 = 0;
+ let mut x273: u64 = 0;
+ let (x272, x273) = fiat_p384_scalar_mulx_u64(x260, 0xecec196accc52973);
+ let mut x274: u64 = 0;
+ let mut x275: fiat_p384_scalar_u1 = 0;
+ let (x274, x275) = fiat_p384_scalar_addcarryx_u64(0x0, x273, x270);
+ let mut x276: u64 = 0;
+ let mut x277: fiat_p384_scalar_u1 = 0;
+ let (x276, x277) = fiat_p384_scalar_addcarryx_u64(x275, x271, x268);
+ let mut x278: u64 = 0;
+ let mut x279: fiat_p384_scalar_u1 = 0;
+ let (x278, x279) = fiat_p384_scalar_addcarryx_u64(x277, x269, x266);
+ let mut x280: u64 = 0;
+ let mut x281: fiat_p384_scalar_u1 = 0;
+ let (x280, x281) = fiat_p384_scalar_addcarryx_u64(x279, x267, x264);
+ let mut x282: u64 = 0;
+ let mut x283: fiat_p384_scalar_u1 = 0;
+ let (x282, x283) = fiat_p384_scalar_addcarryx_u64(x281, x265, x262);
+ let x284: u64 = ((x283 as u64) + x263);
+ let mut x285: u64 = 0;
+ let mut x286: fiat_p384_scalar_u1 = 0;
+ let (x285, x286) = fiat_p384_scalar_addcarryx_u64(0x0, x246, x272);
+ let mut x287: u64 = 0;
+ let mut x288: fiat_p384_scalar_u1 = 0;
+ let (x287, x288) = fiat_p384_scalar_addcarryx_u64(x286, x248, x274);
+ let mut x289: u64 = 0;
+ let mut x290: fiat_p384_scalar_u1 = 0;
+ let (x289, x290) = fiat_p384_scalar_addcarryx_u64(x288, x250, x276);
+ let mut x291: u64 = 0;
+ let mut x292: fiat_p384_scalar_u1 = 0;
+ let (x291, x292) = fiat_p384_scalar_addcarryx_u64(x290, x252, x278);
+ let mut x293: u64 = 0;
+ let mut x294: fiat_p384_scalar_u1 = 0;
+ let (x293, x294) = fiat_p384_scalar_addcarryx_u64(x292, x254, x280);
+ let mut x295: u64 = 0;
+ let mut x296: fiat_p384_scalar_u1 = 0;
+ let (x295, x296) = fiat_p384_scalar_addcarryx_u64(x294, x256, x282);
+ let mut x297: u64 = 0;
+ let mut x298: fiat_p384_scalar_u1 = 0;
+ let (x297, x298) = fiat_p384_scalar_addcarryx_u64(x296, x258, x284);
+ let x299: u64 = ((x298 as u64) + (x259 as u64));
+ let mut x300: u64 = 0;
+ let mut x301: u64 = 0;
+ let (x300, x301) = fiat_p384_scalar_mulx_u64(x4, (arg1[5]));
+ let mut x302: u64 = 0;
+ let mut x303: u64 = 0;
+ let (x302, x303) = fiat_p384_scalar_mulx_u64(x4, (arg1[4]));
+ let mut x304: u64 = 0;
+ let mut x305: u64 = 0;
+ let (x304, x305) = fiat_p384_scalar_mulx_u64(x4, (arg1[3]));
+ let mut x306: u64 = 0;
+ let mut x307: u64 = 0;
+ let (x306, x307) = fiat_p384_scalar_mulx_u64(x4, (arg1[2]));
+ let mut x308: u64 = 0;
+ let mut x309: u64 = 0;
+ let (x308, x309) = fiat_p384_scalar_mulx_u64(x4, (arg1[1]));
+ let mut x310: u64 = 0;
+ let mut x311: u64 = 0;
+ let (x310, x311) = fiat_p384_scalar_mulx_u64(x4, (arg1[0]));
+ let mut x312: u64 = 0;
+ let mut x313: fiat_p384_scalar_u1 = 0;
+ let (x312, x313) = fiat_p384_scalar_addcarryx_u64(0x0, x311, x308);
+ let mut x314: u64 = 0;
+ let mut x315: fiat_p384_scalar_u1 = 0;
+ let (x314, x315) = fiat_p384_scalar_addcarryx_u64(x313, x309, x306);
+ let mut x316: u64 = 0;
+ let mut x317: fiat_p384_scalar_u1 = 0;
+ let (x316, x317) = fiat_p384_scalar_addcarryx_u64(x315, x307, x304);
+ let mut x318: u64 = 0;
+ let mut x319: fiat_p384_scalar_u1 = 0;
+ let (x318, x319) = fiat_p384_scalar_addcarryx_u64(x317, x305, x302);
+ let mut x320: u64 = 0;
+ let mut x321: fiat_p384_scalar_u1 = 0;
+ let (x320, x321) = fiat_p384_scalar_addcarryx_u64(x319, x303, x300);
+ let x322: u64 = ((x321 as u64) + x301);
+ let mut x323: u64 = 0;
+ let mut x324: fiat_p384_scalar_u1 = 0;
+ let (x323, x324) = fiat_p384_scalar_addcarryx_u64(0x0, x287, x310);
+ let mut x325: u64 = 0;
+ let mut x326: fiat_p384_scalar_u1 = 0;
+ let (x325, x326) = fiat_p384_scalar_addcarryx_u64(x324, x289, x312);
+ let mut x327: u64 = 0;
+ let mut x328: fiat_p384_scalar_u1 = 0;
+ let (x327, x328) = fiat_p384_scalar_addcarryx_u64(x326, x291, x314);
+ let mut x329: u64 = 0;
+ let mut x330: fiat_p384_scalar_u1 = 0;
+ let (x329, x330) = fiat_p384_scalar_addcarryx_u64(x328, x293, x316);
+ let mut x331: u64 = 0;
+ let mut x332: fiat_p384_scalar_u1 = 0;
+ let (x331, x332) = fiat_p384_scalar_addcarryx_u64(x330, x295, x318);
+ let mut x333: u64 = 0;
+ let mut x334: fiat_p384_scalar_u1 = 0;
+ let (x333, x334) = fiat_p384_scalar_addcarryx_u64(x332, x297, x320);
+ let mut x335: u64 = 0;
+ let mut x336: fiat_p384_scalar_u1 = 0;
+ let (x335, x336) = fiat_p384_scalar_addcarryx_u64(x334, x299, x322);
+ let mut x337: u64 = 0;
+ let mut x338: u64 = 0;
+ let (x337, x338) = fiat_p384_scalar_mulx_u64(x323, 0x6ed46089e88fdc45);
+ let mut x339: u64 = 0;
+ let mut x340: u64 = 0;
+ let (x339, x340) = fiat_p384_scalar_mulx_u64(x337, 0xffffffffffffffff);
+ let mut x341: u64 = 0;
+ let mut x342: u64 = 0;
+ let (x341, x342) = fiat_p384_scalar_mulx_u64(x337, 0xffffffffffffffff);
+ let mut x343: u64 = 0;
+ let mut x344: u64 = 0;
+ let (x343, x344) = fiat_p384_scalar_mulx_u64(x337, 0xffffffffffffffff);
+ let mut x345: u64 = 0;
+ let mut x346: u64 = 0;
+ let (x345, x346) = fiat_p384_scalar_mulx_u64(x337, 0xc7634d81f4372ddf);
+ let mut x347: u64 = 0;
+ let mut x348: u64 = 0;
+ let (x347, x348) = fiat_p384_scalar_mulx_u64(x337, 0x581a0db248b0a77a);
+ let mut x349: u64 = 0;
+ let mut x350: u64 = 0;
+ let (x349, x350) = fiat_p384_scalar_mulx_u64(x337, 0xecec196accc52973);
+ let mut x351: u64 = 0;
+ let mut x352: fiat_p384_scalar_u1 = 0;
+ let (x351, x352) = fiat_p384_scalar_addcarryx_u64(0x0, x350, x347);
+ let mut x353: u64 = 0;
+ let mut x354: fiat_p384_scalar_u1 = 0;
+ let (x353, x354) = fiat_p384_scalar_addcarryx_u64(x352, x348, x345);
+ let mut x355: u64 = 0;
+ let mut x356: fiat_p384_scalar_u1 = 0;
+ let (x355, x356) = fiat_p384_scalar_addcarryx_u64(x354, x346, x343);
+ let mut x357: u64 = 0;
+ let mut x358: fiat_p384_scalar_u1 = 0;
+ let (x357, x358) = fiat_p384_scalar_addcarryx_u64(x356, x344, x341);
+ let mut x359: u64 = 0;
+ let mut x360: fiat_p384_scalar_u1 = 0;
+ let (x359, x360) = fiat_p384_scalar_addcarryx_u64(x358, x342, x339);
+ let x361: u64 = ((x360 as u64) + x340);
+ let mut x362: u64 = 0;
+ let mut x363: fiat_p384_scalar_u1 = 0;
+ let (x362, x363) = fiat_p384_scalar_addcarryx_u64(0x0, x323, x349);
+ let mut x364: u64 = 0;
+ let mut x365: fiat_p384_scalar_u1 = 0;
+ let (x364, x365) = fiat_p384_scalar_addcarryx_u64(x363, x325, x351);
+ let mut x366: u64 = 0;
+ let mut x367: fiat_p384_scalar_u1 = 0;
+ let (x366, x367) = fiat_p384_scalar_addcarryx_u64(x365, x327, x353);
+ let mut x368: u64 = 0;
+ let mut x369: fiat_p384_scalar_u1 = 0;
+ let (x368, x369) = fiat_p384_scalar_addcarryx_u64(x367, x329, x355);
+ let mut x370: u64 = 0;
+ let mut x371: fiat_p384_scalar_u1 = 0;
+ let (x370, x371) = fiat_p384_scalar_addcarryx_u64(x369, x331, x357);
+ let mut x372: u64 = 0;
+ let mut x373: fiat_p384_scalar_u1 = 0;
+ let (x372, x373) = fiat_p384_scalar_addcarryx_u64(x371, x333, x359);
+ let mut x374: u64 = 0;
+ let mut x375: fiat_p384_scalar_u1 = 0;
+ let (x374, x375) = fiat_p384_scalar_addcarryx_u64(x373, x335, x361);
+ let x376: u64 = ((x375 as u64) + (x336 as u64));
+ let mut x377: u64 = 0;
+ let mut x378: u64 = 0;
+ let (x377, x378) = fiat_p384_scalar_mulx_u64(x5, (arg1[5]));
+ let mut x379: u64 = 0;
+ let mut x380: u64 = 0;
+ let (x379, x380) = fiat_p384_scalar_mulx_u64(x5, (arg1[4]));
+ let mut x381: u64 = 0;
+ let mut x382: u64 = 0;
+ let (x381, x382) = fiat_p384_scalar_mulx_u64(x5, (arg1[3]));
+ let mut x383: u64 = 0;
+ let mut x384: u64 = 0;
+ let (x383, x384) = fiat_p384_scalar_mulx_u64(x5, (arg1[2]));
+ let mut x385: u64 = 0;
+ let mut x386: u64 = 0;
+ let (x385, x386) = fiat_p384_scalar_mulx_u64(x5, (arg1[1]));
+ let mut x387: u64 = 0;
+ let mut x388: u64 = 0;
+ let (x387, x388) = fiat_p384_scalar_mulx_u64(x5, (arg1[0]));
+ let mut x389: u64 = 0;
+ let mut x390: fiat_p384_scalar_u1 = 0;
+ let (x389, x390) = fiat_p384_scalar_addcarryx_u64(0x0, x388, x385);
+ let mut x391: u64 = 0;
+ let mut x392: fiat_p384_scalar_u1 = 0;
+ let (x391, x392) = fiat_p384_scalar_addcarryx_u64(x390, x386, x383);
+ let mut x393: u64 = 0;
+ let mut x394: fiat_p384_scalar_u1 = 0;
+ let (x393, x394) = fiat_p384_scalar_addcarryx_u64(x392, x384, x381);
+ let mut x395: u64 = 0;
+ let mut x396: fiat_p384_scalar_u1 = 0;
+ let (x395, x396) = fiat_p384_scalar_addcarryx_u64(x394, x382, x379);
+ let mut x397: u64 = 0;
+ let mut x398: fiat_p384_scalar_u1 = 0;
+ let (x397, x398) = fiat_p384_scalar_addcarryx_u64(x396, x380, x377);
+ let x399: u64 = ((x398 as u64) + x378);
+ let mut x400: u64 = 0;
+ let mut x401: fiat_p384_scalar_u1 = 0;
+ let (x400, x401) = fiat_p384_scalar_addcarryx_u64(0x0, x364, x387);
+ let mut x402: u64 = 0;
+ let mut x403: fiat_p384_scalar_u1 = 0;
+ let (x402, x403) = fiat_p384_scalar_addcarryx_u64(x401, x366, x389);
+ let mut x404: u64 = 0;
+ let mut x405: fiat_p384_scalar_u1 = 0;
+ let (x404, x405) = fiat_p384_scalar_addcarryx_u64(x403, x368, x391);
+ let mut x406: u64 = 0;
+ let mut x407: fiat_p384_scalar_u1 = 0;
+ let (x406, x407) = fiat_p384_scalar_addcarryx_u64(x405, x370, x393);
+ let mut x408: u64 = 0;
+ let mut x409: fiat_p384_scalar_u1 = 0;
+ let (x408, x409) = fiat_p384_scalar_addcarryx_u64(x407, x372, x395);
+ let mut x410: u64 = 0;
+ let mut x411: fiat_p384_scalar_u1 = 0;
+ let (x410, x411) = fiat_p384_scalar_addcarryx_u64(x409, x374, x397);
+ let mut x412: u64 = 0;
+ let mut x413: fiat_p384_scalar_u1 = 0;
+ let (x412, x413) = fiat_p384_scalar_addcarryx_u64(x411, x376, x399);
+ let mut x414: u64 = 0;
+ let mut x415: u64 = 0;
+ let (x414, x415) = fiat_p384_scalar_mulx_u64(x400, 0x6ed46089e88fdc45);
+ let mut x416: u64 = 0;
+ let mut x417: u64 = 0;
+ let (x416, x417) = fiat_p384_scalar_mulx_u64(x414, 0xffffffffffffffff);
+ let mut x418: u64 = 0;
+ let mut x419: u64 = 0;
+ let (x418, x419) = fiat_p384_scalar_mulx_u64(x414, 0xffffffffffffffff);
+ let mut x420: u64 = 0;
+ let mut x421: u64 = 0;
+ let (x420, x421) = fiat_p384_scalar_mulx_u64(x414, 0xffffffffffffffff);
+ let mut x422: u64 = 0;
+ let mut x423: u64 = 0;
+ let (x422, x423) = fiat_p384_scalar_mulx_u64(x414, 0xc7634d81f4372ddf);
+ let mut x424: u64 = 0;
+ let mut x425: u64 = 0;
+ let (x424, x425) = fiat_p384_scalar_mulx_u64(x414, 0x581a0db248b0a77a);
+ let mut x426: u64 = 0;
+ let mut x427: u64 = 0;
+ let (x426, x427) = fiat_p384_scalar_mulx_u64(x414, 0xecec196accc52973);
+ let mut x428: u64 = 0;
+ let mut x429: fiat_p384_scalar_u1 = 0;
+ let (x428, x429) = fiat_p384_scalar_addcarryx_u64(0x0, x427, x424);
+ let mut x430: u64 = 0;
+ let mut x431: fiat_p384_scalar_u1 = 0;
+ let (x430, x431) = fiat_p384_scalar_addcarryx_u64(x429, x425, x422);
+ let mut x432: u64 = 0;
+ let mut x433: fiat_p384_scalar_u1 = 0;
+ let (x432, x433) = fiat_p384_scalar_addcarryx_u64(x431, x423, x420);
+ let mut x434: u64 = 0;
+ let mut x435: fiat_p384_scalar_u1 = 0;
+ let (x434, x435) = fiat_p384_scalar_addcarryx_u64(x433, x421, x418);
+ let mut x436: u64 = 0;
+ let mut x437: fiat_p384_scalar_u1 = 0;
+ let (x436, x437) = fiat_p384_scalar_addcarryx_u64(x435, x419, x416);
+ let x438: u64 = ((x437 as u64) + x417);
+ let mut x439: u64 = 0;
+ let mut x440: fiat_p384_scalar_u1 = 0;
+ let (x439, x440) = fiat_p384_scalar_addcarryx_u64(0x0, x400, x426);
+ let mut x441: u64 = 0;
+ let mut x442: fiat_p384_scalar_u1 = 0;
+ let (x441, x442) = fiat_p384_scalar_addcarryx_u64(x440, x402, x428);
+ let mut x443: u64 = 0;
+ let mut x444: fiat_p384_scalar_u1 = 0;
+ let (x443, x444) = fiat_p384_scalar_addcarryx_u64(x442, x404, x430);
+ let mut x445: u64 = 0;
+ let mut x446: fiat_p384_scalar_u1 = 0;
+ let (x445, x446) = fiat_p384_scalar_addcarryx_u64(x444, x406, x432);
+ let mut x447: u64 = 0;
+ let mut x448: fiat_p384_scalar_u1 = 0;
+ let (x447, x448) = fiat_p384_scalar_addcarryx_u64(x446, x408, x434);
+ let mut x449: u64 = 0;
+ let mut x450: fiat_p384_scalar_u1 = 0;
+ let (x449, x450) = fiat_p384_scalar_addcarryx_u64(x448, x410, x436);
+ let mut x451: u64 = 0;
+ let mut x452: fiat_p384_scalar_u1 = 0;
+ let (x451, x452) = fiat_p384_scalar_addcarryx_u64(x450, x412, x438);
+ let x453: u64 = ((x452 as u64) + (x413 as u64));
+ let mut x454: u64 = 0;
+ let mut x455: fiat_p384_scalar_u1 = 0;
+ let (x454, x455) = fiat_p384_scalar_subborrowx_u64(0x0, x441, 0xecec196accc52973);
+ let mut x456: u64 = 0;
+ let mut x457: fiat_p384_scalar_u1 = 0;
+ let (x456, x457) = fiat_p384_scalar_subborrowx_u64(x455, x443, 0x581a0db248b0a77a);
+ let mut x458: u64 = 0;
+ let mut x459: fiat_p384_scalar_u1 = 0;
+ let (x458, x459) = fiat_p384_scalar_subborrowx_u64(x457, x445, 0xc7634d81f4372ddf);
+ let mut x460: u64 = 0;
+ let mut x461: fiat_p384_scalar_u1 = 0;
+ let (x460, x461) = fiat_p384_scalar_subborrowx_u64(x459, x447, 0xffffffffffffffff);
+ let mut x462: u64 = 0;
+ let mut x463: fiat_p384_scalar_u1 = 0;
+ let (x462, x463) = fiat_p384_scalar_subborrowx_u64(x461, x449, 0xffffffffffffffff);
+ let mut x464: u64 = 0;
+ let mut x465: fiat_p384_scalar_u1 = 0;
+ let (x464, x465) = fiat_p384_scalar_subborrowx_u64(x463, x451, 0xffffffffffffffff);
+ let mut x466: u64 = 0;
+ let mut x467: fiat_p384_scalar_u1 = 0;
+ let (x466, x467) = fiat_p384_scalar_subborrowx_u64(x465, x453, 0x0_u64);
+ let mut x468: u64 = 0;
+ let (x468) = fiat_p384_scalar_cmovznz_u64(x467, x454, x441);
+ let mut x469: u64 = 0;
+ let (x469) = fiat_p384_scalar_cmovznz_u64(x467, x456, x443);
+ let mut x470: u64 = 0;
+ let (x470) = fiat_p384_scalar_cmovznz_u64(x467, x458, x445);
+ let mut x471: u64 = 0;
+ let (x471) = fiat_p384_scalar_cmovznz_u64(x467, x460, x447);
+ let mut x472: u64 = 0;
+ let (x472) = fiat_p384_scalar_cmovznz_u64(x467, x462, x449);
+ let mut x473: u64 = 0;
+ let (x473) = fiat_p384_scalar_cmovznz_u64(x467, x464, x451);
+ out1[0] = x468;
+ out1[1] = x469;
+ out1[2] = x470;
+ out1[3] = x471;
+ out1[4] = x472;
+ out1[5] = x473;
+ out1
+}
+#[doc = " The function fiat_p384_scalar_add adds two field elements in the Montgomery"]
+#[doc = " domain."]
+#[doc = ""]
+#[doc = " Preconditions:"]
+#[doc = " 0 ≤ eval arg1 < m"]
+#[doc = " 0 ≤ eval arg2 < m"]
+#[doc = " Postconditions:"]
+#[doc = " eval (from_montgomery out1) mod m = (eval (from_montgomery arg1) + eval"]
+#[doc = " (from_montgomery arg2)) mod m 0 ≤ eval out1 < m"]
+#[inline]
+pub const fn fiat_p384_scalar_add(
+ arg1: &fiat_p384_scalar_montgomery_domain_field_element,
+ arg2: &fiat_p384_scalar_montgomery_domain_field_element,
+) -> fiat_p384_scalar_montgomery_domain_field_element {
+ let mut out1: fiat_p384_scalar_montgomery_domain_field_element = [0; 6];
+ let mut x1: u64 = 0;
+ let mut x2: fiat_p384_scalar_u1 = 0;
+ let (x1, x2) = fiat_p384_scalar_addcarryx_u64(0x0, (arg1[0]), (arg2[0]));
+ let mut x3: u64 = 0;
+ let mut x4: fiat_p384_scalar_u1 = 0;
+ let (x3, x4) = fiat_p384_scalar_addcarryx_u64(x2, (arg1[1]), (arg2[1]));
+ let mut x5: u64 = 0;
+ let mut x6: fiat_p384_scalar_u1 = 0;
+ let (x5, x6) = fiat_p384_scalar_addcarryx_u64(x4, (arg1[2]), (arg2[2]));
+ let mut x7: u64 = 0;
+ let mut x8: fiat_p384_scalar_u1 = 0;
+ let (x7, x8) = fiat_p384_scalar_addcarryx_u64(x6, (arg1[3]), (arg2[3]));
+ let mut x9: u64 = 0;
+ let mut x10: fiat_p384_scalar_u1 = 0;
+ let (x9, x10) = fiat_p384_scalar_addcarryx_u64(x8, (arg1[4]), (arg2[4]));
+ let mut x11: u64 = 0;
+ let mut x12: fiat_p384_scalar_u1 = 0;
+ let (x11, x12) = fiat_p384_scalar_addcarryx_u64(x10, (arg1[5]), (arg2[5]));
+ let mut x13: u64 = 0;
+ let mut x14: fiat_p384_scalar_u1 = 0;
+ let (x13, x14) = fiat_p384_scalar_subborrowx_u64(0x0, x1, 0xecec196accc52973);
+ let mut x15: u64 = 0;
+ let mut x16: fiat_p384_scalar_u1 = 0;
+ let (x15, x16) = fiat_p384_scalar_subborrowx_u64(x14, x3, 0x581a0db248b0a77a);
+ let mut x17: u64 = 0;
+ let mut x18: fiat_p384_scalar_u1 = 0;
+ let (x17, x18) = fiat_p384_scalar_subborrowx_u64(x16, x5, 0xc7634d81f4372ddf);
+ let mut x19: u64 = 0;
+ let mut x20: fiat_p384_scalar_u1 = 0;
+ let (x19, x20) = fiat_p384_scalar_subborrowx_u64(x18, x7, 0xffffffffffffffff);
+ let mut x21: u64 = 0;
+ let mut x22: fiat_p384_scalar_u1 = 0;
+ let (x21, x22) = fiat_p384_scalar_subborrowx_u64(x20, x9, 0xffffffffffffffff);
+ let mut x23: u64 = 0;
+ let mut x24: fiat_p384_scalar_u1 = 0;
+ let (x23, x24) = fiat_p384_scalar_subborrowx_u64(x22, x11, 0xffffffffffffffff);
+ let mut x25: u64 = 0;
+ let mut x26: fiat_p384_scalar_u1 = 0;
+ let (x25, x26) = fiat_p384_scalar_subborrowx_u64(x24, (x12 as u64), 0x0_u64);
+ let mut x27: u64 = 0;
+ let (x27) = fiat_p384_scalar_cmovznz_u64(x26, x13, x1);
+ let mut x28: u64 = 0;
+ let (x28) = fiat_p384_scalar_cmovznz_u64(x26, x15, x3);
+ let mut x29: u64 = 0;
+ let (x29) = fiat_p384_scalar_cmovznz_u64(x26, x17, x5);
+ let mut x30: u64 = 0;
+ let (x30) = fiat_p384_scalar_cmovznz_u64(x26, x19, x7);
+ let mut x31: u64 = 0;
+ let (x31) = fiat_p384_scalar_cmovznz_u64(x26, x21, x9);
+ let mut x32: u64 = 0;
+ let (x32) = fiat_p384_scalar_cmovznz_u64(x26, x23, x11);
+ out1[0] = x27;
+ out1[1] = x28;
+ out1[2] = x29;
+ out1[3] = x30;
+ out1[4] = x31;
+ out1[5] = x32;
+ out1
+}
+#[doc = " The function fiat_p384_scalar_sub subtracts two field elements in the"]
+#[doc = " Montgomery domain."]
+#[doc = ""]
+#[doc = " Preconditions:"]
+#[doc = " 0 ≤ eval arg1 < m"]
+#[doc = " 0 ≤ eval arg2 < m"]
+#[doc = " Postconditions:"]
+#[doc = " eval (from_montgomery out1) mod m = (eval (from_montgomery arg1) - eval"]
+#[doc = " (from_montgomery arg2)) mod m 0 ≤ eval out1 < m"]
+#[inline]
+pub const fn fiat_p384_scalar_sub(
+ arg1: &fiat_p384_scalar_montgomery_domain_field_element,
+ arg2: &fiat_p384_scalar_montgomery_domain_field_element,
+) -> fiat_p384_scalar_montgomery_domain_field_element {
+ let mut out1: fiat_p384_scalar_montgomery_domain_field_element = [0; 6];
+ let mut x1: u64 = 0;
+ let mut x2: fiat_p384_scalar_u1 = 0;
+ let (x1, x2) = fiat_p384_scalar_subborrowx_u64(0x0, (arg1[0]), (arg2[0]));
+ let mut x3: u64 = 0;
+ let mut x4: fiat_p384_scalar_u1 = 0;
+ let (x3, x4) = fiat_p384_scalar_subborrowx_u64(x2, (arg1[1]), (arg2[1]));
+ let mut x5: u64 = 0;
+ let mut x6: fiat_p384_scalar_u1 = 0;
+ let (x5, x6) = fiat_p384_scalar_subborrowx_u64(x4, (arg1[2]), (arg2[2]));
+ let mut x7: u64 = 0;
+ let mut x8: fiat_p384_scalar_u1 = 0;
+ let (x7, x8) = fiat_p384_scalar_subborrowx_u64(x6, (arg1[3]), (arg2[3]));
+ let mut x9: u64 = 0;
+ let mut x10: fiat_p384_scalar_u1 = 0;
+ let (x9, x10) = fiat_p384_scalar_subborrowx_u64(x8, (arg1[4]), (arg2[4]));
+ let mut x11: u64 = 0;
+ let mut x12: fiat_p384_scalar_u1 = 0;
+ let (x11, x12) = fiat_p384_scalar_subborrowx_u64(x10, (arg1[5]), (arg2[5]));
+ let mut x13: u64 = 0;
+ let (x13) = fiat_p384_scalar_cmovznz_u64(x12, 0x0_u64, 0xffffffffffffffff);
+ let mut x14: u64 = 0;
+ let mut x15: fiat_p384_scalar_u1 = 0;
+ let (x14, x15) = fiat_p384_scalar_addcarryx_u64(0x0, x1, (x13 & 0xecec196accc52973));
+ let mut x16: u64 = 0;
+ let mut x17: fiat_p384_scalar_u1 = 0;
+ let (x16, x17) = fiat_p384_scalar_addcarryx_u64(x15, x3, (x13 & 0x581a0db248b0a77a));
+ let mut x18: u64 = 0;
+ let mut x19: fiat_p384_scalar_u1 = 0;
+ let (x18, x19) = fiat_p384_scalar_addcarryx_u64(x17, x5, (x13 & 0xc7634d81f4372ddf));
+ let mut x20: u64 = 0;
+ let mut x21: fiat_p384_scalar_u1 = 0;
+ let (x20, x21) = fiat_p384_scalar_addcarryx_u64(x19, x7, x13);
+ let mut x22: u64 = 0;
+ let mut x23: fiat_p384_scalar_u1 = 0;
+ let (x22, x23) = fiat_p384_scalar_addcarryx_u64(x21, x9, x13);
+ let mut x24: u64 = 0;
+ let mut x25: fiat_p384_scalar_u1 = 0;
+ let (x24, x25) = fiat_p384_scalar_addcarryx_u64(x23, x11, x13);
+ out1[0] = x14;
+ out1[1] = x16;
+ out1[2] = x18;
+ out1[3] = x20;
+ out1[4] = x22;
+ out1[5] = x24;
+ out1
+}
+#[doc = " The function fiat_p384_scalar_opp negates a field element in the Montgomery"]
+#[doc = " domain."]
+#[doc = ""]
+#[doc = " Preconditions:"]
+#[doc = " 0 ≤ eval arg1 < m"]
+#[doc = " Postconditions:"]
+#[doc = " eval (from_montgomery out1) mod m = -eval (from_montgomery arg1) mod m"]
+#[doc = " 0 ≤ eval out1 < m"]
+#[inline]
+pub const fn fiat_p384_scalar_opp(
+ arg1: &fiat_p384_scalar_montgomery_domain_field_element,
+) -> fiat_p384_scalar_montgomery_domain_field_element {
+ let mut out1: fiat_p384_scalar_montgomery_domain_field_element = [0; 6];
+ let mut x1: u64 = 0;
+ let mut x2: fiat_p384_scalar_u1 = 0;
+ let (x1, x2) = fiat_p384_scalar_subborrowx_u64(0x0, 0x0_u64, (arg1[0]));
+ let mut x3: u64 = 0;
+ let mut x4: fiat_p384_scalar_u1 = 0;
+ let (x3, x4) = fiat_p384_scalar_subborrowx_u64(x2, 0x0_u64, (arg1[1]));
+ let mut x5: u64 = 0;
+ let mut x6: fiat_p384_scalar_u1 = 0;
+ let (x5, x6) = fiat_p384_scalar_subborrowx_u64(x4, 0x0_u64, (arg1[2]));
+ let mut x7: u64 = 0;
+ let mut x8: fiat_p384_scalar_u1 = 0;
+ let (x7, x8) = fiat_p384_scalar_subborrowx_u64(x6, 0x0_u64, (arg1[3]));
+ let mut x9: u64 = 0;
+ let mut x10: fiat_p384_scalar_u1 = 0;
+ let (x9, x10) = fiat_p384_scalar_subborrowx_u64(x8, 0x0_u64, (arg1[4]));
+ let mut x11: u64 = 0;
+ let mut x12: fiat_p384_scalar_u1 = 0;
+ let (x11, x12) = fiat_p384_scalar_subborrowx_u64(x10, 0x0_u64, (arg1[5]));
+ let mut x13: u64 = 0;
+ let (x13) = fiat_p384_scalar_cmovznz_u64(x12, 0x0_u64, 0xffffffffffffffff);
+ let mut x14: u64 = 0;
+ let mut x15: fiat_p384_scalar_u1 = 0;
+ let (x14, x15) = fiat_p384_scalar_addcarryx_u64(0x0, x1, (x13 & 0xecec196accc52973));
+ let mut x16: u64 = 0;
+ let mut x17: fiat_p384_scalar_u1 = 0;
+ let (x16, x17) = fiat_p384_scalar_addcarryx_u64(x15, x3, (x13 & 0x581a0db248b0a77a));
+ let mut x18: u64 = 0;
+ let mut x19: fiat_p384_scalar_u1 = 0;
+ let (x18, x19) = fiat_p384_scalar_addcarryx_u64(x17, x5, (x13 & 0xc7634d81f4372ddf));
+ let mut x20: u64 = 0;
+ let mut x21: fiat_p384_scalar_u1 = 0;
+ let (x20, x21) = fiat_p384_scalar_addcarryx_u64(x19, x7, x13);
+ let mut x22: u64 = 0;
+ let mut x23: fiat_p384_scalar_u1 = 0;
+ let (x22, x23) = fiat_p384_scalar_addcarryx_u64(x21, x9, x13);
+ let mut x24: u64 = 0;
+ let mut x25: fiat_p384_scalar_u1 = 0;
+ let (x24, x25) = fiat_p384_scalar_addcarryx_u64(x23, x11, x13);
+ out1[0] = x14;
+ out1[1] = x16;
+ out1[2] = x18;
+ out1[3] = x20;
+ out1[4] = x22;
+ out1[5] = x24;
+ out1
+}
+#[doc = " The function fiat_p384_scalar_from_montgomery translates a field element out"]
+#[doc = " of the Montgomery domain."]
+#[doc = ""]
+#[doc = " Preconditions:"]
+#[doc = " 0 ≤ eval arg1 < m"]
+#[doc = " Postconditions:"]
+#[doc = " eval out1 mod m = (eval arg1 * ((2^64)⁻¹ mod m)^6) mod m"]
+#[doc = " 0 ≤ eval out1 < m"]
+#[inline]
+pub const fn fiat_p384_scalar_from_montgomery(
+ arg1: &fiat_p384_scalar_montgomery_domain_field_element,
+) -> fiat_p384_scalar_non_montgomery_domain_field_element {
+ let mut out1: fiat_p384_scalar_non_montgomery_domain_field_element = [0; 6];
+ let x1: u64 = (arg1[0]);
+ let mut x2: u64 = 0;
+ let mut x3: u64 = 0;
+ let (x2, x3) = fiat_p384_scalar_mulx_u64(x1, 0x6ed46089e88fdc45);
+ let mut x4: u64 = 0;
+ let mut x5: u64 = 0;
+ let (x4, x5) = fiat_p384_scalar_mulx_u64(x2, 0xffffffffffffffff);
+ let mut x6: u64 = 0;
+ let mut x7: u64 = 0;
+ let (x6, x7) = fiat_p384_scalar_mulx_u64(x2, 0xffffffffffffffff);
+ let mut x8: u64 = 0;
+ let mut x9: u64 = 0;
+ let (x8, x9) = fiat_p384_scalar_mulx_u64(x2, 0xffffffffffffffff);
+ let mut x10: u64 = 0;
+ let mut x11: u64 = 0;
+ let (x10, x11) = fiat_p384_scalar_mulx_u64(x2, 0xc7634d81f4372ddf);
+ let mut x12: u64 = 0;
+ let mut x13: u64 = 0;
+ let (x12, x13) = fiat_p384_scalar_mulx_u64(x2, 0x581a0db248b0a77a);
+ let mut x14: u64 = 0;
+ let mut x15: u64 = 0;
+ let (x14, x15) = fiat_p384_scalar_mulx_u64(x2, 0xecec196accc52973);
+ let mut x16: u64 = 0;
+ let mut x17: fiat_p384_scalar_u1 = 0;
+ let (x16, x17) = fiat_p384_scalar_addcarryx_u64(0x0, x15, x12);
+ let mut x18: u64 = 0;
+ let mut x19: fiat_p384_scalar_u1 = 0;
+ let (x18, x19) = fiat_p384_scalar_addcarryx_u64(x17, x13, x10);
+ let mut x20: u64 = 0;
+ let mut x21: fiat_p384_scalar_u1 = 0;
+ let (x20, x21) = fiat_p384_scalar_addcarryx_u64(x19, x11, x8);
+ let mut x22: u64 = 0;
+ let mut x23: fiat_p384_scalar_u1 = 0;
+ let (x22, x23) = fiat_p384_scalar_addcarryx_u64(x21, x9, x6);
+ let mut x24: u64 = 0;
+ let mut x25: fiat_p384_scalar_u1 = 0;
+ let (x24, x25) = fiat_p384_scalar_addcarryx_u64(x23, x7, x4);
+ let mut x26: u64 = 0;
+ let mut x27: fiat_p384_scalar_u1 = 0;
+ let (x26, x27) = fiat_p384_scalar_addcarryx_u64(0x0, x1, x14);
+ let mut x28: u64 = 0;
+ let mut x29: fiat_p384_scalar_u1 = 0;
+ let (x28, x29) = fiat_p384_scalar_addcarryx_u64(x27, 0x0_u64, x16);
+ let mut x30: u64 = 0;
+ let mut x31: fiat_p384_scalar_u1 = 0;
+ let (x30, x31) = fiat_p384_scalar_addcarryx_u64(x29, 0x0_u64, x18);
+ let mut x32: u64 = 0;
+ let mut x33: fiat_p384_scalar_u1 = 0;
+ let (x32, x33) = fiat_p384_scalar_addcarryx_u64(x31, 0x0_u64, x20);
+ let mut x34: u64 = 0;
+ let mut x35: fiat_p384_scalar_u1 = 0;
+ let (x34, x35) = fiat_p384_scalar_addcarryx_u64(x33, 0x0_u64, x22);
+ let mut x36: u64 = 0;
+ let mut x37: fiat_p384_scalar_u1 = 0;
+ let (x36, x37) = fiat_p384_scalar_addcarryx_u64(x35, 0x0_u64, x24);
+ let mut x38: u64 = 0;
+ let mut x39: fiat_p384_scalar_u1 = 0;
+ let (x38, x39) = fiat_p384_scalar_addcarryx_u64(x37, 0x0_u64, ((x25 as u64) + x5));
+ let mut x40: u64 = 0;
+ let mut x41: fiat_p384_scalar_u1 = 0;
+ let (x40, x41) = fiat_p384_scalar_addcarryx_u64(0x0, x28, (arg1[1]));
+ let mut x42: u64 = 0;
+ let mut x43: fiat_p384_scalar_u1 = 0;
+ let (x42, x43) = fiat_p384_scalar_addcarryx_u64(x41, x30, 0x0_u64);
+ let mut x44: u64 = 0;
+ let mut x45: fiat_p384_scalar_u1 = 0;
+ let (x44, x45) = fiat_p384_scalar_addcarryx_u64(x43, x32, 0x0_u64);
+ let mut x46: u64 = 0;
+ let mut x47: fiat_p384_scalar_u1 = 0;
+ let (x46, x47) = fiat_p384_scalar_addcarryx_u64(x45, x34, 0x0_u64);
+ let mut x48: u64 = 0;
+ let mut x49: fiat_p384_scalar_u1 = 0;
+ let (x48, x49) = fiat_p384_scalar_addcarryx_u64(x47, x36, 0x0_u64);
+ let mut x50: u64 = 0;
+ let mut x51: fiat_p384_scalar_u1 = 0;
+ let (x50, x51) = fiat_p384_scalar_addcarryx_u64(x49, x38, 0x0_u64);
+ let mut x52: u64 = 0;
+ let mut x53: u64 = 0;
+ let (x52, x53) = fiat_p384_scalar_mulx_u64(x40, 0x6ed46089e88fdc45);
+ let mut x54: u64 = 0;
+ let mut x55: u64 = 0;
+ let (x54, x55) = fiat_p384_scalar_mulx_u64(x52, 0xffffffffffffffff);
+ let mut x56: u64 = 0;
+ let mut x57: u64 = 0;
+ let (x56, x57) = fiat_p384_scalar_mulx_u64(x52, 0xffffffffffffffff);
+ let mut x58: u64 = 0;
+ let mut x59: u64 = 0;
+ let (x58, x59) = fiat_p384_scalar_mulx_u64(x52, 0xffffffffffffffff);
+ let mut x60: u64 = 0;
+ let mut x61: u64 = 0;
+ let (x60, x61) = fiat_p384_scalar_mulx_u64(x52, 0xc7634d81f4372ddf);
+ let mut x62: u64 = 0;
+ let mut x63: u64 = 0;
+ let (x62, x63) = fiat_p384_scalar_mulx_u64(x52, 0x581a0db248b0a77a);
+ let mut x64: u64 = 0;
+ let mut x65: u64 = 0;
+ let (x64, x65) = fiat_p384_scalar_mulx_u64(x52, 0xecec196accc52973);
+ let mut x66: u64 = 0;
+ let mut x67: fiat_p384_scalar_u1 = 0;
+ let (x66, x67) = fiat_p384_scalar_addcarryx_u64(0x0, x65, x62);
+ let mut x68: u64 = 0;
+ let mut x69: fiat_p384_scalar_u1 = 0;
+ let (x68, x69) = fiat_p384_scalar_addcarryx_u64(x67, x63, x60);
+ let mut x70: u64 = 0;
+ let mut x71: fiat_p384_scalar_u1 = 0;
+ let (x70, x71) = fiat_p384_scalar_addcarryx_u64(x69, x61, x58);
+ let mut x72: u64 = 0;
+ let mut x73: fiat_p384_scalar_u1 = 0;
+ let (x72, x73) = fiat_p384_scalar_addcarryx_u64(x71, x59, x56);
+ let mut x74: u64 = 0;
+ let mut x75: fiat_p384_scalar_u1 = 0;
+ let (x74, x75) = fiat_p384_scalar_addcarryx_u64(x73, x57, x54);
+ let mut x76: u64 = 0;
+ let mut x77: fiat_p384_scalar_u1 = 0;
+ let (x76, x77) = fiat_p384_scalar_addcarryx_u64(0x0, x40, x64);
+ let mut x78: u64 = 0;
+ let mut x79: fiat_p384_scalar_u1 = 0;
+ let (x78, x79) = fiat_p384_scalar_addcarryx_u64(x77, x42, x66);
+ let mut x80: u64 = 0;
+ let mut x81: fiat_p384_scalar_u1 = 0;
+ let (x80, x81) = fiat_p384_scalar_addcarryx_u64(x79, x44, x68);
+ let mut x82: u64 = 0;
+ let mut x83: fiat_p384_scalar_u1 = 0;
+ let (x82, x83) = fiat_p384_scalar_addcarryx_u64(x81, x46, x70);
+ let mut x84: u64 = 0;
+ let mut x85: fiat_p384_scalar_u1 = 0;
+ let (x84, x85) = fiat_p384_scalar_addcarryx_u64(x83, x48, x72);
+ let mut x86: u64 = 0;
+ let mut x87: fiat_p384_scalar_u1 = 0;
+ let (x86, x87) = fiat_p384_scalar_addcarryx_u64(x85, x50, x74);
+ let mut x88: u64 = 0;
+ let mut x89: fiat_p384_scalar_u1 = 0;
+ let (x88, x89) =
+ fiat_p384_scalar_addcarryx_u64(x87, ((x51 as u64) + (x39 as u64)), ((x75 as u64) + x55));
+ let mut x90: u64 = 0;
+ let mut x91: fiat_p384_scalar_u1 = 0;
+ let (x90, x91) = fiat_p384_scalar_addcarryx_u64(0x0, x78, (arg1[2]));
+ let mut x92: u64 = 0;
+ let mut x93: fiat_p384_scalar_u1 = 0;
+ let (x92, x93) = fiat_p384_scalar_addcarryx_u64(x91, x80, 0x0_u64);
+ let mut x94: u64 = 0;
+ let mut x95: fiat_p384_scalar_u1 = 0;
+ let (x94, x95) = fiat_p384_scalar_addcarryx_u64(x93, x82, 0x0_u64);
+ let mut x96: u64 = 0;
+ let mut x97: fiat_p384_scalar_u1 = 0;
+ let (x96, x97) = fiat_p384_scalar_addcarryx_u64(x95, x84, 0x0_u64);
+ let mut x98: u64 = 0;
+ let mut x99: fiat_p384_scalar_u1 = 0;
+ let (x98, x99) = fiat_p384_scalar_addcarryx_u64(x97, x86, 0x0_u64);
+ let mut x100: u64 = 0;
+ let mut x101: fiat_p384_scalar_u1 = 0;
+ let (x100, x101) = fiat_p384_scalar_addcarryx_u64(x99, x88, 0x0_u64);
+ let mut x102: u64 = 0;
+ let mut x103: u64 = 0;
+ let (x102, x103) = fiat_p384_scalar_mulx_u64(x90, 0x6ed46089e88fdc45);
+ let mut x104: u64 = 0;
+ let mut x105: u64 = 0;
+ let (x104, x105) = fiat_p384_scalar_mulx_u64(x102, 0xffffffffffffffff);
+ let mut x106: u64 = 0;
+ let mut x107: u64 = 0;
+ let (x106, x107) = fiat_p384_scalar_mulx_u64(x102, 0xffffffffffffffff);
+ let mut x108: u64 = 0;
+ let mut x109: u64 = 0;
+ let (x108, x109) = fiat_p384_scalar_mulx_u64(x102, 0xffffffffffffffff);
+ let mut x110: u64 = 0;
+ let mut x111: u64 = 0;
+ let (x110, x111) = fiat_p384_scalar_mulx_u64(x102, 0xc7634d81f4372ddf);
+ let mut x112: u64 = 0;
+ let mut x113: u64 = 0;
+ let (x112, x113) = fiat_p384_scalar_mulx_u64(x102, 0x581a0db248b0a77a);
+ let mut x114: u64 = 0;
+ let mut x115: u64 = 0;
+ let (x114, x115) = fiat_p384_scalar_mulx_u64(x102, 0xecec196accc52973);
+ let mut x116: u64 = 0;
+ let mut x117: fiat_p384_scalar_u1 = 0;
+ let (x116, x117) = fiat_p384_scalar_addcarryx_u64(0x0, x115, x112);
+ let mut x118: u64 = 0;
+ let mut x119: fiat_p384_scalar_u1 = 0;
+ let (x118, x119) = fiat_p384_scalar_addcarryx_u64(x117, x113, x110);
+ let mut x120: u64 = 0;
+ let mut x121: fiat_p384_scalar_u1 = 0;
+ let (x120, x121) = fiat_p384_scalar_addcarryx_u64(x119, x111, x108);
+ let mut x122: u64 = 0;
+ let mut x123: fiat_p384_scalar_u1 = 0;
+ let (x122, x123) = fiat_p384_scalar_addcarryx_u64(x121, x109, x106);
+ let mut x124: u64 = 0;
+ let mut x125: fiat_p384_scalar_u1 = 0;
+ let (x124, x125) = fiat_p384_scalar_addcarryx_u64(x123, x107, x104);
+ let mut x126: u64 = 0;
+ let mut x127: fiat_p384_scalar_u1 = 0;
+ let (x126, x127) = fiat_p384_scalar_addcarryx_u64(0x0, x90, x114);
+ let mut x128: u64 = 0;
+ let mut x129: fiat_p384_scalar_u1 = 0;
+ let (x128, x129) = fiat_p384_scalar_addcarryx_u64(x127, x92, x116);
+ let mut x130: u64 = 0;
+ let mut x131: fiat_p384_scalar_u1 = 0;
+ let (x130, x131) = fiat_p384_scalar_addcarryx_u64(x129, x94, x118);
+ let mut x132: u64 = 0;
+ let mut x133: fiat_p384_scalar_u1 = 0;
+ let (x132, x133) = fiat_p384_scalar_addcarryx_u64(x131, x96, x120);
+ let mut x134: u64 = 0;
+ let mut x135: fiat_p384_scalar_u1 = 0;
+ let (x134, x135) = fiat_p384_scalar_addcarryx_u64(x133, x98, x122);
+ let mut x136: u64 = 0;
+ let mut x137: fiat_p384_scalar_u1 = 0;
+ let (x136, x137) = fiat_p384_scalar_addcarryx_u64(x135, x100, x124);
+ let mut x138: u64 = 0;
+ let mut x139: fiat_p384_scalar_u1 = 0;
+ let (x138, x139) = fiat_p384_scalar_addcarryx_u64(
+ x137,
+ ((x101 as u64) + (x89 as u64)),
+ ((x125 as u64) + x105),
+ );
+ let mut x140: u64 = 0;
+ let mut x141: fiat_p384_scalar_u1 = 0;
+ let (x140, x141) = fiat_p384_scalar_addcarryx_u64(0x0, x128, (arg1[3]));
+ let mut x142: u64 = 0;
+ let mut x143: fiat_p384_scalar_u1 = 0;
+ let (x142, x143) = fiat_p384_scalar_addcarryx_u64(x141, x130, 0x0_u64);
+ let mut x144: u64 = 0;
+ let mut x145: fiat_p384_scalar_u1 = 0;
+ let (x144, x145) = fiat_p384_scalar_addcarryx_u64(x143, x132, 0x0_u64);
+ let mut x146: u64 = 0;
+ let mut x147: fiat_p384_scalar_u1 = 0;
+ let (x146, x147) = fiat_p384_scalar_addcarryx_u64(x145, x134, 0x0_u64);
+ let mut x148: u64 = 0;
+ let mut x149: fiat_p384_scalar_u1 = 0;
+ let (x148, x149) = fiat_p384_scalar_addcarryx_u64(x147, x136, 0x0_u64);
+ let mut x150: u64 = 0;
+ let mut x151: fiat_p384_scalar_u1 = 0;
+ let (x150, x151) = fiat_p384_scalar_addcarryx_u64(x149, x138, 0x0_u64);
+ let mut x152: u64 = 0;
+ let mut x153: u64 = 0;
+ let (x152, x153) = fiat_p384_scalar_mulx_u64(x140, 0x6ed46089e88fdc45);
+ let mut x154: u64 = 0;
+ let mut x155: u64 = 0;
+ let (x154, x155) = fiat_p384_scalar_mulx_u64(x152, 0xffffffffffffffff);
+ let mut x156: u64 = 0;
+ let mut x157: u64 = 0;
+ let (x156, x157) = fiat_p384_scalar_mulx_u64(x152, 0xffffffffffffffff);
+ let mut x158: u64 = 0;
+ let mut x159: u64 = 0;
+ let (x158, x159) = fiat_p384_scalar_mulx_u64(x152, 0xffffffffffffffff);
+ let mut x160: u64 = 0;
+ let mut x161: u64 = 0;
+ let (x160, x161) = fiat_p384_scalar_mulx_u64(x152, 0xc7634d81f4372ddf);
+ let mut x162: u64 = 0;
+ let mut x163: u64 = 0;
+ let (x162, x163) = fiat_p384_scalar_mulx_u64(x152, 0x581a0db248b0a77a);
+ let mut x164: u64 = 0;
+ let mut x165: u64 = 0;
+ let (x164, x165) = fiat_p384_scalar_mulx_u64(x152, 0xecec196accc52973);
+ let mut x166: u64 = 0;
+ let mut x167: fiat_p384_scalar_u1 = 0;
+ let (x166, x167) = fiat_p384_scalar_addcarryx_u64(0x0, x165, x162);
+ let mut x168: u64 = 0;
+ let mut x169: fiat_p384_scalar_u1 = 0;
+ let (x168, x169) = fiat_p384_scalar_addcarryx_u64(x167, x163, x160);
+ let mut x170: u64 = 0;
+ let mut x171: fiat_p384_scalar_u1 = 0;
+ let (x170, x171) = fiat_p384_scalar_addcarryx_u64(x169, x161, x158);
+ let mut x172: u64 = 0;
+ let mut x173: fiat_p384_scalar_u1 = 0;
+ let (x172, x173) = fiat_p384_scalar_addcarryx_u64(x171, x159, x156);
+ let mut x174: u64 = 0;
+ let mut x175: fiat_p384_scalar_u1 = 0;
+ let (x174, x175) = fiat_p384_scalar_addcarryx_u64(x173, x157, x154);
+ let mut x176: u64 = 0;
+ let mut x177: fiat_p384_scalar_u1 = 0;
+ let (x176, x177) = fiat_p384_scalar_addcarryx_u64(0x0, x140, x164);
+ let mut x178: u64 = 0;
+ let mut x179: fiat_p384_scalar_u1 = 0;
+ let (x178, x179) = fiat_p384_scalar_addcarryx_u64(x177, x142, x166);
+ let mut x180: u64 = 0;
+ let mut x181: fiat_p384_scalar_u1 = 0;
+ let (x180, x181) = fiat_p384_scalar_addcarryx_u64(x179, x144, x168);
+ let mut x182: u64 = 0;
+ let mut x183: fiat_p384_scalar_u1 = 0;
+ let (x182, x183) = fiat_p384_scalar_addcarryx_u64(x181, x146, x170);
+ let mut x184: u64 = 0;
+ let mut x185: fiat_p384_scalar_u1 = 0;
+ let (x184, x185) = fiat_p384_scalar_addcarryx_u64(x183, x148, x172);
+ let mut x186: u64 = 0;
+ let mut x187: fiat_p384_scalar_u1 = 0;
+ let (x186, x187) = fiat_p384_scalar_addcarryx_u64(x185, x150, x174);
+ let mut x188: u64 = 0;
+ let mut x189: fiat_p384_scalar_u1 = 0;
+ let (x188, x189) = fiat_p384_scalar_addcarryx_u64(
+ x187,
+ ((x151 as u64) + (x139 as u64)),
+ ((x175 as u64) + x155),
+ );
+ let mut x190: u64 = 0;
+ let mut x191: fiat_p384_scalar_u1 = 0;
+ let (x190, x191) = fiat_p384_scalar_addcarryx_u64(0x0, x178, (arg1[4]));
+ let mut x192: u64 = 0;
+ let mut x193: fiat_p384_scalar_u1 = 0;
+ let (x192, x193) = fiat_p384_scalar_addcarryx_u64(x191, x180, 0x0_u64);
+ let mut x194: u64 = 0;
+ let mut x195: fiat_p384_scalar_u1 = 0;
+ let (x194, x195) = fiat_p384_scalar_addcarryx_u64(x193, x182, 0x0_u64);
+ let mut x196: u64 = 0;
+ let mut x197: fiat_p384_scalar_u1 = 0;
+ let (x196, x197) = fiat_p384_scalar_addcarryx_u64(x195, x184, 0x0_u64);
+ let mut x198: u64 = 0;
+ let mut x199: fiat_p384_scalar_u1 = 0;
+ let (x198, x199) = fiat_p384_scalar_addcarryx_u64(x197, x186, 0x0_u64);
+ let mut x200: u64 = 0;
+ let mut x201: fiat_p384_scalar_u1 = 0;
+ let (x200, x201) = fiat_p384_scalar_addcarryx_u64(x199, x188, 0x0_u64);
+ let mut x202: u64 = 0;
+ let mut x203: u64 = 0;
+ let (x202, x203) = fiat_p384_scalar_mulx_u64(x190, 0x6ed46089e88fdc45);
+ let mut x204: u64 = 0;
+ let mut x205: u64 = 0;
+ let (x204, x205) = fiat_p384_scalar_mulx_u64(x202, 0xffffffffffffffff);
+ let mut x206: u64 = 0;
+ let mut x207: u64 = 0;
+ let (x206, x207) = fiat_p384_scalar_mulx_u64(x202, 0xffffffffffffffff);
+ let mut x208: u64 = 0;
+ let mut x209: u64 = 0;
+ let (x208, x209) = fiat_p384_scalar_mulx_u64(x202, 0xffffffffffffffff);
+ let mut x210: u64 = 0;
+ let mut x211: u64 = 0;
+ let (x210, x211) = fiat_p384_scalar_mulx_u64(x202, 0xc7634d81f4372ddf);
+ let mut x212: u64 = 0;
+ let mut x213: u64 = 0;
+ let (x212, x213) = fiat_p384_scalar_mulx_u64(x202, 0x581a0db248b0a77a);
+ let mut x214: u64 = 0;
+ let mut x215: u64 = 0;
+ let (x214, x215) = fiat_p384_scalar_mulx_u64(x202, 0xecec196accc52973);
+ let mut x216: u64 = 0;
+ let mut x217: fiat_p384_scalar_u1 = 0;
+ let (x216, x217) = fiat_p384_scalar_addcarryx_u64(0x0, x215, x212);
+ let mut x218: u64 = 0;
+ let mut x219: fiat_p384_scalar_u1 = 0;
+ let (x218, x219) = fiat_p384_scalar_addcarryx_u64(x217, x213, x210);
+ let mut x220: u64 = 0;
+ let mut x221: fiat_p384_scalar_u1 = 0;
+ let (x220, x221) = fiat_p384_scalar_addcarryx_u64(x219, x211, x208);
+ let mut x222: u64 = 0;
+ let mut x223: fiat_p384_scalar_u1 = 0;
+ let (x222, x223) = fiat_p384_scalar_addcarryx_u64(x221, x209, x206);
+ let mut x224: u64 = 0;
+ let mut x225: fiat_p384_scalar_u1 = 0;
+ let (x224, x225) = fiat_p384_scalar_addcarryx_u64(x223, x207, x204);
+ let mut x226: u64 = 0;
+ let mut x227: fiat_p384_scalar_u1 = 0;
+ let (x226, x227) = fiat_p384_scalar_addcarryx_u64(0x0, x190, x214);
+ let mut x228: u64 = 0;
+ let mut x229: fiat_p384_scalar_u1 = 0;
+ let (x228, x229) = fiat_p384_scalar_addcarryx_u64(x227, x192, x216);
+ let mut x230: u64 = 0;
+ let mut x231: fiat_p384_scalar_u1 = 0;
+ let (x230, x231) = fiat_p384_scalar_addcarryx_u64(x229, x194, x218);
+ let mut x232: u64 = 0;
+ let mut x233: fiat_p384_scalar_u1 = 0;
+ let (x232, x233) = fiat_p384_scalar_addcarryx_u64(x231, x196, x220);
+ let mut x234: u64 = 0;
+ let mut x235: fiat_p384_scalar_u1 = 0;
+ let (x234, x235) = fiat_p384_scalar_addcarryx_u64(x233, x198, x222);
+ let mut x236: u64 = 0;
+ let mut x237: fiat_p384_scalar_u1 = 0;
+ let (x236, x237) = fiat_p384_scalar_addcarryx_u64(x235, x200, x224);
+ let mut x238: u64 = 0;
+ let mut x239: fiat_p384_scalar_u1 = 0;
+ let (x238, x239) = fiat_p384_scalar_addcarryx_u64(
+ x237,
+ ((x201 as u64) + (x189 as u64)),
+ ((x225 as u64) + x205),
+ );
+ let mut x240: u64 = 0;
+ let mut x241: fiat_p384_scalar_u1 = 0;
+ let (x240, x241) = fiat_p384_scalar_addcarryx_u64(0x0, x228, (arg1[5]));
+ let mut x242: u64 = 0;
+ let mut x243: fiat_p384_scalar_u1 = 0;
+ let (x242, x243) = fiat_p384_scalar_addcarryx_u64(x241, x230, 0x0_u64);
+ let mut x244: u64 = 0;
+ let mut x245: fiat_p384_scalar_u1 = 0;
+ let (x244, x245) = fiat_p384_scalar_addcarryx_u64(x243, x232, 0x0_u64);
+ let mut x246: u64 = 0;
+ let mut x247: fiat_p384_scalar_u1 = 0;
+ let (x246, x247) = fiat_p384_scalar_addcarryx_u64(x245, x234, 0x0_u64);
+ let mut x248: u64 = 0;
+ let mut x249: fiat_p384_scalar_u1 = 0;
+ let (x248, x249) = fiat_p384_scalar_addcarryx_u64(x247, x236, 0x0_u64);
+ let mut x250: u64 = 0;
+ let mut x251: fiat_p384_scalar_u1 = 0;
+ let (x250, x251) = fiat_p384_scalar_addcarryx_u64(x249, x238, 0x0_u64);
+ let mut x252: u64 = 0;
+ let mut x253: u64 = 0;
+ let (x252, x253) = fiat_p384_scalar_mulx_u64(x240, 0x6ed46089e88fdc45);
+ let mut x254: u64 = 0;
+ let mut x255: u64 = 0;
+ let (x254, x255) = fiat_p384_scalar_mulx_u64(x252, 0xffffffffffffffff);
+ let mut x256: u64 = 0;
+ let mut x257: u64 = 0;
+ let (x256, x257) = fiat_p384_scalar_mulx_u64(x252, 0xffffffffffffffff);
+ let mut x258: u64 = 0;
+ let mut x259: u64 = 0;
+ let (x258, x259) = fiat_p384_scalar_mulx_u64(x252, 0xffffffffffffffff);
+ let mut x260: u64 = 0;
+ let mut x261: u64 = 0;
+ let (x260, x261) = fiat_p384_scalar_mulx_u64(x252, 0xc7634d81f4372ddf);
+ let mut x262: u64 = 0;
+ let mut x263: u64 = 0;
+ let (x262, x263) = fiat_p384_scalar_mulx_u64(x252, 0x581a0db248b0a77a);
+ let mut x264: u64 = 0;
+ let mut x265: u64 = 0;
+ let (x264, x265) = fiat_p384_scalar_mulx_u64(x252, 0xecec196accc52973);
+ let mut x266: u64 = 0;
+ let mut x267: fiat_p384_scalar_u1 = 0;
+ let (x266, x267) = fiat_p384_scalar_addcarryx_u64(0x0, x265, x262);
+ let mut x268: u64 = 0;
+ let mut x269: fiat_p384_scalar_u1 = 0;
+ let (x268, x269) = fiat_p384_scalar_addcarryx_u64(x267, x263, x260);
+ let mut x270: u64 = 0;
+ let mut x271: fiat_p384_scalar_u1 = 0;
+ let (x270, x271) = fiat_p384_scalar_addcarryx_u64(x269, x261, x258);
+ let mut x272: u64 = 0;
+ let mut x273: fiat_p384_scalar_u1 = 0;
+ let (x272, x273) = fiat_p384_scalar_addcarryx_u64(x271, x259, x256);
+ let mut x274: u64 = 0;
+ let mut x275: fiat_p384_scalar_u1 = 0;
+ let (x274, x275) = fiat_p384_scalar_addcarryx_u64(x273, x257, x254);
+ let mut x276: u64 = 0;
+ let mut x277: fiat_p384_scalar_u1 = 0;
+ let (x276, x277) = fiat_p384_scalar_addcarryx_u64(0x0, x240, x264);
+ let mut x278: u64 = 0;
+ let mut x279: fiat_p384_scalar_u1 = 0;
+ let (x278, x279) = fiat_p384_scalar_addcarryx_u64(x277, x242, x266);
+ let mut x280: u64 = 0;
+ let mut x281: fiat_p384_scalar_u1 = 0;
+ let (x280, x281) = fiat_p384_scalar_addcarryx_u64(x279, x244, x268);
+ let mut x282: u64 = 0;
+ let mut x283: fiat_p384_scalar_u1 = 0;
+ let (x282, x283) = fiat_p384_scalar_addcarryx_u64(x281, x246, x270);
+ let mut x284: u64 = 0;
+ let mut x285: fiat_p384_scalar_u1 = 0;
+ let (x284, x285) = fiat_p384_scalar_addcarryx_u64(x283, x248, x272);
+ let mut x286: u64 = 0;
+ let mut x287: fiat_p384_scalar_u1 = 0;
+ let (x286, x287) = fiat_p384_scalar_addcarryx_u64(x285, x250, x274);
+ let mut x288: u64 = 0;
+ let mut x289: fiat_p384_scalar_u1 = 0;
+ let (x288, x289) = fiat_p384_scalar_addcarryx_u64(
+ x287,
+ ((x251 as u64) + (x239 as u64)),
+ ((x275 as u64) + x255),
+ );
+ let mut x290: u64 = 0;
+ let mut x291: fiat_p384_scalar_u1 = 0;
+ let (x290, x291) = fiat_p384_scalar_subborrowx_u64(0x0, x278, 0xecec196accc52973);
+ let mut x292: u64 = 0;
+ let mut x293: fiat_p384_scalar_u1 = 0;
+ let (x292, x293) = fiat_p384_scalar_subborrowx_u64(x291, x280, 0x581a0db248b0a77a);
+ let mut x294: u64 = 0;
+ let mut x295: fiat_p384_scalar_u1 = 0;
+ let (x294, x295) = fiat_p384_scalar_subborrowx_u64(x293, x282, 0xc7634d81f4372ddf);
+ let mut x296: u64 = 0;
+ let mut x297: fiat_p384_scalar_u1 = 0;
+ let (x296, x297) = fiat_p384_scalar_subborrowx_u64(x295, x284, 0xffffffffffffffff);
+ let mut x298: u64 = 0;
+ let mut x299: fiat_p384_scalar_u1 = 0;
+ let (x298, x299) = fiat_p384_scalar_subborrowx_u64(x297, x286, 0xffffffffffffffff);
+ let mut x300: u64 = 0;
+ let mut x301: fiat_p384_scalar_u1 = 0;
+ let (x300, x301) = fiat_p384_scalar_subborrowx_u64(x299, x288, 0xffffffffffffffff);
+ let mut x302: u64 = 0;
+ let mut x303: fiat_p384_scalar_u1 = 0;
+ let (x302, x303) = fiat_p384_scalar_subborrowx_u64(x301, (x289 as u64), 0x0_u64);
+ let mut x304: u64 = 0;
+ let (x304) = fiat_p384_scalar_cmovznz_u64(x303, x290, x278);
+ let mut x305: u64 = 0;
+ let (x305) = fiat_p384_scalar_cmovznz_u64(x303, x292, x280);
+ let mut x306: u64 = 0;
+ let (x306) = fiat_p384_scalar_cmovznz_u64(x303, x294, x282);
+ let mut x307: u64 = 0;
+ let (x307) = fiat_p384_scalar_cmovznz_u64(x303, x296, x284);
+ let mut x308: u64 = 0;
+ let (x308) = fiat_p384_scalar_cmovznz_u64(x303, x298, x286);
+ let mut x309: u64 = 0;
+ let (x309) = fiat_p384_scalar_cmovznz_u64(x303, x300, x288);
+ out1[0] = x304;
+ out1[1] = x305;
+ out1[2] = x306;
+ out1[3] = x307;
+ out1[4] = x308;
+ out1[5] = x309;
+ out1
+}
+#[doc = " The function fiat_p384_scalar_to_montgomery translates a field element into"]
+#[doc = " the Montgomery domain."]
+#[doc = ""]
+#[doc = " Preconditions:"]
+#[doc = " 0 ≤ eval arg1 < m"]
+#[doc = " Postconditions:"]
+#[doc = " eval (from_montgomery out1) mod m = eval arg1 mod m"]
+#[doc = " 0 ≤ eval out1 < m"]
+#[inline]
+pub const fn fiat_p384_scalar_to_montgomery(
+ arg1: &fiat_p384_scalar_non_montgomery_domain_field_element,
+) -> fiat_p384_scalar_montgomery_domain_field_element {
+ let mut out1: fiat_p384_scalar_montgomery_domain_field_element = [0; 6];
+ let x1: u64 = (arg1[1]);
+ let x2: u64 = (arg1[2]);
+ let x3: u64 = (arg1[3]);
+ let x4: u64 = (arg1[4]);
+ let x5: u64 = (arg1[5]);
+ let x6: u64 = (arg1[0]);
+ let mut x7: u64 = 0;
+ let mut x8: u64 = 0;
+ let (x7, x8) = fiat_p384_scalar_mulx_u64(x6, 0xc84ee012b39bf21);
+ let mut x9: u64 = 0;
+ let mut x10: u64 = 0;
+ let (x9, x10) = fiat_p384_scalar_mulx_u64(x6, 0x3fb05b7a28266895);
+ let mut x11: u64 = 0;
+ let mut x12: u64 = 0;
+ let (x11, x12) = fiat_p384_scalar_mulx_u64(x6, 0xd40d49174aab1cc5);
+ let mut x13: u64 = 0;
+ let mut x14: u64 = 0;
+ let (x13, x14) = fiat_p384_scalar_mulx_u64(x6, 0xbc3e483afcb82947);
+ let mut x15: u64 = 0;
+ let mut x16: u64 = 0;
+ let (x15, x16) = fiat_p384_scalar_mulx_u64(x6, 0xff3d81e5df1aa419);
+ let mut x17: u64 = 0;
+ let mut x18: u64 = 0;
+ let (x17, x18) = fiat_p384_scalar_mulx_u64(x6, 0x2d319b2419b409a9);
+ let mut x19: u64 = 0;
+ let mut x20: fiat_p384_scalar_u1 = 0;
+ let (x19, x20) = fiat_p384_scalar_addcarryx_u64(0x0, x18, x15);
+ let mut x21: u64 = 0;
+ let mut x22: fiat_p384_scalar_u1 = 0;
+ let (x21, x22) = fiat_p384_scalar_addcarryx_u64(x20, x16, x13);
+ let mut x23: u64 = 0;
+ let mut x24: fiat_p384_scalar_u1 = 0;
+ let (x23, x24) = fiat_p384_scalar_addcarryx_u64(x22, x14, x11);
+ let mut x25: u64 = 0;
+ let mut x26: fiat_p384_scalar_u1 = 0;
+ let (x25, x26) = fiat_p384_scalar_addcarryx_u64(x24, x12, x9);
+ let mut x27: u64 = 0;
+ let mut x28: fiat_p384_scalar_u1 = 0;
+ let (x27, x28) = fiat_p384_scalar_addcarryx_u64(x26, x10, x7);
+ let mut x29: u64 = 0;
+ let mut x30: u64 = 0;
+ let (x29, x30) = fiat_p384_scalar_mulx_u64(x17, 0x6ed46089e88fdc45);
+ let mut x31: u64 = 0;
+ let mut x32: u64 = 0;
+ let (x31, x32) = fiat_p384_scalar_mulx_u64(x29, 0xffffffffffffffff);
+ let mut x33: u64 = 0;
+ let mut x34: u64 = 0;
+ let (x33, x34) = fiat_p384_scalar_mulx_u64(x29, 0xffffffffffffffff);
+ let mut x35: u64 = 0;
+ let mut x36: u64 = 0;
+ let (x35, x36) = fiat_p384_scalar_mulx_u64(x29, 0xffffffffffffffff);
+ let mut x37: u64 = 0;
+ let mut x38: u64 = 0;
+ let (x37, x38) = fiat_p384_scalar_mulx_u64(x29, 0xc7634d81f4372ddf);
+ let mut x39: u64 = 0;
+ let mut x40: u64 = 0;
+ let (x39, x40) = fiat_p384_scalar_mulx_u64(x29, 0x581a0db248b0a77a);
+ let mut x41: u64 = 0;
+ let mut x42: u64 = 0;
+ let (x41, x42) = fiat_p384_scalar_mulx_u64(x29, 0xecec196accc52973);
+ let mut x43: u64 = 0;
+ let mut x44: fiat_p384_scalar_u1 = 0;
+ let (x43, x44) = fiat_p384_scalar_addcarryx_u64(0x0, x42, x39);
+ let mut x45: u64 = 0;
+ let mut x46: fiat_p384_scalar_u1 = 0;
+ let (x45, x46) = fiat_p384_scalar_addcarryx_u64(x44, x40, x37);
+ let mut x47: u64 = 0;
+ let mut x48: fiat_p384_scalar_u1 = 0;
+ let (x47, x48) = fiat_p384_scalar_addcarryx_u64(x46, x38, x35);
+ let mut x49: u64 = 0;
+ let mut x50: fiat_p384_scalar_u1 = 0;
+ let (x49, x50) = fiat_p384_scalar_addcarryx_u64(x48, x36, x33);
+ let mut x51: u64 = 0;
+ let mut x52: fiat_p384_scalar_u1 = 0;
+ let (x51, x52) = fiat_p384_scalar_addcarryx_u64(x50, x34, x31);
+ let mut x53: u64 = 0;
+ let mut x54: fiat_p384_scalar_u1 = 0;
+ let (x53, x54) = fiat_p384_scalar_addcarryx_u64(0x0, x17, x41);
+ let mut x55: u64 = 0;
+ let mut x56: fiat_p384_scalar_u1 = 0;
+ let (x55, x56) = fiat_p384_scalar_addcarryx_u64(x54, x19, x43);
+ let mut x57: u64 = 0;
+ let mut x58: fiat_p384_scalar_u1 = 0;
+ let (x57, x58) = fiat_p384_scalar_addcarryx_u64(x56, x21, x45);
+ let mut x59: u64 = 0;
+ let mut x60: fiat_p384_scalar_u1 = 0;
+ let (x59, x60) = fiat_p384_scalar_addcarryx_u64(x58, x23, x47);
+ let mut x61: u64 = 0;
+ let mut x62: fiat_p384_scalar_u1 = 0;
+ let (x61, x62) = fiat_p384_scalar_addcarryx_u64(x60, x25, x49);
+ let mut x63: u64 = 0;
+ let mut x64: fiat_p384_scalar_u1 = 0;
+ let (x63, x64) = fiat_p384_scalar_addcarryx_u64(x62, x27, x51);
+ let mut x65: u64 = 0;
+ let mut x66: fiat_p384_scalar_u1 = 0;
+ let (x65, x66) = fiat_p384_scalar_addcarryx_u64(x64, ((x28 as u64) + x8), ((x52 as u64) + x32));
+ let mut x67: u64 = 0;
+ let mut x68: u64 = 0;
+ let (x67, x68) = fiat_p384_scalar_mulx_u64(x1, 0xc84ee012b39bf21);
+ let mut x69: u64 = 0;
+ let mut x70: u64 = 0;
+ let (x69, x70) = fiat_p384_scalar_mulx_u64(x1, 0x3fb05b7a28266895);
+ let mut x71: u64 = 0;
+ let mut x72: u64 = 0;
+ let (x71, x72) = fiat_p384_scalar_mulx_u64(x1, 0xd40d49174aab1cc5);
+ let mut x73: u64 = 0;
+ let mut x74: u64 = 0;
+ let (x73, x74) = fiat_p384_scalar_mulx_u64(x1, 0xbc3e483afcb82947);
+ let mut x75: u64 = 0;
+ let mut x76: u64 = 0;
+ let (x75, x76) = fiat_p384_scalar_mulx_u64(x1, 0xff3d81e5df1aa419);
+ let mut x77: u64 = 0;
+ let mut x78: u64 = 0;
+ let (x77, x78) = fiat_p384_scalar_mulx_u64(x1, 0x2d319b2419b409a9);
+ let mut x79: u64 = 0;
+ let mut x80: fiat_p384_scalar_u1 = 0;
+ let (x79, x80) = fiat_p384_scalar_addcarryx_u64(0x0, x78, x75);
+ let mut x81: u64 = 0;
+ let mut x82: fiat_p384_scalar_u1 = 0;
+ let (x81, x82) = fiat_p384_scalar_addcarryx_u64(x80, x76, x73);
+ let mut x83: u64 = 0;
+ let mut x84: fiat_p384_scalar_u1 = 0;
+ let (x83, x84) = fiat_p384_scalar_addcarryx_u64(x82, x74, x71);
+ let mut x85: u64 = 0;
+ let mut x86: fiat_p384_scalar_u1 = 0;
+ let (x85, x86) = fiat_p384_scalar_addcarryx_u64(x84, x72, x69);
+ let mut x87: u64 = 0;
+ let mut x88: fiat_p384_scalar_u1 = 0;
+ let (x87, x88) = fiat_p384_scalar_addcarryx_u64(x86, x70, x67);
+ let mut x89: u64 = 0;
+ let mut x90: fiat_p384_scalar_u1 = 0;
+ let (x89, x90) = fiat_p384_scalar_addcarryx_u64(0x0, x55, x77);
+ let mut x91: u64 = 0;
+ let mut x92: fiat_p384_scalar_u1 = 0;
+ let (x91, x92) = fiat_p384_scalar_addcarryx_u64(x90, x57, x79);
+ let mut x93: u64 = 0;
+ let mut x94: fiat_p384_scalar_u1 = 0;
+ let (x93, x94) = fiat_p384_scalar_addcarryx_u64(x92, x59, x81);
+ let mut x95: u64 = 0;
+ let mut x96: fiat_p384_scalar_u1 = 0;
+ let (x95, x96) = fiat_p384_scalar_addcarryx_u64(x94, x61, x83);
+ let mut x97: u64 = 0;
+ let mut x98: fiat_p384_scalar_u1 = 0;
+ let (x97, x98) = fiat_p384_scalar_addcarryx_u64(x96, x63, x85);
+ let mut x99: u64 = 0;
+ let mut x100: fiat_p384_scalar_u1 = 0;
+ let (x99, x100) = fiat_p384_scalar_addcarryx_u64(x98, x65, x87);
+ let mut x101: u64 = 0;
+ let mut x102: u64 = 0;
+ let (x101, x102) = fiat_p384_scalar_mulx_u64(x89, 0x6ed46089e88fdc45);
+ let mut x103: u64 = 0;
+ let mut x104: u64 = 0;
+ let (x103, x104) = fiat_p384_scalar_mulx_u64(x101, 0xffffffffffffffff);
+ let mut x105: u64 = 0;
+ let mut x106: u64 = 0;
+ let (x105, x106) = fiat_p384_scalar_mulx_u64(x101, 0xffffffffffffffff);
+ let mut x107: u64 = 0;
+ let mut x108: u64 = 0;
+ let (x107, x108) = fiat_p384_scalar_mulx_u64(x101, 0xffffffffffffffff);
+ let mut x109: u64 = 0;
+ let mut x110: u64 = 0;
+ let (x109, x110) = fiat_p384_scalar_mulx_u64(x101, 0xc7634d81f4372ddf);
+ let mut x111: u64 = 0;
+ let mut x112: u64 = 0;
+ let (x111, x112) = fiat_p384_scalar_mulx_u64(x101, 0x581a0db248b0a77a);
+ let mut x113: u64 = 0;
+ let mut x114: u64 = 0;
+ let (x113, x114) = fiat_p384_scalar_mulx_u64(x101, 0xecec196accc52973);
+ let mut x115: u64 = 0;
+ let mut x116: fiat_p384_scalar_u1 = 0;
+ let (x115, x116) = fiat_p384_scalar_addcarryx_u64(0x0, x114, x111);
+ let mut x117: u64 = 0;
+ let mut x118: fiat_p384_scalar_u1 = 0;
+ let (x117, x118) = fiat_p384_scalar_addcarryx_u64(x116, x112, x109);
+ let mut x119: u64 = 0;
+ let mut x120: fiat_p384_scalar_u1 = 0;
+ let (x119, x120) = fiat_p384_scalar_addcarryx_u64(x118, x110, x107);
+ let mut x121: u64 = 0;
+ let mut x122: fiat_p384_scalar_u1 = 0;
+ let (x121, x122) = fiat_p384_scalar_addcarryx_u64(x120, x108, x105);
+ let mut x123: u64 = 0;
+ let mut x124: fiat_p384_scalar_u1 = 0;
+ let (x123, x124) = fiat_p384_scalar_addcarryx_u64(x122, x106, x103);
+ let mut x125: u64 = 0;
+ let mut x126: fiat_p384_scalar_u1 = 0;
+ let (x125, x126) = fiat_p384_scalar_addcarryx_u64(0x0, x89, x113);
+ let mut x127: u64 = 0;
+ let mut x128: fiat_p384_scalar_u1 = 0;
+ let (x127, x128) = fiat_p384_scalar_addcarryx_u64(x126, x91, x115);
+ let mut x129: u64 = 0;
+ let mut x130: fiat_p384_scalar_u1 = 0;
+ let (x129, x130) = fiat_p384_scalar_addcarryx_u64(x128, x93, x117);
+ let mut x131: u64 = 0;
+ let mut x132: fiat_p384_scalar_u1 = 0;
+ let (x131, x132) = fiat_p384_scalar_addcarryx_u64(x130, x95, x119);
+ let mut x133: u64 = 0;
+ let mut x134: fiat_p384_scalar_u1 = 0;
+ let (x133, x134) = fiat_p384_scalar_addcarryx_u64(x132, x97, x121);
+ let mut x135: u64 = 0;
+ let mut x136: fiat_p384_scalar_u1 = 0;
+ let (x135, x136) = fiat_p384_scalar_addcarryx_u64(x134, x99, x123);
+ let mut x137: u64 = 0;
+ let mut x138: fiat_p384_scalar_u1 = 0;
+ let (x137, x138) = fiat_p384_scalar_addcarryx_u64(
+ x136,
+ (((x100 as u64) + (x66 as u64)) + ((x88 as u64) + x68)),
+ ((x124 as u64) + x104),
+ );
+ let mut x139: u64 = 0;
+ let mut x140: u64 = 0;
+ let (x139, x140) = fiat_p384_scalar_mulx_u64(x2, 0xc84ee012b39bf21);
+ let mut x141: u64 = 0;
+ let mut x142: u64 = 0;
+ let (x141, x142) = fiat_p384_scalar_mulx_u64(x2, 0x3fb05b7a28266895);
+ let mut x143: u64 = 0;
+ let mut x144: u64 = 0;
+ let (x143, x144) = fiat_p384_scalar_mulx_u64(x2, 0xd40d49174aab1cc5);
+ let mut x145: u64 = 0;
+ let mut x146: u64 = 0;
+ let (x145, x146) = fiat_p384_scalar_mulx_u64(x2, 0xbc3e483afcb82947);
+ let mut x147: u64 = 0;
+ let mut x148: u64 = 0;
+ let (x147, x148) = fiat_p384_scalar_mulx_u64(x2, 0xff3d81e5df1aa419);
+ let mut x149: u64 = 0;
+ let mut x150: u64 = 0;
+ let (x149, x150) = fiat_p384_scalar_mulx_u64(x2, 0x2d319b2419b409a9);
+ let mut x151: u64 = 0;
+ let mut x152: fiat_p384_scalar_u1 = 0;
+ let (x151, x152) = fiat_p384_scalar_addcarryx_u64(0x0, x150, x147);
+ let mut x153: u64 = 0;
+ let mut x154: fiat_p384_scalar_u1 = 0;
+ let (x153, x154) = fiat_p384_scalar_addcarryx_u64(x152, x148, x145);
+ let mut x155: u64 = 0;
+ let mut x156: fiat_p384_scalar_u1 = 0;
+ let (x155, x156) = fiat_p384_scalar_addcarryx_u64(x154, x146, x143);
+ let mut x157: u64 = 0;
+ let mut x158: fiat_p384_scalar_u1 = 0;
+ let (x157, x158) = fiat_p384_scalar_addcarryx_u64(x156, x144, x141);
+ let mut x159: u64 = 0;
+ let mut x160: fiat_p384_scalar_u1 = 0;
+ let (x159, x160) = fiat_p384_scalar_addcarryx_u64(x158, x142, x139);
+ let mut x161: u64 = 0;
+ let mut x162: fiat_p384_scalar_u1 = 0;
+ let (x161, x162) = fiat_p384_scalar_addcarryx_u64(0x0, x127, x149);
+ let mut x163: u64 = 0;
+ let mut x164: fiat_p384_scalar_u1 = 0;
+ let (x163, x164) = fiat_p384_scalar_addcarryx_u64(x162, x129, x151);
+ let mut x165: u64 = 0;
+ let mut x166: fiat_p384_scalar_u1 = 0;
+ let (x165, x166) = fiat_p384_scalar_addcarryx_u64(x164, x131, x153);
+ let mut x167: u64 = 0;
+ let mut x168: fiat_p384_scalar_u1 = 0;
+ let (x167, x168) = fiat_p384_scalar_addcarryx_u64(x166, x133, x155);
+ let mut x169: u64 = 0;
+ let mut x170: fiat_p384_scalar_u1 = 0;
+ let (x169, x170) = fiat_p384_scalar_addcarryx_u64(x168, x135, x157);
+ let mut x171: u64 = 0;
+ let mut x172: fiat_p384_scalar_u1 = 0;
+ let (x171, x172) = fiat_p384_scalar_addcarryx_u64(x170, x137, x159);
+ let mut x173: u64 = 0;
+ let mut x174: u64 = 0;
+ let (x173, x174) = fiat_p384_scalar_mulx_u64(x161, 0x6ed46089e88fdc45);
+ let mut x175: u64 = 0;
+ let mut x176: u64 = 0;
+ let (x175, x176) = fiat_p384_scalar_mulx_u64(x173, 0xffffffffffffffff);
+ let mut x177: u64 = 0;
+ let mut x178: u64 = 0;
+ let (x177, x178) = fiat_p384_scalar_mulx_u64(x173, 0xffffffffffffffff);
+ let mut x179: u64 = 0;
+ let mut x180: u64 = 0;
+ let (x179, x180) = fiat_p384_scalar_mulx_u64(x173, 0xffffffffffffffff);
+ let mut x181: u64 = 0;
+ let mut x182: u64 = 0;
+ let (x181, x182) = fiat_p384_scalar_mulx_u64(x173, 0xc7634d81f4372ddf);
+ let mut x183: u64 = 0;
+ let mut x184: u64 = 0;
+ let (x183, x184) = fiat_p384_scalar_mulx_u64(x173, 0x581a0db248b0a77a);
+ let mut x185: u64 = 0;
+ let mut x186: u64 = 0;
+ let (x185, x186) = fiat_p384_scalar_mulx_u64(x173, 0xecec196accc52973);
+ let mut x187: u64 = 0;
+ let mut x188: fiat_p384_scalar_u1 = 0;
+ let (x187, x188) = fiat_p384_scalar_addcarryx_u64(0x0, x186, x183);
+ let mut x189: u64 = 0;
+ let mut x190: fiat_p384_scalar_u1 = 0;
+ let (x189, x190) = fiat_p384_scalar_addcarryx_u64(x188, x184, x181);
+ let mut x191: u64 = 0;
+ let mut x192: fiat_p384_scalar_u1 = 0;
+ let (x191, x192) = fiat_p384_scalar_addcarryx_u64(x190, x182, x179);
+ let mut x193: u64 = 0;
+ let mut x194: fiat_p384_scalar_u1 = 0;
+ let (x193, x194) = fiat_p384_scalar_addcarryx_u64(x192, x180, x177);
+ let mut x195: u64 = 0;
+ let mut x196: fiat_p384_scalar_u1 = 0;
+ let (x195, x196) = fiat_p384_scalar_addcarryx_u64(x194, x178, x175);
+ let mut x197: u64 = 0;
+ let mut x198: fiat_p384_scalar_u1 = 0;
+ let (x197, x198) = fiat_p384_scalar_addcarryx_u64(0x0, x161, x185);
+ let mut x199: u64 = 0;
+ let mut x200: fiat_p384_scalar_u1 = 0;
+ let (x199, x200) = fiat_p384_scalar_addcarryx_u64(x198, x163, x187);
+ let mut x201: u64 = 0;
+ let mut x202: fiat_p384_scalar_u1 = 0;
+ let (x201, x202) = fiat_p384_scalar_addcarryx_u64(x200, x165, x189);
+ let mut x203: u64 = 0;
+ let mut x204: fiat_p384_scalar_u1 = 0;
+ let (x203, x204) = fiat_p384_scalar_addcarryx_u64(x202, x167, x191);
+ let mut x205: u64 = 0;
+ let mut x206: fiat_p384_scalar_u1 = 0;
+ let (x205, x206) = fiat_p384_scalar_addcarryx_u64(x204, x169, x193);
+ let mut x207: u64 = 0;
+ let mut x208: fiat_p384_scalar_u1 = 0;
+ let (x207, x208) = fiat_p384_scalar_addcarryx_u64(x206, x171, x195);
+ let mut x209: u64 = 0;
+ let mut x210: fiat_p384_scalar_u1 = 0;
+ let (x209, x210) = fiat_p384_scalar_addcarryx_u64(
+ x208,
+ (((x172 as u64) + (x138 as u64)) + ((x160 as u64) + x140)),
+ ((x196 as u64) + x176),
+ );
+ let mut x211: u64 = 0;
+ let mut x212: u64 = 0;
+ let (x211, x212) = fiat_p384_scalar_mulx_u64(x3, 0xc84ee012b39bf21);
+ let mut x213: u64 = 0;
+ let mut x214: u64 = 0;
+ let (x213, x214) = fiat_p384_scalar_mulx_u64(x3, 0x3fb05b7a28266895);
+ let mut x215: u64 = 0;
+ let mut x216: u64 = 0;
+ let (x215, x216) = fiat_p384_scalar_mulx_u64(x3, 0xd40d49174aab1cc5);
+ let mut x217: u64 = 0;
+ let mut x218: u64 = 0;
+ let (x217, x218) = fiat_p384_scalar_mulx_u64(x3, 0xbc3e483afcb82947);
+ let mut x219: u64 = 0;
+ let mut x220: u64 = 0;
+ let (x219, x220) = fiat_p384_scalar_mulx_u64(x3, 0xff3d81e5df1aa419);
+ let mut x221: u64 = 0;
+ let mut x222: u64 = 0;
+ let (x221, x222) = fiat_p384_scalar_mulx_u64(x3, 0x2d319b2419b409a9);
+ let mut x223: u64 = 0;
+ let mut x224: fiat_p384_scalar_u1 = 0;
+ let (x223, x224) = fiat_p384_scalar_addcarryx_u64(0x0, x222, x219);
+ let mut x225: u64 = 0;
+ let mut x226: fiat_p384_scalar_u1 = 0;
+ let (x225, x226) = fiat_p384_scalar_addcarryx_u64(x224, x220, x217);
+ let mut x227: u64 = 0;
+ let mut x228: fiat_p384_scalar_u1 = 0;
+ let (x227, x228) = fiat_p384_scalar_addcarryx_u64(x226, x218, x215);
+ let mut x229: u64 = 0;
+ let mut x230: fiat_p384_scalar_u1 = 0;
+ let (x229, x230) = fiat_p384_scalar_addcarryx_u64(x228, x216, x213);
+ let mut x231: u64 = 0;
+ let mut x232: fiat_p384_scalar_u1 = 0;
+ let (x231, x232) = fiat_p384_scalar_addcarryx_u64(x230, x214, x211);
+ let mut x233: u64 = 0;
+ let mut x234: fiat_p384_scalar_u1 = 0;
+ let (x233, x234) = fiat_p384_scalar_addcarryx_u64(0x0, x199, x221);
+ let mut x235: u64 = 0;
+ let mut x236: fiat_p384_scalar_u1 = 0;
+ let (x235, x236) = fiat_p384_scalar_addcarryx_u64(x234, x201, x223);
+ let mut x237: u64 = 0;
+ let mut x238: fiat_p384_scalar_u1 = 0;
+ let (x237, x238) = fiat_p384_scalar_addcarryx_u64(x236, x203, x225);
+ let mut x239: u64 = 0;
+ let mut x240: fiat_p384_scalar_u1 = 0;
+ let (x239, x240) = fiat_p384_scalar_addcarryx_u64(x238, x205, x227);
+ let mut x241: u64 = 0;
+ let mut x242: fiat_p384_scalar_u1 = 0;
+ let (x241, x242) = fiat_p384_scalar_addcarryx_u64(x240, x207, x229);
+ let mut x243: u64 = 0;
+ let mut x244: fiat_p384_scalar_u1 = 0;
+ let (x243, x244) = fiat_p384_scalar_addcarryx_u64(x242, x209, x231);
+ let mut x245: u64 = 0;
+ let mut x246: u64 = 0;
+ let (x245, x246) = fiat_p384_scalar_mulx_u64(x233, 0x6ed46089e88fdc45);
+ let mut x247: u64 = 0;
+ let mut x248: u64 = 0;
+ let (x247, x248) = fiat_p384_scalar_mulx_u64(x245, 0xffffffffffffffff);
+ let mut x249: u64 = 0;
+ let mut x250: u64 = 0;
+ let (x249, x250) = fiat_p384_scalar_mulx_u64(x245, 0xffffffffffffffff);
+ let mut x251: u64 = 0;
+ let mut x252: u64 = 0;
+ let (x251, x252) = fiat_p384_scalar_mulx_u64(x245, 0xffffffffffffffff);
+ let mut x253: u64 = 0;
+ let mut x254: u64 = 0;
+ let (x253, x254) = fiat_p384_scalar_mulx_u64(x245, 0xc7634d81f4372ddf);
+ let mut x255: u64 = 0;
+ let mut x256: u64 = 0;
+ let (x255, x256) = fiat_p384_scalar_mulx_u64(x245, 0x581a0db248b0a77a);
+ let mut x257: u64 = 0;
+ let mut x258: u64 = 0;
+ let (x257, x258) = fiat_p384_scalar_mulx_u64(x245, 0xecec196accc52973);
+ let mut x259: u64 = 0;
+ let mut x260: fiat_p384_scalar_u1 = 0;
+ let (x259, x260) = fiat_p384_scalar_addcarryx_u64(0x0, x258, x255);
+ let mut x261: u64 = 0;
+ let mut x262: fiat_p384_scalar_u1 = 0;
+ let (x261, x262) = fiat_p384_scalar_addcarryx_u64(x260, x256, x253);
+ let mut x263: u64 = 0;
+ let mut x264: fiat_p384_scalar_u1 = 0;
+ let (x263, x264) = fiat_p384_scalar_addcarryx_u64(x262, x254, x251);
+ let mut x265: u64 = 0;
+ let mut x266: fiat_p384_scalar_u1 = 0;
+ let (x265, x266) = fiat_p384_scalar_addcarryx_u64(x264, x252, x249);
+ let mut x267: u64 = 0;
+ let mut x268: fiat_p384_scalar_u1 = 0;
+ let (x267, x268) = fiat_p384_scalar_addcarryx_u64(x266, x250, x247);
+ let mut x269: u64 = 0;
+ let mut x270: fiat_p384_scalar_u1 = 0;
+ let (x269, x270) = fiat_p384_scalar_addcarryx_u64(0x0, x233, x257);
+ let mut x271: u64 = 0;
+ let mut x272: fiat_p384_scalar_u1 = 0;
+ let (x271, x272) = fiat_p384_scalar_addcarryx_u64(x270, x235, x259);
+ let mut x273: u64 = 0;
+ let mut x274: fiat_p384_scalar_u1 = 0;
+ let (x273, x274) = fiat_p384_scalar_addcarryx_u64(x272, x237, x261);
+ let mut x275: u64 = 0;
+ let mut x276: fiat_p384_scalar_u1 = 0;
+ let (x275, x276) = fiat_p384_scalar_addcarryx_u64(x274, x239, x263);
+ let mut x277: u64 = 0;
+ let mut x278: fiat_p384_scalar_u1 = 0;
+ let (x277, x278) = fiat_p384_scalar_addcarryx_u64(x276, x241, x265);
+ let mut x279: u64 = 0;
+ let mut x280: fiat_p384_scalar_u1 = 0;
+ let (x279, x280) = fiat_p384_scalar_addcarryx_u64(x278, x243, x267);
+ let mut x281: u64 = 0;
+ let mut x282: fiat_p384_scalar_u1 = 0;
+ let (x281, x282) = fiat_p384_scalar_addcarryx_u64(
+ x280,
+ (((x244 as u64) + (x210 as u64)) + ((x232 as u64) + x212)),
+ ((x268 as u64) + x248),
+ );
+ let mut x283: u64 = 0;
+ let mut x284: u64 = 0;
+ let (x283, x284) = fiat_p384_scalar_mulx_u64(x4, 0xc84ee012b39bf21);
+ let mut x285: u64 = 0;
+ let mut x286: u64 = 0;
+ let (x285, x286) = fiat_p384_scalar_mulx_u64(x4, 0x3fb05b7a28266895);
+ let mut x287: u64 = 0;
+ let mut x288: u64 = 0;
+ let (x287, x288) = fiat_p384_scalar_mulx_u64(x4, 0xd40d49174aab1cc5);
+ let mut x289: u64 = 0;
+ let mut x290: u64 = 0;
+ let (x289, x290) = fiat_p384_scalar_mulx_u64(x4, 0xbc3e483afcb82947);
+ let mut x291: u64 = 0;
+ let mut x292: u64 = 0;
+ let (x291, x292) = fiat_p384_scalar_mulx_u64(x4, 0xff3d81e5df1aa419);
+ let mut x293: u64 = 0;
+ let mut x294: u64 = 0;
+ let (x293, x294) = fiat_p384_scalar_mulx_u64(x4, 0x2d319b2419b409a9);
+ let mut x295: u64 = 0;
+ let mut x296: fiat_p384_scalar_u1 = 0;
+ let (x295, x296) = fiat_p384_scalar_addcarryx_u64(0x0, x294, x291);
+ let mut x297: u64 = 0;
+ let mut x298: fiat_p384_scalar_u1 = 0;
+ let (x297, x298) = fiat_p384_scalar_addcarryx_u64(x296, x292, x289);
+ let mut x299: u64 = 0;
+ let mut x300: fiat_p384_scalar_u1 = 0;
+ let (x299, x300) = fiat_p384_scalar_addcarryx_u64(x298, x290, x287);
+ let mut x301: u64 = 0;
+ let mut x302: fiat_p384_scalar_u1 = 0;
+ let (x301, x302) = fiat_p384_scalar_addcarryx_u64(x300, x288, x285);
+ let mut x303: u64 = 0;
+ let mut x304: fiat_p384_scalar_u1 = 0;
+ let (x303, x304) = fiat_p384_scalar_addcarryx_u64(x302, x286, x283);
+ let mut x305: u64 = 0;
+ let mut x306: fiat_p384_scalar_u1 = 0;
+ let (x305, x306) = fiat_p384_scalar_addcarryx_u64(0x0, x271, x293);
+ let mut x307: u64 = 0;
+ let mut x308: fiat_p384_scalar_u1 = 0;
+ let (x307, x308) = fiat_p384_scalar_addcarryx_u64(x306, x273, x295);
+ let mut x309: u64 = 0;
+ let mut x310: fiat_p384_scalar_u1 = 0;
+ let (x309, x310) = fiat_p384_scalar_addcarryx_u64(x308, x275, x297);
+ let mut x311: u64 = 0;
+ let mut x312: fiat_p384_scalar_u1 = 0;
+ let (x311, x312) = fiat_p384_scalar_addcarryx_u64(x310, x277, x299);
+ let mut x313: u64 = 0;
+ let mut x314: fiat_p384_scalar_u1 = 0;
+ let (x313, x314) = fiat_p384_scalar_addcarryx_u64(x312, x279, x301);
+ let mut x315: u64 = 0;
+ let mut x316: fiat_p384_scalar_u1 = 0;
+ let (x315, x316) = fiat_p384_scalar_addcarryx_u64(x314, x281, x303);
+ let mut x317: u64 = 0;
+ let mut x318: u64 = 0;
+ let (x317, x318) = fiat_p384_scalar_mulx_u64(x305, 0x6ed46089e88fdc45);
+ let mut x319: u64 = 0;
+ let mut x320: u64 = 0;
+ let (x319, x320) = fiat_p384_scalar_mulx_u64(x317, 0xffffffffffffffff);
+ let mut x321: u64 = 0;
+ let mut x322: u64 = 0;
+ let (x321, x322) = fiat_p384_scalar_mulx_u64(x317, 0xffffffffffffffff);
+ let mut x323: u64 = 0;
+ let mut x324: u64 = 0;
+ let (x323, x324) = fiat_p384_scalar_mulx_u64(x317, 0xffffffffffffffff);
+ let mut x325: u64 = 0;
+ let mut x326: u64 = 0;
+ let (x325, x326) = fiat_p384_scalar_mulx_u64(x317, 0xc7634d81f4372ddf);
+ let mut x327: u64 = 0;
+ let mut x328: u64 = 0;
+ let (x327, x328) = fiat_p384_scalar_mulx_u64(x317, 0x581a0db248b0a77a);
+ let mut x329: u64 = 0;
+ let mut x330: u64 = 0;
+ let (x329, x330) = fiat_p384_scalar_mulx_u64(x317, 0xecec196accc52973);
+ let mut x331: u64 = 0;
+ let mut x332: fiat_p384_scalar_u1 = 0;
+ let (x331, x332) = fiat_p384_scalar_addcarryx_u64(0x0, x330, x327);
+ let mut x333: u64 = 0;
+ let mut x334: fiat_p384_scalar_u1 = 0;
+ let (x333, x334) = fiat_p384_scalar_addcarryx_u64(x332, x328, x325);
+ let mut x335: u64 = 0;
+ let mut x336: fiat_p384_scalar_u1 = 0;
+ let (x335, x336) = fiat_p384_scalar_addcarryx_u64(x334, x326, x323);
+ let mut x337: u64 = 0;
+ let mut x338: fiat_p384_scalar_u1 = 0;
+ let (x337, x338) = fiat_p384_scalar_addcarryx_u64(x336, x324, x321);
+ let mut x339: u64 = 0;
+ let mut x340: fiat_p384_scalar_u1 = 0;
+ let (x339, x340) = fiat_p384_scalar_addcarryx_u64(x338, x322, x319);
+ let mut x341: u64 = 0;
+ let mut x342: fiat_p384_scalar_u1 = 0;
+ let (x341, x342) = fiat_p384_scalar_addcarryx_u64(0x0, x305, x329);
+ let mut x343: u64 = 0;
+ let mut x344: fiat_p384_scalar_u1 = 0;
+ let (x343, x344) = fiat_p384_scalar_addcarryx_u64(x342, x307, x331);
+ let mut x345: u64 = 0;
+ let mut x346: fiat_p384_scalar_u1 = 0;
+ let (x345, x346) = fiat_p384_scalar_addcarryx_u64(x344, x309, x333);
+ let mut x347: u64 = 0;
+ let mut x348: fiat_p384_scalar_u1 = 0;
+ let (x347, x348) = fiat_p384_scalar_addcarryx_u64(x346, x311, x335);
+ let mut x349: u64 = 0;
+ let mut x350: fiat_p384_scalar_u1 = 0;
+ let (x349, x350) = fiat_p384_scalar_addcarryx_u64(x348, x313, x337);
+ let mut x351: u64 = 0;
+ let mut x352: fiat_p384_scalar_u1 = 0;
+ let (x351, x352) = fiat_p384_scalar_addcarryx_u64(x350, x315, x339);
+ let mut x353: u64 = 0;
+ let mut x354: fiat_p384_scalar_u1 = 0;
+ let (x353, x354) = fiat_p384_scalar_addcarryx_u64(
+ x352,
+ (((x316 as u64) + (x282 as u64)) + ((x304 as u64) + x284)),
+ ((x340 as u64) + x320),
+ );
+ let mut x355: u64 = 0;
+ let mut x356: u64 = 0;
+ let (x355, x356) = fiat_p384_scalar_mulx_u64(x5, 0xc84ee012b39bf21);
+ let mut x357: u64 = 0;
+ let mut x358: u64 = 0;
+ let (x357, x358) = fiat_p384_scalar_mulx_u64(x5, 0x3fb05b7a28266895);
+ let mut x359: u64 = 0;
+ let mut x360: u64 = 0;
+ let (x359, x360) = fiat_p384_scalar_mulx_u64(x5, 0xd40d49174aab1cc5);
+ let mut x361: u64 = 0;
+ let mut x362: u64 = 0;
+ let (x361, x362) = fiat_p384_scalar_mulx_u64(x5, 0xbc3e483afcb82947);
+ let mut x363: u64 = 0;
+ let mut x364: u64 = 0;
+ let (x363, x364) = fiat_p384_scalar_mulx_u64(x5, 0xff3d81e5df1aa419);
+ let mut x365: u64 = 0;
+ let mut x366: u64 = 0;
+ let (x365, x366) = fiat_p384_scalar_mulx_u64(x5, 0x2d319b2419b409a9);
+ let mut x367: u64 = 0;
+ let mut x368: fiat_p384_scalar_u1 = 0;
+ let (x367, x368) = fiat_p384_scalar_addcarryx_u64(0x0, x366, x363);
+ let mut x369: u64 = 0;
+ let mut x370: fiat_p384_scalar_u1 = 0;
+ let (x369, x370) = fiat_p384_scalar_addcarryx_u64(x368, x364, x361);
+ let mut x371: u64 = 0;
+ let mut x372: fiat_p384_scalar_u1 = 0;
+ let (x371, x372) = fiat_p384_scalar_addcarryx_u64(x370, x362, x359);
+ let mut x373: u64 = 0;
+ let mut x374: fiat_p384_scalar_u1 = 0;
+ let (x373, x374) = fiat_p384_scalar_addcarryx_u64(x372, x360, x357);
+ let mut x375: u64 = 0;
+ let mut x376: fiat_p384_scalar_u1 = 0;
+ let (x375, x376) = fiat_p384_scalar_addcarryx_u64(x374, x358, x355);
+ let mut x377: u64 = 0;
+ let mut x378: fiat_p384_scalar_u1 = 0;
+ let (x377, x378) = fiat_p384_scalar_addcarryx_u64(0x0, x343, x365);
+ let mut x379: u64 = 0;
+ let mut x380: fiat_p384_scalar_u1 = 0;
+ let (x379, x380) = fiat_p384_scalar_addcarryx_u64(x378, x345, x367);
+ let mut x381: u64 = 0;
+ let mut x382: fiat_p384_scalar_u1 = 0;
+ let (x381, x382) = fiat_p384_scalar_addcarryx_u64(x380, x347, x369);
+ let mut x383: u64 = 0;
+ let mut x384: fiat_p384_scalar_u1 = 0;
+ let (x383, x384) = fiat_p384_scalar_addcarryx_u64(x382, x349, x371);
+ let mut x385: u64 = 0;
+ let mut x386: fiat_p384_scalar_u1 = 0;
+ let (x385, x386) = fiat_p384_scalar_addcarryx_u64(x384, x351, x373);
+ let mut x387: u64 = 0;
+ let mut x388: fiat_p384_scalar_u1 = 0;
+ let (x387, x388) = fiat_p384_scalar_addcarryx_u64(x386, x353, x375);
+ let mut x389: u64 = 0;
+ let mut x390: u64 = 0;
+ let (x389, x390) = fiat_p384_scalar_mulx_u64(x377, 0x6ed46089e88fdc45);
+ let mut x391: u64 = 0;
+ let mut x392: u64 = 0;
+ let (x391, x392) = fiat_p384_scalar_mulx_u64(x389, 0xffffffffffffffff);
+ let mut x393: u64 = 0;
+ let mut x394: u64 = 0;
+ let (x393, x394) = fiat_p384_scalar_mulx_u64(x389, 0xffffffffffffffff);
+ let mut x395: u64 = 0;
+ let mut x396: u64 = 0;
+ let (x395, x396) = fiat_p384_scalar_mulx_u64(x389, 0xffffffffffffffff);
+ let mut x397: u64 = 0;
+ let mut x398: u64 = 0;
+ let (x397, x398) = fiat_p384_scalar_mulx_u64(x389, 0xc7634d81f4372ddf);
+ let mut x399: u64 = 0;
+ let mut x400: u64 = 0;
+ let (x399, x400) = fiat_p384_scalar_mulx_u64(x389, 0x581a0db248b0a77a);
+ let mut x401: u64 = 0;
+ let mut x402: u64 = 0;
+ let (x401, x402) = fiat_p384_scalar_mulx_u64(x389, 0xecec196accc52973);
+ let mut x403: u64 = 0;
+ let mut x404: fiat_p384_scalar_u1 = 0;
+ let (x403, x404) = fiat_p384_scalar_addcarryx_u64(0x0, x402, x399);
+ let mut x405: u64 = 0;
+ let mut x406: fiat_p384_scalar_u1 = 0;
+ let (x405, x406) = fiat_p384_scalar_addcarryx_u64(x404, x400, x397);
+ let mut x407: u64 = 0;
+ let mut x408: fiat_p384_scalar_u1 = 0;
+ let (x407, x408) = fiat_p384_scalar_addcarryx_u64(x406, x398, x395);
+ let mut x409: u64 = 0;
+ let mut x410: fiat_p384_scalar_u1 = 0;
+ let (x409, x410) = fiat_p384_scalar_addcarryx_u64(x408, x396, x393);
+ let mut x411: u64 = 0;
+ let mut x412: fiat_p384_scalar_u1 = 0;
+ let (x411, x412) = fiat_p384_scalar_addcarryx_u64(x410, x394, x391);
+ let mut x413: u64 = 0;
+ let mut x414: fiat_p384_scalar_u1 = 0;
+ let (x413, x414) = fiat_p384_scalar_addcarryx_u64(0x0, x377, x401);
+ let mut x415: u64 = 0;
+ let mut x416: fiat_p384_scalar_u1 = 0;
+ let (x415, x416) = fiat_p384_scalar_addcarryx_u64(x414, x379, x403);
+ let mut x417: u64 = 0;
+ let mut x418: fiat_p384_scalar_u1 = 0;
+ let (x417, x418) = fiat_p384_scalar_addcarryx_u64(x416, x381, x405);
+ let mut x419: u64 = 0;
+ let mut x420: fiat_p384_scalar_u1 = 0;
+ let (x419, x420) = fiat_p384_scalar_addcarryx_u64(x418, x383, x407);
+ let mut x421: u64 = 0;
+ let mut x422: fiat_p384_scalar_u1 = 0;
+ let (x421, x422) = fiat_p384_scalar_addcarryx_u64(x420, x385, x409);
+ let mut x423: u64 = 0;
+ let mut x424: fiat_p384_scalar_u1 = 0;
+ let (x423, x424) = fiat_p384_scalar_addcarryx_u64(x422, x387, x411);
+ let mut x425: u64 = 0;
+ let mut x426: fiat_p384_scalar_u1 = 0;
+ let (x425, x426) = fiat_p384_scalar_addcarryx_u64(
+ x424,
+ (((x388 as u64) + (x354 as u64)) + ((x376 as u64) + x356)),
+ ((x412 as u64) + x392),
+ );
+ let mut x427: u64 = 0;
+ let mut x428: fiat_p384_scalar_u1 = 0;
+ let (x427, x428) = fiat_p384_scalar_subborrowx_u64(0x0, x415, 0xecec196accc52973);
+ let mut x429: u64 = 0;
+ let mut x430: fiat_p384_scalar_u1 = 0;
+ let (x429, x430) = fiat_p384_scalar_subborrowx_u64(x428, x417, 0x581a0db248b0a77a);
+ let mut x431: u64 = 0;
+ let mut x432: fiat_p384_scalar_u1 = 0;
+ let (x431, x432) = fiat_p384_scalar_subborrowx_u64(x430, x419, 0xc7634d81f4372ddf);
+ let mut x433: u64 = 0;
+ let mut x434: fiat_p384_scalar_u1 = 0;
+ let (x433, x434) = fiat_p384_scalar_subborrowx_u64(x432, x421, 0xffffffffffffffff);
+ let mut x435: u64 = 0;
+ let mut x436: fiat_p384_scalar_u1 = 0;
+ let (x435, x436) = fiat_p384_scalar_subborrowx_u64(x434, x423, 0xffffffffffffffff);
+ let mut x437: u64 = 0;
+ let mut x438: fiat_p384_scalar_u1 = 0;
+ let (x437, x438) = fiat_p384_scalar_subborrowx_u64(x436, x425, 0xffffffffffffffff);
+ let mut x439: u64 = 0;
+ let mut x440: fiat_p384_scalar_u1 = 0;
+ let (x439, x440) = fiat_p384_scalar_subborrowx_u64(x438, (x426 as u64), 0x0_u64);
+ let mut x441: u64 = 0;
+ let (x441) = fiat_p384_scalar_cmovznz_u64(x440, x427, x415);
+ let mut x442: u64 = 0;
+ let (x442) = fiat_p384_scalar_cmovznz_u64(x440, x429, x417);
+ let mut x443: u64 = 0;
+ let (x443) = fiat_p384_scalar_cmovznz_u64(x440, x431, x419);
+ let mut x444: u64 = 0;
+ let (x444) = fiat_p384_scalar_cmovznz_u64(x440, x433, x421);
+ let mut x445: u64 = 0;
+ let (x445) = fiat_p384_scalar_cmovznz_u64(x440, x435, x423);
+ let mut x446: u64 = 0;
+ let (x446) = fiat_p384_scalar_cmovznz_u64(x440, x437, x425);
+ out1[0] = x441;
+ out1[1] = x442;
+ out1[2] = x443;
+ out1[3] = x444;
+ out1[4] = x445;
+ out1[5] = x446;
+ out1
+}
+#[doc = " The function fiat_p384_scalar_selectznz is a multi-limb conditional select."]
+#[doc = ""]
+#[doc = " Postconditions:"]
+#[doc = " out1 = (if arg1 = 0 then arg2 else arg3)"]
+#[doc = ""]
+#[doc = " Input Bounds:"]
+#[doc = " arg1: [0x0 ~> 0x1]"]
+#[doc = " arg2: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~>"]
+#[doc = " 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~>"]
+#[doc = " 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]] arg3: [[0x0 ~>"]
+#[doc = " 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~>"]
+#[doc = " 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~>"]
+#[doc = " 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]] Output Bounds:"]
+#[doc = " out1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~>"]
+#[doc = " 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~>"]
+#[doc = " 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]]"]
+#[inline]
+pub const fn fiat_p384_scalar_selectznz(
+ arg1: fiat_p384_scalar_u1,
+ arg2: &[u64; 6],
+ arg3: &[u64; 6],
+) -> [u64; 6] {
+ let mut out1: [u64; 6] = [0; 6];
+ let mut x1: u64 = 0;
+ let (x1) = fiat_p384_scalar_cmovznz_u64(arg1, (arg2[0]), (arg3[0]));
+ let mut x2: u64 = 0;
+ let (x2) = fiat_p384_scalar_cmovznz_u64(arg1, (arg2[1]), (arg3[1]));
+ let mut x3: u64 = 0;
+ let (x3) = fiat_p384_scalar_cmovznz_u64(arg1, (arg2[2]), (arg3[2]));
+ let mut x4: u64 = 0;
+ let (x4) = fiat_p384_scalar_cmovznz_u64(arg1, (arg2[3]), (arg3[3]));
+ let mut x5: u64 = 0;
+ let (x5) = fiat_p384_scalar_cmovznz_u64(arg1, (arg2[4]), (arg3[4]));
+ let mut x6: u64 = 0;
+ let (x6) = fiat_p384_scalar_cmovznz_u64(arg1, (arg2[5]), (arg3[5]));
+ out1[0] = x1;
+ out1[1] = x2;
+ out1[2] = x3;
+ out1[3] = x4;
+ out1[4] = x5;
+ out1[5] = x6;
+ out1
+}
+#[doc = " The function fiat_p384_scalar_to_bytes serializes a field element NOT in the"]
+#[doc = " Montgomery domain to bytes in little-endian order."]
+#[doc = ""]
+#[doc = " Preconditions:"]
+#[doc = " 0 ≤ eval arg1 < m"]
+#[doc = " Postconditions:"]
+#[doc = " out1 = map (λ x, ⌊((eval arg1 mod m) mod 2^(8 * (x + 1))) / 2^(8 * x)⌋)"]
+#[doc = " [0..47]"]
+#[doc = ""]
+#[doc = " Input Bounds:"]
+#[doc = " arg1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~>"]
+#[doc = " 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~>"]
+#[doc = " 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]] Output Bounds:"]
+#[doc = " out1: [[0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~>"]
+#[doc = " 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~>"]
+#[doc = " 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~>"]
+#[doc = " 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~>"]
+#[doc = " 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~>"]
+#[doc = " 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~>"]
+#[doc = " 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~>"]
+#[doc = " 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~>"]
+#[doc = " 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~>"]
+#[doc = " 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff]]"]
+#[inline]
+pub const fn fiat_p384_scalar_to_bytes(arg1: &[u64; 6]) -> [u8; 48] {
+ let mut out1: [u8; 48] = [0; 48];
+ let x1: u64 = (arg1[5]);
+ let x2: u64 = (arg1[4]);
+ let x3: u64 = (arg1[3]);
+ let x4: u64 = (arg1[2]);
+ let x5: u64 = (arg1[1]);
+ let x6: u64 = (arg1[0]);
+ let x7: u8 = ((x6 & 0xff_u64) as u8);
+ let x8: u64 = (x6 >> 8);
+ let x9: u8 = ((x8 & 0xff_u64) as u8);
+ let x10: u64 = (x8 >> 8);
+ let x11: u8 = ((x10 & 0xff_u64) as u8);
+ let x12: u64 = (x10 >> 8);
+ let x13: u8 = ((x12 & 0xff_u64) as u8);
+ let x14: u64 = (x12 >> 8);
+ let x15: u8 = ((x14 & 0xff_u64) as u8);
+ let x16: u64 = (x14 >> 8);
+ let x17: u8 = ((x16 & 0xff_u64) as u8);
+ let x18: u64 = (x16 >> 8);
+ let x19: u8 = ((x18 & 0xff_u64) as u8);
+ let x20: u8 = ((x18 >> 8) as u8);
+ let x21: u8 = ((x5 & 0xff_u64) as u8);
+ let x22: u64 = (x5 >> 8);
+ let x23: u8 = ((x22 & 0xff_u64) as u8);
+ let x24: u64 = (x22 >> 8);
+ let x25: u8 = ((x24 & 0xff_u64) as u8);
+ let x26: u64 = (x24 >> 8);
+ let x27: u8 = ((x26 & 0xff_u64) as u8);
+ let x28: u64 = (x26 >> 8);
+ let x29: u8 = ((x28 & 0xff_u64) as u8);
+ let x30: u64 = (x28 >> 8);
+ let x31: u8 = ((x30 & 0xff_u64) as u8);
+ let x32: u64 = (x30 >> 8);
+ let x33: u8 = ((x32 & 0xff_u64) as u8);
+ let x34: u8 = ((x32 >> 8) as u8);
+ let x35: u8 = ((x4 & 0xff_u64) as u8);
+ let x36: u64 = (x4 >> 8);
+ let x37: u8 = ((x36 & 0xff_u64) as u8);
+ let x38: u64 = (x36 >> 8);
+ let x39: u8 = ((x38 & 0xff_u64) as u8);
+ let x40: u64 = (x38 >> 8);
+ let x41: u8 = ((x40 & 0xff_u64) as u8);
+ let x42: u64 = (x40 >> 8);
+ let x43: u8 = ((x42 & 0xff_u64) as u8);
+ let x44: u64 = (x42 >> 8);
+ let x45: u8 = ((x44 & 0xff_u64) as u8);
+ let x46: u64 = (x44 >> 8);
+ let x47: u8 = ((x46 & 0xff_u64) as u8);
+ let x48: u8 = ((x46 >> 8) as u8);
+ let x49: u8 = ((x3 & 0xff_u64) as u8);
+ let x50: u64 = (x3 >> 8);
+ let x51: u8 = ((x50 & 0xff_u64) as u8);
+ let x52: u64 = (x50 >> 8);
+ let x53: u8 = ((x52 & 0xff_u64) as u8);
+ let x54: u64 = (x52 >> 8);
+ let x55: u8 = ((x54 & 0xff_u64) as u8);
+ let x56: u64 = (x54 >> 8);
+ let x57: u8 = ((x56 & 0xff_u64) as u8);
+ let x58: u64 = (x56 >> 8);
+ let x59: u8 = ((x58 & 0xff_u64) as u8);
+ let x60: u64 = (x58 >> 8);
+ let x61: u8 = ((x60 & 0xff_u64) as u8);
+ let x62: u8 = ((x60 >> 8) as u8);
+ let x63: u8 = ((x2 & 0xff_u64) as u8);
+ let x64: u64 = (x2 >> 8);
+ let x65: u8 = ((x64 & 0xff_u64) as u8);
+ let x66: u64 = (x64 >> 8);
+ let x67: u8 = ((x66 & 0xff_u64) as u8);
+ let x68: u64 = (x66 >> 8);
+ let x69: u8 = ((x68 & 0xff_u64) as u8);
+ let x70: u64 = (x68 >> 8);
+ let x71: u8 = ((x70 & 0xff_u64) as u8);
+ let x72: u64 = (x70 >> 8);
+ let x73: u8 = ((x72 & 0xff_u64) as u8);
+ let x74: u64 = (x72 >> 8);
+ let x75: u8 = ((x74 & 0xff_u64) as u8);
+ let x76: u8 = ((x74 >> 8) as u8);
+ let x77: u8 = ((x1 & 0xff_u64) as u8);
+ let x78: u64 = (x1 >> 8);
+ let x79: u8 = ((x78 & 0xff_u64) as u8);
+ let x80: u64 = (x78 >> 8);
+ let x81: u8 = ((x80 & 0xff_u64) as u8);
+ let x82: u64 = (x80 >> 8);
+ let x83: u8 = ((x82 & 0xff_u64) as u8);
+ let x84: u64 = (x82 >> 8);
+ let x85: u8 = ((x84 & 0xff_u64) as u8);
+ let x86: u64 = (x84 >> 8);
+ let x87: u8 = ((x86 & 0xff_u64) as u8);
+ let x88: u64 = (x86 >> 8);
+ let x89: u8 = ((x88 & 0xff_u64) as u8);
+ let x90: u8 = ((x88 >> 8) as u8);
+ out1[0] = x7;
+ out1[1] = x9;
+ out1[2] = x11;
+ out1[3] = x13;
+ out1[4] = x15;
+ out1[5] = x17;
+ out1[6] = x19;
+ out1[7] = x20;
+ out1[8] = x21;
+ out1[9] = x23;
+ out1[10] = x25;
+ out1[11] = x27;
+ out1[12] = x29;
+ out1[13] = x31;
+ out1[14] = x33;
+ out1[15] = x34;
+ out1[16] = x35;
+ out1[17] = x37;
+ out1[18] = x39;
+ out1[19] = x41;
+ out1[20] = x43;
+ out1[21] = x45;
+ out1[22] = x47;
+ out1[23] = x48;
+ out1[24] = x49;
+ out1[25] = x51;
+ out1[26] = x53;
+ out1[27] = x55;
+ out1[28] = x57;
+ out1[29] = x59;
+ out1[30] = x61;
+ out1[31] = x62;
+ out1[32] = x63;
+ out1[33] = x65;
+ out1[34] = x67;
+ out1[35] = x69;
+ out1[36] = x71;
+ out1[37] = x73;
+ out1[38] = x75;
+ out1[39] = x76;
+ out1[40] = x77;
+ out1[41] = x79;
+ out1[42] = x81;
+ out1[43] = x83;
+ out1[44] = x85;
+ out1[45] = x87;
+ out1[46] = x89;
+ out1[47] = x90;
+ out1
+}
+#[doc = " The function fiat_p384_scalar_from_bytes deserializes a field element NOT in"]
+#[doc = " the Montgomery domain from bytes in little-endian order."]
+#[doc = ""]
+#[doc = " Preconditions:"]
+#[doc = " 0 ≤ bytes_eval arg1 < m"]
+#[doc = " Postconditions:"]
+#[doc = " eval out1 mod m = bytes_eval arg1 mod m"]
+#[doc = " 0 ≤ eval out1 < m"]
+#[doc = ""]
+#[doc = " Input Bounds:"]
+#[doc = " arg1: [[0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~>"]
+#[doc = " 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~>"]
+#[doc = " 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~>"]
+#[doc = " 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~>"]
+#[doc = " 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~>"]
+#[doc = " 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~>"]
+#[doc = " 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~>"]
+#[doc = " 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~>"]
+#[doc = " 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~>"]
+#[doc = " 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff]] Output Bounds:"]
+#[doc = " out1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~>"]
+#[doc = " 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~>"]
+#[doc = " 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]]"]
+#[inline]
+pub const fn fiat_p384_scalar_from_bytes(arg1: &[u8; 48]) -> [u64; 6] {
+ let mut out1: [u64; 6] = [0; 6];
+ let x1: u64 = (((arg1[47]) as u64) << 56);
+ let x2: u64 = (((arg1[46]) as u64) << 48);
+ let x3: u64 = (((arg1[45]) as u64) << 40);
+ let x4: u64 = (((arg1[44]) as u64) << 32);
+ let x5: u64 = (((arg1[43]) as u64) << 24);
+ let x6: u64 = (((arg1[42]) as u64) << 16);
+ let x7: u64 = (((arg1[41]) as u64) << 8);
+ let x8: u8 = (arg1[40]);
+ let x9: u64 = (((arg1[39]) as u64) << 56);
+ let x10: u64 = (((arg1[38]) as u64) << 48);
+ let x11: u64 = (((arg1[37]) as u64) << 40);
+ let x12: u64 = (((arg1[36]) as u64) << 32);
+ let x13: u64 = (((arg1[35]) as u64) << 24);
+ let x14: u64 = (((arg1[34]) as u64) << 16);
+ let x15: u64 = (((arg1[33]) as u64) << 8);
+ let x16: u8 = (arg1[32]);
+ let x17: u64 = (((arg1[31]) as u64) << 56);
+ let x18: u64 = (((arg1[30]) as u64) << 48);
+ let x19: u64 = (((arg1[29]) as u64) << 40);
+ let x20: u64 = (((arg1[28]) as u64) << 32);
+ let x21: u64 = (((arg1[27]) as u64) << 24);
+ let x22: u64 = (((arg1[26]) as u64) << 16);
+ let x23: u64 = (((arg1[25]) as u64) << 8);
+ let x24: u8 = (arg1[24]);
+ let x25: u64 = (((arg1[23]) as u64) << 56);
+ let x26: u64 = (((arg1[22]) as u64) << 48);
+ let x27: u64 = (((arg1[21]) as u64) << 40);
+ let x28: u64 = (((arg1[20]) as u64) << 32);
+ let x29: u64 = (((arg1[19]) as u64) << 24);
+ let x30: u64 = (((arg1[18]) as u64) << 16);
+ let x31: u64 = (((arg1[17]) as u64) << 8);
+ let x32: u8 = (arg1[16]);
+ let x33: u64 = (((arg1[15]) as u64) << 56);
+ let x34: u64 = (((arg1[14]) as u64) << 48);
+ let x35: u64 = (((arg1[13]) as u64) << 40);
+ let x36: u64 = (((arg1[12]) as u64) << 32);
+ let x37: u64 = (((arg1[11]) as u64) << 24);
+ let x38: u64 = (((arg1[10]) as u64) << 16);
+ let x39: u64 = (((arg1[9]) as u64) << 8);
+ let x40: u8 = (arg1[8]);
+ let x41: u64 = (((arg1[7]) as u64) << 56);
+ let x42: u64 = (((arg1[6]) as u64) << 48);
+ let x43: u64 = (((arg1[5]) as u64) << 40);
+ let x44: u64 = (((arg1[4]) as u64) << 32);
+ let x45: u64 = (((arg1[3]) as u64) << 24);
+ let x46: u64 = (((arg1[2]) as u64) << 16);
+ let x47: u64 = (((arg1[1]) as u64) << 8);
+ let x48: u8 = (arg1[0]);
+ let x49: u64 = (x47 + (x48 as u64));
+ let x50: u64 = (x46 + x49);
+ let x51: u64 = (x45 + x50);
+ let x52: u64 = (x44 + x51);
+ let x53: u64 = (x43 + x52);
+ let x54: u64 = (x42 + x53);
+ let x55: u64 = (x41 + x54);
+ let x56: u64 = (x39 + (x40 as u64));
+ let x57: u64 = (x38 + x56);
+ let x58: u64 = (x37 + x57);
+ let x59: u64 = (x36 + x58);
+ let x60: u64 = (x35 + x59);
+ let x61: u64 = (x34 + x60);
+ let x62: u64 = (x33 + x61);
+ let x63: u64 = (x31 + (x32 as u64));
+ let x64: u64 = (x30 + x63);
+ let x65: u64 = (x29 + x64);
+ let x66: u64 = (x28 + x65);
+ let x67: u64 = (x27 + x66);
+ let x68: u64 = (x26 + x67);
+ let x69: u64 = (x25 + x68);
+ let x70: u64 = (x23 + (x24 as u64));
+ let x71: u64 = (x22 + x70);
+ let x72: u64 = (x21 + x71);
+ let x73: u64 = (x20 + x72);
+ let x74: u64 = (x19 + x73);
+ let x75: u64 = (x18 + x74);
+ let x76: u64 = (x17 + x75);
+ let x77: u64 = (x15 + (x16 as u64));
+ let x78: u64 = (x14 + x77);
+ let x79: u64 = (x13 + x78);
+ let x80: u64 = (x12 + x79);
+ let x81: u64 = (x11 + x80);
+ let x82: u64 = (x10 + x81);
+ let x83: u64 = (x9 + x82);
+ let x84: u64 = (x7 + (x8 as u64));
+ let x85: u64 = (x6 + x84);
+ let x86: u64 = (x5 + x85);
+ let x87: u64 = (x4 + x86);
+ let x88: u64 = (x3 + x87);
+ let x89: u64 = (x2 + x88);
+ let x90: u64 = (x1 + x89);
+ out1[0] = x55;
+ out1[1] = x62;
+ out1[2] = x69;
+ out1[3] = x76;
+ out1[4] = x83;
+ out1[5] = x90;
+ out1
+}
+#[doc = " The function fiat_p384_scalar_set_one returns the field element one in the"]
+#[doc = " Montgomery domain."]
+#[doc = ""]
+#[doc = " Postconditions:"]
+#[doc = " eval (from_montgomery out1) mod m = 1 mod m"]
+#[doc = " 0 ≤ eval out1 < m"]
+#[inline]
+pub const fn fiat_p384_scalar_set_one() -> fiat_p384_scalar_montgomery_domain_field_element {
+ let mut out1: fiat_p384_scalar_montgomery_domain_field_element = [0; 6];
+ out1[0] = 0x1313e695333ad68d;
+ out1[1] = 0xa7e5f24db74f5885;
+ out1[2] = 0x389cb27e0bc8d220;
+ out1[3] = 0x0_u64;
+ out1[4] = 0x0_u64;
+ out1[5] = 0x0_u64;
+ out1
+}
+#[doc = " The function fiat_p384_scalar_msat returns the saturated representation of"]
+#[doc = " the prime modulus."]
+#[doc = ""]
+#[doc = " Postconditions:"]
+#[doc = " twos_complement_eval out1 = m"]
+#[doc = " 0 ≤ eval out1 < m"]
+#[doc = ""]
+#[doc = " Output Bounds:"]
+#[doc = " out1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~>"]
+#[doc = " 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~>"]
+#[doc = " 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~>"]
+#[doc = " 0xffffffffffffffff]]"]
+#[inline]
+pub const fn fiat_p384_scalar_msat() -> [u64; 7] {
+ let mut out1: [u64; 7] = [0; 7];
+ out1[0] = 0xecec196accc52973;
+ out1[1] = 0x581a0db248b0a77a;
+ out1[2] = 0xc7634d81f4372ddf;
+ out1[3] = 0xffffffffffffffff;
+ out1[4] = 0xffffffffffffffff;
+ out1[5] = 0xffffffffffffffff;
+ out1[6] = 0x0_u64;
+ out1
+}
+#[doc = " The function fiat_p384_scalar_divstep_precomp returns the precomputed value"]
+#[doc = " for Bernstein-Yang-inversion (in montgomery form)."]
+#[doc = ""]
+#[doc = " Postconditions:"]
+#[doc = " eval (from_montgomery out1) = ⌊(m - 1) / 2⌋^(if ⌊log2 m⌋ + 1 < 46 then"]
+#[doc = " ⌊(49 * (⌊log2 m⌋ + 1) + 80) / 17⌋ else ⌊(49 * (⌊log2 m⌋ + 1) + 57) / 17⌋)"]
+#[doc = " 0 ≤ eval out1 < m"]
+#[doc = ""]
+#[doc = " Output Bounds:"]
+#[doc = " out1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~>"]
+#[doc = " 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~>"]
+#[doc = " 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]]"]
+#[inline]
+pub const fn fiat_p384_scalar_divstep_precomp() -> [u64; 6] {
+ let mut out1: [u64; 6] = [0; 6];
+ out1[0] = 0x49589ae0e6045b6a;
+ out1[1] = 0x3c9a5352870040ed;
+ out1[2] = 0xdacb097e977dc242;
+ out1[3] = 0xb5ab30a6d1ecbe36;
+ out1[4] = 0x97d7a1081f959973;
+ out1[5] = 0x2ba012f8d27192bc;
+ out1
+}
+#[doc = " The function fiat_p384_scalar_divstep computes a divstep."]
+#[doc = ""]
+#[doc = " Preconditions:"]
+#[doc = " 0 ≤ eval arg4 < m"]
+#[doc = " 0 ≤ eval arg5 < m"]
+#[doc = " Postconditions:"]
+#[doc = " out1 = (if 0 < arg1 ∧ (twos_complement_eval arg3) is odd then 1 - arg1"]
+#[doc = " else 1 + arg1) twos_complement_eval out2 = (if 0 < arg1 ∧"]
+#[doc = " (twos_complement_eval arg3) is odd then twos_complement_eval arg3 else"]
+#[doc = " twos_complement_eval arg2) twos_complement_eval out3 = (if 0 < arg1 ∧"]
+#[doc = " (twos_complement_eval arg3) is odd then ⌊(twos_complement_eval arg3 -"]
+#[doc = " twos_complement_eval arg2) / 2⌋ else ⌊(twos_complement_eval arg3 +"]
+#[doc = " (twos_complement_eval arg3 mod 2) * twos_complement_eval arg2) / 2⌋)"]
+#[doc = " eval (from_montgomery out4) mod m = (if 0 < arg1 ∧ (twos_complement_eval"]
+#[doc = " arg3) is odd then (2 * eval (from_montgomery arg5)) mod m else (2 * eval"]
+#[doc = " (from_montgomery arg4)) mod m) eval (from_montgomery out5) mod m = (if 0 <"]
+#[doc = " arg1 ∧ (twos_complement_eval arg3) is odd then (eval (from_montgomery arg4)"]
+#[doc = " - eval (from_montgomery arg4)) mod m else (eval (from_montgomery arg5) +"]
+#[doc = " (twos_complement_eval arg3 mod 2) * eval (from_montgomery arg4)) mod m)"]
+#[doc = " 0 ≤ eval out5 < m"]
+#[doc = " 0 ≤ eval out5 < m"]
+#[doc = " 0 ≤ eval out2 < m"]
+#[doc = " 0 ≤ eval out3 < m"]
+#[doc = ""]
+#[doc = " Input Bounds:"]
+#[doc = " arg1: [0x0 ~> 0xffffffffffffffff]"]
+#[doc = " arg2: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~>"]
+#[doc = " 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~>"]
+#[doc = " 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~>"]
+#[doc = " 0xffffffffffffffff]] arg3: [[0x0 ~> 0xffffffffffffffff], [0x0 ~>"]
+#[doc = " 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~>"]
+#[doc = " 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~>"]
+#[doc = " 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]] arg4: [[0x0 ~>"]
+#[doc = " 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~>"]
+#[doc = " 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~>"]
+#[doc = " 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]] arg5: [[0x0 ~>"]
+#[doc = " 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~>"]
+#[doc = " 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~>"]
+#[doc = " 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]] Output Bounds:"]
+#[doc = " out1: [0x0 ~> 0xffffffffffffffff]"]
+#[doc = " out2: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~>"]
+#[doc = " 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~>"]
+#[doc = " 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~>"]
+#[doc = " 0xffffffffffffffff]] out3: [[0x0 ~> 0xffffffffffffffff], [0x0 ~>"]
+#[doc = " 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~>"]
+#[doc = " 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~>"]
+#[doc = " 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]] out4: [[0x0 ~>"]
+#[doc = " 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~>"]
+#[doc = " 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~>"]
+#[doc = " 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]] out5: [[0x0 ~>"]
+#[doc = " 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~>"]
+#[doc = " 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~>"]
+#[doc = " 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]]"]
+#[inline]
+pub const fn fiat_p384_scalar_divstep(
+ arg1: u64,
+ arg2: &[u64; 7],
+ arg3: &[u64; 7],
+ arg4: &[u64; 6],
+ arg5: &[u64; 6],
+) -> (u64, [u64; 7], [u64; 7], [u64; 6], [u64; 6]) {
+ let mut out1: u64 = 0;
+ let mut out2: [u64; 7] = [0; 7];
+ let mut out3: [u64; 7] = [0; 7];
+ let mut out4: [u64; 6] = [0; 6];
+ let mut out5: [u64; 6] = [0; 6];
+ let mut x1: u64 = 0;
+ let mut x2: fiat_p384_scalar_u1 = 0;
+ let (x1, x2) = fiat_p384_scalar_addcarryx_u64(0x0, (!arg1), 0x1_u64);
+ let x3: fiat_p384_scalar_u1 =
+ (((x1 >> 63) as fiat_p384_scalar_u1) & (((arg3[0]) & 0x1_u64) as fiat_p384_scalar_u1));
+ let mut x4: u64 = 0;
+ let mut x5: fiat_p384_scalar_u1 = 0;
+ let (x4, x5) = fiat_p384_scalar_addcarryx_u64(0x0, (!arg1), 0x1_u64);
+ let mut x6: u64 = 0;
+ let (x6) = fiat_p384_scalar_cmovznz_u64(x3, arg1, x4);
+ let mut x7: u64 = 0;
+ let (x7) = fiat_p384_scalar_cmovznz_u64(x3, (arg2[0]), (arg3[0]));
+ let mut x8: u64 = 0;
+ let (x8) = fiat_p384_scalar_cmovznz_u64(x3, (arg2[1]), (arg3[1]));
+ let mut x9: u64 = 0;
+ let (x9) = fiat_p384_scalar_cmovznz_u64(x3, (arg2[2]), (arg3[2]));
+ let mut x10: u64 = 0;
+ let (x10) = fiat_p384_scalar_cmovznz_u64(x3, (arg2[3]), (arg3[3]));
+ let mut x11: u64 = 0;
+ let (x11) = fiat_p384_scalar_cmovznz_u64(x3, (arg2[4]), (arg3[4]));
+ let mut x12: u64 = 0;
+ let (x12) = fiat_p384_scalar_cmovznz_u64(x3, (arg2[5]), (arg3[5]));
+ let mut x13: u64 = 0;
+ let (x13) = fiat_p384_scalar_cmovznz_u64(x3, (arg2[6]), (arg3[6]));
+ let mut x14: u64 = 0;
+ let mut x15: fiat_p384_scalar_u1 = 0;
+ let (x14, x15) = fiat_p384_scalar_addcarryx_u64(0x0, 0x1_u64, (!(arg2[0])));
+ let mut x16: u64 = 0;
+ let mut x17: fiat_p384_scalar_u1 = 0;
+ let (x16, x17) = fiat_p384_scalar_addcarryx_u64(x15, 0x0_u64, (!(arg2[1])));
+ let mut x18: u64 = 0;
+ let mut x19: fiat_p384_scalar_u1 = 0;
+ let (x18, x19) = fiat_p384_scalar_addcarryx_u64(x17, 0x0_u64, (!(arg2[2])));
+ let mut x20: u64 = 0;
+ let mut x21: fiat_p384_scalar_u1 = 0;
+ let (x20, x21) = fiat_p384_scalar_addcarryx_u64(x19, 0x0_u64, (!(arg2[3])));
+ let mut x22: u64 = 0;
+ let mut x23: fiat_p384_scalar_u1 = 0;
+ let (x22, x23) = fiat_p384_scalar_addcarryx_u64(x21, 0x0_u64, (!(arg2[4])));
+ let mut x24: u64 = 0;
+ let mut x25: fiat_p384_scalar_u1 = 0;
+ let (x24, x25) = fiat_p384_scalar_addcarryx_u64(x23, 0x0_u64, (!(arg2[5])));
+ let mut x26: u64 = 0;
+ let mut x27: fiat_p384_scalar_u1 = 0;
+ let (x26, x27) = fiat_p384_scalar_addcarryx_u64(x25, 0x0_u64, (!(arg2[6])));
+ let mut x28: u64 = 0;
+ let (x28) = fiat_p384_scalar_cmovznz_u64(x3, (arg3[0]), x14);
+ let mut x29: u64 = 0;
+ let (x29) = fiat_p384_scalar_cmovznz_u64(x3, (arg3[1]), x16);
+ let mut x30: u64 = 0;
+ let (x30) = fiat_p384_scalar_cmovznz_u64(x3, (arg3[2]), x18);
+ let mut x31: u64 = 0;
+ let (x31) = fiat_p384_scalar_cmovznz_u64(x3, (arg3[3]), x20);
+ let mut x32: u64 = 0;
+ let (x32) = fiat_p384_scalar_cmovznz_u64(x3, (arg3[4]), x22);
+ let mut x33: u64 = 0;
+ let (x33) = fiat_p384_scalar_cmovznz_u64(x3, (arg3[5]), x24);
+ let mut x34: u64 = 0;
+ let (x34) = fiat_p384_scalar_cmovznz_u64(x3, (arg3[6]), x26);
+ let mut x35: u64 = 0;
+ let (x35) = fiat_p384_scalar_cmovznz_u64(x3, (arg4[0]), (arg5[0]));
+ let mut x36: u64 = 0;
+ let (x36) = fiat_p384_scalar_cmovznz_u64(x3, (arg4[1]), (arg5[1]));
+ let mut x37: u64 = 0;
+ let (x37) = fiat_p384_scalar_cmovznz_u64(x3, (arg4[2]), (arg5[2]));
+ let mut x38: u64 = 0;
+ let (x38) = fiat_p384_scalar_cmovznz_u64(x3, (arg4[3]), (arg5[3]));
+ let mut x39: u64 = 0;
+ let (x39) = fiat_p384_scalar_cmovznz_u64(x3, (arg4[4]), (arg5[4]));
+ let mut x40: u64 = 0;
+ let (x40) = fiat_p384_scalar_cmovznz_u64(x3, (arg4[5]), (arg5[5]));
+ let mut x41: u64 = 0;
+ let mut x42: fiat_p384_scalar_u1 = 0;
+ let (x41, x42) = fiat_p384_scalar_addcarryx_u64(0x0, x35, x35);
+ let mut x43: u64 = 0;
+ let mut x44: fiat_p384_scalar_u1 = 0;
+ let (x43, x44) = fiat_p384_scalar_addcarryx_u64(x42, x36, x36);
+ let mut x45: u64 = 0;
+ let mut x46: fiat_p384_scalar_u1 = 0;
+ let (x45, x46) = fiat_p384_scalar_addcarryx_u64(x44, x37, x37);
+ let mut x47: u64 = 0;
+ let mut x48: fiat_p384_scalar_u1 = 0;
+ let (x47, x48) = fiat_p384_scalar_addcarryx_u64(x46, x38, x38);
+ let mut x49: u64 = 0;
+ let mut x50: fiat_p384_scalar_u1 = 0;
+ let (x49, x50) = fiat_p384_scalar_addcarryx_u64(x48, x39, x39);
+ let mut x51: u64 = 0;
+ let mut x52: fiat_p384_scalar_u1 = 0;
+ let (x51, x52) = fiat_p384_scalar_addcarryx_u64(x50, x40, x40);
+ let mut x53: u64 = 0;
+ let mut x54: fiat_p384_scalar_u1 = 0;
+ let (x53, x54) = fiat_p384_scalar_subborrowx_u64(0x0, x41, 0xecec196accc52973);
+ let mut x55: u64 = 0;
+ let mut x56: fiat_p384_scalar_u1 = 0;
+ let (x55, x56) = fiat_p384_scalar_subborrowx_u64(x54, x43, 0x581a0db248b0a77a);
+ let mut x57: u64 = 0;
+ let mut x58: fiat_p384_scalar_u1 = 0;
+ let (x57, x58) = fiat_p384_scalar_subborrowx_u64(x56, x45, 0xc7634d81f4372ddf);
+ let mut x59: u64 = 0;
+ let mut x60: fiat_p384_scalar_u1 = 0;
+ let (x59, x60) = fiat_p384_scalar_subborrowx_u64(x58, x47, 0xffffffffffffffff);
+ let mut x61: u64 = 0;
+ let mut x62: fiat_p384_scalar_u1 = 0;
+ let (x61, x62) = fiat_p384_scalar_subborrowx_u64(x60, x49, 0xffffffffffffffff);
+ let mut x63: u64 = 0;
+ let mut x64: fiat_p384_scalar_u1 = 0;
+ let (x63, x64) = fiat_p384_scalar_subborrowx_u64(x62, x51, 0xffffffffffffffff);
+ let mut x65: u64 = 0;
+ let mut x66: fiat_p384_scalar_u1 = 0;
+ let (x65, x66) = fiat_p384_scalar_subborrowx_u64(x64, (x52 as u64), 0x0_u64);
+ let x67: u64 = (arg4[5]);
+ let x68: u64 = (arg4[4]);
+ let x69: u64 = (arg4[3]);
+ let x70: u64 = (arg4[2]);
+ let x71: u64 = (arg4[1]);
+ let x72: u64 = (arg4[0]);
+ let mut x73: u64 = 0;
+ let mut x74: fiat_p384_scalar_u1 = 0;
+ let (x73, x74) = fiat_p384_scalar_subborrowx_u64(0x0, 0x0_u64, x72);
+ let mut x75: u64 = 0;
+ let mut x76: fiat_p384_scalar_u1 = 0;
+ let (x75, x76) = fiat_p384_scalar_subborrowx_u64(x74, 0x0_u64, x71);
+ let mut x77: u64 = 0;
+ let mut x78: fiat_p384_scalar_u1 = 0;
+ let (x77, x78) = fiat_p384_scalar_subborrowx_u64(x76, 0x0_u64, x70);
+ let mut x79: u64 = 0;
+ let mut x80: fiat_p384_scalar_u1 = 0;
+ let (x79, x80) = fiat_p384_scalar_subborrowx_u64(x78, 0x0_u64, x69);
+ let mut x81: u64 = 0;
+ let mut x82: fiat_p384_scalar_u1 = 0;
+ let (x81, x82) = fiat_p384_scalar_subborrowx_u64(x80, 0x0_u64, x68);
+ let mut x83: u64 = 0;
+ let mut x84: fiat_p384_scalar_u1 = 0;
+ let (x83, x84) = fiat_p384_scalar_subborrowx_u64(x82, 0x0_u64, x67);
+ let mut x85: u64 = 0;
+ let (x85) = fiat_p384_scalar_cmovznz_u64(x84, 0x0_u64, 0xffffffffffffffff);
+ let mut x86: u64 = 0;
+ let mut x87: fiat_p384_scalar_u1 = 0;
+ let (x86, x87) = fiat_p384_scalar_addcarryx_u64(0x0, x73, (x85 & 0xecec196accc52973));
+ let mut x88: u64 = 0;
+ let mut x89: fiat_p384_scalar_u1 = 0;
+ let (x88, x89) = fiat_p384_scalar_addcarryx_u64(x87, x75, (x85 & 0x581a0db248b0a77a));
+ let mut x90: u64 = 0;
+ let mut x91: fiat_p384_scalar_u1 = 0;
+ let (x90, x91) = fiat_p384_scalar_addcarryx_u64(x89, x77, (x85 & 0xc7634d81f4372ddf));
+ let mut x92: u64 = 0;
+ let mut x93: fiat_p384_scalar_u1 = 0;
+ let (x92, x93) = fiat_p384_scalar_addcarryx_u64(x91, x79, x85);
+ let mut x94: u64 = 0;
+ let mut x95: fiat_p384_scalar_u1 = 0;
+ let (x94, x95) = fiat_p384_scalar_addcarryx_u64(x93, x81, x85);
+ let mut x96: u64 = 0;
+ let mut x97: fiat_p384_scalar_u1 = 0;
+ let (x96, x97) = fiat_p384_scalar_addcarryx_u64(x95, x83, x85);
+ let mut x98: u64 = 0;
+ let (x98) = fiat_p384_scalar_cmovznz_u64(x3, (arg5[0]), x86);
+ let mut x99: u64 = 0;
+ let (x99) = fiat_p384_scalar_cmovznz_u64(x3, (arg5[1]), x88);
+ let mut x100: u64 = 0;
+ let (x100) = fiat_p384_scalar_cmovznz_u64(x3, (arg5[2]), x90);
+ let mut x101: u64 = 0;
+ let (x101) = fiat_p384_scalar_cmovznz_u64(x3, (arg5[3]), x92);
+ let mut x102: u64 = 0;
+ let (x102) = fiat_p384_scalar_cmovznz_u64(x3, (arg5[4]), x94);
+ let mut x103: u64 = 0;
+ let (x103) = fiat_p384_scalar_cmovznz_u64(x3, (arg5[5]), x96);
+ let x104: fiat_p384_scalar_u1 = ((x28 & 0x1_u64) as fiat_p384_scalar_u1);
+ let mut x105: u64 = 0;
+ let (x105) = fiat_p384_scalar_cmovznz_u64(x104, 0x0_u64, x7);
+ let mut x106: u64 = 0;
+ let (x106) = fiat_p384_scalar_cmovznz_u64(x104, 0x0_u64, x8);
+ let mut x107: u64 = 0;
+ let (x107) = fiat_p384_scalar_cmovznz_u64(x104, 0x0_u64, x9);
+ let mut x108: u64 = 0;
+ let (x108) = fiat_p384_scalar_cmovznz_u64(x104, 0x0_u64, x10);
+ let mut x109: u64 = 0;
+ let (x109) = fiat_p384_scalar_cmovznz_u64(x104, 0x0_u64, x11);
+ let mut x110: u64 = 0;
+ let (x110) = fiat_p384_scalar_cmovznz_u64(x104, 0x0_u64, x12);
+ let mut x111: u64 = 0;
+ let (x111) = fiat_p384_scalar_cmovznz_u64(x104, 0x0_u64, x13);
+ let mut x112: u64 = 0;
+ let mut x113: fiat_p384_scalar_u1 = 0;
+ let (x112, x113) = fiat_p384_scalar_addcarryx_u64(0x0, x28, x105);
+ let mut x114: u64 = 0;
+ let mut x115: fiat_p384_scalar_u1 = 0;
+ let (x114, x115) = fiat_p384_scalar_addcarryx_u64(x113, x29, x106);
+ let mut x116: u64 = 0;
+ let mut x117: fiat_p384_scalar_u1 = 0;
+ let (x116, x117) = fiat_p384_scalar_addcarryx_u64(x115, x30, x107);
+ let mut x118: u64 = 0;
+ let mut x119: fiat_p384_scalar_u1 = 0;
+ let (x118, x119) = fiat_p384_scalar_addcarryx_u64(x117, x31, x108);
+ let mut x120: u64 = 0;
+ let mut x121: fiat_p384_scalar_u1 = 0;
+ let (x120, x121) = fiat_p384_scalar_addcarryx_u64(x119, x32, x109);
+ let mut x122: u64 = 0;
+ let mut x123: fiat_p384_scalar_u1 = 0;
+ let (x122, x123) = fiat_p384_scalar_addcarryx_u64(x121, x33, x110);
+ let mut x124: u64 = 0;
+ let mut x125: fiat_p384_scalar_u1 = 0;
+ let (x124, x125) = fiat_p384_scalar_addcarryx_u64(x123, x34, x111);
+ let mut x126: u64 = 0;
+ let (x126) = fiat_p384_scalar_cmovznz_u64(x104, 0x0_u64, x35);
+ let mut x127: u64 = 0;
+ let (x127) = fiat_p384_scalar_cmovznz_u64(x104, 0x0_u64, x36);
+ let mut x128: u64 = 0;
+ let (x128) = fiat_p384_scalar_cmovznz_u64(x104, 0x0_u64, x37);
+ let mut x129: u64 = 0;
+ let (x129) = fiat_p384_scalar_cmovznz_u64(x104, 0x0_u64, x38);
+ let mut x130: u64 = 0;
+ let (x130) = fiat_p384_scalar_cmovznz_u64(x104, 0x0_u64, x39);
+ let mut x131: u64 = 0;
+ let (x131) = fiat_p384_scalar_cmovznz_u64(x104, 0x0_u64, x40);
+ let mut x132: u64 = 0;
+ let mut x133: fiat_p384_scalar_u1 = 0;
+ let (x132, x133) = fiat_p384_scalar_addcarryx_u64(0x0, x98, x126);
+ let mut x134: u64 = 0;
+ let mut x135: fiat_p384_scalar_u1 = 0;
+ let (x134, x135) = fiat_p384_scalar_addcarryx_u64(x133, x99, x127);
+ let mut x136: u64 = 0;
+ let mut x137: fiat_p384_scalar_u1 = 0;
+ let (x136, x137) = fiat_p384_scalar_addcarryx_u64(x135, x100, x128);
+ let mut x138: u64 = 0;
+ let mut x139: fiat_p384_scalar_u1 = 0;
+ let (x138, x139) = fiat_p384_scalar_addcarryx_u64(x137, x101, x129);
+ let mut x140: u64 = 0;
+ let mut x141: fiat_p384_scalar_u1 = 0;
+ let (x140, x141) = fiat_p384_scalar_addcarryx_u64(x139, x102, x130);
+ let mut x142: u64 = 0;
+ let mut x143: fiat_p384_scalar_u1 = 0;
+ let (x142, x143) = fiat_p384_scalar_addcarryx_u64(x141, x103, x131);
+ let mut x144: u64 = 0;
+ let mut x145: fiat_p384_scalar_u1 = 0;
+ let (x144, x145) = fiat_p384_scalar_subborrowx_u64(0x0, x132, 0xecec196accc52973);
+ let mut x146: u64 = 0;
+ let mut x147: fiat_p384_scalar_u1 = 0;
+ let (x146, x147) = fiat_p384_scalar_subborrowx_u64(x145, x134, 0x581a0db248b0a77a);
+ let mut x148: u64 = 0;
+ let mut x149: fiat_p384_scalar_u1 = 0;
+ let (x148, x149) = fiat_p384_scalar_subborrowx_u64(x147, x136, 0xc7634d81f4372ddf);
+ let mut x150: u64 = 0;
+ let mut x151: fiat_p384_scalar_u1 = 0;
+ let (x150, x151) = fiat_p384_scalar_subborrowx_u64(x149, x138, 0xffffffffffffffff);
+ let mut x152: u64 = 0;
+ let mut x153: fiat_p384_scalar_u1 = 0;
+ let (x152, x153) = fiat_p384_scalar_subborrowx_u64(x151, x140, 0xffffffffffffffff);
+ let mut x154: u64 = 0;
+ let mut x155: fiat_p384_scalar_u1 = 0;
+ let (x154, x155) = fiat_p384_scalar_subborrowx_u64(x153, x142, 0xffffffffffffffff);
+ let mut x156: u64 = 0;
+ let mut x157: fiat_p384_scalar_u1 = 0;
+ let (x156, x157) = fiat_p384_scalar_subborrowx_u64(x155, (x143 as u64), 0x0_u64);
+ let mut x158: u64 = 0;
+ let mut x159: fiat_p384_scalar_u1 = 0;
+ let (x158, x159) = fiat_p384_scalar_addcarryx_u64(0x0, x6, 0x1_u64);
+ let x160: u64 = ((x112 >> 1) | ((x114 << 63) & 0xffffffffffffffff));
+ let x161: u64 = ((x114 >> 1) | ((x116 << 63) & 0xffffffffffffffff));
+ let x162: u64 = ((x116 >> 1) | ((x118 << 63) & 0xffffffffffffffff));
+ let x163: u64 = ((x118 >> 1) | ((x120 << 63) & 0xffffffffffffffff));
+ let x164: u64 = ((x120 >> 1) | ((x122 << 63) & 0xffffffffffffffff));
+ let x165: u64 = ((x122 >> 1) | ((x124 << 63) & 0xffffffffffffffff));
+ let x166: u64 = ((x124 & 0x8000000000000000) | (x124 >> 1));
+ let mut x167: u64 = 0;
+ let (x167) = fiat_p384_scalar_cmovznz_u64(x66, x53, x41);
+ let mut x168: u64 = 0;
+ let (x168) = fiat_p384_scalar_cmovznz_u64(x66, x55, x43);
+ let mut x169: u64 = 0;
+ let (x169) = fiat_p384_scalar_cmovznz_u64(x66, x57, x45);
+ let mut x170: u64 = 0;
+ let (x170) = fiat_p384_scalar_cmovznz_u64(x66, x59, x47);
+ let mut x171: u64 = 0;
+ let (x171) = fiat_p384_scalar_cmovznz_u64(x66, x61, x49);
+ let mut x172: u64 = 0;
+ let (x172) = fiat_p384_scalar_cmovznz_u64(x66, x63, x51);
+ let mut x173: u64 = 0;
+ let (x173) = fiat_p384_scalar_cmovznz_u64(x157, x144, x132);
+ let mut x174: u64 = 0;
+ let (x174) = fiat_p384_scalar_cmovznz_u64(x157, x146, x134);
+ let mut x175: u64 = 0;
+ let (x175) = fiat_p384_scalar_cmovznz_u64(x157, x148, x136);
+ let mut x176: u64 = 0;
+ let (x176) = fiat_p384_scalar_cmovznz_u64(x157, x150, x138);
+ let mut x177: u64 = 0;
+ let (x177) = fiat_p384_scalar_cmovznz_u64(x157, x152, x140);
+ let mut x178: u64 = 0;
+ let (x178) = fiat_p384_scalar_cmovznz_u64(x157, x154, x142);
+ out1 = x158;
+ out2[0] = x7;
+ out2[1] = x8;
+ out2[2] = x9;
+ out2[3] = x10;
+ out2[4] = x11;
+ out2[5] = x12;
+ out2[6] = x13;
+ out3[0] = x160;
+ out3[1] = x161;
+ out3[2] = x162;
+ out3[3] = x163;
+ out3[4] = x164;
+ out3[5] = x165;
+ out3[6] = x166;
+ out4[0] = x167;
+ out4[1] = x168;
+ out4[2] = x169;
+ out4[3] = x170;
+ out4[4] = x171;
+ out4[5] = x172;
+ out5[0] = x173;
+ out5[1] = x174;
+ out5[2] = x175;
+ out5[3] = x176;
+ out5[4] = x177;
+ out5[5] = x178;
+ (out1, out2, out3, out4, out5)
+}
diff --git a/vendor/p384/src/ecdh.rs b/vendor/p384/src/ecdh.rs
new file mode 100644
index 000000000..622bfaa42
--- /dev/null
+++ b/vendor/p384/src/ecdh.rs
@@ -0,0 +1,53 @@
+//! Elliptic Curve Diffie-Hellman (Ephemeral) Support.
+//!
+//! This module contains a high-level interface for performing ephemeral
+//! Diffie-Hellman key exchanges using the secp384 elliptic curve.
+//!
+//! # Usage
+//!
+//! This usage example is from the perspective of two participants in the
+//! exchange, nicknamed "Alice" and "Bob".
+//!
+//! ```
+//! use p384::{EncodedPoint, PublicKey, ecdh::EphemeralSecret};
+//! use rand_core::OsRng; // requires 'getrandom' feature
+//!
+//! // Alice
+//! let alice_secret = EphemeralSecret::random(&mut OsRng);
+//! let alice_pk_bytes = EncodedPoint::from(alice_secret.public_key());
+//!
+//! // Bob
+//! let bob_secret = EphemeralSecret::random(&mut OsRng);
+//! let bob_pk_bytes = EncodedPoint::from(bob_secret.public_key());
+//!
+//! // Alice decodes Bob's serialized public key and computes a shared secret from it
+//! let bob_public = PublicKey::from_sec1_bytes(bob_pk_bytes.as_ref())
+//! .expect("bob's public key is invalid!"); // In real usage, don't panic, handle this!
+//!
+//! let alice_shared = alice_secret.diffie_hellman(&bob_public);
+//!
+//! // Bob decodes Alice's serialized public key and computes the same shared secret
+//! let alice_public = PublicKey::from_sec1_bytes(alice_pk_bytes.as_ref())
+//! .expect("alice's public key is invalid!"); // In real usage, don't panic, handle this!
+//!
+//! let bob_shared = bob_secret.diffie_hellman(&alice_public);
+//!
+//! // Both participants arrive on the same shared secret
+//! assert_eq!(alice_shared.raw_secret_bytes(), bob_shared.raw_secret_bytes());
+//! ```
+
+pub use elliptic_curve::ecdh::diffie_hellman;
+
+use crate::{AffinePoint, NistP384};
+
+/// NIST P-384 Ephemeral Diffie-Hellman Secret.
+pub type EphemeralSecret = elliptic_curve::ecdh::EphemeralSecret<NistP384>;
+
+/// Shared secret value computed via ECDH key agreement.
+pub type SharedSecret = elliptic_curve::ecdh::SharedSecret<NistP384>;
+
+impl From<&AffinePoint> for SharedSecret {
+ fn from(affine: &AffinePoint) -> SharedSecret {
+ affine.x.to_sec1().into()
+ }
+}
diff --git a/vendor/p384/src/ecdsa.rs b/vendor/p384/src/ecdsa.rs
new file mode 100644
index 000000000..efa9868e0
--- /dev/null
+++ b/vendor/p384/src/ecdsa.rs
@@ -0,0 +1,138 @@
+//! Elliptic Curve Digital Signature Algorithm (ECDSA)
+//!
+//! This module contains support for computing and verifying ECDSA signatures.
+//! To use it, you will need to enable one of the two following Cargo features:
+//!
+//! - `ecdsa-core`: provides only the [`Signature`] type (which represents an
+//! ECDSA/P-384 signature). Does not require the `arithmetic` feature. This is
+//! useful for 3rd-party crates which wish to use the `Signature` type for
+//! interoperability purposes (particularly in conjunction with the
+//! [`signature::Signer`] trait. Example use cases for this include other
+//! software implementations of ECDSA/P-384 and wrappers for cloud KMS
+//! services or hardware devices (HSM or crypto hardware wallet).
+//! - `ecdsa`: provides `ecdsa-core` features plus the [`SigningKey`] and
+//! [`VerifyingKey`] types which natively implement ECDSA/P-384 signing and
+//! verification.
+//!
+//! ## Signing/Verification Example
+//!
+//! This example requires the `ecdsa` Cargo feature is enabled:
+//!
+//! ```
+//! # #[cfg(feature = "ecdsa")]
+//! # {
+//! use p384::ecdsa::{signature::Signer, Signature, SigningKey};
+//! use rand_core::OsRng; // requires 'getrandom' feature
+//!
+//! // Signing
+//! let signing_key = SigningKey::random(&mut OsRng); // Serialize with `::to_bytes()`
+//! let message = b"ECDSA proves knowledge of a secret number in the context of a single message";
+//! let signature = signing_key.sign(message);
+//!
+//! // Verification
+//! use p384::ecdsa::{signature::Verifier, VerifyingKey};
+//!
+//! let verifying_key = VerifyingKey::from(&signing_key); // Serialize with `::to_encoded_point()`
+//! assert!(verifying_key.verify(message, &signature).is_ok());
+//! # }
+//! ```
+
+pub use ecdsa_core::signature::{self, Error};
+#[cfg(feature = "ecdsa")]
+use {
+ crate::{AffinePoint, Scalar},
+ ecdsa_core::hazmat::{SignPrimitive, VerifyPrimitive},
+};
+
+use super::NistP384;
+
+/// ECDSA/P-384 signature (fixed-size)
+pub type Signature = ecdsa_core::Signature<NistP384>;
+
+/// ECDSA/P-384 signature (ASN.1 DER encoded)
+pub type DerSignature = ecdsa_core::der::Signature<NistP384>;
+
+/// ECDSA/P-384 signing key
+#[cfg(feature = "ecdsa")]
+#[cfg_attr(docsrs, doc(cfg(feature = "ecdsa")))]
+pub type SigningKey = ecdsa_core::SigningKey<NistP384>;
+
+/// ECDSA/P-384 verification key (i.e. public key)
+#[cfg(feature = "ecdsa")]
+#[cfg_attr(docsrs, doc(cfg(feature = "ecdsa")))]
+pub type VerifyingKey = ecdsa_core::VerifyingKey<NistP384>;
+
+#[cfg(feature = "sha384")]
+#[cfg_attr(docsrs, doc(cfg(feature = "sha384")))]
+impl ecdsa_core::hazmat::DigestPrimitive for NistP384 {
+ type Digest = sha2::Sha384;
+}
+
+#[cfg(feature = "ecdsa")]
+impl SignPrimitive<NistP384> for Scalar {}
+
+#[cfg(feature = "ecdsa")]
+impl VerifyPrimitive<NistP384> for AffinePoint {}
+
+#[cfg(all(test, feature = "ecdsa"))]
+mod tests {
+ use crate::{
+ ecdsa::{signature::Signer, SigningKey},
+ SecretKey,
+ };
+ use hex_literal::hex;
+
+ // Test vector from RFC 6979 Appendix 2.6 (NIST P-384 + SHA-384)
+ // <https://tools.ietf.org/html/rfc6979#appendix-A.2.6>
+ #[test]
+ fn rfc6979() {
+ let x = &hex!("6b9d3dad2e1b8c1c05b19875b6659f4de23c3b667bf297ba9aa47740787137d896d5724e4c70a825f872c9ea60d2edf5");
+ let signer = SigningKey::from_bytes(x).unwrap();
+ let signature = signer.sign(b"sample");
+ assert_eq!(
+ signature.as_ref(),
+ &hex!(
+ "94edbb92a5ecb8aad4736e56c691916b3f88140666ce9fa73d64c4ea95ad133c81a648152e44acf96e36dd1e80fabe46
+ 99ef4aeb15f178cea1fe40db2603138f130e740a19624526203b6351d0a3a94fa329c145786e679e7b82c71a38628ac8"
+ )[..]
+ );
+ let signature = signer.sign(b"test");
+ assert_eq!(
+ signature.as_ref(),
+ &hex!(
+ "8203b63d3c853e8d77227fb377bcf7b7b772e97892a80f36ab775d509d7a5feb0542a7f0812998da8f1dd3ca3cf023db
+ ddd0760448d42d8a43af45af836fce4de8be06b485e9b61b827c2f13173923e06a739f040649a667bf3b828246baa5a5"
+ )[..]
+ );
+ }
+
+ #[test]
+ fn signing_secret_key_equivalent() {
+ let raw_sk: [u8; 48] = [
+ 32, 52, 118, 9, 96, 116, 119, 172, 168, 251, 251, 197, 230, 33, 132, 85, 243, 25, 150,
+ 105, 121, 46, 248, 180, 102, 250, 168, 123, 220, 103, 121, 129, 68, 200, 72, 221, 3,
+ 102, 30, 237, 90, 198, 36, 97, 52, 12, 234, 150,
+ ];
+
+ let sigk = SigningKey::from_bytes(raw_sk.as_slice()).unwrap();
+ let seck = SecretKey::from_be_bytes(raw_sk.as_slice()).unwrap();
+
+ assert_eq!(sigk.to_bytes().as_slice(), &raw_sk);
+ assert_eq!(sigk.to_bytes(), seck.to_be_bytes());
+ }
+
+ mod sign {
+ use crate::{test_vectors::ecdsa::ECDSA_TEST_VECTORS, NistP384};
+ ecdsa_core::new_signing_test!(NistP384, ECDSA_TEST_VECTORS);
+ }
+
+ mod verify {
+ use crate::{test_vectors::ecdsa::ECDSA_TEST_VECTORS, NistP384};
+ ecdsa_core::new_verification_test!(NistP384, ECDSA_TEST_VECTORS);
+ }
+
+ mod wycheproof {
+ use crate::NistP384;
+ ecdsa_core::new_wycheproof_test!(wycheproof, "wycheproof", NistP384);
+ }
+}
diff --git a/vendor/p384/src/lib.rs b/vendor/p384/src/lib.rs
new file mode 100644
index 000000000..627b44c32
--- /dev/null
+++ b/vendor/p384/src/lib.rs
@@ -0,0 +1,125 @@
+#![no_std]
+#![cfg_attr(docsrs, feature(doc_cfg))]
+#![doc(
+ html_logo_url = "https://raw.githubusercontent.com/RustCrypto/meta/master/logo.svg",
+ html_favicon_url = "https://raw.githubusercontent.com/RustCrypto/meta/master/logo.svg"
+)]
+#![forbid(unsafe_code)]
+#![warn(missing_docs, rust_2018_idioms, unused_qualifications)]
+#![doc = include_str!("../README.md")]
+
+//! ## `serde` support
+//!
+//! When the `serde` feature of this crate is enabled, `Serialize` and
+//! `Deserialize` are impl'd for the following types:
+//!
+//! - [`AffinePoint`]
+//! - [`Scalar`]
+//! - [`ecdsa::VerifyingKey`]
+//!
+//! Please see type-specific documentation for more information.
+
+#[cfg(feature = "arithmetic")]
+mod arithmetic;
+
+#[cfg(feature = "ecdh")]
+#[cfg_attr(docsrs, doc(cfg(feature = "ecdh")))]
+pub mod ecdh;
+
+#[cfg(feature = "ecdsa-core")]
+#[cfg_attr(docsrs, doc(cfg(feature = "ecdsa-core")))]
+pub mod ecdsa;
+
+#[cfg(any(feature = "test-vectors", test))]
+#[cfg_attr(docsrs, doc(cfg(feature = "test-vectors")))]
+pub mod test_vectors;
+
+pub use elliptic_curve::{self, bigint::U384};
+
+#[cfg(feature = "arithmetic")]
+pub use arithmetic::{affine::AffinePoint, projective::ProjectivePoint, scalar::Scalar};
+
+#[cfg(feature = "expose-field")]
+pub use arithmetic::field::FieldElement;
+
+#[cfg(feature = "pkcs8")]
+#[cfg_attr(docsrs, doc(cfg(feature = "pkcs8")))]
+pub use elliptic_curve::pkcs8;
+
+use elliptic_curve::{consts::U49, generic_array::GenericArray};
+
+/// NIST P-384 elliptic curve.
+#[derive(Copy, Clone, Debug, Default, Eq, PartialEq, PartialOrd, Ord)]
+pub struct NistP384;
+
+impl elliptic_curve::Curve for NistP384 {
+ /// 384-bit integer type used for internally representing field elements.
+ type UInt = U384;
+
+ /// Order of NIST P-384's elliptic curve group (i.e. scalar modulus).
+ const ORDER: U384 = U384::from_be_hex("ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52973");
+}
+
+impl elliptic_curve::PrimeCurve for NistP384 {}
+
+impl elliptic_curve::PointCompression for NistP384 {
+ /// NIST P-384 points are typically uncompressed.
+ const COMPRESS_POINTS: bool = false;
+}
+
+impl elliptic_curve::PointCompaction for NistP384 {
+ /// NIST P-384 points are typically uncompressed.
+ const COMPACT_POINTS: bool = false;
+}
+
+#[cfg(feature = "jwk")]
+#[cfg_attr(docsrs, doc(cfg(feature = "jwk")))]
+impl elliptic_curve::JwkParameters for NistP384 {
+ const CRV: &'static str = "P-384";
+}
+
+#[cfg(feature = "pkcs8")]
+impl pkcs8::AssociatedOid for NistP384 {
+ const OID: pkcs8::ObjectIdentifier = pkcs8::ObjectIdentifier::new_unwrap("1.3.132.0.34");
+}
+
+/// Compressed SEC1-encoded NIST P-384 curve point.
+pub type CompressedPoint = GenericArray<u8, U49>;
+
+/// NIST P-384 field element serialized as bytes.
+///
+/// Byte array containing a serialized field element value (base field or
+/// scalar).
+pub type FieldBytes = elliptic_curve::FieldBytes<NistP384>;
+
+/// NIST P-384 SEC1 encoded point.
+pub type EncodedPoint = elliptic_curve::sec1::EncodedPoint<NistP384>;
+
+/// Non-zero NIST P-384 scalar field element.
+#[cfg(feature = "arithmetic")]
+pub type NonZeroScalar = elliptic_curve::NonZeroScalar<NistP384>;
+
+/// NIST P-384 public key.
+#[cfg(feature = "arithmetic")]
+pub type PublicKey = elliptic_curve::PublicKey<NistP384>;
+
+/// NIST P-384 secret key.
+pub type SecretKey = elliptic_curve::SecretKey<NistP384>;
+
+#[cfg(not(feature = "arithmetic"))]
+impl elliptic_curve::sec1::ValidatePublicKey for NistP384 {}
+
+/// Bit representation of a NIST P-384 scalar field element.
+#[cfg(feature = "bits")]
+#[cfg_attr(docsrs, doc(cfg(feature = "bits")))]
+pub type ScalarBits = elliptic_curve::ScalarBits<NistP384>;
+
+#[cfg(feature = "voprf")]
+#[cfg_attr(docsrs, doc(cfg(feature = "voprf")))]
+impl elliptic_curve::VoprfParameters for NistP384 {
+ /// See <https://www.ietf.org/archive/id/draft-irtf-cfrg-voprf-08.html#section-4.4-1.2>.
+ type Hash = sha2::Sha384;
+
+ /// See <https://www.ietf.org/archive/id/draft-irtf-cfrg-voprf-08.html#section-4.4-1.3>.
+ const ID: u16 = 0x0004;
+}
diff --git a/vendor/p384/src/test_vectors.rs b/vendor/p384/src/test_vectors.rs
new file mode 100644
index 000000000..82a739728
--- /dev/null
+++ b/vendor/p384/src/test_vectors.rs
@@ -0,0 +1,5 @@
+//! secp384r1 test vectors.
+
+#[cfg(test)]
+pub mod ecdsa;
+pub mod group;
diff --git a/vendor/p384/src/test_vectors/data/wycheproof.blb b/vendor/p384/src/test_vectors/data/wycheproof.blb
new file mode 100644
index 000000000..e96cb04c4
--- /dev/null
+++ b/vendor/p384/src/test_vectors/data/wycheproof.blb
Binary files differ
diff --git a/vendor/p384/src/test_vectors/ecdsa.rs b/vendor/p384/src/test_vectors/ecdsa.rs
new file mode 100644
index 000000000..2532a8dcb
--- /dev/null
+++ b/vendor/p384/src/test_vectors/ecdsa.rs
@@ -0,0 +1,150 @@
+//! ECDSA/secp384r1 test vectors
+
+use ecdsa_core::dev::TestVector;
+use hex_literal::hex;
+
+/// ECDSA/P-384 test vectors.
+///
+/// Adapted from the FIPS 186-4 ECDSA test vectors
+/// (P-384, SHA-384, from `SigGen.txt` in `186-4ecdsatestvectors.zip`)
+/// <https://csrc.nist.gov/projects/cryptographic-algorithm-validation-program/digital-signatures>
+///
+/// The `m` field contains a SHA-384 prehash of the `Msg` field in the
+/// original `SigTen.txt`.
+pub const ECDSA_TEST_VECTORS: &[TestVector; 15] = &[
+ TestVector {
+ d: &hex!("201b432d8df14324182d6261db3e4b3f46a8284482d52e370da41e6cbdf45ec2952f5db7ccbce3bc29449f4fb080ac97"),
+ q_x: &hex!("c2b47944fb5de342d03285880177ca5f7d0f2fcad7678cce4229d6e1932fcac11bfc3c3e97d942a3c56bf34123013dbf"),
+ q_y: &hex!("37257906a8223866eda0743c519616a76a758ae58aee81c5fd35fbf3a855b7754a36d4a0672df95d6c44a81cf7620c2d"),
+ k: &hex!("dcedabf85978e090f733c6e16646fa34df9ded6e5ce28c6676a00f58a25283db8885e16ce5bf97f917c81e1f25c9c771"),
+ m: &hex!("31a452d6164d904bb5724c878280231eae705c29ce9d4bc7d58e020e1085f17eebcc1a38f0ed0bf2b344d81fbd896825"),
+ r: &hex!("50835a9251bad008106177ef004b091a1e4235cd0da84fff54542b0ed755c1d6f251609d14ecf18f9e1ddfe69b946e32"),
+ s: &hex!("0475f3d30c6463b646e8d3bf2455830314611cbde404be518b14464fdb195fdcc92eb222e61f426a4a592c00a6a89721"),
+ },
+ TestVector {
+ d: &hex!("23d9f4ea6d87b7d6163d64256e3449255db14786401a51daa7847161bf56d494325ad2ac8ba928394e01061d882c3528"),
+ q_x: &hex!("5d42d6301c54a438f65970bae2a098cbc567e98840006e356221966c86d82e8eca515bca850eaa3cd41f175f03a0cbfd"),
+ q_y: &hex!("4aef5a0ceece95d382bd70ab5ce1cb77408bae42b51a08816d5e5e1d3da8c18fcc95564a752730b0aabea983ccea4e2e"),
+ k: &hex!("67ba379366049008593eac124f59ab017358892ee0c063d38f3758bb849fd25d867c3561563cac1532a323b228dc0890"),
+ m: &hex!("a92784916a40feaebfeab16ea28c0c65e45c5e81eb634052944865708072e20110bd669a9838d7e722e94ac75245cdd3"),
+ r: &hex!("fb318f4cb1276282bb43f733a7fb7c567ce94f4d02924fc758635ab2d1107108bf159b85db080cdc3b30fbb5400016f3"),
+ s: &hex!("588e3d7af5da03eae255ecb1813100d95edc243476b724b22db8e85377660d7645ddc1c2c2ee4eaea8b683dbe22f86ca"),
+ },
+ TestVector {
+ d: &hex!("b5f670e98d8befc46f6f51fb2997069550c2a52ebfb4e5e25dd905352d9ef89eed5c2ecd16521853aadb1b52b8c42ae6"),
+ q_x: &hex!("44ffb2a3a95e12d87c72b5ea0a8a7cb89f56b3bd46342b2303608d7216301c21b5d2921d80b6628dc512ccb84e2fc278"),
+ q_y: &hex!("e4c1002f1828abaec768cadcb7cf42fbf93b1709ccae6df5b134c41fae2b9a188bfbe1eccff0bd348517d7227f2071a6"),
+ k: &hex!("229e67638f712f57bea4c2b02279d5ccad1e7c9e201c77f6f01aeb81ea90e62b44b2d2107fd66d35e56608fff65e28e4"),
+ m: &hex!("b2acf6b4ae1ba9985c1e657313d59157939c21868302f6f5c5dbf037867035ae7c2009bad9fce472579923f7b4b87795"),
+ r: &hex!("b11db592e4ebc75b6472b879b1d8ce57452c615aef20f67a280f8bca9b11a30ad4ac9d69541258c7dd5d0b4ab8dd7d49"),
+ s: &hex!("4eb51db8004e46d438359abf060a9444616cb46b4f99c9a05b53ba6df02e914c9c0b6cc3a9791d804d2e4c0984dab1cc"),
+ },
+ TestVector {
+ d: &hex!("de5975d8932533f092e76295ed6b23f10fc5fba48bfb82c6cc714826baf0126813247f8bd51d5738503654ab22459976"),
+ q_x: &hex!("f1fabafc01fec7e96d982528d9ef3a2a18b7fe8ae0fa0673977341c7ae4ae8d8d3d67420343d013a984f5f61da29ae38"),
+ q_y: &hex!("1a31cf902c46343d01b2ebb614bc789c313b5f91f9302ad9418e9c797563e2fa3d44500f47b4e26ad8fdec1a816d1dcf"),
+ k: &hex!("fc5940e661542436f9265c34bce407eff6364bd471aa79b90c906d923e15c9ed96eea4e86f3238ea86161d13b7d9359d"),
+ m: &hex!("ec21c9d03a7270ea9ce7e9ff83211bac2fb104d078217c370248a3aba81f6c586852f19ced56dc71f83f5251d7381c8a"),
+ r: &hex!("c2fbdd6a56789024082173725d797ef9fd6accb6ae664b7260f9e83cb8ab2490428c8b9c52e153612295432fec4d59cd"),
+ s: &hex!("8056c5bb57f41f73082888b234fcda320a33250b5da012ba1fdb4924355ae679012d81d2c08fc0f8634c708a4833232f"),
+ },
+ TestVector {
+ d: &hex!("11e0d470dc31fab0f5722f87b74a6c8d7414115e58ceb38bfcdced367beac3adbf1fe9ba5a04f72e978b1eb54597eabc"),
+ q_x: &hex!("1950166989164cbfd97968c7e8adb6fbca1873ebef811ea259eb48b7d584627f0e6d6c64defe23cbc95236505a252aa1"),
+ q_y: &hex!("41ef424b5cb076d4e32accd9250ea75fcf4ffd81814040c050d58c0a29b06be11edf67c911b403e418b7277417e52906"),
+ k: &hex!("e56904028226eb04f8d071e3f9cefec91075a81ca0fa87b44cae148fe1ce9827b5d1910db2336d0eb9813ddba3e4d7b5"),
+ m: &hex!("f0272d0a51ee61f86d0875ca7800e12744ef6ffbac72bdda7c54ba24e5a5a6bd69ebe6f429cc20ac12b926d392efc4ce"),
+ r: &hex!("c38ef30f55624e8935680c29f8c24824877cf48ffc0ef015e62de1068893353030d1193bf9d34237d7ce6ba92c98b0fe"),
+ s: &hex!("651b8c3d5c9d5b936d300802a06d82ad54f7b1ba4327b2f031c0c5b0cb215ad4354edc7f932d934e877dfa1cf51b13fe"),
+ },
+ TestVector {
+ d: &hex!("5c6bbf9fbcbb7b97c9535f57b431ed1ccae1945b7e8a4f1b032016b07810bd24a9e20055c0e9306650df59ef7e2cd8c2"),
+ q_x: &hex!("2e01c5b59e619e00b79060a1e8ef695472e23bf9a511fc3d5ed77a334a242557098e40972713732c5291c97adf9cf2cf"),
+ q_y: &hex!("563e3fe4ad807e803b9e961b08da4dde4cea8925649da0d93221ce4cdceabc6a1db7612180a8c6bef3579c65539b97e9"),
+ k: &hex!("03d23f1277b949cb6380211ad9d338e6f76c3eedac95989b91d0243cfb734a54b19bca45a5d13d6a4b9f815d919eea77"),
+ m: &hex!("e114c6204bee5bf0bbdf9ffc139bb99f09e7ea2186da3ee1e011dd059185d57c4953a130d34ff0df3fc6782dda199ee8"),
+ r: &hex!("abab65308f0b79c4f3a9ff28dd490acb0c320434094cef93e75adfe17e5820dc1f77544cfaaacdc8cf9ac8b38e174bef"),
+ s: &hex!("11b783d879a6de054b316af7d56e526c3dce96c85289122e3ad927cfa77bfc50b4a96c97f85b1b8221be2df083ff58fb"),
+ },
+ TestVector {
+ d: &hex!("ffc7dedeff8343721f72046bc3c126626c177b0e48e247f44fd61f8469d4d5f0a74147fabaa334495cc1f986ebc5f0b1"),
+ q_x: &hex!("51c78c979452edd53b563f63eb3e854a5b23e87f1b2103942b65f77d024471f75c8ce1cc0dfef83292b368112aa5126e"),
+ q_y: &hex!("313e6aaf09caa3ba30f13072b2134878f14a4a01ee86326cccbff3d079b4df097dc57985e8c8c834a10cb9d766169366"),
+ k: &hex!("c3de91dbe4f777698773da70dd610ef1a7efe4dc00d734399c7dd100728006a502822a5a7ff9129ffd8adf6c1fc1211a"),
+ m: &hex!("f11e38f4037ae3ffd0fde97c08e2e5acbc26e3ac5828a86c182232be90ef6fc0f5d21a9b1a7b93472d78c103b4136019"),
+ r: &hex!("f4f477855819ad8b1763f53691b76afbc4a31a638b1e08c293f9bcd55decf797f9913ca128d4b45b2e2ea3e82c6cf565"),
+ s: &hex!("7c26be29569ef95480a6d0c1af49dc10a51a0a8931345e48c0c39498bfb94d62962980b56143a7b41a2fddc8794c1b7f"),
+ },
+ TestVector {
+ d: &hex!("adca364ef144a21df64b163615e8349cf74ee9dbf728104215c532073a7f74e2f67385779f7f74ab344cc3c7da061cf6"),
+ q_x: &hex!("ef948daae68242330a7358ef73f23b56c07e37126266db3fa6eea233a04a9b3e4915233dd6754427cd4b71b75854077d"),
+ q_y: &hex!("009453ef1828eaff9e17c856d4fc1895ab60051312c3e1db1e3766566438b2990cbf9945c2545619e3e0145bc6a79004"),
+ k: &hex!("a2da3fae2e6da3cf11b49861afb34fba357fea89f54b35ce5ed7434ae09103fe53e2be75b93fc579fedf919f6d5e407e"),
+ m: &hex!("f8d0170479b2d1a8f50c80556e67ff345592c8b7dcda4e4f6099f993c1a71bff6d3b60190715ae1215a8a759a8eb13df"),
+ r: &hex!("dda994b9c428b57e9f8bbaebba0d682e3aac6ed828e3a1e99a7fc4c804bff8df151137f539c7389d80e23d9f3ee497bf"),
+ s: &hex!("a0d6b10ceffd0e1b29cf784476f9173ba6ecd2cfc7929725f2d6e24e0db5a4721683640eaa2bbe151fb57560f9ce594b"),
+ },
+ TestVector {
+ d: &hex!("39bea008ec8a217866dcbdb1b93da34d1d3e851d011df9ef44b7828b3453a54aa70f1df9932170804eacd207e4f7e91d"),
+ q_x: &hex!("5709ec4305a9c3271c304face6c148142490b827a73a4c17affcfd01fffd7eaa65d2fdedfa2419fc64ed910823513faf"),
+ q_y: &hex!("b083cda1cf3be6371b6c06e729ea6299213428db57119347247ec1fcd44204386cc0bca3f452d9d864b39efbfc89d6b2"),
+ k: &hex!("3c90cc7b6984056f570542a51cbe497ce4c11aeae8fc35e8fd6a0d9adeb650e8644f9d1d5e4341b5adc81e27f284c08f"),
+ m: &hex!("86bc7536faf2de20028159ce93e293d0a7f5721fb6680b5b070c3f70aba845de2eaed9245144babc38c49cce59f3eac7"),
+ r: &hex!("d13646895afb1bfd1953551bb922809c95ad65d6abe94eb3719c899aa1f6dba6b01222c7f283900fe98628b7597b6ea6"),
+ s: &hex!("4a9a38afda04c0a6b0058943b679bd02205b14d0f3d49b8f31aac289129780cdb1c555def8c3f9106b478729e0c7efaa"),
+ },
+ TestVector {
+ d: &hex!("e849cf948b241362e3e20c458b52df044f2a72deb0f41c1bb0673e7c04cdd70811215059032b5ca3cc69c345dcce4cf7"),
+ q_x: &hex!("06c037a0cbf43fdf335dff33de06d34348405353f9fdf2ce1361efba30fb204aea9dbd2e30da0a10fd2d876188371be6"),
+ q_y: &hex!("360d38f3940e34679204b98fbf70b8a4d97f25443e46d0807ab634ed5891ad864dd7703557aa933cd380e26eea662a43"),
+ k: &hex!("32386b2593c85e877b70e5e5495936f65dc49553caef1aa6cc14d9cd370c442a0ccfab4c0da9ec311b67913b1b575a9d"),
+ m: &hex!("1128c8b09573a993adaa0a68f3ca965db30870db46de70d29e3b9a7d110ba0cd57633f1713173c62331b36fb925fa874"),
+ r: &hex!("5886078d3495767e330c7507b7ca0fa07a50e59912a416d89f0ab1aa4e88153d6eaf00882d1b4aa64153153352d853b5"),
+ s: &hex!("2cc10023bf1bf8ccfd14b06b82cc2114449a352389c8ff9f6f78cdc4e32bde69f3869da0e17f691b329682ae7a36e1aa"),
+ },
+ TestVector {
+ d: &hex!("d89607475d509ef23dc9f476eae4280c986de741b63560670fa2bd605f5049f1972792c0413a5b3b4b34e7a38b70b7ca"),
+ q_x: &hex!("49a1c631f31cf5c45b2676b1f130cbf9be683d0a50dffae0d147c1e9913ab1090c6529a84f47ddc7cf025921b771355a"),
+ q_y: &hex!("1e207eece62f2bcc6bdabc1113158145170be97469a2904eaaa93aad85b86a19719207f3e423051f5b9cbbe2754eefcb"),
+ k: &hex!("78613c570c8d33b7dd1bd1561d87e36282e8cf4843e7c344a2b2bb6a0da94756d670eeaffe434f7ae7c780f7cf05ca08"),
+ m: &hex!("ab9a6d22c8d7675bc8e99e3cafed8318f33051ba5398ce0e9d8e8d3d537a6a908d4c2ace3e6d8204d0236d863eee3c28"),
+ r: &hex!("66f92b39aa3f4aeb9e2dc03ac3855406fa3ebbab0a6c88a78d7a03482f0c9868d7b78bc081ede0947c7f37bf193074ba"),
+ s: &hex!("e5c64ed98d7f3701193f25dd237d59c91c0da6e26215e0889d82e6d3e416693f8d58843cf30ab10ab8d0edd9170b53ad"),
+ },
+ TestVector {
+ d: &hex!("083e7152734adf342520ae377087a223688de2899b10cfcb34a0b36bca500a4dfa530e2343e6a39da7ae1eb0862b4a0d"),
+ q_x: &hex!("70a0f16b6c61172659b027ed19b18fd8f57bd28dc0501f207bd6b0bb065b5671cf3dd1ed13d388dcf6ccc766597aa604"),
+ q_y: &hex!("4f845bf01c3c3f6126a7368c3454f51425801ee0b72e63fb6799b4420bfdebe3e37c7246db627cc82c09654979c700bb"),
+ k: &hex!("28096ababe29a075fbdf894709a20d0fdedb01ed3eeacb642a33a0da6aed726e13caf6cf206792ec359f0c9f9b567552"),
+ m: &hex!("68f858243fe465eb91dc2481333cbb1958883ef25099d45cf02721d17d2846d2cec4689884ae7c0412332e035a1fa3fc"),
+ r: &hex!("ee2923f9b9999ea05b5e57f505bed5c6ba0420def42c6fa90eef7a6ef770786525546de27cdeb2f8586f8f29fb4ee67c"),
+ s: &hex!("50ef923fb217c4cf65a48b94412fda430fac685f0da7bd574557c6c50f5b22e0c8354d99f2c2f2c2691f252f93c7d84a"),
+ },
+ TestVector {
+ d: &hex!("63578d416215aff2cc78f9b926d4c7740a77c142944e104aa7422b19a616898262d46a8a942d5e8d5db135ee8b09a368"),
+ q_x: &hex!("cadbacef4406099316db2ce3206adc636c2bb0a835847ed7941efb02862472f3150338f13f4860d47f39b7e098f0a390"),
+ q_y: &hex!("752ad0f22c9c264336cde11bbc95d1816ed4d1b1500db6b8dce259a42832e613c31178c2c7995206a62e201ba108f570"),
+ k: &hex!("7b69c5d5b4d05c9950dc94c27d58403b4c52c004b80a80418ad3a89aabc5d34f21926729e76afd280cc8ee88c9805a2a"),
+ m: &hex!("dca5ebfebeac1696eff4a89162469c6937b80f8f8cf17299856de2e13d8f8a199bff3085cee59366886164bcc03f7e90"),
+ r: &hex!("db054addb6161ee49c6ce2e4d646d7670754747b6737ca8516e9d1e87859937c3ef9b1d2663e10d7e4bd00ec85b7a97a"),
+ s: &hex!("fcc504e0f00ef29587e4bc22faada4db30e2cb1ac552680a65785ae87beb666c792513f2be7a3180fc544296841a0e27"),
+ },
+ TestVector {
+ d: &hex!("ed4df19971658b74868800b3b81bc877807743b25c65740f1d6377542afe2c6427612c840ada31a8eb794718f37c7283"),
+ q_x: &hex!("33093a0568757e8b58df5b72ea5fe5bf26e6f7aeb541b4c6a8c189c93721749bcaceccf2982a2f0702586a9f812fc66f"),
+ q_y: &hex!("ebe320d09e1f0662189d50b85a20403b821ac0d000afdbf66a0a33f304726c69e354d81c50b94ba3a5250efc31319cd1"),
+ k: &hex!("d9b4cd1bdfa83e608289634dbfcee643f07315baf743fc91922880b55a2feda3b38ddf6040d3ba10985cd1285fc690d5"),
+ m: &hex!("f9b152150f7dc99d5262c9da04dde148009730fb2af9ac753b9c64488d27c817f68c17ae1ff61e50ebb6749230c59a71"),
+ r: &hex!("009c74063e206a4259b53decff5445683a03f44fa67252b76bd3581081c714f882f882df915e97dbeab061fa8b3cc4e7"),
+ s: &hex!("d40e09d3468b46699948007e8f59845766dbf694b9c62066890dd055c0cb9a0caf0aa611fb9f466ad0bbb00dbe29d7eb"),
+ },
+ TestVector {
+ d: &hex!("e9c7e9a79618d6ff3274da1abd0ff3ed0ec1ae3b54c3a4fd8d68d98fb04326b7633fc637e0b195228d0edba6bb1468fb"),
+ q_x: &hex!("a39ac353ca787982c577aff1e8601ce192aa90fd0de4c0ed627f66a8b6f02ae51315543f72ffc1c48a7269b25e7c289a"),
+ q_y: &hex!("9064a507b66b340b6e0e0d5ffaa67dd20e6dafc0ea6a6faee1635177af256f9108a22e9edf736ab4ae8e96dc207b1fa9"),
+ k: &hex!("b094cb3a5c1440cfab9dc56d0ec2eff00f2110dea203654c70757254aa5912a7e73972e607459b1f4861e0b08a5cc763"),
+ m: &hex!("14f785ebb5a3b1bdff516a6b580e245b3c81aff37e1035e354b084a6691e973e0de30bb2a0490fca2d757f8191d7560a"),
+ r: &hex!("ee82c0f90501136eb0dc0e459ad17bf3be1b1c8b8d05c60068a9306a346326ff7344776a95f1f7e2e2cf9477130e735c"),
+ s: &hex!("af10b90f203af23b7500e070536e64629ba19245d6ef39aab57fcdb1b73c4c6bf7070c6263544633d3d358c12a178138"),
+ },
+];
diff --git a/vendor/p384/src/test_vectors/group.rs b/vendor/p384/src/test_vectors/group.rs
new file mode 100644
index 000000000..e95399c05
--- /dev/null
+++ b/vendor/p384/src/test_vectors/group.rs
@@ -0,0 +1,256 @@
+//! Test vectors for the secp384r1 group.
+
+use hex_literal::hex;
+
+/// Repeated addition of the generator.
+///
+/// These are the first 20 test vectors from <http://point-at-infinity.org/ecc/nisttv>
+pub const ADD_TEST_VECTORS: &[([u8; 48], [u8; 48])] = &[
+ (
+ hex!("AA87CA22BE8B05378EB1C71EF320AD746E1D3B628BA79B9859F741E082542A385502F25DBF55296C3A545E3872760AB7"),
+ hex!("3617DE4A96262C6F5D9E98BF9292DC29F8F41DBD289A147CE9DA3113B5F0B8C00A60B1CE1D7E819D7A431D7C90EA0E5F")
+ ),
+ (
+ hex!("08D999057BA3D2D969260045C55B97F089025959A6F434D651D207D19FB96E9E4FE0E86EBE0E64F85B96A9C75295DF61"),
+ hex!("8E80F1FA5B1B3CEDB7BFE8DFFD6DBA74B275D875BC6CC43E904E505F256AB4255FFD43E94D39E22D61501E700A940E80")
+ ),
+ (
+ hex!("077A41D4606FFA1464793C7E5FDC7D98CB9D3910202DCD06BEA4F240D3566DA6B408BBAE5026580D02D7E5C70500C831"),
+ hex!("C995F7CA0B0C42837D0BBE9602A9FC998520B41C85115AA5F7684C0EDC111EACC24ABD6BE4B5D298B65F28600A2F1DF1")
+ ),
+ (
+ hex!("138251CD52AC9298C1C8AAD977321DEB97E709BD0B4CA0ACA55DC8AD51DCFC9D1589A1597E3A5120E1EFD631C63E1835"),
+ hex!("CACAE29869A62E1631E8A28181AB56616DC45D918ABC09F3AB0E63CF792AA4DCED7387BE37BBA569549F1C02B270ED67")
+ ),
+ (
+ hex!("11DE24A2C251C777573CAC5EA025E467F208E51DBFF98FC54F6661CBE56583B037882F4A1CA297E60ABCDBC3836D84BC"),
+ hex!("8FA696C77440F92D0F5837E90A00E7C5284B447754D5DEE88C986533B6901AEB3177686D0AE8FB33184414ABE6C1713A")
+ ),
+ (
+ hex!("627BE1ACD064D2B2226FE0D26F2D15D3C33EBCBB7F0F5DA51CBD41F26257383021317D7202FF30E50937F0854E35C5DF"),
+ hex!("09766A4CB3F8B1C21BE6DDA6C14F1575B2C95352644F774C99864F613715441604C45B8D84E165311733A408D3F0F934")
+ ),
+ (
+ hex!("283C1D7365CE4788F29F8EBF234EDFFEAD6FE997FBEA5FFA2D58CC9DFA7B1C508B05526F55B9EBB2040F05B48FB6D0E1"),
+ hex!("9475C99061E41B88BA52EFDB8C1690471A61D867ED799729D9C92CD01DBD225630D84EDE32A78F9E64664CDAC512EF8C")
+ ),
+ (
+ hex!("1692778EA596E0BE75114297A6FA383445BF227FBE58190A900C3C73256F11FB5A3258D6F403D5ECE6E9B269D822C87D"),
+ hex!("DCD2365700D4106A835388BA3DB8FD0E22554ADC6D521CD4BD1C30C2EC0EEC196BADE1E9CDD1708D6F6ABFA4022B0AD2")
+ ),
+ (
+ hex!("8F0A39A4049BCB3EF1BF29B8B025B78F2216F7291E6FD3BAC6CB1EE285FB6E21C388528BFEE2B9535C55E4461079118B"),
+ hex!("62C77E1438B601D6452C4A5322C3A9799A9B3D7CA3C400C6B7678854AED9B3029E743EFEDFD51B68262DA4F9AC664AF8")
+ ),
+ (
+ hex!("A669C5563BD67EEC678D29D6EF4FDE864F372D90B79B9E88931D5C29291238CCED8E85AB507BF91AA9CB2D13186658FB"),
+ hex!("A988B72AE7C1279F22D9083DB5F0ECDDF70119550C183C31C502DF78C3B705A8296D8195248288D997784F6AB73A21DD")
+ ),
+ (
+ hex!("099056E27DA7B998DA1EEEC2904816C57FE935ED5837C37456C9FD14892D3F8C4749B66E3AFB81D626356F3B55B4DDD8"),
+ hex!("2E4C0C234E30AB96688505544AC5E0396FC4EED8DFC363FD43FF93F41B52A3255466D51263AAFF357D5DBA8138C5E0BB")
+ ),
+ (
+ hex!("952A7A349BD49289AB3AC421DCF683D08C2ED5E41F6D0E21648AF2691A481406DA4A5E22DA817CB466DA2EA77D2A7022"),
+ hex!("A0320FAF84B5BC0563052DEAE6F66F2E09FB8036CE18A0EBB9028B096196B50D031AA64589743E229EF6BACCE21BD16E")
+ ),
+ (
+ hex!("A567BA97B67AEA5BAFDAF5002FFCC6AB9632BFF9F01F873F6267BCD1F0F11C139EE5F441ABD99F1BAAF1CA1E3B5CBCE7"),
+ hex!("DE1B38B3989F3318644E4147AF164ECC5185595046932EC086329BE057857D66776BCB8272218A7D6423A12736F429CC")
+ ),
+ (
+ hex!("E8C8F94D44FBC2396BBEAC481B89D2B0877B1DFFD23E7DC95DE541EB651CCA2C41ABA24DBC02DE6637209ACCF0F59EA0"),
+ hex!("891AE44356FC8AE0932BCBF6DE52C8A933B86191E7728D79C8319413A09D0F48FC468BA05509DE22D7EE5C9E1B67B888")
+ ),
+ (
+ hex!("B3D13FC8B32B01058CC15C11D813525522A94156FFF01C205B21F9F7DA7C4E9CA849557A10B6383B4B88701A9606860B"),
+ hex!("152919E7DF9162A61B049B2536164B1BEEBAC4A11D749AF484D1114373DFBFD9838D24F8B284AF50985D588D33F7BD62")
+ ),
+ (
+ hex!("D5D89C3B5282369C5FBD88E2B231511A6B80DFF0E5152CF6A464FA9428A8583BAC8EBC773D157811A462B892401DAFCF"),
+ hex!("D815229DE12906D241816D5E9A9448F1D41D4FC40E2A3BDB9CABA57E440A7ABAD1210CB8F49BF2236822B755EBAB3673")
+ ),
+ (
+ hex!("4099952208B4889600A5EBBCB13E1A32692BEFB0733B41E6DCC614E42E5805F817012A991AF1F486CAF3A9ADD9FFCC03"),
+ hex!("5ECF94777833059839474594AF603598163AD3F8008AD0CD9B797D277F2388B304DA4D2FAA9680ECFA650EF5E23B09A0")
+ ),
+ (
+ hex!("DFB1FE3A40F7AC9B64C41D39360A7423828B97CB088A4903315E402A7089FA0F8B6C2355169CC9C99DFB44692A9B93DD"),
+ hex!("453ACA1243B5EC6B423A68A25587E1613A634C1C42D2EE7E6C57F449A1C91DC89168B7036EC0A7F37A366185233EC522")
+ ),
+ (
+ hex!("8D481DAB912BC8AB16858A211D750B77E07DBECCA86CD9B012390B430467AABF59C8651060801C0E9599E68713F5D41B"),
+ hex!("A1592FF0121460857BE99F2A60669050B2291B68A1039AA0594B32FD7ADC0E8C11FFBA5608004E646995B07E75E52245")
+ ),
+ (
+ hex!("605508EC02C534BCEEE9484C86086D2139849E2B11C1A9CA1E2808DEC2EAF161AC8A105D70D4F85C50599BE5800A623F"),
+ hex!("5158EE87962AC6B81F00A103B8543A07381B7639A3A65F1353AEF11B733106DDE92E99B78DE367B48E238C38DAD8EEDD")
+ )
+];
+
+/// Scalar multiplication with the generator.
+///
+/// These are the test vectors from <http://point-at-infinity.org/ecc/nisttv> that are not
+/// part of [`ADD_TEST_VECTORS`].
+pub const MUL_TEST_VECTORS: &[([u8; 48], [u8; 48], [u8; 48])] = &[
+ (
+ hex!("00000000000000000000000000000000000000000000000000000000000000000000000000000000018ebbb95eed0e13"),
+ hex!("A499EFE48839BC3ABCD1C5CEDBDD51904F9514DB44F4686DB918983B0C9DC3AEE05A88B72433E9515F91A329F5F4FA60"),
+ hex!("3B7CA28EF31F809C2F1BA24AAED847D0F8B406A4B8968542DE139DB5828CA410E615D1182E25B91B1131E230B727D36A"),
+ ),
+ (
+ hex!("000000000000000000000000000000000000000000000000000000000000000000159d893d4cdd747246cdca43590e13"),
+ hex!("90A0B1CAC601676B083F21E07BC7090A3390FE1B9C7F61D842D27FA315FB38D83667A11A71438773E483F2A114836B24"),
+ hex!("3197D3C6123F0D6CD65D5F0DE106FEF36656CB16DC7CD1A6817EB1D51510135A8F492F72665CFD1053F75ED03A7D04C9"),
+ ),
+ (
+ hex!("41ffc1fffffe01fffc0003fffe0007c001fff00003fff07ffe0007c000000003ffffff807fff8007fffff800fffe0000"),
+ hex!("F2A066BD332DC59BBC3D01DA1B124C687D8BB44611186422DE94C1DA4ECF150E664D353CCDB5CB2652685F8EB4D2CD49"),
+ hex!("D6ED0BF75FDD8E53D87765FA746835B673881D6D1907163A2C43990D75B454294F942EC571AD5AAE1806CAF2BB8E9A4A"),
+ ),
+ (
+ hex!("400000003803ffffffcfffffe0800000001ffffe03ffff1ffff801fffffffff8000001fffff800ffffff8001fffc7fff"),
+ hex!("5C7F9845D1C4AA44747F9137B6F9C39B36B26B8A62E8AF97290434D5F3B214F5A0131550ADB19058DC4C8780C4165C4A"),
+ hex!("712F7FCCC86F647E70DB8798228CB16344AF3D00B139B6F8502939C2A965AF0EB4E39E2E16AB8F597B8D5630A50C9D85"),
+ ),
+ (
+ hex!("4000008000fffffc000003f00000ffffffff800003800f8000e0000e000000ffffffe00000ffffffc0007e0000000fe0"),
+ hex!("DD5838F7EC3B8ACF1BECFD746F8B668C577107E93548ED93ED0D254C112E76B10F053109EF8428BFCD50D38C4C030C57"),
+ hex!("33244F479CDAC34F160D9E4CE2D19D2FF0E3305B5BF0EEF29E91E9DE6E28F678C61B773AA7E3C03740E1A49D1AA2493C"),
+ ),
+ (
+ hex!("000000001ffc000000fff030001f0000fffff0000038000000000002003f007ffffff0000000000000ffe00000000000"),
+ hex!("CB8ED893530BFBA04B4CA655923AAAD109A62BC8411D5925316C32D33602459C33057A1FBCB5F70AEB295D90F9165FBC"),
+ hex!("426AEE3E91B08420F9B357B66D5AFCBCF3956590BF5564DBF9086042EB880493D19DA39AAA6436C6B5FC66CE5596B43F"),
+ ),
+ (
+ hex!("000fffe0800001ff0001fffffff0000ffffffffffffff80000fffffc1fffffffffffff001ffffffffffffbffffe01ffc"),
+ hex!("67F714012B6B070182122DDD435CC1C2262A1AB88939BC6A2906CB2B4137C5E82B4582160F6403CAB887ACDF5786A268"),
+ hex!("90E31CF398CE2F8C5897C7380BF541075D1B4D3CB70547262B7095731252F181AC0597C66AF8311C7780DB39DEC0BD32"),
+ ),
+ (
+ hex!("07fffe0001fffff800fff800001ffff0001fffffe001fffc0000003ffe03fffffff80ffff01ffff20001c0003f0001ff"),
+ hex!("55A79DF7B53A99D31462C7E1A5ED5623970715BB1021098CB973A7520CBD6365E613E4B2467486FB37E86E01CEE09B8F"),
+ hex!("B95AEB71693189911661B709A886A1867F056A0EFE401EE11C06030E46F7A87731DA4575863178012208707DD666727C"),
+ ),
+ (
+ hex!("0000003fff87effe07fe7ffffe07ffe07f0000000003fe007fff03e07c07ffe0007f0017fffffe000003fffff007ffff"),
+ hex!("9539A968CF819A0E52E10EEA3BACA1B6480D7E4DF69BC07002C568569047110EE4FE72FCA423FDD5179D6E0E19C44844"),
+ hex!("A7728F37A0AE0DF2716061900D83A4DA149144129F89A214A8260464BAB609BB322E4E67DE5E4C4C6CB8D25983EC19B0"),
+ ),
+ (
+ hex!("00ffffff0000007e07fffff80031ffeffdffffc3fffffffff01fffffffff80000000007fc000fc000000004003ffc000"),
+ hex!("933FC13276672AB360D909161CD02D830B1628935DF0D800C6ED602C59D575A86A8A97E3A2D697E3ED06BE741C0097D6"),
+ hex!("F35296BD7A6B4C6C025ED6D84338CCCC7522A45C5D4FBDB1442556CAEFB598128FA188793ADA510EB5F44E90A4E4BEF1"),
+ ),
+ (
+ hex!("00001fff803ff8000001fff000ffffffe3fff000000007ffdff80000003fff007fffffc01ffffff9ffffe001fc000000"),
+ hex!("0CE31E1C4A937071E6EBACA026A93D783848BCC0C1585DAF639518125FCD1F1629D63041ABFB11FFC8F03FA8B6FCF6BF"),
+ hex!("A69EA55BE4BEAB2D5224050FEBFFBDFCFD614624C3B4F228909EB80012F003756D1C377E52F04FA539237F24DD080E2E"),
+ ),
+ (
+ hex!("7ff0001fff000fffffffff80007ffc0003f80001fff8000000001fc000000fff000000007ffc01fffc020000003fc000"),
+ hex!("6842CFE3589AC268818291F31D44177A9168DCBC19F321ED66D81ECF59E31B54CCA0DDFD4C4136780171748D69A91C54"),
+ hex!("E3A5ECD5AC725F13DBC631F358C6E817EDCF3A613B83832741A9DB591A0BAE767FC714F70C2E7EA891E4312047DECCC0"),
+ ),
+ (
+ hex!("ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc5295f"),
+ hex!("605508EC02C534BCEEE9484C86086D2139849E2B11C1A9CA1E2808DEC2EAF161AC8A105D70D4F85C50599BE5800A623F"),
+ hex!("AEA7117869D53947E0FF5EFC47ABC5F8C7E489C65C59A0ECAC510EE48CCEF92116D16647721C984B71DC73C825271122"),
+ ),
+ (
+ hex!("ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52960"),
+ hex!("8D481DAB912BC8AB16858A211D750B77E07DBECCA86CD9B012390B430467AABF59C8651060801C0E9599E68713F5D41B"),
+ hex!("5EA6D00FEDEB9F7A841660D59F996FAF4DD6E4975EFC655FA6B4CD028523F172EE0045A8F7FFB19B966A4F828A1ADDBA"),
+ ),
+ (
+ hex!("ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52961"),
+ hex!("DFB1FE3A40F7AC9B64C41D39360A7423828B97CB088A4903315E402A7089FA0F8B6C2355169CC9C99DFB44692A9B93DD"),
+ hex!("BAC535EDBC4A1394BDC5975DAA781E9EC59CB3E3BD2D118193A80BB65E36E2366E9748FB913F580C85C99E7BDCC13ADD"),
+ ),
+ (
+ hex!("ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52962"),
+ hex!("4099952208B4889600A5EBBCB13E1A32692BEFB0733B41E6DCC614E42E5805F817012A991AF1F486CAF3A9ADD9FFCC03"),
+ hex!("A1306B8887CCFA67C6B8BA6B509FCA67E9C52C07FF752F32648682D880DC774BFB25B2CF55697F13059AF10B1DC4F65F"),
+ ),
+ (
+ hex!("ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52963"),
+ hex!("D5D89C3B5282369C5FBD88E2B231511A6B80DFF0E5152CF6A464FA9428A8583BAC8EBC773D157811A462B892401DAFCF"),
+ hex!("27EADD621ED6F92DBE7E92A1656BB70E2BE2B03BF1D5C42463545A81BBF585442EDEF3460B640DDC97DD48AB1454C98C"),
+ ),
+ (
+ hex!("ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52964"),
+ hex!("B3D13FC8B32B01058CC15C11D813525522A94156FFF01C205B21F9F7DA7C4E9CA849557A10B6383B4B88701A9606860B"),
+ hex!("EAD6E618206E9D59E4FB64DAC9E9B4E411453B5EE28B650B7B2EEEBC8C2040257C72DB064D7B50AF67A2A773CC08429D"),
+ ),
+ (
+ hex!("ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52965"),
+ hex!("E8C8F94D44FBC2396BBEAC481B89D2B0877B1DFFD23E7DC95DE541EB651CCA2C41ABA24DBC02DE6637209ACCF0F59EA0"),
+ hex!("76E51BBCA903751F6CD4340921AD3756CC479E6E188D728637CE6BEC5F62F0B603B9745EAAF621DD2811A362E4984777"),
+ ),
+ (
+ hex!("ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52966"),
+ hex!("A567BA97B67AEA5BAFDAF5002FFCC6AB9632BFF9F01F873F6267BCD1F0F11C139EE5F441ABD99F1BAAF1CA1E3B5CBCE7"),
+ hex!("21E4C74C6760CCE79BB1BEB850E9B133AE7AA6AFB96CD13F79CD641FA87A82988894347C8DDE75829BDC5ED9C90BD633"),
+ ),
+ (
+ hex!("ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52967"),
+ hex!("952A7A349BD49289AB3AC421DCF683D08C2ED5E41F6D0E21648AF2691A481406DA4A5E22DA817CB466DA2EA77D2A7022"),
+ hex!("5FCDF0507B4A43FA9CFAD215190990D1F6047FC931E75F1446FD74F69E694AF1FCE559B9768BC1DD610945341DE42E91"),
+ ),
+ (
+ hex!("ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52968"),
+ hex!("099056E27DA7B998DA1EEEC2904816C57FE935ED5837C37456C9FD14892D3F8C4749B66E3AFB81D626356F3B55B4DDD8"),
+ hex!("D1B3F3DCB1CF5469977AFAABB53A1FC6903B1127203C9C02BC006C0BE4AD5CD9AB992AEC9C5500CA82A2457FC73A1F44"),
+ ),
+ (
+ hex!("ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52969"),
+ hex!("A669C5563BD67EEC678D29D6EF4FDE864F372D90B79B9E88931D5C29291238CCED8E85AB507BF91AA9CB2D13186658FB"),
+ hex!("567748D5183ED860DD26F7C24A0F132208FEE6AAF3E7C3CE3AFD20873C48FA56D6927E69DB7D77266887B09648C5DE22"),
+ ),
+ (
+ hex!("ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc5296a"),
+ hex!("8F0A39A4049BCB3EF1BF29B8B025B78F2216F7291E6FD3BAC6CB1EE285FB6E21C388528BFEE2B9535C55E4461079118B"),
+ hex!("9D3881EBC749FE29BAD3B5ACDD3C56866564C2835C3BFF39489877AB51264CFC618BC100202AE497D9D25B075399B507"),
+ ),
+ (
+ hex!("ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc5296b"),
+ hex!("1692778EA596E0BE75114297A6FA383445BF227FBE58190A900C3C73256F11FB5A3258D6F403D5ECE6E9B269D822C87D"),
+ hex!("232DC9A8FF2BEF957CAC7745C24702F1DDAAB52392ADE32B42E3CF3D13F113E594521E15322E8F729095405CFDD4F52D"),
+ ),
+ (
+ hex!("ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc5296c"),
+ hex!("283C1D7365CE4788F29F8EBF234EDFFEAD6FE997FBEA5FFA2D58CC9DFA7B1C508B05526F55B9EBB2040F05B48FB6D0E1"),
+ hex!("6B8A366F9E1BE47745AD102473E96FB8E59E2798128668D62636D32FE242DDA8CF27B120CD5870619B99B3263AED1073"),
+ ),
+ (
+ hex!("ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc5296d"),
+ hex!("627BE1ACD064D2B2226FE0D26F2D15D3C33EBCBB7F0F5DA51CBD41F26257383021317D7202FF30E50937F0854E35C5DF"),
+ hex!("F68995B34C074E3DE41922593EB0EA8A4D36ACAD9BB088B36679B09EC8EABBE8FB3BA4717B1E9ACEE8CC5BF82C0F06CB"),
+ ),
+ (
+ hex!("ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc5296e"),
+ hex!("11DE24A2C251C777573CAC5EA025E467F208E51DBFF98FC54F6661CBE56583B037882F4A1CA297E60ABCDBC3836D84BC"),
+ hex!("705969388BBF06D2F0A7C816F5FF183AD7B4BB88AB2A211773679ACC496FE513CE889791F51704CCE7BBEB55193E8EC5"),
+ ),
+ (
+ hex!("ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc5296f"),
+ hex!("138251CD52AC9298C1C8AAD977321DEB97E709BD0B4CA0ACA55DC8AD51DCFC9D1589A1597E3A5120E1EFD631C63E1835"),
+ hex!("35351D679659D1E9CE175D7E7E54A99E923BA26E7543F60C54F19C3086D55B22128C7840C8445A96AB60E3FE4D8F1298"),
+ ),
+ (
+ hex!("ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52970"),
+ hex!("077A41D4606FFA1464793C7E5FDC7D98CB9D3910202DCD06BEA4F240D3566DA6B408BBAE5026580D02D7E5C70500C831"),
+ hex!("366A0835F4F3BD7C82F44169FD5603667ADF4BE37AEEA55A0897B3F123EEE1523DB542931B4A2D6749A0D7A0F5D0E20E"),
+ ),
+ (
+ hex!("ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52971"),
+ hex!("08D999057BA3D2D969260045C55B97F089025959A6F434D651D207D19FB96E9E4FE0E86EBE0E64F85B96A9C75295DF61"),
+ hex!("717F0E05A4E4C312484017200292458B4D8A278A43933BC16FB1AFA0DA954BD9A002BC15B2C61DD29EAFE190F56BF17F"),
+ ),
+ (
+ hex!("ffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52972"),
+ hex!("AA87CA22BE8B05378EB1C71EF320AD746E1D3B628BA79B9859F741E082542A385502F25DBF55296C3A545E3872760AB7"),
+ hex!("C9E821B569D9D390A26167406D6D23D6070BE242D765EB831625CEEC4A0F473EF59F4E30E2817E6285BCE2846F15F1A0"),
+ ),
+];